맨위로가기

확률적 경사 하강법

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

확률적 경사 하강법(SGD)은 각 단계에서 무작위로 선택된 데이터의 일부를 사용하여 기울기를 추정하여 계산 비용을 줄이고 더 빠른 수렴을 가능하게 하는 최적화 알고리즘이다. 1950년대에 처음 소개되었으며, 이후 신경망 학습에 적용되어 널리 사용되고 있다. SGD는 학습률 설정의 어려움을 해결하기 위해 모멘텀, AdaGrad, RMSprop, Adam 등 다양한 변형 알고리즘이 개발되었다. 현재는 Adam 계열의 최적화기가 주로 사용되며, TensorFlow 및 PyTorch와 같은 주요 기계 학습 라이브러리에서 지원된다. SGD는 기계 학습 모델 훈련에 널리 사용되며, 특히 인공 신경망 훈련에 필수적인 알고리즘이다.

더 읽어볼만한 페이지

  • 볼록 최적화 - 선형 계획법
    선형 계획법은 선형 제약 조건 아래에서 선형 목적 함수의 최적화를 추구하는 기법으로, 자원 배분 문제 해결에서 시작하여 경영 과학, 경제학, 공학 등 여러 분야에서 활용되며, 네트워크 흐름 및 정수 계획법 문제 해결에 중요한 도구로 사용된다.
  • 볼록 최적화 - 원추최적화
    원추 최적화는 실수 벡터 공간에서 정의된 볼록 함수를 볼록 뿔 위에서 최소화하는 문제이며, 선형 계획법, 반정부호 계획법 등으로 축소될 수 있고 쌍대성 개념을 통해 쌍대 문제를 정의한다.
  • 계산통계학 - 인공 신경망
  • 계산통계학 - 랜덤 포레스트
    랜덤 포레스트는 결정 트리들을 앙상블하여 분류, 회귀, 검출 등에 활용되며, 랜덤화 기술로 일반화 성능을 향상시키는 기계 학습 알고리즘이다.
  • 기계 학습 알고리즘 - 강화 학습
    강화 학습은 에이전트가 환경과의 상호작용을 통해 누적 보상을 최대화하는 최적의 정책을 학습하는 기계 학습 분야이며, 몬테카를로 방법, 시간차 학습, Q-러닝 등의 핵심 알고리즘과 탐험과 활용의 균형, 정책 경사법 등의 다양한 연구 주제를 포함한다.
  • 기계 학습 알고리즘 - 기댓값 최대화 알고리즘
확률적 경사 하강법
정의
종류최적화 알고리즘
분야기계 학습
세부 사항
최적화 방법경사 하강법의 확률적 근사
사용 목적비용 함수의 최솟값 찾기
반복 과정각 반복마다 하나의 데이터 샘플 사용
학습률일반적으로 반복 횟수에 따라 감소
장점대규모 데이터셋에 적합
빠른 수렴 가능성
단점매개변수 업데이트의 높은 분산
주의 깊은 튜닝 필요
변형미니 배치 경사 하강법
모멘텀
Adam
RMSProp
수학적 표현
업데이트 규칙θ = θ - η ∇Qᵢ(θ)
변수 설명θ: 모델 매개변수
η: 학습률
∇Qᵢ(θ): i번째 샘플에 대한 손실 함수의 기울기
관련 항목
관련 알고리즘경사 하강법
미니 배치 경사 하강법
확률적 평균 경사 (SAG)
응용 분야신경망 훈련
서포트 벡터 머신
로지스틱 회귀
참고 문헌
참고 문헌Léon Bottou, Olivier Bousquet: The Tradeoffs of Large Scale Learning. Optimization for Machine Learning, 2012
Léon Bottou: Online Algorithms and Stochastic Approximations, 1998

2. 역사

확률적 경사 하강법(SGD)의 기원은 1950년대 통계학 분야의 확률적 근사법 연구로 거슬러 올라간다. 확률적 경사 하강법의 초기 연구와 신경망 학습에서의 발전 과정은 하위 섹션에서 자세히 다룬다.

2. 1. 초기 연구 (1950년대)

1951년, 허버트 로빈스(Herbert Robbins)와 서튼 먼로(John U. Monro)는 확률적 경사 하강법의 토대가 된 최초의 확률적 근사 방법을 소개했다.[10] 1952년, 잭 키퍼(Jack Kiefer)와 제이콥 울포위츠(Jacob Wolfowitz)는 중앙 차분을 경사의 근사치로 사용한, 경사 하강법에 매우 가까운 최적화 알고리즘을 발표했다.[11] 1950년대 후반, 프랭크 로젠블랫(Frank Rosenblatt)은 SGD를 사용하여 자신의 퍼셉트론 모델을 최적화했는데, 이는 신경망에 확률적 경사 하강법을 처음으로 적용한 사례였다.[12]

2. 2. 신경망 학습과 발전 (1980년대 ~ 현재)

