ニューラルネットワーク(2):逆伝播ステップ(BP)

BPニューラルネットワークの基本概念:

1.コスト関数:ニューラルネットワークのトレーニングプロセスは、コスト関数(J)を最小化することにより、最適なパラメーター(重み)に適合させることです。

[ニューラルネットワークのコスト関数は実際には指標であり、モデルのサンプルへの適合度を、モデルの予測値h(x)とサンプル出力yi(決定される)との間の差異の分散と比較できることを示します ]

[勾配関数法または逆伝播アルゴリズムにより、コスト関数の最小化を実現できます。両方の長所と短所を分析する

[ニューラルネットワークのコスト関数は非凸関数です。つまり、最適化アルゴリズムが局所最適解に該当する可能性があります]

[コスト関数の定期的な用語を理解する方法; ogistic回帰式の定期的な関数を比較できます(パラメーターの過剰適合を回避するため)

2.バックプロパゲーションプロセスの説明:

i)フォワード伝播から得られたニューロン値重み値および最後のレイヤーの出力値(入力として予測値hiとサンプル値yiの間の誤差)

ii)隠れ層の各ニューロンの誤差と累積誤差計算する; [ 関連する式の計算]

iii)出力は、重みtheta_iに対するコスト関数J(theta)の偏導関数です

        機械学習の逆伝播の過程におけるウーエンダ誤差計算

          呉遠達機械学習逆伝播アルゴリズム疑似コード

3.ベクトル拡張:ニューラルネットワークトレーニング中のパラメーターベクトル/行列の変換。[最適化アルゴリズムに入力すると、パラメーターはベクトルに変換されます。フォワード/バックワード伝播入力として使用すると、パラメーターは行列形式になります]

        パラメーターベクトルとマトリックス変換のMatlab実装

           アルゴリズムにおけるベクトル変換の適用位置

4.勾配テスト:バックプロパゲーションプロセス中の結果は妥当と思われる場合があるため(合理的な意味は、最適化プロセス中にコスト関数が小さくなることを意味します)、実際にはバグが多く、バグのあるBPアルゴリズムが発生し、バグはありませんBPアルゴリズムのエラーは比較的大きい場合があります。したがって、勾配テストステップが必要です。勾配アルゴリズムはBPアルゴリズムと同じ機能を持っています。どちらもコスト関数J(シータ)の偏微分を計算しますが、勾配法の実行中にエラーが発生するのは容易ではありませんが、操作は遅くなります。エラーが発生しますが、演算は高速です。したがって、BPアルゴリズムをプログラミングするとき、勾配アルゴリズムによって計算された偏微分は、BPアルゴリズムによって得られた微分値と比較されて、基本的に等しいかどうかを調べます(差はわずか数桁です)[いわゆる勾配テスト] 。BPプログラムにエラーがないことを確認した後、ニューラルネットワークのトレーニングに使用されます[トレーニングプロセス中にBPアルゴリズムが使用され、勾配アルゴリズムは使用されません]

        勾配法:点の導関数の数値近似

          勾配法のMATLAB式

        ベクトル形式のシータの偏微分

          勾配検定に関する意見 

5.ランダム初期化:一般的な初期化はすべてのパラメーターを0に初期化することですが、ニューラルネットワークアルゴリズムでの初期化はゼロになります:上位レイヤーから次のレイヤーの最初のニューロンに送信されるすべてのパラメーター上位レイヤーは次のレイヤーの2番目のニューロンのすべてのパラメーターはまったく同じであり、1つのレイヤーの各ニューロンに同じ値をもたらし、機能の冗長性をもたらします。また、逆伝播プロセスにおける同じ層の各ニューロンの誤差も同じであり、偏微分も同じです。

[単一のニューロンは新しい構造の複雑な特徴と見なすことができます]

     ゼロが初期化されている場合、同じカラーシステムの重みパラメータは等しい

    ランダムに初期化されたMATLAB実装[イプシロンは10 ^ -4をとることができます]

6.ニューラルネットワークフレームワークの構築:入力レイヤーユニットの数は、サンプルの特徴の数によって決まります。非表示レイヤーの数は通常1レイヤーであり、2、3、4レイヤーなどにすることもできます。レイヤーが多いほど、ニューラルネットワークが深くなり、計算されます量が多いほど、非表示層の単層単位の数は通常、入力層の単位の倍数であり、1、2、3回などになります。単位が多いほど、再構成機能が多くなるほど、より複雑な非線形性を近似できます。機能しますが、計算コストは​​大きくなります。

      NN共通フレームワーク

7.ニューラルネットワークをトレーニングする手順

①ランダム初期化重み係数シータ

②フォワードプロパゲーションアルゴリズムはh(xi)と各ユニットパラメータ値a i (l)を計算します。

最終誤差誤差δ層計算③ (final_l)を、エラーが逆伝搬アルゴリズムδの各レイヤ単位用いて算出されるI (L)を

④各層の誤差Δ=Δ '+δ*(a)Tとコスト関数の偏微分を求め、Dvec [微分ベクトル]を出力

⑤勾配アルゴリズムは、BPアルゴリズムの精度をチェックします

forwardフォワード伝搬とバック伝搬を組み合わせて、最適化アルゴリズムを使用してコスト関数の最小値を解決します。

forward_propagationの出力

back_propagationの出力

最適化アルゴリズムの出力

[初めて、単純なforループを使用します]

[最適化アルゴリズムは、勾配降下法またはその他のより高度な最適化アルゴリズムにすることができます]

[ について勾配降下法及び前誘導体を見つける勾配法バックプロパゲーションの関係:ロールとバックプロパゲーション勾配は、勾配降下方法ステップが必要とされる、換言すれば、最小のコスト関数の偏導関数から計算されます最適化は最適化アルゴリズムのステップによって解決され、ステップの偏微分は勾配法または逆伝播アルゴリズムによって計算されます。

 

参考資料:

1.https://www.bilibili.com/video/BV164411S78V?P = 56、ステーションBのウーエンダ機械学習ビデオP43-P56

 

おすすめ

転載: www.cnblogs.com/feynmania/p/12746565.html