No Limitation
[Pytorch] 선형 회귀 Intro 본문
참고 자료
유원준 님의 Pytorch로 시작하는 딥러닝 입문 책 자료를 참고하였습니다.
학부 때는 R을 위주로 사용하고 Python의 경우는 scikit-learn과 keras 정도만 사용했었다보니
자주 사용되는 딥러닝 프레임워크인 tensorflow와 torch를 공부를 최근에 시작하게 되었다.
특히 연구실에서는 pytorch를 많이 사용하기 때문에 들어가기 전 미리미리 공부하자!
기초 선형회귀부터 RNN까지 차근차근 공부를 해나가보자!
우선 모형에 들어가기 전에 간단하게 초기 세팅을 수행해준다.
여기서 랜덤 시드 값을 고정하는 이유는 여러번 수행했을 때도 동일한 결과값을 산출하기 위해서 사용했다는 점만 착안
저자님은 굉장히 단순한 예제를 사용하셨는데
X = [1, 2, 3] 이고 Y = [2, 4, 6] 일때 관계식을 찾는 매우 단순한 선형 회귀 모형식을 구현하는 문제이다.
이 경우 다음과 같이 tensor를 2개 만들어주고 size를 확인한다 (차원을 확인하는 습관은 매우 중요하다)
다음으로 회귀식
다음과 같은 가설(회귀식)을 구축해야 하기 때문에
우선, 초기 값으로는 W와 b를 0으로 초기화시킨다.
이 때도 입력 X의 차원을 고려해서 알맞게 정의해야 한다.
W와 b를 사용하여 회귀식을 세팅한다.
다음으로 optimize를 해주기 위한 gradient descent의 초기 세팅을 해준다.
optim.SGD를 통해 수행할 수 있다.
그리고 위 코드로 본격적으로 Gradient Descent를 수행한다.
우선 zero_grad는 미분 값을 0으로 초기화해주는 거고
backward는 미분을 통해 gradient를 계산하고
step 과정을 통해 업데이트 한다.
매번 zero_grad를 수행해주어야 함에 주의하자.
다음과 같은 논리를 사용하여 간단한 회귀식을 구현할 수 있다.
'ML & DL & RL' 카테고리의 다른 글
[Pytorch] Custom Dataset (0) | 2022.02.03 |
---|---|
[Pytorch] Mini Batch Size와 Data Loader (0) | 2022.02.03 |
[Pytorch] Class를 이용한 Model 구현 (0) | 2022.02.03 |
[Pytorch] nn.Module (0) | 2022.02.03 |
[Pytorch] 다중 선형 회귀 분석 (0) | 2022.02.02 |