0
在神经网络中,我们使用梯度下降优化算法来最小化误差函数以达到全局最小值。在理想情况下,误差函数如下所示: 因此,你可以确保找到全局最优值,因为没有局部最小值可以使优化陷入困境。但是实际上错误表面更加复杂,可能包含多个局部最小值,并且看起来像这样: 在这种情况下,很容易陷入局部最小值,该算法可能会认为你达到了全局最小值,从而导致次优结果。
为了避免这种情况,我们在目标函数中使用了动量项,该动量项是介于0和1之间的值,该值通过尝试从局部最小值跳到最小值而增加了步长。
如果动量项较大,则学习率应该保持较小。动量值很大也意味着收敛将很快发生。但是,如果将动量和学习率都保持在较高的值,那么你可能会大步跳过最小值。
较小的动量值不能可靠地避免局部最小值,并且还可能减慢系统的训练速度。如果梯度不断改变方向,动量也有助于平滑变化。
正确的动量值可以通过命中和试验来学习,也可以通过交叉验证来学习。
收藏