딥러닝을 위한 다양한 옵티마이저 요약

1. 최적화 알고리즘의 설계 원리

딥러닝에서 최적화 알고리즘의 원리는 목적함수 J(θ)J(\theta)를 최소화하는 경사하강법이다.J ( θ ) , 최적해 과정은 먼저 목적 함수∇ J ( θ ) \nabla J(\theta)J ( θ ) , 매개변수θ \thetaθ 는 연속 변수,θ t = θ t − 1 − η ∇ J ( θ ) \theta_{t}=\theta_{t-1}-\eta\nabla J(\theta) 입니다.=t - 1-η J ( θ )η \etaη 는 기울기 업데이트 단계의 크기를 나타내는 학습률로 최적화 과정이 의존하는 알고리즘을 옵티마이저라고 하는데 딥러닝 옵티마이저의 두 개의 코어가 기울기와 학습률임을 알 수 있다. 전자는 파라미터 업데이트 방향을 결정하고 후자는 파라미터 업데이트 정도를 결정합니다.

우리는 θ \theta를 정의합니다θ 는 최적화할 파라미터,J ( θ ) J(\theta)J ( θ ) 는 목적함수이고 초기 학습률은η \eta . 경사하강법 과정에서 최적화 알고리즘의 실행 프레임워크는 다음과 같다.

1. 현재 매개변수에 대한 목적 함수의 기울기를 계산합니다.

gt = ∇ J ( θ t ) g_t = \nabla J(\theta_t)g=J ( 나는)

2. 필요에 따라 과거 그래디언트의 1차 및 2차 모멘텀을 계산합니다.

mt = ϕ ( g 1 , g 2 , ⋅ ⋅ ⋅ , gt ) m_t = \phi(g_1, g_2,···,g_t)=φ ( g1,g2,⋅⋅⋅,g)

V t = ψ ( g 1 , g 2 , ⋅ ⋅ ⋅ , gt ) V_t = \psi(g_1, g_2,···,g_t)V=ψ ( g1,g2,⋅⋅⋅,g)

3. 현재 시점에서 하강 기울기를 계산합니다.

p = η ∗ mt / V t (적응 최적화) p = \eta * m_t / \sqrt{V_t} (적응 최적화)=그만큼/V .( 적응형 옵티마이저 )

p = η ∗ gt (비적응 최적화기) p = \eta * g_t (비적응적 최적화기)=그만큼g( 비적응형 옵티마이저 )

4. 경사하강법 업데이트 수행

θ t + 1 = θ t − p \theta_{t+1} = \theta_t - p+ 1=-

다양한 옵티마이저의 경우 3단계 334 단계 44 개 동일, 주요 차이점은 1단계112 단계 22. 이러한 옵티마이저의 설계 아이디어를 자세히 설명하겠습니다.

1. 비적응형 옵티마이저

최적화 과정에서 학습률은 전체 과정에서 또는 특정 학습 학습에 따라 변경되지 않습니다.학습 일정 일정 _ _ _ _비적응형 옵티마이저라고 하는 시간 경과에 따른 일정 변경 , 범주 에는 가장 일반적인 SGD SGD가 포함됩니다 .모멘텀 모멘텀이 있는 SG D (Stochastic Gradient Descent)모멘텀 SGDSGD _ _ _ _ _ _SG D、带N 에스테로프 네스테로프N estero v SGDSGD _SG D et al.

1、비지디 비지디BG D (배치 배치B a t c h 그래디언트 그래디언트경사 하강 하강 _ _ _ _ _ _하강 ) _ _ _

기울기 업데이트 공식은 다음과 같습니다.

θ = θ − η ∗ ∇ θ J ( θ ) \theta = \theta - \eta * \nabla_{\theta} J(\theta) .=-그만큼J ( θ )

원화 원화SG D는 기울기가 업데이트될 때마다손실 손실을l 매개 변수에 대한 oss 의 기울기이므로 계산이 매우 느리고 많은 수의 데이터 세트를 접할 때 매우 까다로울 것이며 실시간으로 모델을 새 데이터로 업데이트할 수 없습니다.