1986년 역전파가 처음 설명되었고, 확률적 경사 하강법(SGD)은 여러 은닉층을 가진 신경망 전체에서 매개변수를 효율적으로 최적화하는 데 사용되었다.[15] 그 직후, 단일 샘플 대신 소규모 데이터 배치를 사용하는 미니 배치 경사 하강법이 개발되었다. 1997년에는 이러한 소규모 배치를 통해 달성할 수 있는 벡터화의 실질적인 성능 이점이 처음 탐구되었으며,[13] 이는 기계 학습에서 효율적인 최적화의 길을 열었다. 2023년 현재, 이러한 미니 배치 접근 방식은 신경망 훈련의 표준으로 남아 있으며, 확률적 경사 하강법과 경사 하강법의 장점을 균형 있게 유지한다.[14]

1980년대까지 모멘텀이 이미 도입되었으며, 1986년에 SGD 최적화 기법에 추가되었다.[15] 그러나 이러한 최적화 기법은 고정된 하이퍼파라미터, 즉 고정된 학습률과 모멘텀 매개변수를 가정했다. 2010년대에는 매개변수별 학습률을 가진 SGD를 적용하는 적응형 접근 방식이 2011년 AdaGrad("Adaptive Gradient"의 약자)[16]와 2012년 RMSprop("Root Mean Square Propagation"의 약자)[17]를 통해 도입되었다. 2014년에는 Adam("Adaptive Moment Estimation"의 약자)이 발표되었으며, RMSprop의 적응형 접근 방식을 모멘텀에 적용했다. 이후 Adadelta, Adagrad, AdamW, Adamax와 같은 Adam의 많은 개선 사항과 분파가 개발되었다.[18][19]

2023년의 기계 학습 내 최적화 접근 방식은 Adam 파생 최적화기에 의해 지배된다. 가장 인기 있는 기계 학습 라이브러리인 TensorFlow와 PyTorch는[20] 2023년 현재 Adam 파생 최적화기뿐만 아니라 RMSprop 및 고전적인 SGD와 같은 Adam의 전임자도 주로 포함한다. PyTorch는 또한 제한 메모리 BFGS를 부분적으로 지원하는데, 이는 라인 서치 방식이지만 매개변수 그룹이 없는 단일 장치 설정에 대해서만 지원한다.[19][21]

3. 기본 원리

확률적 경사 하강법(Stochastic Gradient Descent, SGD)은 경사 하강법의 일종으로, 머신 러닝에서 최적화 문제를 해결하는 데 사용되는 알고리즘이다. 특히, M-추정과 같은 통계적 추정 문제나 경험적 위험 최소화 문제에서 목적 함수를 최소화하는 데 사용된다.

기본적인 아이디어는 전체 훈련 데이터 세트를 사용하여 기울기(gradient)를 계산하는 대신, 무작위로 선택된 하나의 데이터 샘플 또는 작은 묶음(미니 배치)의 데이터 샘플을 사용하여 기울기를 추정하는 것이다. 이를 통해 계산 비용을 크게 줄일 수 있다.

표준 경사 하강법(배치 경사 하강법)에서는 매 반복마다 전체 훈련 데이터 세트를 사용하여 기울기를 계산하고 파라미터를 업데이트한다.

:w := w - \eta \nabla Q(w) = w - \eta \sum_{i=1}^n \nabla Q_i(w)

여기서 w는 업데이트할 파라미터, \eta학습률 (스텝 사이즈), Q(w)는 최소화할 목적 함수, Q_i(w)는 i번째 데이터 샘플에 대한 손실 함수를 나타낸다.

하지만 훈련 데이터 세트가 매우 큰 경우, 모든 데이터 샘플에 대해 기울기를 계산하는 것은 계산 비용이 매우 커질 수 있다. 확률적 경사 하강법은 이러한 문제를 해결하기 위해, 각 반복 단계에서 전체 데이터 세트를 사용하는 대신 무작위로 선택된 하나의 데이터 샘플(Q_i(w)) 또는 미니 배치의 기울기를 사용하여 파라미터를 업데이트한다.

: w := w - \eta\, \nabla Q_i(w).

이러한 방식은 계산 비용을 줄일 뿐만 아니라, 더 빠르게 수렴하고, 지역 최솟값(local minima)에 갇힐 가능성을 줄이는 효과도 있다.

확률적 경사 하강법은 훈련 데이터 세트를 여러 번 반복(epoch)하여 모델을 학습시킨다. 각 반복마다 훈련 데이터 샘플을 무작위로 섞어 순서를 변경함으로써, 학습 과정에서 발생할 수 있는 편향을 줄일 수 있다. 또한, 적응형 학습률을 사용하여 학습률을 동적으로 조정함으로써 수렴 속도를 높일 수 있다.

Q_i(훈련 데이터)가 무작위로 섞임으로써, 확률적으로 국소 해에 빠지기 어려워지는 효과가 있다.

3. 1. 목적 함수

확률적 경사 하강법은 일반적으로 다음과 같은 합의 형태를 갖는 목적 함수를 최소화하는 문제를 다룬다.

:Q(w) = \frac{1}{n}\sum_{i=1}^n Q_i(w),

여기서 w는 최적화할 모수 (파라미터)이고, n은 데이터 세트(훈련에 사용됨)의 관측치 (데이터 샘플)의 개수이며, Q_i(w)i번째 데이터 샘플에 대한 손실 함수이다. Q(w)를 최소화하는 모수 w추정량으로 추정되어야 한다.

