我试图实现神经网络的具有5隐藏层分类,和与在输出层SOFTMAX交叉熵。实现在JAVA。
为了优化,我已经使用MiniBatch梯度下降(批量大小= 100,学习率= 0.01)
然而,几次迭代后,权重成为“南”,并预测值变成是对每个测试用例相同。
无法调试这个错误的根源。这里是GitHub的链接代码(与测试/培训文件。)https://github.com/ahana204/NeuralNetworks
就我而言,我忘了标准化训练数据(减去均值)。这是导致我的SOFTMAX的分母为0。希望这有助于。
假设你执行的代码是正确的,原因之一是大的学习率。如果学习速率大,权重可能不收敛,并可能变得非常小或非常大的可能被显示为NaN。尽量降低学习率是否有任何变化。