2017-01-02 14 views
0

私自身の多層パーセプトロンを初めて実装した後、私は2つの特定のことについて確信が持てませんでした。最初:テストデータを反復処理するとき、ニューラルネットワークの精度が異なるのは正常ですか?たとえば、最初にネットワークを初期化して実行すると、精度は0.7になりますが、2回目はダウンまたはアップする可能性があります。これまで私が気にしてきたことは、ネットワークの初期化を続け、対応するウェイトを最も正確なネットワークに保存することです。 2番目の質問:Jupyter Notebookは、expで遭遇したRuntimeWarning:overflowをスローし続けます。それはあまりにも多くのデータが一度に繰り返されているからですか?バッチ処理を行うことで、ネットワークでデータをより管理しやすくすることができますか? (私はMNISTデータセットを使って作業しています。)コードを投稿する必要があるかどうか教えてください。多層パーセプトロンの典型的な結果は、同じデータに対して異なる反復で異なる結果をもたらすか?

+0

はい、2つのレイヤーを接続する重みが変化しているため、ネットワークの精度が低下するため、ネットワークの精度が変わることは間違いありません。第1の反復においてランダム化される偏りおよび重みのために、初期化は1対1で異なってもよい。 – Arman

+0

ああ、今私は理解している。したがって、ウェイトを0の行列に初期化すると、ネットワークのパフォーマンスのばらつきの量が減少します。 – gian

答えて

0

の重みは、ランダムな値で初期化する必要があります。初期重量によっては、結果が変動し、トレーニング後に出力単位が異なることがあります。しかし、一旦ネットワークが収束すると、計算されたラベルが望ましい限り、これらの小さな変化を省略することができます。 .7は6.9と全く変わらない。あなたが谷を下っていると想像してください。あなたはそれについての事前情報がありません。あなたの目標は谷の表面にすることです。表面にぶつかったことを確認したら、小さな岩の上に座っているのか地面に座っているのかはそれほど重要ではありません。
ニューラルネットワークの全体のアイデアは、ドットプロダクトの周りを回転し、活性化関数を使用して結果をスクラッシュすることを思い出してください。したがって、重みがゼロから始まる場合は、ゼロしか得られません。
2番目の質問に対する答えは「はい」です。小さなニューラルネットワークでも何百万というパラメータがあり、莫大な記憶が必要となる瞬間が来るかもしれないことに注意してください。このような問題を克服する方法があることを心配しないでください! Michael Nielsensの優れた本Neural Networks and Deep Learningをご覧ください。

+0

大変感謝していただきありがとうございます – gian

関連する問題