고전 통계학에서 합 최소화 문제는 최소 제곱법과 최대 우도 추정(독립적인 관측치의 경우)에서 발생한다. 합의 최소값으로 나타나는 추정량의 일반적인 클래스는 M-추정량이라고 한다. 그러나 통계학에서는 심지어 국소적 최소화를 요구하는 것조차 최대 우도 추정의 일부 문제에 대해서는 너무 제한적이라는 것이 오랫동안 인식되어 왔다.[3] 따라서 현대 통계 이론가들은 종종 우도 함수의 정상점(또는 그 도함수인 스코어 함수의 영점 및 기타 추정 방정식)을 고려한다.

합 최소화 문제는 경험적 위험 최소화에도 발생한다. 여기서 Q_i(w)i번째 예제에서의 손실 함수의 값이고, Q(w)는 경험적 위험이다.

표준 (또는 "배치") 경사 하강법은 위의 함수를 최소화하기 위해 다음과 같은 반복을 수행한다.

:w := w - \eta\,\nabla Q(w) = w - \frac{\eta}{n} \sum_{i=1}^n \nabla Q_i(w).

이동 단계의 크기는 \eta로 표시되며 (때로는 머신 러닝에서 ''학습률''이라고도 함) 여기에서 ":="는 알고리즘에서 변수의 업데이트를 나타낸다.

많은 경우, 합산 함수는 합 함수와 합 기울기의 저렴한 평가를 가능하게 하는 간단한 형태를 갖는다. 예를 들어, 통계학에서 일변수 지수족은 경제적인 함수 평가 및 기울기 평가를 허용한다.

그러나 다른 경우에는 합 기울기를 평가하려면 모든 합산 함수의 기울기에 대한 비싼 평가가 필요할 수 있다. 훈련 세트가 방대하고 간단한 공식이 없는 경우, 기울기를 평가하려면 모든 합산 함수의 기울기를 평가해야 하므로 기울기의 합을 평가하는 것이 매우 비싸진다. 각 반복에서 계산 비용을 절약하기 위해, 확률적 경사 하강법은 각 단계에서 합산 함수의 하위 집합을 표본 추출한다. 이는 대규모 머신 러닝 문제의 경우 매우 효과적이다.[4]

3. 2. 반복 절차

확률적 경사 하강법은 파라미터를 업데이트하기 위해 다음 단계를 반복한다. 이 과정을 훈련 데이터 세트에 대해 여러 번 반복(epoch)하여 모델을 학습시킨다.

1. 초기 매개변수 벡터 w와 학습률 \eta를 선택한다.

2. 대략적인 최소값을 얻을 때까지 반복한다.

  • 훈련 세트에서 샘플을 무작위로 섞는다.
  • i=1, 2, ..., n에 대해 다음을 수행한다.
  • w := w - \eta\, \nabla Q_i(w).


실제 기울기 계산과 단일 샘플의 기울기 계산 사이의 절충안은 각 단계에서 여러 개의 훈련 샘플("미니 배치"라고 함)에 대한 기울기를 계산하는 것이다. 이는 코드에서 각 단계를 개별적으로 계산하는 대신 벡터화 라이브러리를 사용할 수 있기 때문에 "실제" 확률적 경사 하강법보다 훨씬 더 나은 성능을 낼 수 있다. 각 단계에서 계산된 기울기가 더 많은 훈련 샘플에 대해 평균화되므로 더 부드러운 수렴을 초래할 수도 있다.

확률적 경사 하강법의 수렴은 볼록 최소화 및 확률적 근사 이론을 사용하여 분석되었다. 간단히 말해서, 학습률 \eta가 적절한 속도로 감소하고 상대적으로 완만한 가정을 따를 때, 확률적 경사 하강법은 목적 함수가 볼록 함수 또는 준볼록 함수인 경우 거의 확실하게 전역 최소값으로 수렴하고, 그렇지 않으면 거의 확실하게 지역 최소값으로 수렴한다.[2][7] 이는 실제로 로빈스-지그문드 정리의 결과이다.[8]

4. 주요 변형 알고리즘

확률적 경사 하강법(SGD)은 여러 변형 알고리즘을 가지고 있으며, 각 알고리즘은 학습 속도와 안정성을 개선하기 위해 고안되었다. 주요 변형 알고리즘은 다음과 같다.


  • 모멘텀 (Momentum): 루멜하트, 힌턴, 윌리엄스가 제안[30]했으며, 이전 업데이트 값을 활용하여 현재 업데이트를 결정한다. 이는 진동을 줄이고 학습 속도를 높이는 데 도움이 된다.
  • 네스테로프 가속 경사 (Nesterov Accelerated Gradient, NAG): 유리 네스테로프가 제안[71]한 방법으로, 모멘텀 방법의 변형이다. 현재 위치가 아닌 모멘텀으로 이동한 후의 위치에서 기울기를 계산하여 더 정확한 업데이트를 제공한다.
  • AdaGrad (Adaptive Gradient): 각 매개변수에 대해 서로 다른 학습률을 적용[38]하며, 희소한 데이터에 효과적이다.
  • RMSProp (Root Mean Square Propagation): 힌턴 그룹[40]에서 제안한 방법으로, 학습률을 각 매개변수에 맞게 조정한다. AdaGrad의 학습률 감소 문제를 해결하기 위해 "망각"을 도입했다.
  • Adam (Adaptive Moment Estimation): RMSProp과 모멘텀 방법을 결합[41]한 알고리즘으로, 현재 가장 널리 사용되는 SGD 변형 중 하나이다. 기울기와 기울기의 2차 모멘트의 지수 가중 평균을 사용한다.
  • AdaDelta: RMSProp과 AdaGrad의 변형[79]으로 초기 학습률의 하이퍼 파라미터가 없다.
  • AdaBound: Adam에 학습률 제한(Bound)을 더하고,[82] 단계별로 SGD로 연속적으로 변화시킴으로써, Adam의 수렴 속도와 SGD의 일반화 성능을 모두 달성하는 것을 목표로 한다.


