优化方法简单总结

优化方法简单总结

梯度下降法:

延梯度方向更新参数,此时目标函数变化最大。
收敛阶 O ( 1 t ) O(\frac{1}{t}) O(t1),收敛速度越来越慢

牛顿法:

用来解方程的根,将原极值问题转化为 l ′ ( θ ) = 0 l'(\theta)=0 l(θ)=0
迭代格式 θ ′ = θ − l ′ ( θ ) l ′ ′ ( θ ) \theta '=\theta-\frac{l'(\theta)}{l''(\theta)} θ=θl(θ)l(θ)
当自变量为向量时,需要求二阶导数矩阵(Hessien矩阵)的逆,收敛速度快,但计算量较大。
拟牛顿法思想主要近似Hessien矩阵,BFGS用迭代点用一阶导差值迭代来近似每次的Hessien矩阵。
牛顿迭代法收敛阶
设真值为 α \alpha α,将函数在 x k x_k xk处泰勒展开 f ( α ) = f ( x k ) + f ′ ( x k ) ( x − α ) + f ′ ′ ( ξ ) 2 ( x k − α ) 2 = 0 f(\alpha)=f(x_k)+f'(x_k)(x-\alpha)+\frac{f''(\xi)}{2}(x_k-\alpha)^2=0 f(α)=f(xk)+f(xk)(xα)+2f(ξ)(xkα)2=0
解出 α \alpha α α = x k − f ( x k ) f ′ ( x k ) − f ′ ′ ( ξ ) 2 f ′ ( ξ ) ( α − x k ) 2 = x k + 1 − f ′ ′ ( ξ ) 2 f ′ ( ξ ) ( α − x k ) 2 \alpha = x_k-\frac{f(x_k)}{f'(x_k)}-\frac{f''(\xi)}{2f'(\xi)}(\alpha-x_k)^2=x_{k+1}-\frac{f''(\xi)}{2f'(\xi)}(\alpha-x_k)^2 α=xkf(xk)f(xk)2f(ξ)f(ξ)(αxk)2=xk+12f(ξ)f(ξ)(αxk)2
lim ⁡ x k + 1 − α ( x k − α ) 2 = C \lim \frac{x_{k+1}-\alpha}{(x_k-\alpha)^2}=C lim(xkα)2xk+1α=C
所以牛顿法至少二阶收敛
多元泰勒展开与牛顿迭代法
f ( X ) = f ( X k ) + ∇ f ( X k ) ( X − X k ) + 1 2 ( X − X k ) T G x k ( X − X K ) + O f(X)=f(X_k)+\nabla f(X_k)(X-X_k)+\frac{1}{2}(X-X_k)^TG_{x_k}(X-X_K)+O f(X)=f(Xk)+f(Xk)(XXk)+21(XXk)TGxk(XXK)+O

常用拟牛顿法:

  1. Limited-memory BFGS, 不储存近似矩阵,而是使用时重新构造
  2. TNC (Truncated Newton)
  3. Trust Region(Trust Region Newton) 大多数时候表现最好
共轭梯度法:

共轭方向法与梯度的结合,原问题用来求解对称正定线性方程组的根,可推广到一般优化问题,效率介于梯度下降与牛顿法之间。
求解 A x = b Ax=b Ax=b,等价于最优化 m i n 1 2 x T A x + b x + c min \frac{1}{2}x^{T}Ax+bx+c min21xTAx+bx+c
共轭梯度法中每一次的迭代方向 d 1 , d 2 , . . . , d n d_1,d_2,...,d_n d1,d2,...,dn都是关于A共轭的,即 d i T A d j = 0 d_i^TAd_j=0 diTAdj=0
第一次的迭代方向选为梯度的负方向 d 0 = − g 0 d_0=-g_0 d0=g0,之后每次的方向与前一次共轭,且是新点梯度与之前方向的线性组合, d 1 = − g 1 + r 0 d 0 d_1= -g_1 +r_0d_0 d1=g1+r0d0,再按照共轭的条件解出 r 0 r_0 r0,即得到新的方向。
在每个方向上,line search找出此时函数的极值,在极值点进行下一次的方向搜索。理论上n维二次问题通过n的、次迭代即可求出精确解。
一般问题在迭代n次之后,新的方向不会与之前的方向共轭,此时要修正梯度,即可再产生一组共轭方向,例如此时把方向直接取为梯度负方向

坐标轴下降法:

可微凸函数一直延各个坐标轴方向取极值,最终会收敛到函数的极值。
对于 m i n f ( x ) , x = ( x 1 , x 2 , x 3 , . . . , x n ) min f(x),x=(x_1,x_2,x_3,...,x_n) minf(x),x=(x1,x2,x3,...,xn)
首先固定 x 2 , . . , . x n x_2,..,.x_n x2,..,.xn更新 x 1 ′ = a r g m i n f ( x ) x_1'=argminf(x) x1=argminf(x),
再固定 x 1 ′ , x 3 , . . . , x n x_1',x_3,...,x_n x1,x3,...,xn更新 x 2 ′ x_2' x2

固定 x 1 ′ , x 2 ′ , . . . , x n − 1 ′ x_1',x_2',...,x_{n-1}' x1,x2,...,xn1更新 x n ′ x_n' xn
即完成一次迭代,继续上述过程直到满足误差条件

拓展: f ( x ) = g ( x ) + ∑ h i ( x ) f(x)=g(x)+\sum h_i(x) f(x)=g(x)+hi(x)其中 g ( x ) g(x) g(x)可微, h i ( x ) h_i(x) hi(x)为凸函数,上述情况也成立。所以coordinate decent可用于解决带有L1正则化的优化问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值