私はニューラルネットワークとプログラミング全般に不慣れです。Java でニューラル ネットワークを作成し、サッカーのデータを見ています。2 つの入力があります。
1) ホームチームの n 試合での勝率 2) アウェイチームの n 試合での勝率 %
「標準的な統計モデル」を使用すると、これら 2 つの数字だけを使用して、妥当な精度で試合で発生するゴールの数を予測できます。ただし、目標数を予測するために NN をトレーニングしようとすると、単純に収束しません:(
私は遺伝的アルゴリズムを使用してネットワークをトレーニングしています。これは、人口サイズが 100,000 の最初の数世代の最も適した個体です。
1) 0.1407408056662556 2) 0.13406266176967252 3) 0.13406267600215235 4) 0.1338753567259805 5) 0.13280257001618265 6) 0.13275165964860766 7) 0.1319768652096691 8) 0.13161029326238236
収束しているように見えることがわかりましたが、非常に遅い速度で収束しており、これを何世代にもわたって何度も実行しましたが、0.13 を下回ることはありません。
10 個のニューロンからなる 1 つの隠れ層と 1 つの出力ニューロンを備えたフィードフォワード ニューラル ネットワークを使用しています。隠れ層で双曲線正接シグモイド関数を使用し、出力層でシグモイド関数を使用しています。目標数を 10 で割って、0 から 1 の間の出力を得ました。
これを実行する前は、NN は単純な統計モデルよりも優れていると思っていましたが、実際にはそうではありませんでした。私の質問は:
表示される結果から、コードのどこかにエラーがあるように見えますか? ネットワークのアーキテクチャを変更する必要がありますか? ネットワーク入力/トレーニング データを何らかの方法で変更する必要がありますか?
私はしばらくの間、問題を特定しようとしてきましたが、それは私を精神的に駆り立てています. どんなアドブも大歓迎です。
どうもありがとう。