神经网络:体重变化动量和体重衰减


41

动量用于减少连续迭代中权重变化的波动:α

È瓦特瓦特η

Δωi(t+1)=ηEwi+αΔωi(t),
其中是误差函数, -权重向量,学习率。E(w)wη

重量衰减会影响重量变化:λ

Δωi(t+1)=ηEwiληωi

问题是,在反向传播过程中将这两种技巧结合在一起是否有意义,并且会产生什么效果?

Δωi(t+1)=ηEwi+αΔωi(t)ληωi

1
您是说说ωi(t + 1)=ωi-ηE /∂wi+αΔωi(t),而不是Δωi(t + 1)=ωi-η∂E/∂wi+αΔωi(t)吗?
hakunamatata 2016年

Answers:


48

是的,同时使用这两种技巧非常普遍。他们解决了不同的问题,可以很好地合作。

一种思考的方法是,重量衰减会改变正在优化的功能,而动量会改变您达到最佳状态的路径

通过将系数缩小为零,权重衰减可确保您找到具有小幅度参数的局部最优值。这通常对于避免过拟合至关重要(尽管权重的其他类型的约束也可以起作用)。作为附带的好处,通过使目标函数更凸,它还可以使模型更易于优化。

一旦有了目标功能,就必须决定如何在目标功能上四处移动。在梯度上最陡的下降是最简单的方法,但您说对了,波动可能是个大问题,这是正确的。增加动力有助于解决该问题。如果您正在使用批处理更新(对于神经网络通常不是一个好主意),则牛顿型步骤是另一种选择。新的“热”方法基于Nesterov的加速梯度和所谓的“无Hessian”优化。

但是,无论您使用哪种更新规则(动量,牛顿等),仍在使用相同的目标函数,该目标函数由误差函数(例如平方误差)和其他约束条件(例如权重衰减)确定。在决定使用哪种权重时,主要的问题是您将很快获得一组好的权重。


“通过使目标函数更具凸性,它还可以使模型更易于优化”-您能否解释一下较小的权重如何使之成为可能?
亚历克斯(Alex)

这是一个简单的示例,它可以说明这一点:如果您的原始目标函数是,则存在无限多个局部最小值。如果添加的目标函数,比约0.2大,所有的老局部最优的就会消失,你会留下只有一个最小的接近0一个X 2sin(x)ax2a
戴维·哈里斯

好的答案,谢谢。那亚当优化器呢?重量衰减和动量的组合是否表现更好?
A. Piro

亚当就像动量,却不像体重下降。它会影响您浏览目标函数的方式,但不会影响目标函数本身。
David J. Harris
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.