目次
勾配降下 (GD) アルゴリズム
1. 勾配降下法
(1) 基本事項
1. グラデーション
▽ f = ( ∂ f ∂ x , ∂ f ∂ y , ∂ f ∂ z ) \triangledown f=(\frac{\partial f}{\partial x},\frac{\partial f}{\partial y}, \frac{\partial f}{\partial z})▽ f=(∂ ×∂f _、∂y _∂f _、∂z _∂f _)
2. 勾配降下法
- 勾配降下法は、ハザード関数と損失関数を最小限に抑えるための一般的な方法です。勾配の方向は、実際にはこの時点で関数が最も速く上昇する方向であり、多くの場合必要となるのは損失関数の最小化であるため、負の符号が付きます。
- 実際の作業では、損失関数がグローバル最小値に達する一連の損失関数を取得することが理想的な状況であり、より一般的な状況は、モデルの精度が許容範囲内の特定の最小値に達することです。
3. 勾配降下法アルゴリズム
θ 1 = θ 0 − α ▽ J ( θ 0 ) \theta_{1}=\theta_{0}-\alpha \triangledown J(\theta_{0});私1=私0−a ▽ J ( i0)
其中, θ 1 \theta_{1} 私1和 θ 1 \theta_{1} 私1位置の開始と終了を示します、α \alphaα はステップ サイズまたは学習率、J ( θ ) J(\theta)J ( θ )は\thetaを表しますθの関数
アルゴリズムの実際のステップは次のとおりです。
- 重みとバイアスをランダムな値で初期化する
- 入力をネットワークに渡し、出力値を取得します
- 予測値と真の値の間の誤差を計算します
- エラーを生成する各ニューロンについて、対応する (重み) 値を調整してエラーを軽減します。
- ネットワークの重みの最適値が得られるまで反復を繰り返します。
コード:
(2) 分類
1. バッチ勾配降下法 (BGD)
θ t + 1 = θ t − α ▽ J t ( θ ) \theta_{t+1}=\theta_{t}-\alpha \triangledown J_{t}(\theta)私t + 1=私た−α ▽ Jた( θ )
假同様MSEは损失関数として、
yi ^ = ∑ j = 0 mwjxi , j ( w 0 = b , xi , 0 = 1 ) J ( w ) = 1 2 n ∑ i = 1 n ( yi ^ − yi ) 2 ▽ J ( wj ) = ∂ J ( w ) ∂ wj = 1 n ∑ i = 1 n ( yi ^ − yi ) xi , jwj , t + 1 = wj , t − α ▽ J t ( wj ) 、 t = 1 、 2 、 . 。。\hat{y_{i}}=\sum_{j=0}^{m} w_{j} x_{i,j} (w_{0}=b, x_{i,0}=1)\\ J (w)= \frac {1} {2n} \sum_{i=1}^{n} ( \hat{y_{i}} -y_{i})^{2}\\ \triangledown J(w_{ j})=\frac{\partial J(w)}{\partial w_{j}}=\frac{1}{n} \sum_{i=1}^{n} ( \hat{y_{i} } -y_{i})x_{i,j}\\ w_{j,t+1}=w_{j,t}-\alpha \triangledown J_{t}(w_{j}),t=1, 2、...y私は^=j = 0∑メートルwjバツ私、 j( w0=b 、バツ私、 0=1 )J ( w )=2n _1i = 1∑ん(y私は^−y私は)2▽ J ( wj)=∂w _j∂ J ( w )=n1i = 1∑ん(y私は^−y私は) ×私、 jwj 、t + 1=wj 、 t−α ▽ Jた( wj)、t=1 、2 、. . .
このうち、j はデータの特徴数、m は特徴の総数、i はデータのサンプル数、n はサンプルの総数、t は反復エポック数、y ^ \hat{y_{i}}y私は^は予測値、yi y_{i}y私はは実際の値J ( w ) J(w)J ( w )はコスト関数です。
(1) 利点: 降下方向が全体の平均勾配となり、大域的な最適解が得られます。 (
2) 欠点: データ サンプル セット全体を計算する必要があり、速度は比較的遅い
(3) 特徴:
- パラメータの更新では、すべてのサンプルが寄与するため、計算は最大勾配となり、更新の大きさは大きくなります。
- サンプルが少ない場合、収束速度は非常に速くなります
2. ミニバッチ勾配降下法 (MBGD)
各更新では k 個のサンプルが使用され、ある程度の応答サンプルの分布は次のようになります。
θ t + 1 = θ t − α k ∑ i = k ( t − 1 ) + 1 kt ▽ J i , t ( θ ) \theta_{ t +1}=\theta_{t}-\frac{\alpha}{k} \sum_{i=k(t-1)+1}^{kt} \triangledown J_{i,t}(\theta)私t + 1=私た−kあるi = k ( t − 1 ) + 1∑kt _▽ J私、と( θ )
假同様MSEは损失関数として、
yi ^ = ∑ j = 0 mwjxi , j ( w 0 = b , xi , 0 = 1 ) J i ( w ) = 1 2 ( yi ^ − yi ) 2 ▽ J i ( wj ) = ∂ J i ( w ) ∂ wj = ( yi ^ − yi ) xi , jwj , t + 1 = wj , t − α k ∑ i = k ( t − 1 ) + 1 kt ▽ Ji , t ( wj ) 、 t = 1 、 2 、 3 、 。。。, [ nk ] \hat{y_{i}}=\sum_{j=0}^{m} w_{j} x_{i,j} (w_{0}=b, x_{i,0}=1 )\\ J_{i}(w)= \frac {1} {2} ( \hat{y_{i}} -y_{i})^{2}\\ \triangledown J_{i}(w_{j })=\frac{\partial J_{i}(w)}{\partial w_{j}}=( \hat{y_{i}} -y_{i})x_{i,j}\\ w_{ j,t+1}=w_{j,t}- \frac{\alpha}{k} \sum_{i=k(t-1)+1}^{kt}\triangledown J_{i,t}( w_{j}),t=1,2,3,...,[\frac{n}{k}]y私は^=j = 0∑メートルwjバツ私、 j( w0=b 、バツ私、 0=1 )J私は( w )=21(y私は^−y私は)2▽ J私は( wj)=∂w _j∂ J私は( w )=(y私は^−y私は) ×私、 jwj 、t + 1=wj 、 t−kあるi = k ( t − 1 ) + 1∑kt _▽ J私、と( wj)、t=1 、2 、3 、。。。、[kん]
これらのうち、j はデータの特徴の数、m は特徴の総数、i はデータのサンプル数、n はサンプルの総数、t は反復エポック数、k はバッチサンプルの数、バッチサイズ、yi ^ \hat{y_{i} }y私は^は予測値、yi y_{i}y私はは実際の値J i ( w ) J_{i}(w)J私は( w )は損失関数
(1) 利点: 学習速度と最終収束の精度を保証します
(2) 欠点: 適切な学習率を選択するのが困難
3. 確率的勾配降下法 (SGD)
各反復では、ランダム サンプルを 1 つだけ使用してパラメーターを更新します p
θ t + 1 = θ t − α ▽ J i = p , t ( θ ) , p ∈ [ 1 , 2 , . . . , n ] \theta_{t+ 1 }=\theta_{t}-\alpha \triangledown J_{i=p,t}(\theta),p \in [1,2,...,n]私t + 1=私た−α ▽ Ji = p , t( i ) 、p∈[ 1 、2 、。。。、n ]
假同様に MSE は失関数として、
yi ^ = ∑ j = 0 mwjxi , j ( w 0 = b , xi , 0 = 1 ) J i ( w ) = 1 2 ( yi ^ − yi ) 2 ▽ Ji i ( wj ) = ∂ J i ( w ) ∂ wj = ( yi ^ − yi ) xi , jwj , t + 1 = wj , t − α ▽ J i = p , t ( wj ) , その中 p ∈ [ 1 , 2、。。。、 n ] 、 t = 1 、 2 、 。。。\hat{y_{i}}=\sum_{j=0}^{m} w_{j} x_{i,j} (w_{0}=b, x_{i,0}=1)\\ J_ {i}(w)= \frac {1} {2} ( \hat{y_{i}} -y_{i})^{2}\\ \triangledown J_{i}(w_{j})=\ frac{\partial J_{i}(w)}{\partial w_{j}}=( \hat{y_{i}} -y_{i})x_{i,j}\\ w_{j,t+ 1}=w_{j,t}- \alpha \triangledown J_{i=p,t}(w_{j}),その中p \in [1,2,...,n],t=1,2 、...y私は^=j = 0∑メートルwjバツ私、 j( w0=b 、バツ私、 0=1 )J私は( w )=21(y私は^−y私は)2▽ J私は( wj)=∂w _j∂ J私は( w )=(y私は^−y私は) ×私、 jwj 、t + 1=wj 、 t−α ▽ Ji = p , t( wj)、ここで、 p∈[ 1 、2 、。。。、n ] 、t=1 、2 、. . .
このうち、j はデータの特徴数、m は特徴の総数、i はデータのサンプル数、n はサンプルの総数、t は反復エポック数、 p はランダムサンプルの次数です、yi ^ \hat{y_{i} }y私は^は予測値、yi y_{i}y私はは実際の値J i ( w ) J_{i}(w)J私は( w )は損失関数です。
(1) 利点: 1 つのサンプルの勾配のみを計算する必要があり、トレーニング速度が非常に速いです。 (
2) 欠点: 1 つの局所最適値から別の局所最適値へのジャンプが簡単で、精度が高くなります。特徴
:
- サンプル数が多いと収束速度が速い
- 各更新では 1 つのサンプルを使用してすべてのサンプルを近似するため、干渉があっても近似勾配が計算され、局所的な最適解が得られます。
3.1. 平均確率的勾配降下法 (ASGD、SAG)
MSE が損失関数として使用され、勾配の更新にランダム サンプル p が 1 つだけ使用される場合、次のようになります。
yi , t ^ = ∑ j = 0 mwj , txi , j ( w 0 = b , xi , 0 = 1 ) J i , t ( w ) = 1 2 ( yi , t ^ − yi ) 2 ▽ J i , t ( wj ) = ∂ J i , t ( w ) ∂ wj = ( yi , t ^ − yi ) xi , j 最初の初期化 : ▽ J i , t = 1 ( wj ) = ( ∑ j = 0 mwj , t = 1 xi , j − yi ) xi , jwj , t + 1 = wj , t − α n [ ▽ J i = p , t ( wj ) + ∑ i = 1 n ▽ J i ≠ p , t − 1 ( wj ) ] その中 p ∈ [1 , 2 , . 。。、 n ] 、 t = 1 、 2 、 。。。\hat{y_{i,t}}=\sum_{j=0}^{m} w_{j,t} x_{i,j} (w_{0}=b, x_{i,0}=1 )\\ J_{i,t}(w)= \frac {1} {2} ( \hat{y_{i,t}} -y_{i})^{2}\\ \triangledown J_{i, t}(w_{j})=\frac{\partial J_{i,t}(w)}{\partial w_{j}}=( \hat{y_{i,t}} -y_{i}) x_{i,j}\\ 初期化:\triangledown J_{i,t=1}(w_{j})=(\sum_{j=0}^{m} w_{j,t=1} x_{i ,j}-y_{i})x_{i,j}\\ w_{j,t+1}=w_{j,t}- \frac{\alpha}{n} [\triangledown J_{i=p ,t}(w_{j})+\sum_{i=1}^{n}\triangledown J_{i\neq p,t-1}(w_{j})]\\ 其中p \in [1, 2、...、n]、y私、と^=j = 0∑メートルwj 、 tバツ私、 j( w0=b 、バツ私、 0=1 )J私、と( w )=21(y私、と^−y私は)2▽ J私、と( wj)=∂w _j∂ J私、と( w )=(y私、と^−y私は) ×私、 j初期化:▽ Ji 、t = 1( wj)=(j = 0∑メートルwj 、t = 1バツ私、 j−y私は) ×私、 jwj 、t + 1=wj 、 t−nある[ ▽ Ji = p , t( wj)+i = 1∑ん▽ J私= p , t − 1( wj) ]ここで、 p∈[ 1 、2 、。。。、n ] 、t=1 、2 、. . .
このうち、j はデータの特徴数、m は特徴の総数、i はデータのサンプル数、n はサンプルの総数、t は反復エポック数、 k はバッチサンプルの数、バッチサイズ、yi ^ \hat{y_{ i}}y私は^は予測値、yi y_{i}y私はは実際の値J i ( w ) J_{i}(w)J私は( w )は損失関数です
。SGD 法では、計算コストが高いという問題は回避されますが、勾配更新の各ラウンドが前のラウンドと完全に一致するため、大規模なデータのトレーニングでは SGD の効果が満足できないことがよくあります。グラデーションとは関係ありません。確率的平均勾配アルゴリズムはこの問題を克服し、各サンプルの古い勾配をメモリ内に維持し、p 番目のサンプルをランダムに選択してこのサンプルの勾配を更新し、他のサンプルの勾配を変更せずに維持して、すべてのサンプルの勾配を取得します。勾配の平均が計算され、パラメータが更新されます。
3.2 運動量を伴う確率的勾配降下法 (運動量を伴う SGD) (SGDM)
3.3 シンガポールドル
3.4 SGDWM
3.5 周期的 LR
3.6 シンガポールドル
2. 勾配降下最適化アルゴリズム
(1) 補足的な理論的知識
1. 指数加重平均
V t = β V t − 1 + ( 1 − β ) θ t V_{t}=\beta V_{t-1}+(1-\beta)\theta _{t}Vた=bV _t − 1+( 1−b )私た
2. 指数加重平均におけるバイアス補正
V t = 1 1 − β t [ β V t − 1 + ( 1 − β ) θ t ] ( V 0 = 0 ) V_{t}=\frac{1}{1-\beta ^{t}}[ \beta V_{t-1}+(1-\beta)\theta _{t}]\\ (V_{0}=0)Vた=1−bt1[ bV _t − 1+( 1−b )私た】( V0=0 )
3. 指数加重移動平均
これは主に、t → ∞ t\to \inftyの場合に前のデータを修正するためです。t→∞ ,β t → 0 \beta ^{t}\to0bt→0、つまり、後のデータにはほとんど影響しません。
4. ネステロフ加速アルゴリズム
5. ニュートン法
(2) 運動量最適化アルゴリズム
物理学における運動量の概念を導入し、勾配降下を加速します。勾配降下は同じ次元で行われ、パラメータの更新が速くなり、勾配が変化するとパラメータの更新が遅くなり、収束が加速され、乱流が可能になります。減らされる
1. 勢い 勢い
パラメータが更新されると、以前に更新された方向
vt + 1 = β vt + α ▽ J ( θ t ) θ t + 1 = θ t − vt + 1 v_{t+1}=\beta v_{t} が保持されます。ある程度 +\alpha \triangledown J(\theta_{t})\\ \theta_{t+1}=\theta_{t}-v_{t+1}vt + 1=bv _た+a ▽ J ( iた)私t + 1=私た−vt + 1
(1) 特徴:
- 勾配の方向が変化すると、勢いによってパラメータの更新速度が低下し、衝撃が軽減されます。
- 勾配の方向が同じ場合、運動量によってパラメータの更新が高速化され、それによって収束が高速化されます。
2. ネステロフ加速勾配 (NAG)
運動量の改善とは、傾きを更新する際に補正することであり、具体的な方法としては、前瞬間の運動量を加える
vt + 1 = β vt − α ▽ J ( θ t + β vt ) θ t + 1 = θ現在の勾配 J t + vt + 1 v_{t+1}=\beta v_{t}-\alpha \triangledown J(\theta_{t}+ \beta v_{t})\\ \theta_{t+ 1}=\シータ_ {t}+v_{t+1}vt + 1=bv _た−a ▽ J ( iた+bv _た)私t + 1=私た+vt + 1
短所:
このアルゴリズムは実行速度が非常に遅くなり、運動量の 2 倍になるため、実際の実装プロセスでは、このアルゴリズムを直接使用する人はほとんどおらず、変形バージョンが使用されます。
導出過程: θ t ' = θ t + β vt \theta'_{t}=\theta_{t}+ \beta v_{t} と
する私t「=私た+bv _た,得
θ t + 1 = θ t + β vt − α ▽ J ( θ t + β vt ) \theta_{t+1}=\theta_{t}+\beta v_{t}-\alpha \triangledown J( \theta_{t}+ \beta v_{t})私t + 1=私た+bv _た−a ▽ J ( iた+bv _た)
⇒ θ t + 1 ′ − β vt + 1 = θ t ′ − α ▽ J ( θ t ′ ) \Rightarrow\theta'_{t+1}-\beta v_{t+1}=\theta'_ {t}-\alpha \triangledown J(\theta'_{t})⇒私t + 1「−bv _t + 1=私t「−a ▽ J ( it「)
⇒ θ t + 1 ' = θ t ' + β [ β vt − α ▽ J ( θ t + β vt ) ] − α ▽ J ( θ t ' ) \Rightarrow\theta'_{t+1}=\ theta'_{t}+\beta[\beta v_{t}-\alpha \triangledown J(\theta_{t}+ \beta v_{t})]-\alpha \triangledown J(\theta'_{t })⇒私t + 1「=私t「+b [ b vた−a ▽ J ( iた+bv _た) ]−a ▽ J ( it「)
⇒ θ t + 1 ' = θ t ' + β 2 vt − α ( 1 + β ) ▽ J ( θ t ' ) \Rightarrow\theta'_{t+1}=\theta'_{t}+\ beta^{2}v_{t}-\alpha(1+\beta) \triangledown J(\theta'_{t})⇒私t + 1「=私t「+b2v_ _た−( 1 _+b ) ▽ J ( it「)
⇒ θ t + 1 = θ t + β 2 vt − α ( 1 + β ) ▽ J ( θ t ) \Rightarrow\theta_{t+1}=\theta_{t}+\beta^{2}v_{ t}-\alpha(1+\beta) \triangledown J(\theta_{t})⇒私t + 1=私た+b2v_ _た−( 1 _+b ) ▽ J ( iた)
変形バージョン:
vt + 1 = β 2 vt − α ( 1 + β ) ▽ J ( θ t ) θ t + 1 = θ t + vt + 1 v_{t+1}=\beta^{2}v_{ t}-\alpha(1+\beta) \triangledown J(\theta_{t})\\ \theta_{t+1}=\theta_{t}+v_{t+1}vt + 1=b2v_ _た−( 1 _+b ) ▽ J ( iた)私t + 1=私た+vt + 1
運動量: (青) 最初に勾配を更新し、次に元の運動量の方向に大きなステップを実行します
NAG: (緑) 最初に元の運動量の方向に大きなステップを実行して (茶色)、次に勾配を計算して (赤)、修正された緑の線
(3) 伝播最適化アルゴリズム
1. 弾力性のある伝播 (Rprop)
2. 二乗平均平方根伝播 二乗平均平方根伝播 (RMSprop)
アダデルタの特別なケース、ρ=0.5 の場合、E は勾配の二乗和の平均になります。根を再度求めると、RMS (二乗平均平方根) gt = ▽ J ( θ t ) G t = β G になります
。 t − 1 + ( 1 − β ) gt 2 θ t + 1 = θ t − α G t + ε gt g_{t}=\triangledown J(\theta_{t})\\ G_{t}=\beta G_ {t-1}+(1-\beta)g_{t}^{2}\\ \theta_{t+1}=\theta_{t}-\frac{\alpha}{\sqrt{G_{t } +\バレプシロン}} g_{t}gた=▽ J (私た)Gた=βG _t − 1+( 1−b ) gt2私t + 1=私た−Gた+eあるgた
(1) 特徴: RMSprop は Adadelta の亜種である AdaGrad を発展させたもので、効果は両者の中間に位置する傾向があり、非静止ターゲットの処理に適しており、RNN にも適しています。
(4) 適応学習率アルゴリズム
1. 適応勾配 (AdaGrad)
gt = ▽ J ( θ t ) G t = G t − 1 + gt 2 θ t + 1 = θ t − α G t + ε gt g_{t}=\triangledown J(\theta_{t})\\ G_ {t}=G_{t-1}+g_{t}^{2}\\ \theta_{t+1}=\theta_{t}-\frac{\alpha}{\sqrt{G_{t}+ \バレプシロン}} g_{t}gた=▽ J (私た)Gた=Gt − 1+gt2私t + 1=私た−Gた+eあるgた
ここで、α \アルファαは学習率で、通常は0.01 0.010 。0 1;ε \バレプシロンεは分母が 0 にならないようにするためのもので、通常は1 0 − 7 10^{-7}1 0− 7
(1) 利点: 初期段階では、より緩やかなパラメータ空間の方向に大きく進歩し、勾配が大きいパラメータの場合、学習率は小さくなります。勾配が小さいパラメータの場合、効果は逆になります。このようにして、緩やかな場所ではパラメータを少し早く下げることができ、停滞しないようにすることができます。
(2) 欠点: 学習率が時期尚早に過度に低下する; 累積勾配の 2 乗であるため、後の段階で勾配が消滅する
2. アダデルタ
AdaGrad 制約
を使用できます: E ( g 2 ) t = 0 = 0 、 E ( h 2 ) t = 0 = 0 gt = ▽ J ( θ t ) E ( g 2 ) t = β E ( g 2 ) t − 1 + ( 1 − β ) gt 2 ht = E ( h 2 ) t − 1 + ε E ( g 2 ) t + ε gt E ( h 2 ) t = β E ( h 2 ) t − 1 + ( 1 − β ) ht 2 θ t + 1 = θ t − ht 定理:E(g^{2})_{t=0}=0,E(h^{2})_{t=0}=0 \\ g_{t}=\triangledown J(\theta_{t})\\E(g^{2})_{t}=\beta E(g^{2})_{t-1}+( 1- \beta) g_{t}^{2}\\h_{t}= \frac {\sqrt{E(h^{2})_{t-1}+\varepsilon}}{\sqrt{E (g ^{2})_{t}+\varepsilon}} g_{t}\\ E(h^{2})_{t}=\beta E(h^{2})_{t-1 }+ (1-\beta) h_{t}^{2}\\\theta_{t+1}=\theta_{t}-h_{t}初期化: E ( g2 )t = 0=0 、E ( h2 )t = 0=0gた=▽ J (私た)E ( g2 )た=β E ( g2 )t − 1+( 1−b ) gt2hた=E ( g2 )た+eE ( h2 )t − 1+egたE ( h2 )た=β E ( h2 )t − 1+( 1−b ) ht2私t + 1=私た−hた
ここで、ε \バレプシロンεは分母が 0 にならないようにするためのもので、通常は1 0 − 6 10^{-6}1 0− 6
(1) 特徴:
- トレーニングの初期および中期では、加速効果が良く、非常に速いです。
- 遅めのトレーニング。極小値付近で繰り返しジッターが発生する
- グローバル学習率に依存しないでください。グローバル学習率を手動で設定しても最終結果には影響しません。
3. 適応運動量推定 (Adam)
初期化 : m 0 = 0 , v 0 = 0 gt = ▽ J ( θ t ) mt = 1 1 − β 1 t [ β 1 mt − 1 + ( 1 − β 1 ) gt ] vt = 1 1 − β 2 t [ β 2 vt − 1 + ( 1 − β 2 ) gt 2 ] θ t + 1 = θ t − α vt + ε mt 初期化:m_{0}=0,v_{0}=0\\ g_{ t}=\triangledown J(\theta_{t})\\ m_{t}=\frac{1}{1-\beta_{1} ^{t}}[\beta_{1} m_{t-1} +(1-\beta_{1})g_{t}]\\ v_{t}=\frac{1}{1-\beta_{2} ^{t}}[\beta_{2} v_{t- 1}+(1-\beta_{2})g_{t}^{2}]\\ \theta_{t+1}=\theta_{t}-\frac{\alpha}{\sqrt{v_{t }}+\バレプシロン} m_{t}初期化:m0=0 、v0=0gた=▽ J (私た)メートルた=1−b1た1[ b1メートルt − 1+( 1−b1) gた】vた=1−b2た1[ b2vt − 1+( 1−b2) gt2】私t + 1=私た−vた+eあるメートルた
ここで、α \アルファαは学習率で、通常は0.001 0.0010 。0 0 1 ;β 1 \beta_{1}b1とβ 2 \beta_{2}b2平滑化定数または減衰率で、通常はそれぞれ0.9 と 0.9です。0.9と0.999 0.999 _0 。9 9 9、ε \バレプシロンεは分母が 0 にならないようにするためのもので、通常は1 0 − 8 10^{-8}1 0− 8
(1) 説明:
- Adam は、勾配二乗の和 v (つまり、RMSPropz の G) を見つける必要もあります。
- 新しい変数 m を使用して勾配を滑らかに更新します
- 勾配の二乗和は予約によって更新されます
- 勾配の二乗和は予約によって更新されます
(2) 特徴:
- パラメータは比較的安定しています
- まばらな勾配の処理が得意、非定常ターゲットの処理が得意
- 異なるパラメータに対して異なる適応学習率を計算する
- ほとんどの非凸最適化問題にも適しています - 大規模なデータセットや高次元空間に適しています
3.1 アダマックス
アダムは学習率の上限を追加しました
3.2 アダムW
アダムが体重減少に参加
3.3 アムステルダム大学
3.4 願っています
アダムにネステロフ加速効果を導入
3.5 スパースアダム
スパーステンソルの Adam
3.6 エイダバウンド
(5) その他
1.スワット
2.ラダム
3.先読み
4.ネステロフ加速勾配(NAG)
メソッドの比較
アルゴリズム | アドバンテージ | 欠点がある | 該当する状況 |
---|---|---|---|
バッチ勾配降下法 | 目的関数が凸の場合、大域的最適値を見つけることができます。 | 収束速度が遅く、すべてのデータを使用する必要があり、メモリ消費量が大きい | 大規模なデータセットには適していないため、オンラインでモデルを更新できません |
確率的勾配降下法 | 冗長データの干渉を回避し、収束速度を加速し、オンラインで学習できるようにする | 更新値の分散が大きく、収束過程がばらつき、最小値に落ち込む可能性があるため、適切な学習率の選択が困難 | オンラインで更新する必要があるモデルに適しており、大規模なトレーニング サンプルに適しています |
ミニバッチ勾配降下法 | 更新値の分散が減少し、収束がより安定します。 | 適切な学習率を選択するのは難しい | |
勢い | 関連する方向で SGD を高速化し、発振を抑制し、収束を高速化する機能 | 学習率を手動で設定する必要がある | 信頼性の高い初期化パラメータに適しています |
ネステロフ | 大きなジャンプ後に現在の勾配を修正するために勾配が計算されます。 | 学習率を手動で設定する必要がある | |
投与 | 各学習率を手動で調整する必要はありません | 依然としてグローバル学習率の手動設定に依存しています。学習率が大きすぎると、勾配の調整が大きすぎます。中期および後期段階では勾配が 0 に近くなり、トレーニングが早期に終了します。 | 複雑なネットワークをトレーニングする場合は高速収束が必要です。疎な勾配の処理に適しています。 |
アダデルタ | デフォルトの学習率を事前に設定する必要はなく、トレーニングの初期および中期段階では、加速効果が良好かつ高速であるため、パラメータ更新時に両側で単位が一致しない問題を回避できます。 | トレーニングの後期段階では、極小値付近で繰り返しジッターが発生します。 | 複雑なネットワークをトレーニングする場合は高速コンバージェンスが必要です |
RMSプラグ | Adagrad の積極的な学習率スケーリングを修正 | それでも世界の学習率に依存する | 複雑なネットワークをトレーニングする場合は高速な収束が必要です。非定常ターゲットに適しています。RNN には適切に機能します。 |
アダム | メモリ要件が小さくなり、パラメータごとに異なる適応学習率が計算されます。 | 複雑なネットワークをトレーニングする場合は高速な収束が必要です。まばらな勾配の処理と非定常ターゲットの処理に優れているという利点は、ほとんどの非凸最適化にも適しています。大規模なデータセットや高次元空間に適しています。 |
- スパースなデータの場合は、適応学習率を備えた最適化手法を使用してみてください。
- SGD は通常、トレーニングに時間がかかりますが、結果の信頼性は高くなります
- より高速な収束を重視する場合は、学習率適応最適化手法を使用することをお勧めします。
- Adadelta、RMSprop、Adam は比較的類似したアルゴリズムです
上記は未完成であり、更新する必要があります。個人的な学習のためのみです。侵害の連絡先は削除されています。間違いや不備があれば、改善のためにご指摘ください。