2、원화 원화SG D 확률적 경사하강법(Stochastic StochasticSt oc ha s t ic 그래디언트 그래디언트경사 하강 하강 _ _ _ _ _ _하강 ) _ _ _

기울기 업데이트 공식 및 SGD SGDSG D도 비슷합니다.

원화 원화SG D 의 경사하강법 과정은 작은 공이 언덕을 굴러 내려가는 것과 유사하며, 그 전진 방향은 현재 언덕의 최대 경사 방향(최대 음의 경사 방향)과만 일치하며, 각 순간의 초기 속도는 0입니다. 그래디언트 업데이트 규칙은 다음과 같습니다.배치 배치기울기 업데이트는 네트워크 업데이트 매개변수를 매우 빠르게 만드는 배치 의 각 샘플 에 대해 수행됩니다. 그러나 단점도 분명합니다. 왜냐하면SGD SGDSG D는 그래디언트를 매우 자주 업데이트하므로비용 비용이비용 t 함수 함수함수 는 심각한 충격 을 받게 되며 전역 최소값 에서 앞뒤로 진동하고 전역 최적값에서 뛰어넘을있습니다 .

3、MSGD MSGDMSG D (Mini − 배치 미니배치미니 _-b t c h 그래디언트 그래디언트경사 하강 하강 _ _ _ _ _ _하강 ) _ _ _

실제로 우리는 MSGD를 MSGD로 더 자주 언급합니다.MSG D는 SGD SGD라고 부릅니다.SG D , 기울기 업데이트 공식 및SGD SGDSG D도 비슷합니다. 그래디언트 업데이트 규칙은 다음과 같습니다.MSGD MSGDMSG D는 매번배치 배치를b t ch 샘플 ,nnN 개의 샘플을 계산하여 매개변수 업데이트의 분산을 줄이고 수렴을 더 안정적으로 만드는 한편 딥러닝 라이브러리에서 고도로 최적화된 행렬 연산을 최대한 활용하여 보다 효과적인 기울기 계산을 할 수 있습니다. . 그리고2 22 중형SGD SGDSG D 의 차이점 은 그라디언트가 업데이트될 때마다 데이터 세트의 모든 샘플을 사용하는 대신일괄 배치nn내부 b t c hn 샘플. SGD SGD는아래 기사에서 언급했습니다.여기서 SG D는 MSGD MSGD를나타냅니다.MSG ._
여기에 이미지 설명 삽입
이점:

1. MSGD가 MSGD를 업데이트하는 중으로 보이지만MSG D' s비용 비용비용 t 함수 함수기능 크게 변동 하고 많은 우회 가 필요하지만 그래디언트에 대한 요구 사항은 매우 낮고 ( 그래디언트 계산이 빠름 ) 노이즈 도입에 대한 많은 이론 및 실제 작업은 소음은 특별히 크지 않습니다.MSGD MSGDMSG D는 잘 수렴할 수 있습니다.

2. 큰 데이터 세트를 적용할 때 훈련 속도가 매우 빠릅니다. 예를 들어 매번 수백만 개의 데이터 샘플에서 수백 개의 데이터 포인트를 가져와 MSGD MSGD를 계산합니다.MSG D 기울기, 모델 매개변수를 업데이트합니다. 표준 경사하강법의 모든 샘플을 순회하는 것과 비교할 때 샘플이 입력될 때마다 매개변수를 업데이트하는 것이 훨씬 빠릅니다.

결점:

1. 좋은 컨버전스를 보장할 수 없다, 미니 미니미니 -배치 배치b t ch 매번 경사하강법을 위해 데이터 세트의 일부만 사용하므로 각각의 하강은 엄격하게 최소값 방향으로 가는 것이 아니라 전체적인 하향 추세가 최소값 방향으로 되어 있고, 지역 최소값에 도달합니다.

