DeepLearning Basics - 3 : Optimizer
Optimizer
Gradient Descent (GD)
Gradient Descent는 가장 기본적인 최적화 방법 중 하나로, 매개변수 공간에서 Loss Function의 Gradient를 따라서 최소값을 찾아가는 최적화 방법입니다.
- 장점 : 구현이 간단하고, Hyper-Parameter 수가 적습니다.
- 단점 : 매개변수 공간이 복잡한 경우, 수렴이 느리거나 지역 최소값(Local minimum)이나 안정점( Saddle Point)에 빠지거나 Learning Rate에 민감해지고, Converge Speed가 느려지는 문제가 발생할 수 있습니다.
- Gradient Descent는 매개변수 공간이 복잡하지 않은 경우, 빠르고 안정적인 최적화를 할 수 있다.
따라서 매개변수 공간이 복잡한 경우에는 다른 최적화 방법을 찾아보도록 하자.
매개변수 공간?
- 매개변수 공간이란 모델의 매개변수들이 가질 수 있는 모든 가능한 값들의 집합을 의미합니다.
- ex. Linear Regression Model에서 매개변수는 기울기와 절편이 됩니다.
- 매개변수 공간이 복잡하다는 의미는 매개변수들의 값에 따라 모델의 성능이 크게 달라지거나, 최적화 문제가 비선형적인 경우를 말합니다.
- 예를 들자면, 신경망 모델에서는 많은 수의 매개변수들과 활성화 함수들로 인해 매개변수 공간이 다차원적이고 복잡한 형태를 띄게 됩니다.
Stochastic Gradient Descent (SGD)
Stochastic Gradient Descent는 Gradient Descent의 변형으로, 전체 데이터셋을 이용하는 대신, 랜덤하게 추출한 일부 데이터셋(mini-batch)을 이용하여 파라미터를 업데이트합니다. 이를 통해, 더 빠르게 최적점에 수렴할 수 있습니다.
- 장점 : 빠른 속도로 최적점에 수렴합니다.
- 단점 : Local Minimum에 빠질 가능성이 있습니다.
Gradient Descent
GD는 전체 데이터셋을 이용하기 때문에 일반적으로 더 많은 계산량을 필요로하지만, Local Minimum에 빠질 확률이 낮아지므로 Global Minimum에 수렴할 가능성이 높습니다. 하지만, 데이터셋이 큰 경우 GD는 계산량이 많아져 학습이 느려질 수 있습니다.
- GD는 복잡한 모델의 최적화나 대용량 데이터셋에서 더 적합하다.
Stochastic Gradient Descent
반면, SGD는 랜덤하게 추출한 일부 데이터셋을 이용하기 때문에 계산량을 줄어듭니다.
그리고 각 Iteration마다 파라미터를 업데이트하므로 Local Minimum에 빠질 가능성이 적습니다.
하지만, 랜덤하게 추출한 데이터셋에 대해서만 Parameter를 조정하므로 Global Minimum에 도달하지 못할 가능성이 있습니다.
- SGD는 좀 더 빠른 속도로 최적점에 도달하는데 적합하다.
- But SGD는 일반적으로 Parameter Update에 Noise가 더 많아져 성능이 떨어질 수 있으며, Local Optimum에 빠질 가능성이 있다.
- 대안으로 Momentum, Adagrad, Adam 등의 알고리즘을 사용한다.
Optimum, 최적점?
최적점 (Optimum)은 모델의 Loss Function에서 가장 작은 값을 갖는 파라미터 값입니다.
이 파라미터 값은 모델이 가장 잘 동작하는 지점이며, 이를 찾는 것이 최적화(Optimization)의 목적입니다.
Local Optimum, 지역 최적점?
역 최적점은 손실 함수에서의 극소값(local minimum)이나 안장점(saddle point)을 의미합니다.
Momentum
Momentum은 Gradient Descent와 마찬가지로, 손실 함수의 기울기를 이용하여 파라미터를 업데이트합니다.
- 장점 : 지역 최적점에 빠질 가능성이 적습니다.
- 단점 : 일부 파라미터에 대해 학습률을 너무 높게 설정하는 경향이 있습니다.
Momentum은 Exponential Moving Average(EMA)를 사용하여 이전 기울기들의 지수 가중 평균을 계산하여 기울기를 조정하는 것이 특징으로 기울기가 큰 방향으로 빠르게 이동하면서 Global Minimum을 찾아가는 데 도움이 됩니다. 하지만 Learning Rate를 너무 높게 잡은 경우 Parameter가 Over-shooting되어 학습이 불안정해질 수 있습니다. (Divergence
)
Momentum은 이전에 계산된 기울기 값을 고려하여 Parameter의 업데이트 방향을 결정하므로, Local Optimum에 빠질 가능성이 적습니다.
Adagrad
Adagrad는 Adaptive Gradient의 약자로, 모든 파라미터에 대해 독립적인 최적화 스케일을 적용하는 방법입니다. 이전에 업데이트된 파라미터의 기울기 값을 제곱해서 더해가며, 이를 이용하여 학습률을 조정합니다.
- 장점 : 파라미터의 효율적인 업데이트를 가능하게 해, 적은 데이터에서도 높은 성능을 보입니다.
- 단점 : 학습률이 너무 작아지는 문제가 있습니다.
Adagrad는 적은 데이터에서도 높은 성능을 보이기 때문에, 선형 분류 문제나 자연어 처리 분야에서 사용되기도 합니다. 하지만, 학습률이 너무 작아져서, 수렴이 느려지는 문제가 있습니다. 또한, 파라미터의 개수가 많아질수록, 업데이트된 파라미터의 기울기 제곱합이 너무 커져서, 학습률이 너무 작아지는 문제가 있습니다.
Adagrad의 학습률은 다음과 같이 계산됩니다.
$\eta_t = \frac{\alpha}{\sqrt{\sum_{i=1}^{t} g_{i}^2 + \epsilon}}$
여기서, $\eta_t$는 $t$번째 스텝에서의 학습률을 나타내며, $\alpha$는 초기 학습률,
$g_i$는 $i$번째 스텝에서의 기울기 값, $\epsilon$은 분모가 0이 되는 것을 방지하기 위한 작은 값입니다.
Adagrad는 이전에 업데이트된 모든 기울기의 제곱합을 누적해서 학습률을 계산합니다.
이 때, 기울기 값이 커지면 학습률이 작아지게 되는데, 위의 식에서 볼 수 있듯이,
기울기 값이 제곱으로 계산되기 때문에, 기울기 값이 커질수록 분모가 커지게 됩니다.
결과적으로 학습률이 작아져서 수렴이 느려지거나, 학습이 제대로 이루어지지 않는 문제가 발생할 수 있습니다.
RMSprop
RMSprop은 Root Mean Square Propagation의 약자로, Adagrad와 유사한 방식으로 동작합니다. 이전에 업데이트된 파라미터의 기울기 값의 지수 가중 이동 평균을 이용하여 학습률을 조정합니다.
- 장점 : Adagrad보다 파라미터의 업데이트가 덜 지엽적으로 일어나기 때문에, 더 빠르게 최적점에 수렴할 수 있습니다.
- 단점 : Adagrad와 마찬가지로, 학습률이 너무 작아지는 문제가 있습니다.
RMSprop은 Adagrad와 유사한 방식으로 동작하지만, 파라미터의 업데이트가 덜 지엽적으로 일어나기 때문에, 더 빠르게 최적점에 수렴할 수 있습니다. 하지만, Adagrad와 마찬가지로, 학습률이 너무 작아져서, 수렴이 느려지는 문제가 있습니다.
Adam
Adam은 Adaptive Moment Estimation의 약자로, 모멘텀과 RMSprop을 합친 방법입니다. 이전 기울기의 지수 가중 이동 평균과 제곱 기울기의 지수 가중 이동 평균을 이용하여 모델의 파라미터를 조정합니다.
- 장점 :
- Adaptive Learning Rate를 적용하여, 다양한 데이터셋에서 높은 성능을 보입니다.
- 하이퍼파라미터를 튜닝하기 쉽다.
- 단점 :
- 일부 파라미터에 대해 학습률을 너무 높게 설정하는 경향이 있기 때문에, 모델의 구조와 데이터셋의 특성에 따라 성능이 크게 달라집니다.
최근에는 Transformer와 같은 self-attention 기반 모델에서 사용되는 AdamW, RAdam, Lookahead와 같은 최적화 기법들이 대중적으로 사용되고 있습니다.
댓글