找回密码
 立即注册
查看: 487|回复: 0

牛顿法用于优化问题

[复制链接]
发表于 2021-12-11 21:37 | 显示全部楼层 |阅读模式
无约束优化算法可以分为线搜索类算法信赖域类算法两类,他们都是对在局部进行近似,前者用得更加普遍。而线搜索类算法根据搜索方向选择的不同可以分为梯度算法(例如深度学习中常用的梯度下降)、牛顿算法、拟牛顿算法、次梯度算法
本文目的是介绍牛顿法。平常我们说牛顿法,一般指的是用牛顿法求方程根,因而先复习牛顿法求根的原理,然后扩展到用牛顿法求极值,再进一步扩展到多元函数牛顿法求极值
1. 一元函数牛顿法求根

复杂方程的根很难直接求得,最开始用牛顿法迭代来求方程的根。方法是给 一个初值  ,在  处用一阶泰勒展式来近似表示函数


带入上式, 求得与  轴交点横坐标 , 这个  点并不是函数  的根, 但是距离真正的根更近了一点,不断迭代优化,有如下步骤


最终求得的  值变化小于一个阈值就认为这个  值是函数  的近似根, 称为牛顿法收敛
2. 一元函数牛顿法求极值

牛顿法用于求函数极值。对于  的极值点也就是求 的根, 那么也就是如上面介绍的 求  的解。给定初值 在  处用二阶泰勒展式展开


对  求导, 令 , 得 , 依次迭代得到递推公式


当xn的值变化小于阈值时认为算法收敛
3. 多元函数牛顿法求极值

对定义在上的二次可微函数,考虑其在处二阶泰勒展开,在其定义域上取,其中趋近于0向量,展开结果如下


忽略高阶无穷小,将上式看作的函数,对其求导(求梯度?)后令,化简可得牛顿方程


由上式,可由简单的矩阵运算规则得到优化方向
因而可以得到迭代规则


当xn的值变化小于阈值时认为算法收敛
4. 对比

4.1 牛顿法对比

如果把矩阵求逆在形式上写作分母。将上面三者罗列如下,可见形式完全一样(吐槽:这不废话)






4.2 牛顿法与梯度下降对比

梯度下降


步长不等于1的牛顿法(也就是优化方向乘以alpha)



5. 参考


  • 《最优化计算方法》 文再文
  • [牛顿法求极值](answer:牛顿法求极值)
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-23 01:33 , Processed in 0.065315 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表