2, lr lrl r 이 너무 작으면 수렴 속도가 매우 느려지고, 너무 크면손실 손실이 발생합니다.l oss 함수 함수기능이 계속 진동하거나 심지어 최소값 에서 벗어 납니다 . (한 가지 방법은 먼저 학습률을 크게 설정하고 두 반복 간의 변화가 일정 임계값보다 낮을 때학습 학습을학습률 비율 _ _ _ _ _r a t e 이지만 이 임계값의 설정을 미리 작성해야 하지만 이 경우 데이터 세트의 특성에 적응할 수 없습니다.

3. 비볼록 함수의 경우 안장점 주변의 기울기가 0 0 에 가깝기 때문에 로컬 최소값 또는 안장점에 갇히지 않도록 해야 합니다.0 ,MSGD MSGDMSG D는 여기서 쉽게 막힐 수 있습니다. 여기에서 안장점을 설명하려면 매끄러운 함수의 안장점 이웃의 곡선, 표면 또는 초표면이 이 점의 접선의 서로 다른 측면에 있습니다. 아래와 같이2 22 .

여기에 이미지 설명 삽입
4, SGDM SGDMSG D M (모멘텀 모멘텀모멘텀 SGD 모멘텀 SGD _ _ _ _ _SG D )

위의 최적화 알고리즘에서 발생하기 쉬운 문제를 해결하기 위해 SGDM SGDMSG D M 응용 프로그램은 원래SGD SGDSG D 에 1차 모멘텀이 더해졌습니다.

기울기 업데이트 공식은 다음과 같습니다.

vt = γ vt − 1 + η ∇ θ J ( θ ) v_t = \gamma v_{t-1} + \eta \nabla_{\theta}J(\theta) .V=v_ _t - 1+η∇ _J ( θ )

θ = θ − vt \theta = \theta - v_t=-V

SGDM SGDMγ vt − 1 \gamma v_{t-1}을더하여 SG D Mv_ _t - 1, 운동량으로 정의됨, γ \gammaγ 일반적으로 사용되는 값은0.9 0.90.9 . 모멘텀을 사용한 후 경사하강 과정에서 경사방향이 변하지 않는 방향으로 하강속도를 빠르게 할 수 있고, 경사방향이 변화하는 방향으로 하강속도를 느리게 할 수 있다. 여기에 더 가까운 예를 들어 보겠습니다. 원래 경사 하강법에서는 한 방향으로 하강하다가 계곡(즉, 변곡점)을 만났을 때 계곡을 건너면 언덕 반대편에 있습니다. 이때 기울기 방향은 이전과 반대인데 이때 이전 기울기 크기의 누적으로 인해 두 산비탈 사이의 변화가 상쇄되기 때문에 두 산비탈에서 항상 진동하는 것은 아니며, 계곡으로 내려가기 편하고 진동이 줄어듭니다. SGDM SGDMSG DM 의 기울기 업데이트 상태는3 과 같다 .3 및 도111 , 진동이 현저하게 줄어듭니다.
여기에 이미지 설명 삽입
5.나그나그N A G (네 에스테로프 네스테로프Nestero v 가속 가속 _ _가속 그래디언트 그래디언트 _ _ _ _ _ _그라데이션 ) _ _ _ _ _ _ _

SGDM 위에 도입된 SGDMSG D M 의 각각의 하강 스텝은 이전 하강 방향과 현재 지점의 기울기 방향의 누적으로 구성되지만, 변곡점 부근까지만 하강할 때, 이번에는 변곡점을 가로지르는 A의 크기가 더 클 것입니다. 즉, 모델이 변곡점을 만났을 때 업데이트의 크기를 자동으로 줄이지 않습니다. NAG는 위의 문제에 대한 모멘텀 방법을 개선하고 그 표현은 다음과 같습니다.

vt = γ vt − 1 + η ∇ θ J ( θ − γ vt − 1 ) v_t = \gamma v_{t-1} + \eta \nabla_{\theta}J(\theta-\gamma v_{t-1 ). })V=v_ _t - 1+η∇ _J ( θ-v_ _t - 1)

θ = θ − vt \theta = \theta - v_t=-V

