梯度下降和牛顿迭代——qjzcy的博客

梯度下降和牛顿迭代


数值优化会经常遇到。网上搜了搜发现各大神已经总结的非常完美了。自己就手动推一遍牛顿迭代的公式好了,当作复习。
梯度下降和牛顿迭代主要做的事情就两步
1、 找到搜索的方向,
2、 迭代的步长


引子:
我们很多问题最后都会归结到要寻找一个凸函数的极值点,比如:
那么怎么才能找到极值点?
我们先拿一个一维的曲线来举例,怎么找到极值点
首先我们所学的高等数学告诉我们导数为0的地方就是极值点。
那么问题来了,当我们在X=X(k)的时候,怎样才能得到极值点,很显然我们需要两步,一、找到极值点所在的方向,二、向极值点前进一小步。

梯度下降:
下降方向:负的梯度方向
牛顿法:
下降方向和步长:
这里写图片描述

这里写图片描述
牛顿法公式推导:
说牛顿法要先说一个重要的公式泰勒公式
这里写图片描述
其中H就为我们所需要求的海塞矩阵,公式10即为刚刚我们得出的下降方向和步长

拟牛顿法:
拟牛顿法的本质在用x和一阶导数以及已知的海塞矩阵来近似计算当前的海塞矩阵,其中DFS,BFGS法是我们常见的。
DFS算法:
公式推导如下分为秩一矫正和秩二矫正。
这里写图片描述

这里写图片描述

BFGS算法:
如下图推导,其实BFGS的推导只是把DFS中的qk和pk对换。
这里写图片描述
虽然得到了BFGS的迭代公式,可是还是矩阵相乘太多,于是我们用到Sherman-Morrison公式:
这里写图片描述
进行变换,可得
这里写图片描述
L-BFGS算法:
L-BFGS的含义为Limited-memory BFGS。
在BFGS算法中,每次都要存储近似Hesse矩阵,在高维数据时,存储H浪费很多的存储空间,因此出现了L-BFGS算法,顾名思义即用有限的内存实现BFGS。在L-BFGS算法中,只保存最近的 次迭代信息,以降低数据的存储空间。并且向量序列只保存最新的m步即可。M由用户自己决定,这样H的储存由原来的o(n*n)将到o(m*n)

引用:
这里还有两篇博客写的不错
http://blog.csdn.net/google19890102/article/details/46389869
http://blog.csdn.net/zhirom/article/details/38332111

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值