이 외에도 다양한 변형 알고리즘이 존재하며, 문제의 특성과 데이터에 따라 적절한 알고리즘을 선택하는 것이 중요하다.

4. 1. 모멘텀 (Momentum)

모멘텀 방법은 루멜하트, 힌턴, 윌리엄스가 역전파 학습에 관한 논문에서 제안했으며,[30] 소련 수학자 보리스 폴랴크가 1964년에 작성한 함수 방정식을 푸는 방법에 대한 논문에서 아이디어를 차용했다.[31] 모멘텀을 사용한 확률적 경사 하강법은 각 반복에서 업데이트 Δ''w''를 기억하고, 다음 업데이트를 기울기와 이전 업데이트의 선형 결합으로 결정한다.[32][33]

:Δ''w'' := αΔ''w'' - η∇Qi(''w'')

:''w'' := ''w'' + Δ''w''

이를 정리하면 다음과 같다.

:''w'' := ''w'' - η∇Qi(''w'') + αΔ''w''

여기서 최소화할 함수 Q(''w'')의 매개변수 ''w''를 추정해야 하며, η는 스텝 크기(기계 학습에서는 때때로 ''학습률''이라고도 함)이고, α는 0과 1 사이의 지수 감쇠 인자로 가중치 변경에 대한 현재 기울기와 이전 기울기의 상대적인 기여도를 결정한다.

모멘텀이라는 이름은 물리학에서의 운동량과 유사하다는 데서 유래한다. 매개변수 공간을 이동하는 입자로 간주되는 가중치 벡터 ''w''는 손실의 기울기("")에 의해 가속된다. 고전적인 확률적 경사 하강법과 달리, 동일한 방향으로 계속 이동하는 경향이 있어 진동을 방지한다. 모멘텀은 수십 년 동안 인공 신경망 훈련에 컴퓨터 과학자들에 의해 성공적으로 사용되어 왔다.[34]

모멘텀 방법은 언더댐핑된 랑제뱅 동역학과 밀접한 관련이 있으며, 시뮬레이티드 어닐링과 결합될 수 있다.[35]

1980년대 중반에 유리 네스테로프는 다음 지점에서 예측된 기울기를 사용하도록 이 방법을 수정했으며, 그 결과인 네스테로프 가속 경사법은 2010년대에 ML에서 사용되었다.[36] 1986년에 데이비드 루멜하트 등은 역전파와 함께 이 방법을 제안했다.[72]

:Δ''w'' := η∇Qi(''w'') + αΔ''w''

:''w'' := ''w'' - Δ''w''

4. 2. 네스테로프 가속 경사 (Nesterov Accelerated Gradient, NAG)

유리 네스테로프가 1983년에 제안한 모멘텀 방법의 변형이다.[71] 2010년대에 기계 학습(ML)에서 사용되었다.[36] 네스테로프 가속 경사(Nesterov Accelerated Gradient, NAG)는 현재 위치가 아닌 모멘텀으로 이동한 후의 위치에서 기울기를 계산하여 더 정확한 업데이트를 수행한다.

:\begin{align}

x_0 &= w_0 \\

x_t &= w_{t-1} - \eta \nabla Q_i(w_{t-1}) \\

w_t &= x_t + \frac{t-1}{t+2}(x_t - x_{t-1})

\end{align}

4. 3. AdaGrad (Adaptive Gradient)

AdaGrad(Adaptive Gradient)는 각 매개변수에 대해 서로 다른 학습률을 적용하는 방법으로, 희소한(sparse) 데이터에 대해 효과적이다.[38]

AdaGrad는 기본 학습률 \eta를 가지지만, 이 값은 벡터 G_{j,j}의 원소와 곱해진다. G_{j,j}는 다음 식으로 표현되는 외적 행렬의 대각선이다.

G = \sum_{\tau=1}^t g_\tau g_\tau^\mathsf{T}

여기서 g_\tau = \nabla Q_i(w)는 반복 \tau에서의 기울기이다. 대각선은 다음과 같다.

G_{j,j} = \sum_{\tau=1}^t g_{\tau,j}^2.

이 벡터는 차원별로 기울기 제곱의 누적 합을 저장하며, 각 반복 후에 업데이트된다. 업데이트 공식은 다음과 같다.

w := w - \eta\, \mathrm{diag}(G)^{-\frac{1}{2}} \odot g

또는 매개변수별 업데이트로 작성하면 다음과 같다.

w_j := w_j - \frac{\eta}{\sqrt{G_{j,j}}} g_j.

