梯度与方向导数
方向导数,注意并不只是沿着坐标轴方向,而是任意方向上求导。
上升最快的方向导数,即是梯度。
梯度下降
求最小值时的解,很难直接写出解析解,改用沿着下降方向的前进,找到最小值。有几点:
停止条件:函数值变化很小,梯度趋近于0, 设置最大迭代次数
梯度下降选的就是负梯度方向,就是下降充要条件:∇f(xk)Tdk≤0 选L2范数时,这个值最小。若选L1范数,则方向是梯度最大分量的反方向,就是最速下降法。
过程:
1. 设置初始步长t>0,容许度0<α<1,折半因子0<β<1
,尝试次数k=1,最大尝试次数kmax,
2. 获取搜索方向d,这里可以为负梯度,牛顿方向
3. 尝试wnew←w+td;k←k+1,计算L(wnew)
4. 如果L(w)−L(wnew)<t∗α∣<d,∇L(w)>∣ 或者k≥kmax,跳出,返回wnew,L(wnew) ;否则,减小步长:t←βt跳到3.
line search
line search可以用来搜索任何下降方向的可行步长。
f(xk+tkdk)=mintf(xk+tdk)
有精确直线搜索和非精确直线搜索
证明:
tminf(xk+tdk)dkT∇f(xk+tkdk)=0dkTdk+1=0 wolfe条件
直线搜索停止条件Armijo Condition:
L(w+td)≤L(w)+α∗t∗∇L(w)Td
函数值需要充分下降
Curvature条件:
∇L(w+td)Td>η∇L(w)Td;0<α<η<1
函数下降的情况下步长尽可能的长
这两个条件合起来成为wolfe条件,可推导迭代优化的收敛性
缺点:收敛速度慢,需要迭代轮数过多
收敛性分析
∥∇f(x)∥2⩽ϵ 这是一般梯度下降的停止条件之一。
∣∣xk+1−x∣∣Q2≤(λn+λ1λn−λ1)2∣∣xk−x∣∣Q2
梯度下降的数据由二次型矩阵的最大和最小特征值比值确定著作权归作者所有。这两个值越接近,收敛越快。特别的,若它们相等(意味着所有等高线都是正圆),一次迭代即可收敛。
所以,feature scaling会 使gradient descent的收敛更好。
feature scaling?减去均值,再除以标准差?
凸优化里面有探讨过这个问题, 具体证明可参考一般的凸优化课本. 想补充的一点是, 这也是Newton's method优于gradient descent的一个方面. Newton's method是affine invariant的, 就是收敛速度不受坐标系变换影响。
但是用adaptive gradient descent就没这个问题了。
参考佳文