私は多層パーセプトロンを研究しており、2D 空間の分類点の単純なネットを作成しています。勢いのあるバックプロパゲーション アルゴリズムによるネット トレイン。残念ながら、ローカル エラーがゼロになったとしても、グローバル エラーは依然として非常に高く、その理由がわかりません。[100, 150] のコンソール範囲でのグローバル エラーの出力。だから、私の主な質問: どうすればこのエラーを減らすことができますか?
私は明らかに、私のプロジェクトでアーカイブへのリンクを提供しています。それについて一言: net のほとんどすべてのパラメータはファイル libraries.h にあります (入力層、隠れ層、出力層の次元、学習率、運動量率、シグマとシグマ導関数の定義)。 . net の構造はファイル perceptron.cpp にあり、グラフィックス ライブラリは plot.cpp にあります。プロジェクトをテストするには、実行する必要があります。表示されたウィンドウで、クラスの中心になりたいポイントでマウスの左ボタンをクリックします。ウィンドウを右クリックすると、それらの中心を中心とした半径 5 の円内にランダムなポイントが生成され、このポイントでネットがトレーニングされます。
誰かが理論的な解決策を提供したり、私のコードを再検討したりすることができれば、非常に感謝しています.
1 に答える
0
問題を正常に解決しました。
まず第一に、点のグループの中心が間違っていたため、この点は 2D 空間で完全に分離できなくなりました。
第二に、セットからランダムなポイントを選択するようにトレーニングのプロセスを書き直す必要がありました。
そして 3 つ目は、double を int にキャストすることは、これまでで最高のアイデアではないことがわかりました (データの損失が非常に多い)。
コードの最終バージョンへのリンク:クリック
于 2015-05-10T09:15:01.670 に答える