나그나그N A G는 현재 위치에서 이전 그래디언트 값을 사용하여 먼저 파라미터 업데이트를 수행한 다음 업데이트된 위치에서 그래디언트를 계산하고 이전에 누적된 그래디언트 값 벡터에 이 부분의 그래디언트를 더합니다. 의 기울기 방향은 다음 단계에서 매개변수 업데이트 후 값을 시뮬레이션한 후 모멘텀 방법에서 현재 위치의 기울기를 시뮬레이션된 위치의 기울기로 대체합니다. 그렇다면 이 방법이 앞에서 언급한 문제를 해결하는 이유는 무엇입니까? NAG NAG때문에N A G는 다음 스텝의 위치 구배를 예측하는 스텝이 있어서 변곡점 부근에 떨어지면NAG NAGN A G는 변곡점을 교차할 것이라고 예측하고 이 항목의 기울기는 이전 기울기에 대해 수정되며 이는 해당 범위가 너무 커지는 것을 방지하는 것과 같습니다.
여기에 이미지 설명 삽입
위 그림과 같이4 44 , 우리는 NAG NAG를간략하게 보여주기 위해 예를 들었습니다.N A G 의 업데이트 원칙SGDM SGDM을SG D M 방식, 짧은 파란색 선은 현재 위치의 그래디언트 업데이트를 나타내고 긴 파란색 선은 이전에 누적된 그래디언트를 나타내며 첫 번째 빨간색 선은NAG NAGNAG 알고리즘 은 다음 위치의 기울기 업데이트를 예측하는데 첫 번째 갈색 선은 이전에 누적된 기울기를 나타내고 벡터 추가 결과(녹색 선)는 매개 변수 업데이트 방향입니다 . 나그나그그래디언트를 업데이트할 때 N A G 의 상태 다이어그램은 그림 55 , SGDM SGDM과 비교한 그림에서 알 수 있습니다.SG D MSGD SGDSG D ,나그나그N A G는 더 나은 성능을 보여주었습니다.
여기에 이미지 설명 삽입

2. 적응형 옵티마이저

최적화 과정에서 학습률은 기울기에 따라 적응적으로 변화하며, 주어진 전역 학습률의 영향을 최대한 없애려고 노력하는 것을 적응형 최적화기라고 하며, 일반적인 것으로는 A dagrad Adagrad가 있다 .A d a gr a d 아 다 델타 AdadeltaAdadelta , RMS 소품RMSprop _ _ _ _RMSp ro p댐 아담A d am等。
1、A dagrad Adagrad더다 그라드 _ _ _ _ _

다그라드는 아다그라드A da grad 사실 learning rate에 대한 제약조건입니다. 자주 업데이트되는 매개변수에 대해서는 많은 지식을 축적했습니다. 단일 샘플에 너무 많은 영향을 받고 싶지 않으며 , 업데이트 대해이 방법에서 2차 모멘텀을 사용한다는 것은 "적응형 학습률" 최적화 알고리즘의 시대 도래를 의미합니다.

여기서 우리는 2차 모멘텀 V t V_t를 설명합니다.V의 정의 : 파라미터의 과거 업데이트 빈도를 측정하는데 사용되며, 2차 모멘텀은 지금까지의 모든 그래디언트 값의 제곱합이다. 아 다그라드 아다그라드A d a gr a d 의 표현은 다음 같습니다.

mt = gt m_t = g_t=g

V t = ∑ i = 1 tgt 2 V_t = \sum_{i=1}^{t}{g_t}^2V=나는 = 1g2

θ t + 1 = θ t − η mt V t \theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{V_t}}+ 1=-그만큼V ..

여기서 gt g_tgtt를 위해시간 t 에서의 매개변수 기울기, 왜 adagrad adagrad인지 설명하겠습니다.a d a grad 는 다양한 주파수 특성 에 대한 매개변수의 학습률을 변경할 수 있습니다 . 먼저, 2차 운동량V t V_tV이는 기울기 제곱의 누적 합입니다. 훈련 데이터가 적은 기능의 경우 해당 매개변수가 느리게 업데이트됩니다. 업데이트 방정식이 더 커지므로 특정 특성 데이터 세트에 대해 해당 매개변수 업데이트 속도가 더 빨라집니다. 위의 분모가 0 0 인 경우0 이므로 평활항 매개변수ϵ \epsilonϵ , 매개변수 업데이트 방정식은 다음과 같습니다.

