3

3つの入力、2つの隠れ層(それぞれ6つのニューロン、シグモイド活性化関数)、および出力として1つのニューロンを持つネットワークがあります。私は分類ネットワークを見ていませんので、私のネットワークは継続的であると期待しています(それが理にかなっていることを願っています)。

私の入力は、1年の日数(0〜365の範囲)を表します。私は実際にそれらを0-1の範囲に正規化します(シグモイドのため)。

私の問題は次のとおりです。トレーニングエラーが小さくても、トレーニングセットを再利用したときの実際の値は正しくありません。実行するエポックの数に応じて、異なる結果が得られます。

ネットワークを数千回以上トレーニングした場合、考えられる結果は2つだけです。トレーニングを少なくすると、より多くの可能性のある結果が得られますが、値は私が期待するものにはほど遠いです。

継続的なネットワークの場合は、2つの隠れ層を使用する方がよいことを読みました。

何が間違っているのかわかりません。あなたが何か助けになることができれば、それは素晴らしいことです。詳細が必要な場合はお知らせください。

ありがとう

更新1

トレーニングセットの要素数を減らしました。今回、ネットワークは少数のエポックに収束しました。トレーニングエラーは次のとおりです。


トレーニングネットワーク


反復#1。エラー:0.0011177179783950614

反復#2。エラー:0.14650660686728395

反復#3。エラー:0.0011177179783950614

反復#4。エラー:0.023927628368006597

反復#5。エラー:0.0011177179783950614

反復#6。エラー:0.0034446569367911364

反復#7。エラー:0.0011177179783950614

反復#8。エラー:8.800816244191594E-4


最終エラー:0.0011177179783950614


4

1 に答える 1

5

出力ニューロンには、(シグモイドではなく) 線形活性化関数が必要です。線形活性化関数の出力は、すべての入力の加重合計です。

出力レイヤーで線形活性化関数を使用すると、出力ターゲット値を 0 から 1 の間でスケールアウトする必要がなくなります。

層の数について... 通常、ほとんどの問題には 1 つの隠れ層で十分ですが、問題によって異なります。さまざまなネットワーク構造を試して、何が最適かを確認する必要があります。

于 2012-09-21T19:13:35.160 に答える