我已经实现了一个有 2 层的神经网络(使用 CUDA)。(每层 2 个神经元)。我试图让它使用反向传播学习 2 个简单的二次多项式函数。
但不是收敛,而是发散(输出变得无穷大)
以下是有关我尝试过的更多详细信息:
- 我已将初始权重设置为 0,但由于它是发散的,因此我将初始权重随机化
- 我读到如果学习率太高,神经网络可能会发散,所以我将学习率降低到 0.000001
- 我试图让它添加的两个功能是:
3 * i + 7 * j+9
和j*j + i*i + 24
(我给图层i
和j
作为输入) - 我之前已经将它实现为单层,这样可以更好地逼近多项式函数
- 我正在考虑在这个网络中实施动力,但我不确定它是否有助于它学习
- 我正在使用线性(没有)激活函数
- 一开始有振荡,但是当任何权重大于 1 时输出开始发散
我已经检查并重新检查了我的代码,但似乎没有任何问题。
所以这是我的问题:这里出了什么问题?
任何指针将不胜感激。