オプティマイザー#
バックプロパゲーション#
バックプロパゲーションの主なアイデアは、モデルパラメータの勾配を損失関数を計算し、勾配降下法を使用してパラメータを更新し、損失関数を最小化し、モデルを最適解に近づけることです。
実装プロセスには、2 つの主要なステップが含まれます:フォワードプロパゲーションとバックプロパゲーション。フォワードプロパゲーションは、ネットワークの入力が各層を通過した出力を計算します。バックプロパゲーションは、チェーンルールを使用して損失関数の各パラメータの勾配をネットワークに戻し、パラメータを更新します。この反復プロセスにより、ニューラルネットワークは徐々に入力と出力のマッピング関係を学習し、ネットワークの予測性能を向上させることができます。
バックプロパゲーションの基本的なアイデアは、損失関数をネットワーク内で逆方向に伝播させ、出力層から入力層に向かって勾配を計算し、累積します。具体的には、アルゴリズムはネットワークの最後の層から始めて、出力層の誤差勾配を計算し、その勾配を前の層に伝播させ、反復的に計算を行い、入力層に伝播させます。各層では、チェーンルールに基づいて、現在の層の勾配にその層の重みを乗算し、前の層に伝播させます。
バックプロパゲーションの手順は次のとおりです:
- フォワードプロパゲーション:入力データをネットワークに送り、出力結果を計算します。
- 損失の計算:出力結果を真のラベルと比較し、損失関数の値を計算します。
- バックプロパゲーション:出力層から始めて、損失関数に基づいて出力層の勾配を計算し、それから各層の勾配を前方に伝播させます。
- パラメータの更新:勾配降下法や他の最適化アルゴリズムを使用して、計算された勾配に基づいてネットワークのパラメータを更新します。
- ステップ 1 から 4 を繰り返し、停止条件(最大反復回数や損失関数の収束など)に達するまで続けます。
バッチ勾配降下法(GD)#
θt=θt−1−α∇θN1i=1∑NJ(θ;x(i))
N:すべてのサンプル
確率的勾配降下法(SGD)#
θt=θt−1−α∇θBS1i=1∑BSJ(θ;x(i))
BS:ミニバッチ
Adagrad#
vt=vt−1+gt2θt=θt−1−αvt+ϵgt
RMSProp#
vt=γvt−1+(1−γ)gt2θt=θt−1−αvt+ϵgt
Adam#
mt=β1mt−1+(1−β1)gtvt=β2vt−1+(1−β2)gt2θt=θt−1−αvt+ϵmt
ϵ=10−9,β1=0.9,β2=0.999
ウォームアップ:
m^t=mt/(1−β1t)v^t=vt/(1−β2t)