G_{j,j}는 단일 매개변수 w_j에 적용되는 학습률에 대한 스케일링 요소를 발생시킨다. 이 요소의 분모인 \sqrt{G_i} = \sqrt{\sum_{\tau=1}^t g_\tau^2}는 이전 도함수의 ''ℓ''2 노름이므로, 극심한 매개변수 업데이트는 완화되고, 업데이트가 적거나 작은 매개변수는 더 높은 학습률을 받는다.[34]

AdaGrad는 볼록 최적화를 위해 설계되었지만, 비볼록 최적화에도 성공적으로 적용되어 왔다.[39]

2011년에 John Duchi 등이 발표한 방법[77]으로, 아래의 공식으로 표현된다. \circ아다마르 곱 (요소별 곱)을 의미한다. 아래 계산은 모든 매개변수별(요소별)로 계산한다. \epsilon는 무한대로 발산하지 않도록 하기 위한 작은 양의 상수이다.

:\begin{align}

r_0 &= \epsilon \\

r_t &= r_{t - 1} + \nabla Q_i(w) \circ \nabla Q_i(w) \\

\eta_t &= \frac{\eta_0}{\sqrt{r_t}} \\

w_{t+1} &= w_t - \eta_t \circ \nabla Q_i(w)

\end{align}

4. 4. RMSProp (Root Mean Square Propagation)

RMSProp(평균 제곱근 전파)은 제프리 힌턴 그룹의 박사 과정 학생이었던 제임스 마텐스와 일리아 수츠케버가 2012년에 제안한 방법이다.[40] 특이하게도, 이 방법은 논문으로 발표되지 않고 Coursera 강의에서 설명되었다. RMSProp은 학습률을 AdaGrad와 마찬가지로 각 매개변수에 맞게 조정한다. 이는 가중치에 대한 학습률을 해당 가중치에 대한 최근 기울기의 크기에 대한 이동 평균으로 나누는 아이디어를 기반으로 한다.[40]

먼저, 이동 평균은 평균 제곱으로 계산된다.

:v(w,t):=\gamma v(w,t-1) + \left(1-\gamma\right) \left(\nabla Q_i(w)\right)^2

여기서 \gamma는 망각 인자이다. 제곱의 합으로 과거 기울기를 저장하는 개념은 Adagrad에서 가져왔지만, RMSProp은 이전 데이터의 영향을 점차 줄여 비볼록 문제에서 Adagrad의 학습률 감소 문제를 해결하기 위해 "망각"을 도입했다.

그리고 매개변수는 다음과 같이 업데이트된다.

:w:=w-\frac{\eta}{\sqrt{v(w,t)}}\nabla Q_i(w)

RMSProp은 다양한 응용 분야에서 학습률을 잘 적응시키는 것으로 나타났다. RMSProp은 Rprop의 일반화된 형태로 볼 수 있으며, 전체 배치뿐만 아니라 미니 배치에서도 작동할 수 있다.[40]

티멘 틸레만(Tijmen Tieleman) 등도 2012년에 AdaGrad의 변형을 발표했다.[78] 이 방법은 기울기의 제곱에 대한 지수 이동 평균을 취하도록 변경했으며, \beta = 0.9 등을 사용한다.

:\begin{align}

r_t &= \beta r_{t - 1} + (1 - \beta) \nabla Q_i(w) \circ \nabla Q_i(w) \\

\eta_t &= \frac{\eta_0}{\sqrt{r_t + \epsilon}} \\

w_{t+1} &= w_t - \eta_t \circ \nabla Q_i(w)

\end{align}

4. 5. Adam (Adaptive Moment Estimation)

Adam(Adaptive Moment Estimation)은 RMSProp과 모멘텀 방법을 결합한 알고리즘으로, 현재 가장 널리 사용되는 확률적 경사 하강법(SGD) 변형 중 하나이다.[41] 2014년에 발표되었으며,[42] 기울기와 기울기의 2차 모멘트의 지수 가중 평균을 사용한다.

Adam의 파라미터 업데이트는 다음과 같이 이루어진다.

m_w ^ {(t+1)} := \beta_1 m_w ^ {(t)} + \left(1 - \beta_1\right) \nabla _w L ^ {(t)}

v_w ^ {(t+1)} := \beta_2 v_w ^ {(t)} + \left(1 - \beta_2\right) \left(\nabla _w L ^ {(t)} \right)^2

\hat{m}_w = \frac{m_w ^ {(t+1)}}{1 - \beta_1^t}

\hat{v}_w = \frac{ v_w ^ {(t+1)}}{1 - \beta_2^t}

w ^ {(t+1)} := w ^ {(t)} - \eta \frac{\hat{m}_w}{\sqrt{\hat{v}_w} + \varepsilon}

여기서,

  • w^{(t)}는 t번째 반복에서의 파라미터
  • L^{(t)}는 t번째 반복에서의 손실 함수
  • \nabla _w L ^ {(t)}는 손실 함수의 기울기
  • m_w^{(t+1)}는 기울기의 지수 가중 평균
  • v_w^{(t+1)}는 기울기 제곱의 지수 가중 평균
  • \hat{m}_w\hat{v}_w는 각각 m_w^{(t+1)}v_w^{(t+1)}의 편향 보정된 값
  • \eta는 학습률
  • \varepsilon는 0으로 나누는 것을 방지하기 위한 작은 상수 (예: 10^{-8})
  • \beta_1(예: 0.9)과 \beta_2(예: 0.999)는 각각 기울기와 기울기 제곱의 망각 인자이다.[41]


