码迷,mamicode.com
首页 > 编程语言 > 详细

最优化算法

时间:2018-12-12 23:41:34      阅读:349      评论:0      收藏:0      [点我收藏+]

标签:机器   imp   存在   使用   span   更新   str   ora   blog   

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 

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

最优化算法

标签:机器   imp   存在   使用   span   更新   str   ora   blog   

原文地址:https://www.cnblogs.com/Christina-Notebook/p/10111516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!