-
[DL] Gradient Descent MethodsMachine Learning 2023. 9. 12. 11:37
* stochastic gradient descent
하나의 샘플로 gradient를 계산한다.
* Mini-batch gradient descent
a subset of data(샘플 일부)로 gradient를 계산한다.
large batch methods는 sharp minimizers로 수렴되는 경향이 있고,
small-batch methods는 consistently으로 flat minimizers로 수렴된다.
일반적으로 flat minimizers가 generalize performance가 좋다.
* Batch gradient descent
전체 데이터(샘플 전체)로 gradient를 계산한다.
* Gradient Descent Methods
1. sotchastic gradient descent(SGD, 확률적 경사하강법)
- learning rate(eta) 혹은 step size를 적절히 조정하는 게 너무 어렵다.
- y축 방향은 가파른데 x축 방향은 완만한 것을 볼 수 있다.
- 또한, 최솟값이 되는 장소는 (x, y) = (0,0) 그림의 gradient를 보면 대부분이 (0,0) 방향을 가리키지 않는다.
- SGD의 단점은 비등방성(anisotropy 함수; 방향에 따라 성질, 즉 여기에서는 기울기가 달라지는 함수)에서는 탐색 경로가 비효율적이라는 점이다.
- SGD가 지그재그로 탐색하는 근본 원인은 기울어진 방향이 본래의 최솟값과 다른 방향을 가리켜서라는 점이다.
2. Momentum
- a는 accumulation 혹은 v (velocity)로도 쓰는데, 기울기 방향으로 힘을 받아 물체가 가속된다는 물리 법칙을 나타낸다. beta는 0.9 등의 값으로 설정한다.
- SGD와 비교해서 '지그재그 정도'가 덜한 것을 알 수 있다.
- x축의 힘은 아주 작지만 방향은 변하지 않아서 한 방향으로 일정하게 가속하기 때문이다. 거꾸로 y축의 힘은 크지만 위아래로 번갈아 받아서 상충하여 y축 방향의 속도는 안정적이지 않다.
3. Nesterov Accelerated Gradient(NAG)
- Momentum Optimizer의 개선된 알고리즘.
- Gradient( 를 에서 계산하는 것이 아니라 관성(momentum)에 의해서 이동한 에서 계산한다.
- momentum optimizer가 관성의 효과로 최적값을 지나칠 수 있는 문제를 개선한 것이 NAG( 지그재그를 줄이고 더 빠르게 수렴할 수 있다.)
4. AdaGrad
- AdaGrad는 많이 변화시켰던 파라미터는 적게 변화시키고, 적게 변화시켰던 파라미터는 많이 변화시키는 방법이다.
- epsilon은 0으로 나눠지지 않게 하기 위한(division zero Error 예방) 값. (for numerical stability)
- AdaGrad는 과거의 기울기를 제곱하여 계속 더해간다. 그래서 학습을 진행할수록 갱신 강도가 약해진다. 실제로 무한히 학습하다보면 어느 순간 갱신량이 0이 되어 전혀 갱신되지 않게 되는 문제가 있다.
- y 축 방향은 기울기가 커서 처음에는 크게 움직이지만, 그 큰 움직임에 비례해 갱신 정도도 큰 폭으로 작아지도록 조정된다. 그래서 y축 방향으로 갱신 강도가 빠르게 약해지고, 지그재그 움직임이 줄어든다.
5. Adadelta
- accumulation window를 제한하므로써, AdaGrad의 monotonically decreasing the learning rate을 줄이기 위한 방법이다.
- 실제론 잘 사용하지 않는 방법이다.
6. RMSprop
- 과거의 모든 기울기를 균일하게 더해가는 것이 아니라, 먼 과거의 기울기는 서서히 잊고 새로운 기울기 정보를 크게 반영한다. 이를 지수이동평균(Exponential Moving Average, EMA)이라 하며, 과거 기울기의 반영 규모를 기하급수적으로 감소시킨다.
- 제프리힌턴이 강의에서 경험담으로 말했었다가, 나중에 논문이 나왔을 때 그의 강의가 출처로 인용되었다.
- 많이 사용됐었다.
7. Adam
- 모멘텀과 AdaGrad의 매개변수의 원소마다 적응적으로 갱신 정도를 조정하는 방법을 합친 것.
- hyperparameter가 3(+1)개이다. 학습률 eta, 일차 모멘텀용 계수 beta1과 이차 모멘텀용 계수 beta2이다. 논문에 기본 설정값은 beta1은 0.9이고 beta2는 0.999이다. epsilon(defalt: 10^-7)은 실제로 조정시 생각보다 중요하다.
2023.11.22 - [Mathematics/Calculus] - EMA(Exponential Moving Average, EMA) 지수이동평균
'Machine Learning' 카테고리의 다른 글
[3dgs] open3d로 point cloud 시각화 (2) 2024.07.04 Logistic regression, cross entropy (2) 2023.12.03 Batch Normalization (배치정규화) (2) 2023.12.03 [DL] Regularization (0) 2023.09.12 [DL for VS #9] LeNet-5 (0) 2023.04.19