초기에는 Adam의 수렴을 증명하는 과정에 불완전한 부분이 있었고, 이후 분석에서 Adam이 모든 볼록 목적 함수에 대해 수렴하지 않는다는 것이 밝혀졌다.[43][44] 그럼에도 불구하고 Adam은 실제 성능이 뛰어나 여전히 널리 사용되고 있다.[45]

Adam은 2015년에 Diederik P. Kingma 등이 발표했으며,[81] AdaGrad, RMSProp, AdaDelta의 변형이다. AdaGrad나 Sum of Functions Optimizer보다 수렴 속도가 빠른것이 특징이다. 개발자들은 하이퍼파라미터로 \alpha = 0.001, \beta_1 = 0.9, \beta_2 = 0.999, \epsilon = 10^{-8}을 권장한다. 반복 횟수 t는 1부터 시작한다.

:\begin{align}

m_0 &= v_0 = 0 \\

m_t &= \beta_1 m_{t-1} + (1 - \beta_1) \nabla Q_i(w) \\

v_t &= \beta_2 v_{t-1} + (1 - \beta_2) \nabla Q_i(w) \circ \nabla Q_i(w) \\

\hat{m}_t &= \frac{m_t}{1 - \beta_1^t} \\

\hat{v}_t &= \frac{v_t}{1 - \beta_2^t} \\

w_t &= w_{t - 1} - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}

\end{align}

4. 6. 기타 변형

루멜하트, 힌턴, 윌리엄스가 역전파 학습에 관한 논문에서 제시한 ''모멘텀 방법''(또는 ''헤비 볼 방법'')은[30] 소련 수학자 보리스 폴랴크가 1964년에 발표한 함수 방정식을 푸는 방법에서 아이디어를 얻었다.[31] 모멘텀을 사용한 확률적 경사 하강법은 각 반복에서 업데이트를 기억하고, 다음 업데이트를 기울기와 이전 업데이트의 선형 결합으로 결정한다.[32][33]

:\Delta w := \alpha \Delta w - \eta\, \nabla Q_i(w)

:w := w + \Delta w

이는 다음을 유도한다.

:w := w - \eta\, \nabla Q_i(w) + \alpha \Delta w

여기서 Q(w)를 최소화하는 매개변수 w추정해야 하며, \eta는 스텝 크기(기계 학습에서는 ''학습률''이라고도 함)이고, \alpha는 0과 1 사이의 지수 감쇠 인자로, 가중치 변경에 대한 현재 기울기와 이전 기울기의 상대적인 기여도를 결정한다.

모멘텀이라는 이름은 물리학에서의 운동량과 유사성에서 기인한다. 매개변수 공간을 이동하는 입자로 간주되는 가중치 벡터 w는 손실의 기울기("")에 의해 가속된다. 고전적인 확률적 경사 하강법과 달리, 모멘텀 방법은 같은 방향으로 계속 이동하는 경향이 있어 진동을 방지한다. 모멘텀은 수십 년 동안 인공 신경망 훈련에 컴퓨터 과학자들에 의해 성공적으로 사용되었다.[34] ''모멘텀 방법''은 언더댐핑된 랑제뱅 동역학과 밀접하게 관련되어 있으며, 시뮬레이티드 어닐링과 결합될 수 있다.[35]

1980년대 중반, 유리 네스테로프는 다음 지점에서 예측된 기울기를 사용하도록 이 방법을 수정했으며, 그 결과 ''네스테로프 가속 경사법''이 2010년대에 기계 학습(ML)에서 사용되었다.[36]
AdaDelta는 2012년에 매튜 D. 자일러(Matthew D. Zeiler)가 발표한 방법이다.[79] AdaGrad와 RMSProp의 변형으로, 초기 학습률의 하이퍼 파라미터가 없어졌다.

:

r_t = \beta r_{t - 1} + (1 - \beta) \nabla Q_i(w) \circ \nabla Q_i(w) \\

v_t = \frac{\sqrt{s_t} + \epsilon}{\sqrt{r_t} + \epsilon} \circ \nabla Q_i(w) \\

s_{t+1} = \beta s_t + (1 - \beta) v_t \circ v_t \\

w_{t+1} = w_t - v_t


Adam은 2015년에 Diederik P. Kingma 등이 발표한 방법이다.[81] AdaGrad, RMSProp, AdaDelta의 변형이다. AdaGrad나 Sum of Functions Optimizer보다 수렴 속도가 빨라졌다. 하이퍼파라미터는 \alpha = 0.001, \beta_1 = 0.9, \beta_2 = 0.999, \epsilon = 10^{-8}을 권장한다. 반복 횟수 t는 1부터 시작한다.

:

m_0 = v_0 = 0 \\

m_t = \beta_1 m_{t-1} + (1 - \beta_1) \nabla Q_i(w) \\

v_t = \beta_2 v_{t-1} + (1 - \beta_2) \nabla Q_i(w) \circ \nabla Q_i(w) \\

\hat{m}_t = \frac{m_t}{1 - \beta_1^t} \\

\hat{v}_t = \frac{v_t}{1 - \beta_2^t} \\

w_t = w_{t - 1} - \alpha \frac{\hat{m}_t}{\sqrt{\hat{v}_t} + \epsilon}


