最適化関数の基本的な理解

基本的な考え方

デリバティブ

関数y = f ( x ) y=f(x)とします。y=f ( x )x 0 x_0バツ0あるフィールドに定義があり、独立変数xxの場合xx 0 x_0バツ0増加分Δx ΔxΔ x( x + Δ x ) (x+Δx)( ×+Δ x )もこの近傍内にあり、対応する関数は増分Δ y = f ( x 0 + Δ x ) − f ( x 0 ) Δy=f(x_0+Δx) - f(x_0) を取得します。y_ _=f ( x0+Δ ×f ( x0);当Δ x → 0 \Delta{x}\to0Δx_ _0時、Δy \Delta{y}Δ y Δ x\Delta{x}Δ xの比率が存在する場合、関数y = f ( x ) y=f(x)y=f ( x )x 0 {x}_0バツ0で導出でき、この極限を関数y = f ( x ) y=f(x)と呼びます。y=f ( x )x 0 {x}_0バツ0における導関数はf ' ( x 0 ) {f}'({x}_0)として表されます。f' (x0f ' ( x 0 ) = lim ⁡ x 0 → 0 Δ y Δ x = lim ⁡ x 0 → 0 f ( x + Δ x − f ( x ) Δ x f'({x}_0)= \ lim_
{x_0\to0}\frac{\Delta{y}}{\Delta{x}}=\lim_{x_0\to0}\frac{f(x+\Delta{x}-f(x)}{\Delta{バツ}}f' (x0)=リムバツ0 0Δx_ _y_ _=リムバツ0 0Δx_ _f ( x + Δ xf ( x )

偏導関数

多変量関数では、導関数と偏導関数は本質的に同じであり、どちらも独立変数の変化が0 に近づくときの独立変数の変化に対する関数値の変化の比率の限界です。簡単に言えば、導関数は単項関数、関数y = f ( x ) y=f(x)を指します。
y=特定の点におけるx 軸の正の方向に沿ったf ( x )の変化率。偏導関数は多変量関数、関数y = f ( x 0 , x 1 , ... xn ) y を=f({x} _0, {x}_1,...{x}_n)y=f ( x0バツ1... ×) ( x 0 , x 1 , ... xn ) に沿った( ×0バツ1... ×)は、特定の座標軸の正の方向の変化率です
α α xjf ( x 0 , x 1 , . . . xn ) = lim ⁡ Δ x → 0 Δ y Δ x = lim ⁡ Δ x → 0 f ( x 0 , . . . , xj + Δ xj , . . . , xn ) − f ( x 0 , . . . xj , . . , xn ) Δ x \frac{\alpha}{\alpha{x_j}}{f({x}_0, {x}_1,.. .{x}_n)} = \lim_{\Delta{x\to0}}\frac{\Delta{y}}{\Delta{x}} = \lim_{\Delta{x\to0}}{\frac {f(x_0,...,{x}_j + \Delta{x_j},...,x_n ) - f(x_0, ...x_j, ..., x_n)}{\Delta{x}} }α ×jあるf ( x0バツ1... ×)=リムΔ x 0Δx_ _y_ _=リムΔ x 0Δx_ _f ( x0... ×j+ Δx _j... ×) f ( x0... ×j... ×)

方向導関数

導関数と偏導関数はどちらも、座標軸の正の方向に沿った関数の変化率を議論します。方向導関数の定義は、関数に沿った点における任意の方向の変化率を考慮するときに生じます。多変量関数において、偏微分は特定の座標軸上の独立変数
の変化を指し、方向微分は複数の座標軸上の独立変数の特定の方向の変化を指します。偏導関数は本質的には方向導関数の特殊なケースですα α lf ( x 0 , x 1 , . . . xn ) = lim ⁡ ρ → 0 Δ y Δ x = lim ⁡ ρ → 0 f ( x 0 + Δ x 0 , . . . , xj + Δ xj , . . . . , xn + Δ xn ) − f ( x 0 , . . . xj , . . , xn ) ρ \frac{\alpha}{\alpha{l}}{f({x}_0, {x} _1,...{x}_n)} = \lim_{ {\rho\to0}}\frac{\Delta{y}}{\Delta{x}} = \lim_{ {\rho\ to0}} { \frac{f(x_0+\Delta{x_0},...,{x}_j + \Delta{x_j},...,x_n + \Delta{x_n})- f(x_0, ...x_j, . ..、x_n)}{\rho}}
αl _あるf ( x0バツ1... ×)=リムρ 0Δx_ _y_ _=リムρ 0rf ( x0+ Δx _0... ×j+ Δx _j... ×+ Δx _) f ( x0... ×j... ×)
ψ = (Δ x 0 2 ) + 。+ (Δ xj 2 ) + 。+ ( Δ xn 2 ) \rho = \sqrt{(\Delta{x_0}^2)+ ... +(\Delta{x_j}^2)+...+(\Delta{x_n}^2)}r=( Δx _02 )+...+( Δx _j2 )+...+( Δx _2 )

勾配

勾配は、もともとベクトルであることを意図しており、この点での関数の方向導関数がこの方向、つまり、特定の点でのすべての方向導関数の最大値に対応する方向に沿って最大値を取得し、関数が変化することを示します。現時点でこの方向に沿った最速の最大変化率。
画像.png
gradf ( x 0 , . . . , xj , . . . xn ) = ( α f α x 0 , . . . α f α xj , . . . , α f α xn ) gradf(x_0, ..., x_j ,... x_n)=(\frac{\alpha{f}}{\alpha{x_0}}, ...\frac{\alpha{f}}{\alpha{x_j}}, ..., \ frac{\alpha{f}}{\alpha{x_n}})g r a df ( x0... バツj... ×)=(α ×0_...α ×j_... α ×_)

方向微分と勾配の関係

二項関数の下では、方向微分は次のように表すことができます:
α f α l = α f α x ∗ cos θ + α f α y ∗ sin θ \frac{\alpha{f}}{\alpha{l}} = \ frac{\alpha{f}}{\alpha{x}}*cos\theta + \frac{\alpha{f}}{\alpha{y}}*sin\thetaαl __=α ×_cosθ _+ああ__s in θ
ここでθ \thetaθは、方向ベクトルと x 軸の間の角度として表されます。上の式を 2 つのベクトルの内積に変換すると、次のように表されます:
α f α l = [ α f α x , α f α y ] ∗ [ cos θ , sin θ ] \frac{\alpha{f} }{\alpha{l}} = [\frac{\alpha{f}}{\alpha{x}}, \frac{\alpha{f}}{\alpha{y}}] * [cos\theta,罪\θ]αl __=[α ×_ああ__][ cosθ , _s in θ ]
2 つのベクトルの内積は、2 つのベクトルの加群の乗算として表され、次にそれらの間の角度を乗算され、次のように表されます。 α f α l
= α f α x 2 + α f α y 2 ∗ cos θ 2 + sin θ 2 ∗ cos φ = α f α x 2 + α f α y 2 ∗ 1 ∗ cos φ \fr​​ac{\alpha{f}}{\alpha{l}} = \sqrt {\frac {\alpha{f}}{\alpha{x}}^2 + \frac{\alpha{f}}{\alpha{y}}^2} *\sqrt{ {cos\theta}^2 + { sin \theta}^2} * cos\varphi = \sqrt{\frac{\alpha{f}}{\alpha{x}}^2 + \frac{\alpha{f}}{\alpha{y }}^ 2} * 1 * cos\varphiαl __=α ×_2+ああ__2 cosθ _2+θs2 cos_ _=α ×_2+ああ__2 1cos φベクトル内積の幾何学的意味によれば、次
のことがわかります。φは 2 つのベクトルの間の角度、つまり、勾配と特定の方向の間の角度方向と勾配の間の角度が 0 である場合に限り、方向微分値は最大値になります。つまり、関数内の特定の点における最大の方向導関数に対応する方向、つまり勾配の方向です

勾配降下法を理解する方法

簡単に言えば、ニューラル ネットワークにおいて、勾配降下法は損失関数の最小化を見つける方法です。

直感的なバージョン

勾配降下法

最も単純な単項凸関数f ( x ) = x 2 f(x)=x^2f ( x )=バツ勾配降下法が関数の最小値を見つける方法を示す例として図2を参照します。
開始点x 0 = 10 x_0=10バツ0=10は、次の図に示すように、初期化後のニューラル ネットワークの重みの初期値に類似しています:
画像.png
f ( x 0 ) f(x_0)f ( x0)対応する勾配は次のとおりです:
grad ( f ( x 0 ) ) = α f α xi = f ' ( x 0 ) = ( 2 x ∣ x 0 = 10 ) = 20 grad(f(x_0))=\frac{\ alpha{f}}{\alpha{x}}i=f'(x_0)=(2x{|}_{x_0=10})=20g r a d ( f ( x0))=α ×_=f' (x0)=( 2 x バツ0= 10)=20はxx
に相当しますx軸上のベクトルΔ f ( x ) \Delta{f(x)}Δ f ( x )は関数の最も速く成長する方向であり、その場合、− Δ f ( x ) -\Delta{f(x)}Δ f ( x )は、関数の最も速く減衰する方向です。
画像.png
勾配降下法に従って、次の位置を取得するために特定の距離を移動します。
x 1 = x 0 − η Δ f ( x 0 ) x_1 = x_0 - \ η{\ デルタ{f(x_0)}}バツ1=バツ0η Δ f ( x0)
其中, η \eta ηは移動距離を制御できるステップ サイズであり、η = 0.1 \eta=0.1=0.1の場合、次の点の位置は次のようになります。
x 1 = x 0 − η Δ f ( x 0 ) = 10 − 0.1 ∗ 20 = 8 x_1 = x_0 - \eta{\Delta{f(x_0)}} = 10 - 0.1 * 20 = 8バツ1=バツ0η Δ f ( x0)=100.120=8
画像.png
勾配降下法を使用して連続的に反復すると、次の更新プロセスが得られます。Δ ( f ( x ) \Delta(f(x)) が
画像.png
わかります。Δ ( f ( x )は継続的に減少し、最終的に 0 に近づきます。このとき、Δ f ( x ) = f ' ( x ) = 0 \Delta{f(x)} = f'(x)=0Δ f ( x )=f( × )_=0 の場合、関数は最小値をとります。

学習ステップサイズ

上記の計算プロセスでは、学習ステップ サイズη \etaを使用しますηで移動距離を制御し、今度はさまざまなη \eta最終結果に対するηの影響。

  1. \etaηが小さすぎる

\eta を設定しますηは0.01で10回繰り返しますが、まだ底までの距離があることが分かります。
0.01.png

  1. \etaη適切

\eta を設定しますηは 0.2 で 10 回反復され、ちょうど底に到達したことがわかります。
0.2.png

  1. \etaηの方が大きい

\eta を設定しますηは 0.5 で、10 回反復され、関数値が 2 点間で振れていることがわかります。
0.5.png

  1. \etaηが大きすぎ

\eta を設定しますηは1.1で10回繰り返しますが、この時点で関数値はボトムを越えて上昇を続けます。
1.1.png
要約すると、さまざまな学習ステップη \etaηの下では、反復回数が増加するにつれて、関数値の変化則は異なります。

数学バージョン

勾配降下法は一般的に使用される一次最適化手法であり、制約のない問題を解決するための最も単純かつ古典的な手法の 1 つです。制約なしの最適化問題の場合minf ( x ) minf(x)min f ( x )、ここでf ( x ) f(x)f ( x )は、集合x 0 , x 1 , ... xn {x_0, x_1,...x_n}連続微分可能なですバツ0バツ1... ×,满足:
f ( xt + 1 ) < f ( xt ) 、 t = 0 , 1 , . nf(x_{t+1}) < f(x_t)、t=0,1,...nf ( xt + 1)<f ( xt=0 1 ... n
その後、次の図に示すように、極小点に収束します。
画像.png
minf( x ) minf(x)min f ( x )は次の点xt + 1 x_{t+1}バツt + 1そしてf ( xt + 1 ) < f ( xt ) f(x_{t+1}) < f(x_t) を保証します。f ( xt + 1)<f ( x単項関数の場合、関数値はxxx の値が変化するため、次のxt + 1 x_{t+1}バツt + 1前のxt x_tですバツ特定の方向に小さな一歩を踏み出すΔ x \Delta{x}Δx得られる。
テイラー展開による:
f ( x + Δ x ) ≃ f ( x ) + Δ xf ′ ( x ) f(x+\Delta{x})\simeq{f(x)+\Delta{x}f'(x ) }f ( x+Δ ×f ( x )+Δ × f' (x)
サブ座標は現在のxxx は小さなステップΔ x \Delta{x}右辺にほぼ等しいΔ xが得られます。f ( xt + 1 ) < f ( xt ) f(x_{t+1}) < f(x_t) であることを確認する必要があるためf ( xt + 1)<f ( x)、つまりf ( x + Δ x ) < f ( x ) f(x+\Delta{x})<f(x)f ( x+Δ ×<f ( x ),则Δ xf ′ ( x ) < 0 \Delta{x}f'(x) <0Δ × f( × )_<0x = − α f ' ( x ) , ( α > 0 ) \Delta{x} = -\alpha{f'(x)}, (\alpha>0) と仮定します
Δx_ _=a f' (x)( _>0 )、ここでα \alphaαは学習ステップ サイズなので、Δ xf ' ( x ) = − α f ' ( x ) 2 \Delta{x}f'(x)=-\alpha{ { f'(x)}^2}Δ × f( × )_=a f( × )_ゼロ以外の数値の二乗は 0 より大きいため、Δ xf ' ( x ) < 0 \Delta{x}f'(x)<0 であることがΔ × f( × )_<0
したがって、
f ( x + Δ x ) = f ( x − α f ′ ( x ) ) f(x+\Delta{x}) = f(x -\alpha{f'(x)}) と設定します。f ( x+Δ ×=f ( x_' (x))は、 f ( x + Δ x ) < f ( x ) f(x+\Delta{x})< f(x) であることを
保証できます。f ( x+Δ ×<f ( x )つまりxt + 1 = xt − α f ' ( x ) x_{t+1}=x_t-\alpha{f'(x)}バツt + 1=バツ_' (x)の場合、移動方向は負の勾配方向です
勾配降下法の全体的なフローを次の図に示します。

最適化機能

確率的勾配降下法

確率的勾配降下法では、毎回1 つのサンプル データを選択することで重みパラメータが更新されます。
アドバンテージ:

  • トレーニング速度が速いため、バッチ勾配更新プロセスにおける計算の冗長性の問題が回避されます。
  • トレーニング データの量が比較的大きい場合、より高速に収束することもあります。

欠点:

  • 各サンプルはランダムにサンプリングされるため、モデルのトレーニング後はサンプルのごく一部しか使用されず、取得される勾配に偏りが生じます。
  • さらに、分散が大きくなると、ボラティリティも大きくなります

バッチ勾配降下法

バッチ確率的勾配降下法では、重みパラメータを更新するたびにすべてのサンプル データを走査する必要があります。
アドバンテージ:

  • 完全なデータセットを走査するため、結果はグローバル最小値になります。

欠点:

  • モデルの学習速度が遅く、データ量が多いとメモリに載せきれず、勾配計算の複雑さも大きくなります。

ミニバッチ勾配降下法

各反復では、サンプル データのごく一部を考慮して重みパラメータを更新します。
アドバンテージ:

  • SGD の高い分散の問題を軽減し、モデルの収束をより安定させます。
  • 行列の乗算により計算を高速化できます。

欠点:

  • サンプルの選択にはランダム性もあり、モデルの良好な収束は保証されません。

指数加重平均

後続の複数の最適化関数を導入する前に、指数加重平均法を理解する必要があります。これは本質的には平均化に似た方法です。指数加重平均法を使用して変数の局所平均を推定すると、変数の更新が一定期間内の履歴値に関連付けられ、各観測値に異なる重みとその重み係数が与えられます。時間とともに指数関数的に減少します
指数加重平均法は、平均法に比べて過去の値をすべて保存する必要がなく、計算量が大幅に軽減されます。
指数加重平均法の計算式は次のとおりです。
vt + 1 = β vt + ( 1 − β ) θ t + 1 v_{t+1} = \beta{v_t} + (1-\beta)\theta_{ t+1}vt + 1=bv _+( 1b )t + 1
ここで、vt + 1 v_{t+1}vt + 1t+1 t+1までを表すt+1日の平均、θ t + 1 \theta_{t+1}t + 1t+1 t+1を示しますt+1日の気温値、β \betaβは調整可能なハイパーパラメータです。指数加重平均法の 3 つの重要な特性は、次のように検証されます。

  • 地域平均
  • 重み付け係数
  • 係数は時間とともに指数関数的に減少します

β = 0.9 \beta=0.9 と仮定します。b=v 100 = 0.9 v 99 + 0.1 θ 100 ; v_{100} = 0.9v_{99} + 0.1\theta_{100}; 0.9の場合、指数加重平均法の平均プロセスは次のように取得できます
v100=0.9v_ _99+0.1i _100;
v 99 = 0.9 v 98 + 0.1 θ 99 ; v_{99} = 0.9v_{98} + 0.1\theta_{99};v99=0.9v_ _98+0.1i _99;
v 98 = 0.9 v 97 + 0.1 θ 98 ; v_{98} = 0.9v_{97} + 0.1\theta_{98};v98=0.9v_ _97+0.1i _98;
上記の式を簡略化すると、次の式が得られます:
v 100 = 0.1 θ 100 + 0.9 v 99 v_{100} = 0.1\theta_{100} + 0.9v_{99}v100=0.1i _100+0.9v_ _99
= 0.1 θ 100 + 0.9 ∗ ( 0.1 θ 99 + 0.9 v 98 ) = 0.1 θ 100 + 0.1 ∗ 0.9 θ 99 + 0.9 2 ∗ ( 0.1 θ 98 + 0.9 v 97 ) = 0.1\theta_{100} + 0.9* ( 0.1\theta_{99} + 0.9v_{98}) = 0.1\theta_{100} + 0.1 * 0.9 \theta_{99} + {0.9}^2* (0.1\theta_{98} + 0.9v_{97} )=0.1i _100+0.9( 0.1i _99+0.9v_ _98)=0.1i _100+0.10.9i _99+0.92( 0.1i _98+0.9v_ _97)
= 0.1 θ 100 + 0.1 ∗ 0.9 θ 99 + 0.1 ∗ 0.9 2 θ 98 + 0.9 3 v 97 = 0.1\theta_{100} + 0.1 * 0.9 \theta_{99} + 0.1 * {0.9}^2 \theta_{ 98} + {0.9}^3 v_{97}=0.1i _100+0.10.9i _99+0.10.9298+0.93v _97

上の式から、v 100 v_{100}v100これは、各観測値に重みを乗算したものに等しく、重みは時間とともに指数関数的に減少します。もう 1 つの点は、指数加重平均法で得られる平均は局所平均であるため、平均化される観測値の数は、およそ1 1 − β \frac{1}{1-\beta} となります。1 b1、この例ではβ = 0.9 \beta=0.9b=0.9の場合、10 個の観測値が参照されます。
平均の計算をより正確にするためには、バイアスを修正する以下は、β = 0.98 \beta=0.98b=0.98v 0 = 0 v_0=0v0=0θ 1 = 40 \theta_1=401=sov1 = β v 0 + ( 1 − β ) θ t = 0.98 ∗ v 0 + 0.02 θ t = 0.02 θ t = 8 v_1=\beta{v_0}+(1-\beta)\theta_t=0.98 *
v_0+0.02\theta_t=0.02\theta_t=8v1=bv _0+( 1b )=0.98v0+0.02i _=0.02i _=8
したがって、初日の推定値は正確ではありません。v 2 = 0.98 v 1 + 0.02 θ 2 = 0.02 ∗ 0.98 ∗ θ 1 + 0.02 θ 2 v_2=0.98v_1+0.02\theta_2 = 0.02*0.98*\theta_1 + 0.02 \シータ_2v2=0.98v_ _1+0.02i _2=0.020.981+0.02i _2、 θ 1 \theta_1による1 θ 2 \theta_2 2はすべて整数なので、計算されたv 2 v_2v2θ 1 \theta_1よりもはるかに小さい1 θ 2 \theta_2 2
初期推定が不正確な場合は、vt 1 − β t \frac{v_t}{1-\beta^t}を使用します。1 btvその日の値を示します。ttはt は日数を表すため、2 日目の推定値は次のようになります。
v 2 0.0396 \frac{v_2}{0.0396}0.0396v2
てと_t値が増加すると、β t \beta_tb0 に近いので、 ttのときtが大きい場合、バイアス補正の効果はほとんどありません。

運動量勾配降下法

運動量勾配降下の基本的な考え方は、勾配の指数加重平均を計算し、その勾配を使用して重みを更新することです。
ミニバッチ勾配降下法では、サンプリングのランダム性により、各低下は厳密には最小値の方向を向いていませんが、全体的な下降傾向は最小値の方向を向いています。
画像.png
運動量勾配降下法は、スイングの振幅を小さくし、学習速度を向上させる方法です。
画像.png
運動量勾配降下法の式は次のとおりです。
vdw = β vdw + ( 1 − β ) d W v_{dw} = \beta{v_{dw}} + (1-\beta)dWv=bv _+( 1β ) d W
vdb = β vdb + ( 1 − β ) db v_{db} = \beta{v_{db}} + (1-\beta)dbvdb _=bv _db _+( 1β ) d b
W = W − α vdw ; b = b − α vdb W= W-\alpha{v_{dw}};b = b-\alpha{v_{db}}W=Wαv _;b=bαv _db _
指数加重平均法を使用して局所勾配平均値を取得し、パラメーター更新用に元の単一反復勾配値を置き換えます。物理学の運動量の概念を借用し、パラメータの最適化を丘からボールを​​押し落とすタスクとして想像します。勾配の値はボールの加速度に似ています。前後の勾配の方向が一致していれば、学習は可能です。前後の勾配の方向が不一致の場合、変動が抑えられます

RMSプラグ

運動量最適化アルゴリズムは、パラメーターの最適化プロセスにおける大きなスイングの問題を最初は解決しましたが、いわゆるスイングとは、最適化および更新後のパラメーターの範囲を指します。モメンタム最適化アルゴリズム。緑色は RMSprop 最適化アルゴリズムによって取られるルートです。
画像.png
RMSprop の式は次のとおりです。
S dw = β S dw + ( 1 − β ) ( d W ) 2 S_{dw} = \beta{S_{dw}} + (1-\beta)(dW)^2S=βS _+( 1β ) ( dW ) _2
S db = β S db + ( 1 − β ) ( db ) 2 S_{db} = \beta{S_{db}} + (1-\beta)(db)^2Sdb _=βS _db _+( 1b ) ( d b )2
W = W − α d WS dw ; b = b − α db S db W=W-\alpha{\frac{dW}{\sqrt{S_{dw}}}};b=b-\alpha{\frac{db}{\sqrt{S_{データベース}}}}W=WあるS dW _;b=bあるSdb _ db _
RMSprop 勾配降下法では、まず指数加重平均法を使用して勾配二乗の加重平均を取得し、次に勾配比の平方根を使用して重みパラメーターを更新します
RMSprop アルゴリズムは、勾配の差分二乗加重平均を計算します。このアプローチは、大きなスイング振幅の方向を排除するのに有益です(dW と db に比較的大きな値がある場合、重みまたはバイアスを更新するときに、その前に蓄積された勾配の平方根で除算され、更新されます)振幅は Small になります)。これはスイング範囲を補正するために使用され、各次元のスイング範囲が小さくなり、一方でネットワークの収束が速くなります。

アダム

Adam 最適化アルゴリズムは基本的に RMSprop と Momentum を組み合わせたもので、具体的な計算プロセスは次のとおりです。

  1. 勾配d W 、 db dW,dbを計算します。d W db ; _
  2. 運動量の指数加重平均を計算しますvdw = β 1 vdw + ( 1 − β 1 ) d W v_{dw} = \beta_1{v_{dw}} + (1-\beta_1)dWv=b1v+( 1b1) d W ,vdb = β vdb + ( 1 − β ) db v_{db} = \beta{v_{db}} + (1-\beta)dbvdb _=bv _db _+( 1b ) d b ;
  3. RMSprop を使用して更新します。S dw = β 2 3 S dw + ( 1 − β 2 ) ( d W ) 2 S_{dw} = \beta_23{S_{dw}} + (1-\beta_2)(dW)^2S=b23S_ _+( 1b2) ( d W )2S db = β S db + ( 1 − β ) ( db ) 2 S_{db} = \beta{S_{db}} + (1-\beta)(db)^2Sdb _=βS _db _+( 1b ) ( d b )2
  4. 偏差補正を行い、vd Wcorrected = vd W 1 − β 1 t 、vdbcorrected = vdb 1 − β 1 t 、S d Wcorrected = S d W 1 − β 2 t 、S dbcorrected = S db 1 − β 2 t v_ {dW}^{修正済み} = \frac{v_{dW}}{1-\beta_1^t},v_{db}^{修正済み} = \frac{v_{db}}{1-\beta_1^t} ,S_{dW}^{修正}=\frac{S_{dW}}{1-\beta_2^t},S_{db}^{修正}=\frac{S_{db}}{1-\beta_2^ t}vdW _修正まし=1 b1vdW _vdb _修正まし=1 b1vdb _SdW _修正まし=1 b2SdW _Sdb _修正まし=1 b2Sdb _;
  5. 权值更新を実行します、W = W − α vd W 修正 S d W 修正 + ϵ 、 b = b − α vdbcorrected S dbcorrected + ϵ W=W-\alpha{\frac{v_{dW}^{corrected}}{ \sqrt{S_{dW}^{修正済み}}+\epsilon}},b=b-\alpha{\frac{v_{db}^{修正済み}}{\sqrt{S_{db}^{修正済み}} +\イプシロン}}W=WあるSdW _修正まし + ϵvdW _修正ましb=bあるSdb _修正まし + ϵvdb _修正まし

Adam アルゴリズムは RMSprop と Momentum を組み合わせたもので、さまざまなニューラル ネットワークで非常に一般的に使用される学習アルゴリズムです。

参考リンク:

https://blog.csdn.net/wo164683812/article/details/90382330
https://www.zhihu.com/question/36301367
https://blog.csdn.net/weixin_44492824/article/details/122270260
https:/ /www.zhihu.com/question/305638940/answer/1639782992
https://www.zhihu.com/question/305638940/answer/606831354
https://zhuanlan.zhihu.com/p/36564434

おすすめ

転載: blog.csdn.net/hello_dear_you/article/details/128992906