1

私は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のウェブサイトに記載されている「はじめに」XOR機能(私はすでに私の1つのリンクの制限を使用しました)

+0

私はわからないんだけど、私はANNは常にトレーニングデータの正確な出力を返しませんね。訓練のためのアルゴリズムが保証するかどうか確認する必要があります –

+0

ネットワークはどのように定義されていますか?レイヤー数、レイヤーあたりのニューロン数、接続数はどれくらいですか?どのようなアクティベーション機能を使用していますか? – rodrigoap

+0

私はさまざまなレイアウトを試しました。 4つの層、8つの入力、1つの出力、中間の10のニューロンの2つの層、または3つの層8つの入力、1つの出力、中間の20。私は接続とアクティベーション機能についてはわかりません - 私は自分のやり方の始めにすぎず、ライブラリのデフォルトを使用しています。 – 7macaw

答えて

3

短い答えのために正常に動作します正しい):

第1回:トレーニング・ランは、テスト・データのように出力に影響を及ぼす位置に向かってニューロンの重みを移動するだけです。いくつかの/多くの繰り返しの後、出力は期待される出力に近づくはずです。ニューロネットワークが私の持っている仕事まであります。

2番目:すべての問題に対してすべてのニューロンネットワークが働くわけではありません。単一のニューロンについては、単一のニューロンで近似できない単純な関数を考えるのはかなり簡単です。見ることは容易ではありませんが、すべてのニューラルネットワークに同じ制限が適用されます。そのような場合、あなたの結果は非常に乱数のように見えます。コメント後に編集:多くの場合、ニューロンをネットワークに追加することでこれを修正できます。

第3点:実際に最初の点は、ネットワークが異常値をうまく処理できるため、ニューラルネットワークの強みです。

第四:私は音楽の私の不足の理解のために3を非難します。

+0

ありがとうございます!今私は少なくともいくらかの方向性を持っている。 – 7macaw

+0

REあなたの2番目のポイントは、「近似値」をどのように定義するかによって異なります。内部ニューロンの数を変えれば、関数を近似することができます(Taylorシリーズに近似する項を追加するのと同じように)。 –

2

いいえ、トレーニングデータでANNを完全に機能させると、本当に簡単に問題が発生するか、あまりにもオーバーフィットになります。

関連する問題