问题描述
求解优化问题
f(w) 具有连续一阶偏导
梯度下降(GD)
梯度下降的计算步骤如下:
-给定初点 ω(1) , 允许误差 ϵ , 置 k=1
-计算梯度方向 g(k)=▽f(wk)
-若 ∥g(k)∥<ϵ , 停止计算, 否则,继续计算 w(k+1)=w(k)−ηg(k) , k=k+1 , 转步骤 2
随机梯度下降(SGD)
随机梯度下降法的计算步骤如下:
1. 给定初始点
ω(1)
, 允许误差
ϵ
, 置
k=1
2.进行第 k 轮计算迭代:
对于第
i 个样本,计算梯度方向 g(k)i=▽f(wk)i计算第 i 个样本,计算
w(k)=w(k)−ηg(k)i 3.第 k 轮迭代,计算完所有的样本之后,
w(k+1)=wk ,如果 ∥w(k+1)−w(k)∥<ϵ ,停止计算,否则,继续步骤 2
牛顿法
假设 f(w) 是二次可微实函数,我们把 f(w) 在 w(k) 展开成Talyor级数,并取二阶近似:
f(w)≈ϕ(w)=f(w(k+1))+▽f(w(k))(w−w(k))+12(x−x(k))▽2f(wk)(x−x(k)),
其中 ▽2f(w(k)) 是 f(w) 在 w(k+1) 处的 Hesse 矩阵,为求 ϕ(w) 的平稳点,令
▽ϕ(w)=0
即,
▽ϕ(w(k))+▽2f(w(k))(w−w(k))=0
设 ▽2f(w(k)) 可逆,得到牛顿法的迭代公式,
w(k+1)=x(k)−▽2f(w(k))−1▽f(x(k)),
其中 ▽2f(w(k))−1 是Hesse矩阵 ▽2f(w(k)) 的逆矩阵。因此牛顿法的迭代公式可写为,
w(k+1)=w(k)−ηH(k)g(k)
其中 H(k) 为Hesse矩阵的逆, g(k) 为一阶梯度。
拟牛顿法
牛顿法中需要求Hesse矩阵的逆,计算量增大,在拟牛顿法中,我们计算Hesse逆矩阵的近似来代替Hesse矩阵的逆:
▽2f(w(k+1))(w(k)−w(k+1))=▽f(w(k+1))−▽f(w(k))
H(k+1)(w(k)−w(k+1))=▽f(w(k+1))−▽f(w(k))
其中 H(k) 为Hesse逆矩阵的近似。
BFGS
H(k) 的更新形式为,
H(k+1)=V(k)TH(k)V(k)+ρ(k)s(k)s(k)T
其中, ρ(k)=1y(k)Ts(k) , V(k)=I−ρ(k)y(k)s(k)T , s(k)=w(k+1)−w(k) , y(k)=▽f(w(k+1))−▽f(w(k)) 。最终的迭代形式如下,
H(k+1)=H(k)+1s(k)Ty(k)(1+y(k)TH(k)y(k)s(k)Ty(k))s(k)s(k)T−1s(k)Ty(k)(s(k)y(k)TH(k)+H(k)y(k)s(k)T)随着迭代的进行, H(k) 会变得越来越稠密,当问题规模较大时,存储和计算 H(k) 会变得越来越不可行。
L-BFGS
L-BFGS算法是限定内存的BFGS算法。由于存储 H(k) 耗费较多的空间,因此L-BFGS算法存储有限次的 {s(k),y(k)} 。
Coordinate Gradient
FTRL