5

バックプロパゲーションについて簡単な質問があります。私は以下を見ています:

http://www4.rgu.ac.uk/files/chapter3%20-%20bp.pdf

この論文では、ニューロンの誤差を次のように計算すると言います。

エラー=出力(i)*(1-出力(i))*(ターゲット(i)-出力(i))

理解できない方程式の部分を太字で示しています。この論文では、シグモイド関数のためにOutput(i)*(1- Output(i))項が必要であると書かれていますが、なぜこれが必要なのかはまだわかりません。

使用することの何が問題になりますか

Error = abs(Output(i) - Target(i))

エラーはニューロンの活性化/伝達関数に関係なく機能しますか?

4

2 に答える 2

12

これが必要な理由は、ニューロンの入力に関する誤差関数の導関数を計算しているためです。

連鎖律を介して導関数をとるときは、ニューロンの活性化関数の導関数(たまたまシグモイド)を掛ける必要があります。

これが重要な数学です。

連鎖律を介してニューロンの入力の誤差の導関数を計算します。

E = -(target - output)^2

dE/dinput = dE/doutput * doutput/dinput

doutput / dinputを計算します:

output = sigmoid (input)

doutput/dinput = output * (1 - output)    (derivative of sigmoid function)

したがって:

dE/dinput = 2 * (target - output) * output * (1 - output)
于 2012-07-24T10:17:17.387 に答える
0

シグモイド関数の選択は決して恣意的ではありません。基本的に、サンプルが与えられた場合のクラスラベルの条件付き確率を推定しようとしています。絶対値を取ると、別のことをしていることになり、異なる結果が得られます。

このトピックの実用的な紹介については、AndrewNg教授によるオンラインの機械学習コースを確認することをお勧めします。

https://www.coursera.org/course/ml

クリストファー・ビショップ教授によるこのトピックに関する詳細な研究のための本

http://www.amazon.com/Neural-Networks-Pattern-Recognition-Christopher/dp/0198538642/ref=sr_1_1?ie=UTF8&qid=1343123246&sr=8-1&keywords=christopher+bishop+neural+networks

于 2012-07-24T09:49:40.460 に答える