본문 바로가기
About Machine Learning

Optimization (최적화)

by 용스토리랜드 2023. 5. 6.

신경망 학습에서 최적화(Optimization)는 손실 함수(Loss Function)의 값을 최소화하는 매개변수를 찾는 과정입니다. 다양한 최적화 방법론은 이 과정을 효율적으로 수행하기 위한 방법들을 제시합니다. 대표적인 최적화 방법론은 다음과 같습니다.

 


확률적 경사 하강법(Stochastic Gradient Descent, SGD)
확률적 경사 하강법은 가장 기본적인 최적화 방법론으로, 손실 함수의 기울기(Gradient)를 따라 매개변수를 업데이트하는 방식입니다. 전체 데이터를 사용하는 대신, 미니 배치(Mini-batch)라는 작은 데이터 조각을 사용하여 손실 함수의 기울기를 근사합니다. 이 방법은 계산 효율성을 높이고, 노이즈를 추가함으로써 지역 최솟값(Local Minima)에 빠지는 것을 방지할 수 있습니다.


모멘텀(Momentum)
모멘텀은 SGD에 관성(Inertia) 개념을 추가하여, 이전의 기울기를 고려하여 매개변수를 업데이트하는 방식입니다. 이를 통해 최적화 과정에서 방향이 일정하게 유지되며, 진동(Oscillation)을 줄이고 더 빠르게 수렴할 수 있습니다.


AdaGrad
AdaGrad는 매개변수별로 학습률(Learning Rate)을 동적으로 조절하는 방법입니다. 이전에 많이 변화한 매개변수는 학습률을 감소시키고, 적게 변화한 매개변수는 학습률을 증가시킵니다. 이를 통해 최적화 과정이 수렴하도록 학습률을 자동으로 조절할 수 있습니다.

RMSProp
RMSProp은 AdaGrad에서 발생할 수 있는 학습률 감소 문제를 해결하기 위한 방법입니다. 이 방법에서는 최근의 기울기에만 집중하여 지수 이동 평균(Exponential Moving Average)을 사용하며, 이를 통해 학습률이 너무 빨리 감소하는 것을 방지할 수 있습니다.

Adam
Adam은 모멘텀과 RMSProp의 아이디어를 결합한 최적화 방법입니다. 모멘텀처럼 이전의 기울기를 고려하고, RMSProp처럼 매개변수별로 학습률을 동적으로 조절합니다. 이 두 가지 방법의 장점을결합하여, Adam은 다양한 문제와 데이터에 대해 효율적인 최적화 성능을 보입니다. 또한, 하이퍼파라미터 튜닝에 대한 민감도가 낮아 실무에서 널리 사용되는 방법 중 하나입니다.

Nesterov Accelerated Gradient (NAG)
Nesterov Accelerated Gradient(NAG)는 모멘텀 방법의 변형으로, 미래의 위치를 예측하여 기울기를 업데이트하는 방식입니다. 이로 인해, 원래 모멘텀 방법보다 빠르게 수렴하고 진동을 더욱 줄일 수 있습니다.

Adadelta


Adadelta는 AdaGrad와 유사한 방식으로 매개변수별 학습률을 동적으로 조절합니다. 하지만 Adadelta는 과거의 모든 기울기를 고려하는 대신, 최근의 기울기에 대한 윈도우(Window)를 사용하여 학습률이 너무 빨리 감소하는 것을 방지합니다.

이 외에도 다양한 최적화 방법들이 연구되고 있으며, 각 최적화 방법은 그 특성과 장단점을 가지고 있습니다. 실제 문제에서는 여러 최적화 방법을 실험해보고, 문제에 가장 적합한 방법을 선택하는 것이 중요합니다.

반응형