1
バックプロパゲーション手法の違い
楽しみのためだけに、ニューラルネットワークを開発しようとしています。 さて、逆伝播のために2つのテクニックを見ました。 最初のものは、ここと他の多くの場所でも使用されています。 それは何ですか: 各出力ニューロンのエラーを計算します。 それをネットワークに逆伝播します(各内部ニューロンのエラーを計算します)。 次の式で重みを更新します(ここで、重みの変化、学習速度、シナプスから入力を受信し、シナプスで送信される出力であるニューロンのエラー)。 データセットの各エントリに対して、必要な回数だけ繰り返します。 ただし、このチュートリアルで提案されているニューラルネットワーク(GitHubでも入手可能)は、異なる手法を使用しています。 エラー関数を使用します(他の方法にはエラー関数がありますが、トレーニングには使用しません)。 重みから開始して最終エラーを計算できる別の関数があります。 (勾配降下による)その関数を最小化します。 さて、どのメソッドを使用する必要がありますか? 最初の1つが最も使用されていると思います(それを使用して別の例を見ていたため) 特に、私は知りません: (二次関数を使用していないため)局所的最小値の影響を受けにくいですか? 各重みの変動はその出力ニューロンの出力値の影響を受けるため、データセットのエントリは、出力ニューロンだけでなくニューロンでより高い値を生成するだけで、他のエントリよりも重みに影響しませんか? 今、私は最初の手法を好むのです。なぜなら、実装がより簡単になり、考えやすくなるからです。 しかし、もしそれが私が言及した問題を持っているなら(そうしないことを望みます)、2番目の方法でそれを使用する実際の理由はありますか?