神经网络中动量因子是什么意思?
0 2672
0
该提问暂无详细描述
收藏
2021-01-23 13:43 更新 anna •  5042
共 1 个回答
高赞 时间
0

在神经网络中,我们使用梯度下降优化算法来最小化误差函数以达到全局最小值。在理想情况下,误差函数如下所示: 因此,你可以确保找到全局最优值,因为没有局部最小值可以使优化陷入困境。但是实际上错误表面更加复杂,可能包含多个局部最小值,并且看起来像这样: 在这种情况下,很容易陷入局部最小值,该算法可能会认为你达到了全局最小值,从而导致次优结果。

为了避免这种情况,我们在目标函数中使用了动量项,该动量项是介于0和1之间的值,该值通过尝试从局部最小值跳到最小值而增加了步长。

如果动量项较大,则学习率应该保持较小。动量值很大也意味着收敛将很快发生。但是,如果将动量和学习率都保持在较高的值,那么你可能会大步跳过最小值。

较小的动量值不能可靠地避免局部最小值,并且还可能减慢系统的训练速度。如果梯度不断改变方向,动量也有助于平滑变化。

正确的动量值可以通过命中和试验来学习,也可以通过交叉验证来学习。

收藏
2021-01-23 14:31 更新 karry •  4540