매개변수 경신

SGD

매개변수의 기울기를 구하고 기울어진 방향으로 매개변수 값을 갱신하는 일을 반복하여 최적의 값을 찾는 것

SGD는 단순하지만 비효율적일 때가 있다. 예를 들어 다음 함수의 최소값을 구해보자.

images_kimkihoon0515_post_5993a2e2-7f89-4f43-9f3e-29f4108ebf2f_image.png

이것의 최적화 갱신 경로는 다음과 같다.

images_kimkihoon0515_post_927de7b4-663e-4004-8db0-1ab53e4ccf05_image.png

단점은 비등방성(방향에 따라 기울기가 달라지는 함수)에서는 탐색 경로가 비효율적임.

Momentum

모멘텀은 운동량을 뜻하고 수식으로는 다음과 같다.

images_kimkihoon0515_post_e6181a95-cb85-4a71-91b6-242fabc0165a_image.png

속도를 활용함으로써 공이 굴러가는 듯한 경로를 만들 수 있다.

images_kimkihoon0515_post_04eef767-26a3-4d72-a691-f91a7aa78bb1_image.png

AdaGrad

신경망 학습에서는 학습률이 중요하다. 너무 작으면 학습 시간이 길어지고 너무 크면 발산하여 학습이 제대로 이루어지지 않는다.

AdaGrad는 각각의 매개변수에 적응적으로 학습률을 조정하면서 학습을 진행한다.

images_kimkihoon0515_post_a0fff87f-44b2-4da6-8fdd-997b796051cd_image.png

AdaGrad는 과거의 기울기를 제곱해서 계속 더하기 때문에 학습을 할 수록 갱신 강도가 약해진다.

images_kimkihoon0515_post_46ebde7b-7e43-4e70-889b-66fcd7dca4c3_image.png

Adam