-
경사하강법 [Optimizer]인공지능 2022. 11. 17. 14:08
SGD란?
- 딥러닝 알고리즘 학습할 때 사용되는 최적화 방법 중 하나로 1차 미분계수를 이용해 함수의 최소값을 찾아가는 반복적인 방법이다.
(Loss Function이 0에 수렴하면 학습이 잘 된 것이라고 볼 수 있다)
기울기란
미분 가능한 N개의 다변수 함수 f를 각 축이 가리키는 방향마다 편미분한 것이다.
Gradient를 수식으로 나타내면 아래와 같다.
# Step size
경사하강법에서 step size 선택은 매우 중요한 요소다. Step size가 큰 경우 이동 거리가 커지므로 빠르게 수렴할 수 있다는 장점이 있지만, 최소값으로 수렴되지 못 하고 함수값이 발산할 여지가 있다.
한편, step size가 너무 작으면 발산하진 않지만 최소값을 찾는데 너무 오래걸린다는 단점이 있다.
# Local minima
Local minima는 경사하강법의 문제점 중에 하나다.
경사하강법은 global minima(함수 전체에서의 최소값)이지만, 어떤 경우에는 local minima에 빠져 벗어나지 못하는 상황이 발생할 수 있다.
Local minima 예제 이러한 Local minima 문제점을 보완하기 위해서 Momentum과 같은 다양한 최적화 알고리즘 기법들이 탄생했다.
(이미지 출처: https://angeloyeo.github.io/2020/08/16/gradient_descent.html)
경사하강법(gradient descent) - 공돌이의 수학정리노트
angeloyeo.github.io
'인공지능' 카테고리의 다른 글
합성곱 신경망(Convolution Neural Network) (0) 2022.11.20 순환 신경망 예제 [RNN] (0) 2022.11.16 순환 신경망에 대해서 [RNN] (0) 2022.11.16 머신러닝 - 1 (0) 2022.01.12