θ t + 1 = θ t − η mt V t + ϵ \theta_{t+1} = \theta_t - \eta \frac{m_t}{\sqrt{V_t+\epsilon}}+ 1=-그만큼V+ϵ ..

하지만 adagrad adagrada d a grad 도 문제가 있습니다. 즉, 학습 횟수가 증가함에 따라 분모가 증가하여 학습 속도가 점점 작아지고 결국 0 0에 무한히 가까워 집니다 .0 , 매개변수를 효과적으로 업데이트하는 것이 불가능합니다.

2、다델타 Adadelta아다 델타 _ _ _ _ _

A dagrad 아다 그라드A d a gr a d , A dadelta의 단점 AdadeltaA d e lt a 에서 2차 운동량V t V_tV개선 및 A dagrad AdagradA d a grad 비교하여 분모는 과거 기울기 제곱의 감쇠 평균값으로 대체되며, 이 분모는 기울기의 제곱 평균값 RMS RMS와동일 합니다 .RMS (루트 루트루트 t는 평균을 의미m e 제곱 제곱sq u a red ) . _ 그 표현은 다음과 같습니다.

mt = gt m_t = g_t=g

Vg , t = γ Vg , t − 1 + ( 1 − γ ) gt 2 V_{g,t} = \gamma V_{g,t-1} + (1-\gamma){g_t}^2V,=γV _g , t - 1+( 1-) 2

V Δ θ , t = γ V Δ θ , t − 1 + ( 1 − γ ) Δ θ t 2 V_{\Delta \theta,t} = \gamma V_{\Delta \theta,t-1} + (1 -\gamma){\Delta \theta_t}^2V, _=γV _D θ , t - 1+( 1-c ) _2

RMS [ g ] t = V g , t + ϵ RMS[g]t = \sqrt{V{g,t}+\epsilon}실효값 [ g ] t=Vg , _+ϵ .

RMS [ Δ θ ] t = V Δ θ , t + ϵ RMS[\Delta\theta]t = \sqrt{V{\Delta\theta,t}+\epsilon};실효 [ Δθ ] t=브이 , _+ϵ .

θ t + 1 = θ t − RMS [ Δ θ ] t − 1 RMS [g ] tmt \theta_{t+1} = \theta_{t} - \frac{RMS[\Delta \theta]_{t-1 }}{RMS[g]_t}m_t+ 1=-실효값 [ g ]실효 [ Δθ ]t - 1.

여기서 기울기에 대한 2차 운동량 변화는 RMS [ g ] t RMS[g]_t실효값 [ g ]; 변수 변화의 2차 모멘텀은 RMS [ Δ θ ] t RMS[\Delta \theta]_t실효 [ Δθ ]를 사용하여 학습률로 바꿉니다. by 아다델타 아델타새로운 규칙 에서 제거 되었기 때문에 기본 학습 속도를 설정할 필요조차 없습니다 .

3、RMS 소품 RMSpropRMSp 로프 _

RMS 소품 RMSpropRMSp ro pA dadelta AdadeltaA d a d e lt a는 A dagrad Adagrad를해결하는 것입니다.문제 때문에 Adagrad 학습률 급격히 떨어 집니다 . RMS 소품 RMSpropRMSp ro pA dadelta AdadeltaA d a d e lt a 의 계산 공식 은 매우 유사하지만 동시에 독립적으로 제안되며 그 식은 다음과 같습니다.

mt = gt m_t = g_t=g

V t = γ V t − 1 + ( 1 − γ ) gt 2 V_t = \gamma V_{t-1} + (1-\gamma){g_t}^2V=γV _t - 1+( 1-) 2

θ t + 1 = θ t − η mt V t + ϵ \theta_{t+1} = \theta_{t} - \eta \frac{m_t}{\sqrt{V_t + \epsilon}}+ 1=-그만큼V+ϵ ..

이것으로부터 RMS prop RMSprop를 볼 수 있습니다.RMSprop 또한 초기 학습 속도η \eta를 수동으로 설정해야 합니다 . . 저자는ϵ \epsilonϵ 는 0.9로 설정되고, 학습률η \etaη는 0.001로 설정되었습니다.

