-
08233676 :Anonymous
2014-07-01 15:21
-
久々に書き込みが失敗に終わった。
http://nozomi.2ch.net/test/read.cgi/market/1391328780/
多様性を自発的に確保する実装において、ノード間バイアスノードは次のレイヤーの同一のノードへの出力にかかわる重みの
再調整という形を取る。
入力ノードinput1とinpu2、中間ノードhidden1とhidden2、最終出力ノードoutput、最終出力バイアスoBがあるとする。いずれも
実体は浮動小数点型だ。
input1とinput2からhidden1への出力にかかわる重みをi1h1W、i2h1Wとし、i1h1W > i2h1Wであれば、通常の誤差逆伝播の後に、
次のような調整を行う。
if AbsoluteValue(oB[1]) > AbsoluteValue(oB[2])
then i1h1W = i1h1W[1] - (i1h1W[1] - i2h1W[1]) * 0.008
else i1h1W = i1h1W[1] + (i1h1W[1] - i2h1W[1]) * 0.008;
if AbsoluteValue(oB[1]) > AbsoluteValue(oB[2])
then i1h1W = i1h1W[1] - (i2h1W[1] - i1h1W[1]) * 0.008
else i1h1W = i1h1W[1] + (i2h1W[1] - i1h1W[1]) * 0.008;
「0.008」はパラメータであり、使用目的によって調整したほうがいい。
中間ノードと出力ノードについても、やり方は全く同じである。
初期値として設定するならば、次のようなものが望ましいと思う。
i1h1W = 0.5,
i2h1W = 1.0,
i1h2W = 1.0,
i2h2W = 0.5,
h1oW = 0.499,
h2oW = 0.501
乱数を用いる場合にも、i1h1W > i2h1Wであれば、i1h2W < i2h2Wとしなければならない。
Powered by shinGETsu.