バックプロパゲーション (誤差逆伝播; backpropagation)

フィードフォワードニューラルネット(主に多層パーセプトロン)において用いられる教師あり学習の手法。出力の誤差を、入力が伝播するのと逆方向に伝播させ学習することでローカルミニマムを得る。誤差逆伝播法。

-- あかほ

フィードフォワードニューラルネットで,損失関数 \(\text{E}(\mathbf{w})\) の勾配を求める方法. 勾配が計算できればあとは,\(\mathbf{w}'=\mathbf{w} - \eta \nabla\text{E}(\mathbf{w})\) を繰り返し適用する最急降下法で局所最適解が得られる.

以下,多層パーセプトロンのページの表記を用い,2層の多層パーセプトロン損失関数が次の2乗誤差である場合について記す. \[\text{E}(\mathbf{w})=\sum_n\frac{1}{2}\sum_k\Bigl(y_k(n)-y^\ast_k(n)\Bigr)^2\] \(y_k^\ast(n)\) は,n番目の訓練事例の入力 \(x_i(n)\) に対する訓練出力の値で,\(y_k(n)\) は,\(x_i(n)\) に対するネットワークの出力.

このとき誤差逆伝播アルゴリズムは以下のとおり.ただし,簡単のため入力 \(x_i(n)\) に関するものだけを示し,\((n)\) は省略して示す.以下のアルゴリズムで求めた勾配を,全ての訓練事例について和をとれば,訓練集合全体に対する勾配が計算できる.

  1. 順伝播:\(\mathbf{x}\) を入力して,隠れユニット,出力ユニットの順に出力を次式で計算 \[x^{(2)}_j=f^{(1)}\Bigl(\sum_i w_{ji}^{(1)}x_i\Bigr)\] \[y^k=f^{(2)}\Bigl(\sum_j w_{kj}^{(2)}x_j^{(2)}\Bigr)\]
  2. 出力ユニットの誤差を計算 \[\delta^{(2)}_k={f'}^{(2)}(\sum_j w_{kj}^{(2)}x_j^{(2)})(y_k - y_k^\ast)\]
  3. 逆伝播:隠れユニットの誤差を,出力ユニットの誤差を次式で逆伝播させて計算 \[\delta^{(1)}_j={f'}^{(1)}(\sum_i w^{(1)}_{ji} x_i)\Bigl(\sum_k w_{kj} \delta^{(2)}_k\Bigr)\]
  4. 勾配:各ユニットの勾配は次式で計算 \[\frac{\partial\text{E}}{\partial w^{(2)}_{kj}}=\delta_k^{(2)}x_j^{(2)}\] \[\frac{\partial\text{E}}{\partial w^{(1)}_{ji}}=\delta_j^{(1)}x_i\]

-- しましま

関連項目

リンク集

関連文献


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-11 (木) 16:12:24