3

現在、単純なニューラル ネットワークとバックプロップ アルゴリズムを Python で numpy を使用して実装しています。中心差分を使用して backprop メソッドを既にテストしましたが、結果の勾配は同じです。

ただし、ネットワークは単純な正弦曲線を近似できません。このネットワークには、tanh 活性化関数を持つ 1 つの隠れ層 (100 ニューロン) と、線形活性化関数を持つ出力層があります。各ユニットにはバイアス入力もあります。トレーニングは、学習率 0.2 の単純な勾配降下法によって行われます。

問題は、すべてのエポックが大きくなる勾配から発生しますが、その理由はわかりませんか? さらに、学習率を下げても問題は変わりません。

編集: コードをペーストビンにアップロードしました: http://pastebin.com/R7tviZUJ

4

4 に答える 4

1

非常に単純なターゲット関数の場合でも、(別のライブラリ DL4J で) 同様の問題が発生しました。 私の場合、問題はコスト関数であることが判明しました。 負の対数尤度からポアソンまたは L2 に変更すると、適切な結果が得られるようになりました。(そして、指数関数的な学習率の減衰を追加すると、私の結果ははるかに良くなりました。)

于 2017-02-09T18:16:50.357 に答える