无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
来源:互联网 发布:在淘宝买摩托车可靠吗 编辑:程序博客网 时间:2024/04/30 07:35
这是前一段时间写的博客,然后又重新整理了一下
- 最速下降法
- 牛顿法
- 拟牛顿法
- SR1
- BFGS
- DFP
- LBFGS
【最速下降法】
无约束最优化方法不涉及约束条件,所以都是介绍如何寻找搜索方向以及搜索步长。
无约束最优化问题的目标函数:
感觉这latex还是有些别扭,稍不留意就直接当做字符处理了。
还是首先介绍一下梯度下降,梯度下降学过优化的都很清楚,一般叫最速下降法,这个方法有两点,首先是
梯度下降的递推公式推导是根据函数的一阶泰勒展开近似得到的。将
这里,
那么第
其中
最速下降法就是这样,不断地寻找搜索方向以及确定搜索步长,直到达到终止条件,相邻函数值相遇某个阈值或是
关于随机梯度下降法与批量下降法,大多数用梯度下降是求无约束目标函数,例如求经验损失最小时函数的参数,含有大量的训练数据。批量下降法是同时使用所有数据对梯度进行更新,很显然需要好多次迭代。随机梯度下降是每次只使用一个数据对函数参数进行更新,这样往往只通过一部分数据更新参数就会收敛,但是由于每次根据一个数据跟新,容易造成噪音问题。
【牛顿法】
由于最速梯度下降收敛速度并不“最速”,局部搜索中最速下降的方向和全局的最小值方向并不一致,所以就有后来改进的方法,包括牛顿法以及拟牛顿法。
牛顿法要求
仍然考虑无约束最优化问题的目标函数:
这里所不同的是进行二阶泰勒展开:
这里,
显然,
所以
then,
经典牛顿法虽然具有二次收敛性,但是要求初始点需要尽量靠近极小点,否则有可能不收敛。计算过程中需要计算目标函数的二阶偏导数,难度较大。更为复杂的是目标函数的Hesse矩阵无法保持正定,会导致算法产生的方向不能保证是f在Xk 处的下降方向,从而令牛顿法失效;特别的,如果Hesse矩阵奇异,牛顿方向可能根本是不存在的。
拟牛顿法
上面说了,虽然牛顿法能够具有二次收敛性,但是要求太高,个别情况下甚至无法求出牛顿法的迭代方向,所以就有了拟牛顿法,来对Hesse矩阵的逆进行近似。
通过泰勒二阶近似可以得到:
令,
then,
或者说,
注意到,
所以,拟牛顿法选取满足条件
使其仍满足近似条件。
一般,最初始
SR1
根据修改
展开得到:
注意到
所以我们可以选
最后得到
当然,通过
BFGS
BFGS方法是一种秩2近似,至于为什么使用秩2近似这个暂时还不得而知。先讲一下是如何推导的。
BFGS是近似海瑟矩阵
使用秩2近似,
所以,
由于满足条件的
这样式子就成了
令
所以(
我们使用的
得到
或者说使用Sherman–Morrison–Woodbury formula 进行一步变换【7】
由这个式子就很容推了,上面式子可以写成
很明显,BFGS是对于Sherman–Morrison–Woodbury k=2的情况,
我们可以令
我们可以令
回想一下2x2矩阵的逆
然后就是代入了,可以令
这样,对于每一维
整理就得到BFGS的一般式了
DFP
DFP推导方法和BFGS类似,只不过是对hesse矩阵的逆进行近似,略。
LBFGS
关于LBFGS的推导,可以参考【3】和【4】,主要是通过BFGS的最后目标式子,不再保留完整的矩阵B_k^{-1},因为当维度很大的时候(n>10^4),需要的空间非常大,所以保留了一些计算
这里不妨用
define:
Then,recursively
所以就有了这个公式:
然后为了算这个式子,需要不断迭代LBFGS原著中给了一个两层的递推程序求这个式子,只保留最近m步:
更新的方向:
所谓的Two-loop算法:
对
然后第二次循环,
根据 wiki LBFGS 【5】
初始化:
对于
最后得到的
参考:
【1】http://blog.csdn.net/lilyth_lilyth/article/details/8973972
【2】统计学习方法
【3】http://blog.csdn.net/lansatiankongxxc/article/details/38801863
【4】http://blog.csdn.net/zhirom/article/details/38332111
【5】http://en.wikipedia.org/wiki/Limited-memory_BFGS
【6】http://en.wikipedia.org/wiki/Woodbury_matrix_identity
【7】http://www.ing.unitn.it/~bertolaz/2-teaching/2004-2005/AA-2004-2005-PHD/lucidi/slides-mQN-1x2.pdf
【8】http://www.iaeng.org/publication/WCE2012/WCE2012_pp1-5.pdf
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- 无约束最优化方法-牛顿法
- 优化算法——拟牛顿法之BFGS算法
- 优化算法——拟牛顿法之BFGS算法
- 最优化学习笔记(十九)——拟牛顿法(5)BFGS算法
- bfgs拟牛顿法
- 寻优方法总结:最速下降法,牛顿下降法,阻尼牛顿法,拟牛顿法DFP/BFGS
- 牛顿法-最优化方法
- 优化算法——拟牛顿法之L-BFGS算法
- 优化算法——拟牛顿法之L-BFGS算法
- 【机器学习详解】解无约束优化问题:梯度下降、牛顿法、拟牛顿法
- 寻找最优参数解:最速下降法,牛顿下降法,阻尼牛顿法,拟牛顿法DFP/BFGS
- 寻找最优参数解:最速下降法,牛顿下降法,阻尼牛顿法,拟牛顿法DFP/BFGS
- 实习点滴(8)--收敛优化方法:牛顿法、BFGS算法与L-BFGS算法
- 最优化 牛顿法
- 牛顿法及拟牛顿法(L-BFGS)
- 优化算法——牛顿法和拟牛顿法
- Oracle DDL,DML,DCL,TCL 基础概念
- iOS懒加载
- Android Intent的几种用法
- 文件编码格式
- Android App框架设计之编写基类BaseActivity
- 无约束最优化方法——牛顿法、拟牛顿法、BFGS、LBFGS
- Android中 记住密码(SharedPreferences)
- 设计模式-Factory
- SpringMVC-14 自定义拦截器
- 【 D3.js 高级系列 — 6.0 】 值域和颜色
- 从中国经济谈当代技术人的责任与担当
- 完善 C# ListView 系列-可编辑单元格
- ubuntu 下 pem 转换成 ppk
- gitlab安装-登录-You have to confirm your account before continuing