最优化算法

Posted christina-notebook

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最优化算法相关的知识,希望对你有一定的参考价值。

1、无约束最优化问题

技术分享图片

求解此问题的方法方法分为两大类:最优条件法和迭代法。

2、最优条件法

技术分享图片

我们常常就是通过这个必要条件去求取可能的极小值点,再验证这些点是否真的是极小值点。当上式方程可以求解的时候,无约束最优化问题基本就解决了。实际中,这个方程往往难以求解。这就引出了第二大类方法:迭代法。

最优条件法:最小二乘估计

3、迭代法

(1)梯度下降法(gradient descent),又称最速下降法(steepest descent)

梯度下降法是求解无约束最优化问题的一种最常用的方法。梯度下降法是迭代算法,每一步需要求解目标函数的梯度向量。

必备条件:函数f(x)必须可微,也就是说函数f(x)的梯度必须存在

优点:实现简单

缺点:最速下降法是一阶收敛的,往往需要多次迭代才能接近问题最优解。

 算法A.1(梯度下降法)

输入:目标函数f(x),梯度函数g(x)=▽f(x),计算精度ε;

输出:f(x)的极小点x*

 技术分享图片

 总结:选取适当的初值x(0),不断迭代,更新x的值,进行目标函数的极小化,直到收敛。由于负梯度方向是使函数值下降最快的方向,在迭代的每一步,以负梯度方向更新x的值,从而达到减少函数值的目的。λk叫步长或者学习率。

泰勒公式:

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

技术分享图片

当f(x)的形式确定,我们可以通过求解这个一元方程来获得迭代步长λ。当此方程形式复杂,解析解不存在,我们就需要使用“一维搜索”来求解λ了。一维搜索是一些数值方法,有0.618法、Fibonacci法、抛物线法等等,这里不详细解释了。

在实际使用中,为了简便,也可以使用一个预定义的常数而不用一维搜索来确定步长λ。这时步长的选择往往根据经验或者通过试算来确定。步长过小则收敛慢,步长过大可能震荡而不收敛。如下图:

技术分享图片

当目标函数是凸函数时,梯度下降法的解是全局最优解。但是,一般情况下,往往不是凸函数,所以其解不保证是全局最优解。梯度下降法的收敛速度也未必是最快的。

转载:https://blog.csdn.net/hanlin_tan/article/details/47376237 

参考:李航《统计学习方法》、李宏毅《机器学习》

以上是关于最优化算法的主要内容,如果未能解决你的问题,请参考以下文章

优化算法总结

最优化算法——常见优化算法分类及总结

优化算法

五大常用算法总结

信息学:C++最优化问题(贪心算法)

最优化算法 - 动态规划算法