最近在训练超参,对于学习率这个是个很古老而又没有确定答案的问题了,我找了目前最好的自适应学习率的,是google出品的,应该可以。是我在使用adadgrad的时候看到的。伪代码如下:
假设在时间t时刻求的的梯度是grad(t)。那么
g(t) = (1-p)*grad(t)^2 = p*g(t-1)
delta = sqrt(s(t-1) + e)/sqrt(g(t) + e)*(-grad(t))
s(t) = (1-p)*delta^2 + p*s(t-1)
W = W(t-1)+delta
代码很简单一共就这4句话,设置g(0) s(0)都为0即可。p我取得是0.95。别人测试的结果是收敛速度的确快!配合early stop应该效果不错