ANN をトレーニングしようとしています (このライブラリを使用します: http://leenissen.dk/fann/ )。結果はやや不可解です。基本的に、トレーニングに使用したのと同じデータでトレーニング済みネットワークを実行すると、出力は次のようになります。トレーニングセットで指定されたものではなく、乱数です。
たとえば、トレーニング ファイルの最初のエントリは次のようになります。
88.757004 88.757004 104.487999 138.156006 100.556000 86.309998 86.788002
1
最初の行は入力値で、2 行目は目的の出力ニューロンの値です。しかし、まったく同じデータを訓練されたネットワークにフィードすると、訓練の試行ごとに異なる結果が得られ、それらは 1 とはまったく異なります。たとえば、次のようになります。
Max epochs 500000. Desired error: 0.0010000000.
Epochs 1. Current error: 0.0686412785. Bit fail 24.
Epochs 842. Current error: 0.0008697828. Bit fail 0.
my test result -4052122560819626000.000000
そして、別の試みで:
Max epochs 500000. Desired error: 0.0010000000.
Epochs 1. Current error: 0.0610717005. Bit fail 24.
Epochs 472. Current error: 0.0009952184. Bit fail 0.
my test result -0.001642
トレーニング セットのサイズが不十分である可能性があることは認識していますが (これまでのところ、入力/出力のペアは約 100 しかありません)、少なくともトレーニング データが正しい出力値をトリガーするべきではありませんか? 同じコードは、FANN の Web サイトで説明されている「はじめに」の XOR 関数でも問題なく機能します (1 リンクの制限を既に使い果たしています)。