1

Java コードで levenberg アルゴリズムを実装しようとしましたが、いくつかの問題に遭遇しました。何が問題なのかわかりませんが、MSE の数は減りません。このネットワークは、1 つの隠れ層、18 の入力のニューロン、7 つの隠れのニューロン、および 3 つの出力のニューロンで作成されました。これらは、ヤコビ行列を計算するために使用する式です。

  • b2=f'(陰)
  • wjk=b2*zj
  • din=sum(b2*wjk)
  • b1=din*f'(ジン)
  • vij=b1*xi

すべて、ヤコビ行列に保存されます

j[iteration][]={vij,b1,wjk,b2}

ネットワークエラーを取得するには、ヤコビアン転置で乗算して勾配を見つけます。次のコードを使用しました。

public double err(int[]t,double[]y){
    double err=0;
    for(int z=0;z<out;z++){
        err+=t[z]-y[z];
    }return err;
}

このネットワークの MSE を計算するために、次のコードを使用しました。

public double mse(int[]t,double[]y){
    double mse=0;
    for(int z=0;z<out;z++){
        mse+=Math.pow(t[z]-y[z],2);
    }return mse;

}

すべてのデータ入力を反復するときにエラーと MSE 関数 i の両方が呼び出され、すべての MSE の合計がデータ入力の合計で除算されます。

4

0 に答える 0