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


41

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

È(瓦特)瓦特η

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

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

Δωi(t+1)=−η∂E∂wi−ληωi

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

Δωi(t+1)=−η∂E∂wi+αΔω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 2一sin(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.