1

私はすべてのコードを調べましたが、それが本当に問題である場合、それがどのように私を逃したのかわかりません。投稿するには長すぎるので、私の問題、修正のために調べたもの、他に何を検索できるかについてのアイデアがあれば、私は非常に感謝しています!

わかりました。最初に、haykin の指示に従って、平均ゼロと、そのニューロンの入力数の 1/平方根に等しい分散で重みが初期化されます。

最初に学習するために単純な正弦波を与えました。隠れ層の重みは、その層内の各ニューロンに同じ出力を与えるように収束しているように見えます...これにより、出力ニューロンはほぼ固定された出力を与えます。

では、何が原因でしょうか?最初に、ネットワークの学習率が原因で極小値に引っかかっているかどうかを確認し、それを増やしました。また、運動量の有無にかかわらず試しました。ネットワークが正弦波を生成するため、問題が多少修正されることがわかりました。ただし、適切ではありません!:(

ネットワーク出力は、中心軸から高さの約 3 分の 1 の振幅を持ち、下には行きません。正弦波を拾い上げ、3 分の 1 に押しつぶし、それを上げて、軸上の最も低いピークに合わせたように見えます。さらに、トップピークはすべてフラットです...

それ以来、ネットワーク トポロジを変更してみました。これにより、別の非表示ニューロン (合計 3 つ) を追加すると、突然固定出力しか得られなくなりました。

4

1 に答える 1

0

正弦波は、シグモイド活性化関数を持つニューラル ネットワークにとって簡単な問題ではありません。通常、3 つの隠れニューロンでは十分ではありません。この例を見てみましょう: [0, 2*pi] 内の正弦波を近似するための 200 個の隠しノードがあります。この例の活性化関数は、非表示層のロジスティック シグモイドと出力層のアイデンティティです。回帰の出力レイヤーでは、常に ID を使用する必要があります。

良い結果が得られない場合は、学習率を下げることも有益な場合があります。学習率が大きすぎるために、勾配降下法が誤差関数の急勾配の領域間で振動することがあります。

于 2013-04-29T07:05:17.460 に答える