SGD, RMSprop, Adam

혜쿰·2023년 11월 28일
1
post-thumbnail

SGD, RMSprop, Adam은 모두 신경망에서 사용되는 최적화 알고리즘으로, 모델이 학습하는 동안 가중치를 조절하고 손실 함수를 최소화하는 방법을 결정한다. 각각의 알고리즘들은 다양한 방식으로 가중치를 업데이트하는데 차이가 있다.

1. SGD

확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 머신 러닝에서 많이 사용되는 최적화 알고리즘 중 하나이다. 이 알고리즘은 모델을 학습시킬 때 사용되며, 손실 함수를 최소화하기 위해 모델의 가중치를 조정하는 방법 중 하나이다.

SGD는 기본적으로 전체 데이터셋을 한 번에 처리하는 대신, 데이터셋에서 랜덤하게 선택한 작은 배치(mini-batch)에 대해 계산을 수행한다. 이는 전체 데이터셋이 아닌 일부 데이터만을 사용하여 파라미터를 조정하므로 계산 속도를 높일 수 있다.

작동 방식

1. 랜덤한 데이터 샘플 선택: 전체 데이터셋 중 랜덤한 작은 배치를 선택한다.
2. 손실 함수 계산: 선택한 배치에 대한 손실(오차)를 계산한다.
3. 기울기(Gradient) 계산: 손실 함수의 기울기(경사)를 계산한다.
4. 가중치 업데이트: 기울기를 사용하여 모델의 가중치를 업데이트한다.

이 과정은 데이터셋을 모두 처리할 때까지 반복되며, 모델이 손실 함수를 최소화하도록 가중치를 조정한다. 이 때, 학습률(learning rate)이라는 하이퍼파라미터가 사용되는데, 이는 가중치를 얼마나 크게 업데이트할지 결정하는 요소이다. 학습률이 너무 작으면 최적점에 수렴하는 데 오랜 시간이 걸릴 수 있고, 너무 크면 발산할 수 있다.

SGD는 단순하고 효율적인 최적화 알고리즘이지만, 일부 경우에는 수렴 속도가 느리고 지역 최소값(local minimum)에 갇힐 수 있는 단점이 있다. 이러한 단점을 보완하기 위해 SGD의 변형 알고리즘들이 개발되었는데, 모멘텀(Momentum), AdaGrad, RMSProp, Adam 등이 있다. 이러한 알고리즘들은 SGD의 단점을 보완하고 수렴 속도를 높일 수 있다.

2. RMSprop

RMSprop은 신경망에서 사용되는 경사 하강법 최적화 알고리즘 중 하나이다. 주로 확률적 경사 하강법(SGD)의 변형으로 사용되며, 학습률을 조절하기 위한 기법 중 하나이다.

RMSprop의 이름은 "Root Mean Square Propagation"의 약자이다. 이 알고리즘은 학습률을 조정하는 방법으로, 학습의 진행 방향에 따라 학습률을 조절하여 효율적으로 최적점에 도달하도록 돕는다.

특징과 과정

1. 지수 이동 평균(Exponential Moving Average): RMSprop는 지수 이동 평균을 사용하여 이전 기울기 제곱값의 평균을 계산한다. 이를 통해 최근 기울기 값이 더 많이 반영되고 이전 기울기 값이 급격하게 감소하는 것을 방지한다.


2. 학습률 조정: RMSprop는 기울기를 제곱하여 이동 평균을 계산한 뒤 이를 학습률로 나눠준다. 이렇게 함으로써 학습률을 조절하고, 각각의 파라미터마다 적절한 크기의 업데이트를 가능하게 한다.

