经典优化算法
Posted weilonghu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典优化算法相关的知识,希望对你有一定的参考价值。
无约束优化算法
假设求解(min L( heta)),(L(cdot))光滑
直接法
- 两个条件
- 函数是凸函数
- 一阶导数为零等式有闭式解
迭代法
假设优化问题为(egin{aligned} delta_t = mathop{arg min}_{delta} L( heta_t+delta) end{aligned}),其中( heta_t)是参数
一阶法
对函数(L( heta_t+delta)?)做一阶泰勒展开,得到近似式(L( heta_t+delta) approx L( heta_t) + abla L( heta)^T delta?)
由于该近似式只有在(delta)较小时才比较准确,因此在求解(delta_t)时一般加上(L_2)正则项
[egin{aligned} delta_t & = mathop{arg min}_{delta} left( L( heta_t) + abla L( heta_t)^Tdelta + frac{1}{2alpha}||delta||^2_2 ight) \ & = -alpha abla L( heta_t) end{aligned}?]
一阶法的迭代公式为
[ heta_{t+1} = heta_t - alpha abla L( heta_t)]
其中(alpha)为学习率也称为梯度下降法,梯度就是目标函数的一阶信息
二阶法
对函数(L( heta_t+delta)?)做二阶泰勒展开,得到近似式(L( heta_t+delta) approx L( heta_t) + abla L( heta)^T delta + frac{1}{2}delta^T abla ^2 L( heta^T)delta?)
其中( abla^2 L( heta_t))是函数在( heta_t)处的Hessian矩阵。通过求解近似优化问题
[egin{aligned} delta_t & = mathop{arg min}_{delta} left( L( heta_t) + abla L( heta_t)^Tdelta + frac{1}{2}delta^T abla ^2 L( heta^T)delta ight) \ & = - abla^2 L( heta_t)^{-1} abla L( heta_t) end{aligned}]
二阶法的迭代公式为
( heta_{t+1} = heta_t - abla^2 L( heta)^{-1} abla L( heta_t))
也称为牛顿法,Hessian矩阵就是目标函数的二阶信息
收敛速度快于一阶法,但在高维情况下,Hessian矩阵求逆计算复杂度很大
而且当目标函数非凸时,可能收敛到鞍点
改进:拟牛顿法,如BFGS算法
以上是关于经典优化算法的主要内容,如果未能解决你的问题,请参考以下文章