牛顿法使用总结

一、 牛顿法介绍

       首先介绍一下什么是无约束极小化问题 m i n f ( X ) minf(X) minf(X),其中 X X X是多维量,求取使得 f ( X ) f(X) f(X)最小的 X X X的值。
       为简单起见,首先考虑 X X X一维的情况,这时目标函数 f ( X ) f(X) f(X)变成 f ( x ) f(x) f(x)牛顿法的基本思想是:在现有极小值得附近对 f ( x ) f(x) f(x)做二阶泰勒展开,进而找到极小点的下一个估计值。设 x k x_{k} xk为当前对的极小估计值,则
φ ( x ) = f ( x k ) + f ′ ( x k ) ( x − x k ) + 1 2 f ′ ′ ( x − x k ) 2 ( 1 ) \varphi (x)=f(x_{k})+f^{'}(x_{k})(x-x_{k})+\frac{1}{2}f^{''}(x-x_{k})^{2} (1) φ(x)=f(xk)+f(xk)(xxk)+21f(xxk)21
上式省略 ( x − x k ) (x-x_{k}) (xxk)的高阶小项。因为是求取最小值,也就是求取极值,满足驻点定理:
φ ( x ) ′ = 0 ( 2 ) \varphi (x)_{'}=0 (2) φ(x)=02
即得到:
f ′ ( x k ) + f ′ ′ ( x k ) ( x − x k ) = 0 ( 3 ) f^{'}(x_{k})+f^{''}(x_{k})(x-x_{k})=0 (3) f(xk)+f(xk)(xxk)=03
这里是对 x x x求导,不是对 x k x_{k} xk求导。另外的求导过程可以参考:https://blog.csdn.net/asdfsadfasdfsa/article/details/81156925
从而得到公式4:
x = x k − f ′ ( x k ) f ′ ′ ( x k ) ( 4 ) x=x_{k}-\frac{f^{'}(x_{k})}{f^{''}(x_{k})}(4) x=xkf(xk)f(xk)(4)
于是给定初始值 x 0 x_{0} x0,则可以构造如下的迭代格式:
x k + 1 = x k − f ′ ( x k ) f ′ ′ ( x k ) , k = 0 , 1 , 2.... ( 5 ) x_{k+1}=x_{k}-\frac{f^{'}(x_{k})}{f^{''}(x_{k})} ,k=0,1,2....(5) xk+1=xkf(xk)f(xk),k=0,1,2....(5)
以上是对一维情况的推到。
       对于多维情况: 二阶泰勒展开式(1)可以做推广,此时
φ ( X ) = f ( X k ) + ▽ f ( X k ) ( X − X k ) + 1 2 ( X − X k ) T ▽ 2 f ( X k ) ( X − X k ) ( 6 ) \varphi (X)=f(X_{k})+\bigtriangledown f(X_{k})(X-X_{k})+\frac{1}{2} (X-X_{k})^{T}\bigtriangledown^{2} f(X_{k})(X-X_{k})(6) φ(X)=f(Xk)+f(Xk)(XXk)+21(XXk)T2f(Xk)(XXk)(6)
其中 ▽ f \bigtriangledown f f f f f梯度向量 ▽ 2 f \bigtriangledown^{2} f 2f f f f 的海森矩阵(Hexssian martix),其定义分别为:
▽ f = [ ∂ f ∂ x 1 ∂ f ∂ x 2 . . . ∂ f ∂ x N ] \bigtriangledown f=\begin{bmatrix} \frac{\partial f}{\partial x_{1}}\\ \frac{\partial f}{\partial x_{2}}\\ ...\\ \frac{\partial f}{\partial x_{N}}\end{bmatrix} f=x1fx2f...xNf,
▽ 2 f = [ ∂ 2 f ∂ x 1 2 ∂ 2 f ∂ x 1 ∂ x 2 . . . ∂ 2 f ∂ x 1 ∂ x N ∂ 2 f ∂ x 2 ∂ x 1 ∂ 2 f ∂ x 2 2 . . . ∂ 2 f ∂ x 2 ∂ x N . . . . . . . . . . . . ∂ 2 f ∂ x N ∂ x 1 ∂ 2 f ∂ x N ∂ x 2 . . . ∂ 2 f ∂ x N 2 ] \bigtriangledown ^{2}f=\begin{bmatrix}\frac{\partial^{2} f}{\partial x_{1}^{2}} & \frac{\partial^{2} f}{\partial x_{1}\partial x_{2}}& ...& \frac{\partial^{2} f}{\partial x_{1}\partial x_{N}}\\ \frac{\partial^{2} f}{\partial x_{2}\partial x_{1}}& \frac{\partial^{2} f}{\partial x_{2}^{2}} & ... & \frac{\partial^{2} f}{\partial x_{2} \partial x_{N}}\\ ...& ... & ...& ...\\ \frac{\partial^{2} f}{\partial x_{N}\partial x_{1}} & \frac{\partial^{2} f}{\partial x_{N}\partial x_{2}} & ... & \frac{\partial^{2} f}{\partial x_{N}^{2}}\end{bmatrix} 2f=x122fx2x12f...xNx12fx1x22fx222f...xNx22f............x1xN2fx2xN2f...xN22f
一下将 ▽ f \bigtriangledown f f ▽ 2 f \bigtriangledown^{2} f 2f其定义分别为 g g g H H H,其中 H H H是对称矩阵, ▽ f ( X k ) \bigtriangledown f(X_{k}) f(Xk) ▽ 2 f ( X k ) \bigtriangledown^{2} f(X_{k}) 2f(Xk)表示将 X X X取值为 X k X_{k} Xk的矩阵。
同理求取驻点的极小值,最后得到
X = X k − H k − 1 ∗ g k X=X_{k}-H_{k}^{-1}*g_{k} X=XkHk1gk同理得到迭代格式。
在这里插入图片描述


二、求导

       然而对于矩阵的求导过程是很复杂的过程,尤其是二阶倒数。网站上的答案没有统一。 下面给出一般矩阵的求导法则:以下部分参考下列网站:
     https://en.wikipedia.org/wiki/Matrix_calculus
     https://www.jianshu.com/p/186ea261f2e4

     一阶倒数求导公式都采用分子布局(Numerator layout);二阶倒数求导公式采用的是分母布局(Denominator layout); 注意:对于MATLAB中的雅各比矩阵的求导应该是与上面相反(一阶倒数求导公式都采用分母布局;二阶倒数求导公式采用的是分子布局),只要保持上面一种方式,从开始到最后就不会有错误。


      求导类型
       矩阵可以写成列向量或者行向量的形式,这两种不同的形式把矩阵求导分成了两种不同的情况。在这里插入图片描述
      表格列举了六种不同的矩阵求导类型,粗体代表向量或者矩阵(其实标量和向量也可以看作矩阵)。表格中还有三个空格没写出,实际上也是存在,但暂时先不讨论,因为这三种情况的求导结果大部分都是高于二阶的张量(tensor)形式,与常见的二维矩阵形式不同。
      布局约定
      采用列向量或者行向量的形式求导,两种形式会造成求导结果形式的不同。因为本质上形式的不同不会影响求导结果,只不过将结果按照不同的方式组织起来,方便进一步运算。
      布局决定(Layout conventions)就是为了将不同形式的求导分类.分为两种布局:分子布局(numerator layout)和分母布局(denominator layout)。通俗解释,现规定向量或者矩阵分为原始形式和转置形式两种,比如在线性回归中我们把列向量作为属性值的原始形式,其转置形式就是行向量。

对于分子布局,求导结果中分子保持原始形式,分母为转置形式
对于分母布局,求导结果中分子为转置形式,分母保持原始形式
下图展示各种类型求导与两种布局之间的关系
在这里插入图片描述


细则解释:对于 Y Y Y是列向量,二 X X X是行向量。将上述表格中每一项单独拿出来看:

分子布局
在这里插入图片描述
下面的两种定义只在分子布局中有意义:
在这里插入图片描述


分母布局
在这里插入图片描述


三、常见的求导结果

一般可以使用查表方式获得。
向量/向量
在这里插入图片描述

标量/向量

在这里插入图片描述

在这里插入图片描述
向量/标量
在这里插入图片描述

四、例子

      这里采用的是我自己的工作时候遇到的问题(一阶倒数求导公式都采用分子布局,二阶倒数求导公式采用的是分母布局),当然反过来也可以,再次就不在编辑:在这里插入图片描述

这个结果是经过验证正确的。

     求取原则,变量是列向量,则求取雅各比矩阵使用分子布局(分子是列向量,分母转置为行向量或者标量),二阶导数海森矩阵使用分母布局(分母是列向量或者标量,分子转置为行向量)。
     以下是求取的列子,大家可以做参考:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值