本站原创文章,转载请说明来自 《老饼讲解-机器学习》 ml.bbbdata.com
目录
牛顿法求极值是一种机器学习中常见的方法,
由于它利用了二阶导信息,它的迭代速度比梯度下降法要更加快,
但往往由于计算量较为复杂,它的使用往往没有梯度法广泛。
本文介绍什么是牛顿法求极值,并给出相关理论思路与推导。
本文思路介绍
牛顿求极值方法的思想来源于牛顿求根法,
因此,本文的讲解思路为:
牛顿求根法 --> 一维牛顿求极值 --> 多维牛顿求极值
01.牛顿法求根
问题
函数求根,即求函数时 x 的取值.😳
迭代方法
(1) 设置一个初始解
(2)按公式进行迭代,直到满足退出条件
退出条件:f(x)已极度近似0,或者达到最大迭代次数。
推导思路
(1) 设初始点为![]()
(2) 在该点附近函数可用 该点切线近似替代,
(3) 用该近似函数 (直线) 的解
作为新的解.
即迭代公式为:![]()
02.牛顿法求极值
问题
函数求极值,即求函数f(x)取得极值时 x 的取值😳
思路1:直接化为牛顿求根法
求 f(x)f(x) 的极值,即求 f'(x) = 0
套用牛顿求根法,可得迭代公式:![]()
思路2:借用牛顿求根法思路
现在我们要求取 f(x)的极值,
借用牛顿求根法思路如下:
(1) 设初始点为 x_0
(2) 在该点附近函数可用该点的近似二次曲线替代:
![]()
(3) 用该近似函数g(h) ( 二次曲线) 的极小解作为新的解.
![]()
即迭代公式为:![]()
✍️附:近似二次曲线的解推导
该曲线的极值点为其一阶导为0处:
![]()
得:,即
![]()
03.多维牛顿求极值
问题
求的极值,
其中,为多维向量
牛顿求极值-多维迭代方法
(1) 设置一个初始解![]()
(2) 按以下公式迭代,直到满足终止条件
![]()
其中:
G为梯度(Gradient)(F的一阶偏导)
H为Hession矩阵(F的二阶偏导矩阵 )
推导过程
多维情况下是类似的
在
处的近似二次曲面为:
![]()
该曲面极值点为其一阶导为 0 处:
![]()
即得:
![]()
一阶导称为梯度(Gradient),记为G
二阶导称为Hession矩阵,记为H
则简记为:
![]()
即得多维迭代公式:
![]()
其中,
G为梯度(一阶导)
H为的Hession矩阵(二阶导)