요약
- 경사하강법이 필요한 이유
- 신경망의 내부 가중치 파라미터를 잘 조절하여 원하는 함수를 근사하고 싶다.
- 손실 함수를 통해 더 좋은 가중치 파라미터를 선택할 수 있다.
- 이때 효율적으로 가중치 파라미터를 찾고 싶다.
- 손실 값을 가중치 파라미터로 미분하여, 그래디언트를 벡터를 구하고 반대방향으로 가중치 파라미터를 업데이트 하면 점진적으로 더 낮은 손실 값을 갖는 가중치 파라미터를 구할 수 있다.
- 경사하강법의 수식
\[\begin{gathered}
\theta\leftarrow\theta-\eta\nabla_\theta\mathcal{L}(\theta)
\end{gathered}\]
- 학습률learning rate
- 학습률이 너무 클 경우: 파라미터 업데이트 과정에서 손실 값이 발산할 수 있다.
- 학습률이 너무 작을 경우: 파라미터가 너무 조금씩 바뀌어서 학습이 느려진다.
- 적절한 학습률을 선정하는 것은 매우 큰 과제
- 오토그래드
- 파이토치는 오토그래드 알고리즘을 통해 미분을 자동으로 수행할 수 있다.
- 스칼라 값에 backward 함수를 호출하여 자동 미분을 수행할 수 있다.
- 이를 위해 텐서간의 연산마다 계산 그래프를 자동으로 생성하고, 나중에 미분할 때 활용한다.