最优化方法

最优化方法,即寻找函数极值点的数值方法。通常采用的迭代法,它从一个初始点 x 0 x_0 x0开始,反复使用某种规则(一阶导数即梯度或者二阶导数信息即Hessian矩阵)从 x k x_k xk到下一个点 x k + 1 x_{k+1} xk+1,直到到达函数的极值点。

最优化问题可统一表述为求解函数的极小值问题,即
m i n x f ( x ) min_xf(x) minxf(x)
其中 x x x称为优化变量, f f f称为目标函数。极大值问题可以转化为极小值问题,只需将目标函数加上负号即可。

梯度下降法

梯度下降法沿梯度向量的方向进行迭代已到达函数的极值点。根据多元函数的泰勒展开式,如果忽略二次及以上的项,函数 f ( x ) f(x) f(x) x x x点处可以展开为
在这里插入图片描述
变形之后,函数的增量与自变量的增量 Δ x \Delta x Δx、函数梯度的关系可以表示为
在这里插入图片描述
如果 ( ▽ f ( x ) ) T Δ x < 0 (\bigtriangledown f(x))^T\Delta x < 0 (f(x))TΔx<0, 则有 f ( x + Δ ) < f ( x ) f(x+\Delta) < f(x) f(x+Δ)<f(x), 函数递减。
当下降方向沿着梯度负方向时函数值下降的最快(参考梯度负方向函数值下降最快详解),设
Δ x = − γ ▽ f ( x ) \Delta x=-\gamma \bigtriangledown f(x) Δx=γf(x)
其中$\gamma $为接近0的正数,称为步长。从初始点 x 0 x_0 x0开始,使用如下迭代公式
x k + 1 = x k − γ ▽ f ( x k ) x_{k+1} = x_k -\gamma \bigtriangledown f(x_k) xk+1=xkγf(xk)
只要没有达到梯度为0的点,函数值会沿着序列 x k x_k xk递减,最终会收敛到梯度为0的点。迭代终止的条件是函数的梯度值为0

牛顿法

对多元函数在 x 0 x_0 x0处进行二阶泰勒展开,有
在这里插入图片描述
忽略二次以上的项,对上式两边同时对x求梯度,得到函数的导数(梯度向量)
Δ f ( x ) = f ( x 0 ) + ▽ 2 f ( x 0 ) ( x − x 0 ) \Delta f(x) = f(x_0)+\bigtriangledown^2 f(x_0)(x-x_0) Δf(x)=f(x0)+2f(x0)(xx0)
其中, ▽ 2 f ( x 0 ) \bigtriangledown^2 f(x_0) 2f(x0)即为Hessian矩阵 H H H,令函数的梯度为0,则有
▽ f ( x 0 ) + ▽ 2 f ( x 0 ) ( x − x 0 ) = 0 \bigtriangledown f(x_0) +{ \bigtriangledown}^2 f(x_0)(x-x_0) = 0 f(x0)+2f(x0)(xx0)=0
解线性方程可以得到
x = x 0 − ( ▽ 2 f ( x 0 ) ) − 1 ▽ f ( x 0 ) x=x_0 - (\bigtriangledown^2 f(x_0))^{-1}\bigtriangledown f(x_0) x=x0(2f(x0))1f(x0)
将梯度向量简写为 g g g, 上面的公式简写为
x = x 0 − H − 1 g x = x_0 - H^{-1}g x=x0H1g
− H − 1 g -H^{-1}g H1g为牛顿方向,从初始点开始,反复计算函数在对应点处的Hessian矩阵和梯度向量,迭代终止条件是梯度的模接近于0或者函数值下降小于指定阈值。

梯度下降的目的是直接求解目标函数极小值,而牛顿法则变相地通过求解目标函数一阶导为零的参数值,进而求得目标函数最小值。相对于梯度下降法,牛顿法有更快的收敛速度,但每一步迭代的成本也更高(除了计算梯度以外,还要计算Hessian矩阵和其逆矩阵),并且Hessian矩阵还可能面临不可逆的情况(其行列式为0或者满秩),从而方法不可行。

