我用Java创建了一个用反向传播算法学习的人工神经网络,我制作了下图,显示了学习速率的变化如何影响网络训练所需的时间。
似乎表明学习非常不稳定,因为它要么非常快速地训练要么被卡住(反向传播将在1分钟或特定错误阈值停止训练)。我想了解为什么网络如此不可预测,动力是否过高?我需要自适应学习率吗?这是当地最小值如何影响培训http://www.willamette.edu/~gorr/classes/cs449/momrate.html的一个很好的例子。
这是我制作的图表: http://i.stack.imgur.com/ooXqP.png
答案 0 :(得分:0)
如果您在新实验之前初始化随机权重 - 您每次都会从新的随机点(权重空间)开始优化,而对于NN则非常重要,因为从具有梯度下降的不同点开始,您将收敛到不同的局部最优值当然,具有不同的迭代次数和收敛所需的不同时间。您只需要生成初始化权重一次,并使用该状态的新学习率开始每个实验,而不是从新的随机状态开始。