私は(今日から)ニューラルネットワークを学習しており、1セットの入力に対してAND演算を学習できる2x2x1ネットワーク(前方データフィードと後方エラー伝播)を完成させることができました。また、ランダム化されたパラメーターを使用して、局所的な最小値を回避します。このための私の最初のソースは次のとおりです。
問題は、入力 (0,0) を使用して 0 AND 0 を学習するが、(0,1) を与えると 0 AND 0 を忘れてから 0 AND 1 を学習することです。これは一般的な初心者のバグですか?
私が試したこと:
loop for 10000 times
learn 0 and 0
end loop
loop for 10000 times
learn 0 and 1 (forgets 0 and 0)
end loop
loop for 10000 times
learn 1 and 0 (forgets 0 and 1)
end loop
loop for 10000 times
learn 1 and 1 (forgets 1 and 0)
end loop
only one set is learned
fail
試行 2:
loop for 10000 times
learn 0 and 0
learn 0 and 1
learn 1 and 0
learn 1 and 1
end loop
gives same result for all input combinations.
fail.
各ニューロンの活性化関数: 双曲線正接
2x2 構造: 全ペア
2x1構造:オールペア
ランダム化された学習率: はい、爆発的な反復から遠ざけるのに十分小さい (反復ごと)
ニューロンごとのランダム化されたバイアス: はい、-0.5 から +0.5 の間 (開始時)
ランダム化された重み付け: はい、-0.5 から +0.5 の間 (開始時)
編集:バイアスと重みの更新は、非表示レイヤーと出力レイヤーのすべてのペアに対して行われます。
編集:すべてのニューロン (非表示 + 出力) は同じ活性化関数を使用します。