1、adaptive learing rate
最简单的原则:学习率会随着迭代次数的增多而减小;因为在开始的时候,我们离目的地太远,所以需要使用比较大的学习率,经过好几次的参数更新之后,离目标已经很近了
比如常见的例子经过t次之后,
另外不同的参数需要不同的学习率
Adagrad:每一个参数的学习率都除上之前迭代次数中所计算的该参数的导数的均方根,所以每个参数的学习率都不一样
(1)
(2)
(3)i从0开始,所以是t+1
经过上(1-2-3-)式
(4)
上面(4)有个矛盾的地方,越大,代表其梯度越大,参数更新越快,但是前面的系数的分母也含参数,表明,梯度越大,参数更新越慢。这是为了造成反差的效果,以防前几次梯度太大,而这次梯度太小,或者相反,造成一个具有反差的例子。
对于单参数来说,梯度和Loss是可能成正比的,梯度越大,可能Loss越大,比如二次函数型的Loss。但是对跨参数来说,是不成立的,需要引入二次微分,即使用一次微分除以偶尔此微分,可以比较当前不同参数离最低损失的参数的距离,
而Adagrad中,中可以放映二次微分的大小(并不是对其求近似),而且在不增加额外计算的情况下
2、Stochastic Gradient Descent(随机梯度下降)
每次只计算一个sample的梯度,并更新,虽然不稳定,但是很快
3、Feature Scaling
能够加快收敛速度,一个方法:对所有的sample,求每一个特征的均值及标准差,然后标准化
梯度下降,就相当于以当前参数为圆心,以补偿为半径,画一个圆/球,找到圆/球上的Loss最小,而梯度下降,是根据求梯度的反方向作为Loss的最低。
Tarlor级数:h(x)在x=x0可微分,h(x)=h(x0)+h'(x0)(x-x0)
h(x,y)=h(x0,y0)+ah(x0,y0)*(x-x0)/ax+ah(x0,y0)*(y-y0)/ay