1

我尝试在 java 代码中实现 levenberg 算法,但遇到了一些困难,我不知道是什么问题,但是 MSE 的数量并没有下降。我用 1 个隐藏层、18 个输入神经元、7 个隐藏神经元和 3 个输出神经元制作了这个网络。这些是我用来计算雅可比矩阵的公式:

  • b2=f'(阴)
  • wjk=b2*zj
  • din=sum(b2*wjk)
  • b1=din*f'(zin)
  • vij=b1*xi

所有这一切,将保存在雅可比矩阵中

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

为了获得网络错误,它将与 jacobian transpose 相乘以找到它的梯度,我使用了以下代码:

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 函数,并且所有 MSE 的总和将除以数据输入的总和。

4

0 回答 0