4、댐 아담A d am (적응형 적응형적응 모멘트 모멘트 _ _ _ _ _순간 추정 추정 _ _ _ _추정치 ) _ _ _ _ _ _ _

댐 아담Adam 알고리즘은 각 매개변수 대한 적응 학습률을 계산하는 또 다른 방법입니다. 모멘텀 모멘텀의 일종이다.운동량 RMSprop RMSprop _ _ _ _ _RMSp ro p를 결합하는 방법은β 1 \beta_11β 2 \beta_22, 표현은 다음과 같습니다.

mt = β 1 mt − 1 + ( 1 − β 1 ) gt (1차 운동량) m_t = \beta_1m_{t-1} + (1-\beta_1)g_t(1차 운동량)=1t - 1+( 1-1) ( 1차 모멘텀 )

V t = β 2 V t − 1 + ( 1 − β 2 ) gt 2 (2차 운동량) V_t = \beta_2V_{t-1} + (1-\beta_2){g_t}^2(2차 운동량) )V=2Vt - 1+( 1-2) 2 (두 번째 모멘텀)

m ~ t = mt 1 − β 1 t \tilde{m}_t = \frac{m_t}{1-\beta_1^t}~=1-1.

V ~ t = V t 1 − β 2 t \tilde{V}_t = \frac{V_t}{1-\beta_2^t}V~=1-2V.

θ t + 1 = θ − η m ~ t V ~ t + ϵ \theta_{t+1} = \theta - \eta \frac{\denominator{m}_t}{\sqrt{\denominator{V}_t + 엡실론}}+ 1=-그만큼V~+ϵ .~.

其中β 1 \beta_11기본값은 0.9 0.9 입니다.0.9β 2 \beta_22기본값은 0.999 0.999 입니다.0.999 ,ϵ \epsilonϵ1 0 − 8 10^{-8}1 08댐 아담A d am은 모멘텀과RMS prop RMSprop을RMSp 경험에서 A dam Adam에게두 가지 장점을 모두 보여줍니다 .Adam은 실제로 잘 수행 하며 다른 적응형 학습 알고리즘에 비해 장점이 있습니다 .

요약하다

안장점과 등고선에 대한 위의 최적화 알고리즘의 성능을 살펴보겠습니다.
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
그림 6과 그림 7에서 볼 수 있듯이 A dagrad AdagradA d a gr a d 아 다 델타 AdadeltaAdadelta , RMS 소품RMSprop _ _ _ _RMS rop은 올바른 방향을 찾고 거의 빠르게 앞으로 이동하며 상당히 빠르게 수렴하는 반면 다른 방법은 느리거나 이를 찾기 위해 많은 우회가 필요합니다 .

1. 우선, 주요 알고리즘이 더 좋고 나쁘다는 결론이 없습니다. 이제 막 시작하는 경우 SGD SGD 에 우선 순위 부여SG D +N 에스테로프 네스테로프네스 테로 v 모멘텀 모멘텀 _Momentum or Adam Adam _ _ _ _ _ _오전 _ _

2、댐 아담Adam 과 같은 적응형 학습률 알고리즘은 희소 데이터에 유리 하고 수렴 속도 빠르지만 SGDM 매개변수가 미세 조정된 SGDMSG DM 더 나은 최종 결과를 달성하는 경향이 있습니다.

3. 필요에 따라 선택 - 모델 설계 실험 과정에서 새 모델의 효과를 빠르게 확인하려면 먼저 A dam Adam을 사용할 수 있습니다.Adam은 신속한 실험 최적화를 수행합니다. 미세 조정SGD SGD는 모델을 시작하거나 결과 를 발표 하기 전에 사용할 수 있습니다.SG D 시리즈 최적화 알고리즘은 모델의 궁극적인 최적화를 수행합니다.

4. 서로 다른 알고리즘의 조합을 고려하십시오. 첫 번째 사용 A 댐 AdamSGD SGD 로 전환하기 전에 빠른 하강을 위한 오전SG D 시리즈 최적화 알고리즘이 완전히 조정되었습니다.

추천

출처blog.csdn.net/qq_52302919/article/details/131626516