拉格朗日乘数法

梯度下降法和牛顿法在求解的问题下都不带有约束条件。拉格朗日乘数法用于求解带等式约束条件的函数极值。基本思想就是通过引入拉格朗日乘子来将含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题。拉格朗日乘子背后的数学意义是其为约束方程梯度线性组合中每个向量的系数。

如何将一个含有n个变量和k个约束条件的约束优化问题转化为含有(n+k)个变量的无约束优化问题?拉格朗日乘数法从数学意义入手,通过引入拉格朗日乘子建立极值条件,对n个变量分别求偏导对应了n个方程,然后加上k个约束条件(对应k个拉格朗日乘子)一起构成包含了(n+k)变量的(n+k)个方程的方程组问题,这样就能根据求方程组的方法对其进行求解。
假设有如下的极值问题:
m i n f ( x ) h i ( x ) = 0 , i = 1 , 2 , . . . , p min f(x) \\ h_i(x) = 0, i=1, 2, ..., p minf(x)hi(x)=0,i=1,2,...,p
拉格朗日乘数法构造如下目标函数,称为拉格朗日函数:
L ( x , λ ) = f ( x ) + ∑ i = 1 p λ i h i ( x ) L(x, \lambda) = f(x) + \sum^p_{i=1} \lambda _i h_i(x) L(x,λ)=f(x)+i=1pλihi(x)
其中 λ \lambda λ为拉格朗日乘子。对上式自变量$x求导,并令其等于0,得到下列方程组:
▽ x f + ∑ i = 1 p λ i ▽ x h i ( x ) = 0 \bigtriangledown_x f +\sum^p_{i=1} \lambda _i \bigtriangledown_xh_i(x) =0 xf+i=1pλixhi(x)=0
求解以上方程即可得到函数的候选极值点

几何解释:在极值点处目标函数的梯度是约束函数梯度的线性组合

拉格朗日对偶

原始问题

在约束最优化问题中,常常利用拉格朗日对偶性将原始问题转换为对偶问题,通过求解对偶问题得到原始问题的解。
对于如下带等式约束和不等式约束的优化问题:
m i n f ( x ) g i ( x ) < = 0 , i = 1 , 2 , . . . , n h i ( x ) = 0 , i = 1 , 2 , . . . , p min f(x) \\ g_i(x) <= 0, i=1, 2,..., n\\ h_i(x) = 0, i=1, 2, ..., p minf(x)gi(x)<=0,i=1,2,...,nhi(x)=0,i=1,2,...,p
仿照拉格朗日乘数法构造广义的拉格朗日函数:
L ( x , λ , v ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 p v i h i ( x ) L(x, \lambda, v)=f(x)+\sum_{i=1}^m \lambda_i g_i(x)+\sum_{i=1}^pv_ih_i(x) L(x,λ,v)=f(x)+i=1mλigi(x)+i=1pvihi(x)
其中 λ \lambda λ v v v为拉格朗日乘子,可知道 L ( x , λ , v ) L(x, \lambda, v) L(x,λ,v)最大化是f(x),那么原始最优化问题表示为广义的拉格朗日函数的极小极大问题。
p ∗ = m i n x m a x λ , v , λ > = 0 L ( x , λ , v ) p^* =min_xmax_{\lambda, v, \lambda > =0} L(x, \lambda, v) p=minxmaxλ,v,λ>=0L(x,λ,v)

对偶问题

将广义拉格朗日函数的极大极小值问题表示为约束最优化问题:
在这里插入图片描述
称为原始问题的对偶问题,且定义对偶问题的最优值为
在这里插入图片描述
称为对偶问题的值。

参考:

  1. 《机器学习》-雷明
  2. https://blog.csdn.net/THmen/article/details/87366904
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值