BP アルゴリズムの数学的導出

BP アルゴリズムは連鎖導出ルールに従って導出されますが、ここでは 2 層のニューラル ネットワーク構造を使用した逆導出プロセスを示します。

1. 2層ニューラルネットワーク構造(入力層を除く)

2. BPアルゴリズムの数学的導出

1. 前向き計算処理

入力レイヤー:  \large a_{0}=x

レベル1:  \large z_{1}=W_{1}*a_{0}

                \large a_{1}=シグモイド(z_{1})

2階:  \large z_{2}=W_{2}*a_{1}

                \large a_{2}=シグモイド(z_{2})

コスト関数:

\large J(W_{1},W_{2})=\frac{1}{2m}\sum_{i=1}^{m}(a_{2}-y)^{2}

2. 逆導出プロセス

W2 に関して偏導関数を計算します。\frac{\partial J(W_{1},W_{2})}{\partial W2}=\frac{1}{m}*(a_{2}-y)*\frac{\mathrm{d} sigmoid(z_{2})}{\mathrm{d} z_{2}}*a_{1}

W1 に関して偏微分を計算します。\frac{\partial J(W_{1},W_{2})}{\partial W1}=\frac{1}{m}*(a_{2}-y)*\frac{\mathrm{d} sigmoid(z_{2})}{\mathrm{d} z_{2}}*W_{2}*\frac{\mathrm{d} sigmoid(z_{1})}{\mathrm{d} z_{1 }}*a_{0}

ステップに分けて説明します。

W2の場合:    δ 2 = a 2 -y

                 \デルタ _{2}=\デルタ _{2}*シグモイド{}'(z_{2})

 \frac{\partial J(W_{1},W_{2})}{\partial W2}=\frac{1}{m}\Delta _{2}*a_{1}

W1 の場合:     \デルタ _{1}=\デルタ _{2}*W_{2}

                 \デルタ _{1}=\デルタ _{1}*シグモイド{}'(z_{1})

 \frac{\partial J(W_{1},W_{2})}{\partial W1}=\frac{1}{m}\Delta _{1}*a_{0}

勾配降下法は重みを更新します。

W_{2}=W_{2}-\alpha* \frac{\部分 J(W_{1},W_{2})}{\部分 W2}

W_{1}=W_{1}- \alpha* \frac{\部分 J(W_{1},W_{2})}{\部分 W1}

注: (1)\アルファは学習率であり、各ステップの下降範囲を調整するために使用されます。

       (2)\large シグモイド'(x)=シグモイド(x)[1-シグモイド(x)]

        

おすすめ

転載: blog.csdn.net/cxzgood/article/details/120834778