cs231n 강의 중 'Lecture 3 | Loss Functions and Optimization'을 정리한 내용이다.
Loss function
Random Search는 정확도가 떨어져 좋지 않음 방법
slope를 따라 내려가는 것처럼 step을 조절하며 찾는 방법도 있다.
모든 방향에서의 slope는 gradient와 방향을 표시하는 unit vector의 dot product로 표현할 수 있다.
gradient는 이처럼 현위치에 대해 linear한 function을 가능하게 해주므로 gradient를 이용해 parameter vector를 계속 update할 수 있어 딥러닝에 있어 매우 중요하다.
Numerial gradient는 매우 느리므로 Analytic grdient를 사용하는 것이 빠르고 좋다. Analytic gradient를 사용한 후 numerical gradient로 계산을 다시 확인해보는 것을 gradient check이라고 한다.
W를 랜덤하게 초기화하고, loss와 gradient를 계산한 후 gradient 방향의 반대로 weight를 업데이트 해준다. step size는 하이퍼파라미터로, learning rate라 부르며 training에 있어 매우 중요한 하이퍼파라미터이다.
gradient를 이용해 모든 step에서 어디로 step할지 결정하는 간단한 알고리즘이다. 다양한 update rule이 있다.
Stochastic Gradient Descent (SGD)