공식

  • E[g2]t=βE[g2]t1+(1β)(gt2)E[g^2]_t = βE[g^2]_{t-1} + (1-β)(g^2_t)
    • E[g2]tE[g^2]_t : 시간 t에서 기울기의 제곱의 지수 이동 평균
    • gtg_t : 시간 t에서의 기울기
    • ββ : 지수 이동 평균의 decay rate

  • w=wηE[g2]t+ϵw=w-{η\over \sqrt {E[g^2]_t+ϵ} }
    • ww : 가중치
    • ηη : 학습률
    • E[g2]tE[g^2]_t : 시간 t에서 기울기 제곱의 지수 이동 평균
    • ϵϵ : 0으로 나누는 것을 방지하기 위한 작은 값 (일반적으로 (10^{-8})과 같은 작은 값)

RMSprop는 기존의 SGD보다 더 빠른 수렴을 이룰 수 있으며, 각 파라미터마다 적절한 학습률을 적용하여 더욱 안정적으로 학습할 수 있는 장점이 있다.

3. Adam

Adam은 적응형 모멘트 추정(Adaptive Moment Estimation)의 약자로, 경사 하강법 최적화 알고리즘 중 하나이다. RMSprop과 모멘텀 최적화 방법을 합친 개념으로, 학습률을 조정하는 방법을 통해 효율적인 최적화를 수행하는 알고리즘이다. Adam은 딥러닝에서 널리 사용되는 최적화 알고리즘 중 하나로, 다양한 문제에서 높은 성능을 보여준다.

주요 특징

  1. 모멘텀 방법과 RMSprop의 결합: Adam은 모멘텀 최적화 방법과 RMSprop의 아이디어를 결합한 알고리즘이다. 지수 이동 평균을 사용하여 그래디언트의 제곱값과 일차 모멘텀을 추정한다.

  2. 지수 이동 평균을 이용한 그래디언트 추정: Adam은 그래디언트와 그래디언트 제곱값의 이동 평균을 추정한다. 지수 이동 평균을 사용하여 이전 그래디언트 값을 보존하면서도 새로운 그래디언트 값의 영향을 받는다.

  3. 하이퍼파라미터 조정: Adam은 모멘텀의 지수 감쇠율과 RMSprop의 지수 감쇠율 등 두 가지 하이퍼파라미터를 사용한다. 일반적으로 기본값으로 사용되는 하이퍼파라미터들이 효과적이며, 일반적으로 적절한 값을 찾기 위해 튜닝할 필요가 적다.

작동 방식

  1. 그래디언트 계산: 각 파라미터에 대한 손실 함수의 그래디언트를 계산한다.
  2. 일차 모멘트 및 이동된 제곱 그래디언트 추정: 일차 모멘트(평균)와 이동된 제곱 그래디언트(분산)의 추정값을 계산한다.
  3. 모멘텀 갱신: 일차 모멘트와 이동된 제곱 그래디언트를 사용하여 파라미터를 업데이트한다.
  4. 하이퍼파라미터 보정: 학습률의 보정을 수행한다.

Adam은 일반적으로 다른 경사 하강법 알고리즘보다 빠르고 안정적으로 수렴하는 경향이 있다. 하지만 모든 문제에 대해 항상 최고의 성능을 보장하는 것은 아니며, 하이퍼파라미터를 적절하게 조정하는 것이 중요하다. Adam은 많은 실제 문제에서 잘 작동하는 경향이 있지만, 특정 데이터셋이나 모델에 따라 다른 최적화 알고리즘이 더 나은 결과를 가져올 수도 있다.




이러한 알고리즘들은 각각의 장단점이 있으며, 어떤 데이터셋이나 모델에 대해 어떤 최적화 알고리즘이 가장 잘 작동할지를 결정하는 것은 경우에 따라 다를 수 있다. 일반적으로는 Adam이 많은 경우에 효과적으로 작동하지만, 실제로는 데이터의 특성과 모델의 구조에 따라 최적의 최적화 알고리즘을 선택해야 한다.

1개의 댓글

comment-user-thumbnail
2024년 6월 5일

sgd, all, random, slow
// RMSprop,
// adam, RMSprop + momentum

답글 달기

관련 채용 정보