AdaBound는 2019년 ICLR에서 Liangchen Luo 등이 발표한 방법이다.[82] Adam에 학습률 제한(Bound)을 더하고, 단계별로 SGD로 연속적으로 변화시킴으로써, Adam의 수렴 속도와 SGD의 일반화 성능을 모두 달성하는 것을 목표로 한다. 논문에서의 하이퍼 파라미터와 학습률의 하한・상한은 \alpha = 0.001, \beta_1 = 0.9, \beta_2 = 0.999, \eta_l(t) = 0.1 - \frac{0.1}{(1 - \beta_2)t + 1} , \eta_u(t) = 0.1 + \frac{0.1}{(1 - \beta_2)t}이며, Adam과 마찬가지로 t=1부터 시작한다.

:

m_0 = v_0 = 0 \\

g_t = \nabla Q_i(w) \\

m_t = \beta_1 m_{t-1} + (1 - \beta_1) g_t \\

v_t = \beta_2 v_{t-1} + (1 - \beta_2) g_t^2, \text{and } V_t = \text{diag}(v_t) \\

\hat{\eta}_t = \text{Clip}(\frac{\alpha}{\sqrt{V_t}}, \eta_l(t), \eta_u(t)) \\

w_t = w_{t-1} - \frac{\hat{\eta}_t}{\sqrt{t}} \circ m_t


5. 한국에서의 응용 및 중요성

확률적 경사 하강법은 딥 러닝을 포함한 다양한 머신 러닝 모델 학습에 필수적인 알고리즘으로, 한국에서도 널리 사용되고 있다. 특히, 이미지 인식, 자연어 처리, 음성 인식 등 다양한 분야에서 딥러닝 모델의 성능 향상에 기여하고 있다.

참조

[1] 서적 Optimization for Machine Learning MIT Press
[2] 서적 Online Learning and Neural Networks https://archive.org/[...] Cambridge University Press
[3] 논문 An inconsistent maximum likelihood estimate
[4] 간행물 The Tradeoffs of Large Scale Learning http://leon.bottou.o[...]
[5] 서적 Probabilistic Machine Learning: An Introduction https://probml.githu[...] MIT Press 2021-04-10
[6] 간행물 Using PHiPAC to speed error back-propagation learning https://ieeexplore.i[...] IEEE 1997-04
[7] 논문 Convergence and efficiency of subgradient methods for quasiconvex minimization Springer
[8] 서적 Optimizing Methods in Statistics Academic Press
[9] 논문 Fit without fear: remarkable mathematical phenomena of deep learning through the prism of interpolation https://www.cambridg[...] 2021-05
[10] 논문 A Stochastic Approximation Method
[11] 논문 Stochastic Estimation of the Maximum of a Regression Function 1952
[12] 논문 The perceptron: A probabilistic model for information storage and organization in the brain. 1958
[13] 간행물 Using PHiPAC to speed error back-propagation learning https://ieeexplore.i[...] IEEE 1997-04
[14] 논문 Accelerating Minibatch Stochastic Gradient Descent Using Typicality Sampling https://ieeexplore.i[...] 2023-10-02
[15] 논문 Learning representations by back-propagating errors https://www.nature.c[...] 1986-10
[16] 논문 Adaptive subgradient methods for online learning and stochastic optimization http://jmlr.org/pape[...]
[17] 웹사이트 Lecture 6e rmsprop: Divide the gradient by a running average of its recent magnitude http://www.cs.toront[...] 2020-03-19
[18] arXiv Adam: A Method for Stochastic Optimization
[19] 웹사이트 torch.optim — PyTorch 2.0 documentation https://pytorch.org/[...] 2023-10-02
[20] 논문 Machine Learning and Deep Learning frameworks and libraries for large-scale data mining: a survey https://link.springe[...] 2019-01-19
[21] 웹사이트 Module: tf.keras.optimizers {{!}} TensorFlow v2.14.0 https://www.tensorfl[...] 2023-10-02
[22] 문서 Efficient, Feature-based, Conditional Random Field Parsing http://www.aclweb.or[...] Proc. Annual Meeting of the ACL
[23] 문서 Efficient backprop http://yann.lecun.co[...] Neural networks: Tricks of the trade. Springer Berlin Heidelberg
[24] 문서 Fast full-wavefield seismic inversion using encoded sources https://library.seg.[...]
[25] 웹사이트 CS181 Lecture 5 — Perceptrons http://www.seas.harv[...] Harvard University
[26] 서적 Deep Learning https://www.deeplear[...] MIT Press
[27] 간행물 Fast adaptive k-means clustering: some empirical results IEEE
[28] 서적 Introduction to Stochastic Search and Optimization: Estimation, Simulation, and Control Wiley
[29] 논문 Asymptotic and finite-sample properties of estimators based on stochastic gradients
[30] 논문 Learning representations by back-propagating errors 1986-10-08
[31] 웹사이트 Gradient Descent and Momentum: The Heavy Ball Method https://boostedml.co[...] 2020-07-13
[32] 간행물 On the importance of initialization and momentum in deep learning http://www.cs.utoron[...] 2016-01-14
[33] Ph.D. Training recurrent neural networks http://www.cs.utoron[...] University of Toronto 2013
[34] arXiv ADADELTA: An adaptive learning rate method
[35] 논문 CoolMomentum: A Method for Stochastic Optimization by Langevin Dynamics with Simulated Annealing 2021
[36] 웹사이트 Papers with Code - Nesterov Accelerated Gradient Explained https://paperswithco[...]
[37] 논문 Acceleration of stochastic approximation by averaging http://www.meyn.ece.[...] 2018-02-14
[38] 논문 Adaptive subgradient methods for online learning and stochastic optimization http://jmlr.org/pape[...]
[39] 논문 Training highly multiclass classifiers http://jmlr.org/pape[...]
[40] 웹사이트 Lecture 6e rmsprop: Divide the gradient by a running average of its recent magnitude http://www.cs.toront[...] 2020-03-19
[41] arXiv Adam: A Method for Stochastic Optimization
[42] 웹사이트 4. Beyond Gradient Descent - Fundamentals of Deep Learning [Book] https://www.oreilly.[...]
[43] conference On the Convergence of Adam and Beyond https://openreview.n[...] 2018
[44] thesis Convergence Analysis of an Adaptive Method of Gradient Descent https://damaru2.gith[...] University of Oxford 2024-01-05
[45] conference Adam Can Converge Without Any Modification On Update Rules 2022
[46] 논문 Incorporating Nesterov Momentum into Adam 2016
[47] 논문 FASFA: A Novel Next-Generation Backpropagation Optimizer http://dx.doi.org/10[...] 2022-11-19
[48] 서적 Powerpropagation: A sparsity inducing weight reparameterisation http://worldcat.org/[...] 2021-10-01
[49] 논문 Second-order Information in First-order Optimization Methods 2019-12-20
[50] 논문 On the Convergence of Adam and Beyond 2018
[51] 웹사이트 An overview of gradient descent optimization algorithms https://www.ruder.io[...] 2016-01-19
[52] 논문 On the Convergence Proof of AMSGrad and a New Version https://ieeexplore.i[...] 2019
[53] 논문 Decoupled Weight Decay Regularization 2019-01-04
[54] 웹사이트 Dissecting Adam: The Sign, Magnitude and Variance of Stochastic Gradients https://openreview.n[...] 2018-02-15
[55] 웹사이트 SignSGD: Compressed Optimisation for Non-Convex Problems https://proceedings.[...] 2018-07-03
[56] 논문 A Stochastic Quasi-Newton method for Large-Scale Optimization
[57] 논문 Adaptive Stochastic Approximation by the Simultaneous Perturbation Method
[58] 논문 Feedback and Weighting Mechanisms for Improving Jacobian Estimates in the Adaptive Simultaneous Perturbation Algorithm
[59] 서적 Stochastic Recursive Algorithms for Optimization: Simultaneous Perturbation Methods Springer
[60] 논문 A Newton-Raphson Version of the Multivariate Robbins-Monro Procedure
[61] 논문 Natural gradient works efficiently in learning
[62] conference Nonlinear least squares for large-scale machine learning using stochastic Jacobian estimates 2021
[63] 논문 Stochastic Modified Equations and Dynamics of Stochastic Gradient Algorithms I: Mathematical Foundations http://jmlr.org/pape[...] 2019
[64] arXiv Stochastic Modified Flows, Mean-Field Limits and Dynamics of Stochastic Gradient Descent 2023-02-14
[65] 논문 An inconsistent maximum likelihood estimate
[66] conference The Tradeoffs of Large Scale Learning http://leon.bottou.o[...]
[67] 서적 Online Learning and Neural Networks http://leon.bottou.o[...] Cambridge University Press
[68] 뉴스 Convergence and efficiency of subgradient methods for quasiconvex minimization Springer
[69] 서적 Optimizing Methods in Statistics Academic Press
[70] 논문 A Stochastic Approximation Method
[71] 논문 A method of solving a convex programming problem with convergence rate O(1/k2)
[72] 논문 Learning representations by back-propagating errors 1986-10-08
[73] 논문 Efficient estimations from a slowly convergent Robbins-Monro process https://ecommons.cor[...] Cornell University Operations Research and Industrial Engineering
[74] 논문 Sparse Online Learning via Truncated Gradient http://www.jmlr.org/[...]
[75] 논문 Dual Averaging Method for Regularized Stochastic Learning and Online Optimization http://papers.nips.c[...]
[76] 논문 Notes on AdaGrad http://www.ark.cs.cm[...]
[77] 논문 Adaptive Subgradient Methods for Online Learning and Stochastic Optimization http://jmlr.org/pape[...]
[78] 논문 Lecture 6.5 - rmsprop, COURSERA: Neural Networks for Machine Learning
[79] 논문 ADADELTA: An Adaptive Learning Rate Method https://arxiv.org/ab[...]
[80] 논문 Fast large-scale optimization by unifying stochastic gradient and quasi-Newton methods https://arxiv.org/ab[...]
[81] 논문 Adam: A Method for Stochastic Optimization https://arxiv.org/ab[...]
[82] 논문 Adaptive Gradient Methods with Dynamic Bound of Learning Rate https://www.luolc.co[...]
[83] 논문 Normalized Online Learning https://arxiv.org/ab[...]
[84] 서적 Optimization for Machine Learning MIT Press
[85] 서적 Online Learning and Neural Networks https://archive.org/[...] Cambridge University Press



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com