牛顿法使用总结

一、 牛顿法介绍

       首先介绍一下什么是无约束极小化问题 m i n f ( X ) minf(X) ,其中 X X 是多维量,求取使得 f ( X ) f(X) 最小的 X X 的值。
       为简单起见,首先考虑 X X 一维的情况,这时目标函数 f ( X ) f(X) 变成 f ( x ) f(x) 牛顿法的基本思想是:在现有极小值得附近对 f ( x ) f(x) 做二阶泰勒展开,进而找到极小点的下一个估计值。设 x k x_{k} 为当前对的极小估计值,则
φ ( 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 x k ) (x-x_{k}) 的高阶小项。因为是求取最小值,也就是求取极值,满足驻点定理:
φ ( x ) = 0 2 \varphi (x)_{'}=0 (2)
即得到:
f ( x k ) + f ( x k ) ( x x k ) = 0 3 f^{'}(x_{k})+f^{''}(x_{k})(x-x_{k})=0 (3)
这里是对 x x 求导,不是对 x k x_{k} 求导。另外的求导过程可以参考: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 0 x_{0} ,则可以构造如下的迭代格式:
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)
以上是对一维情况的推到。
       对于多维情况: 二阶泰勒展开式(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)
其中 f \bigtriangledown f f f 梯度向量 2 f \bigtriangledown^{2} 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} ,
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}
一下将 f \bigtriangledown f 2 f \bigtriangledown^{2} f 其定义分别为 g g H H ,其中 H H 是对称矩阵, f ( X k ) \bigtriangledown f(X_{k}) 2 f ( X k ) \bigtriangledown^{2} f(X_{k}) 表示将 X X 取值为 X k X_{k} 的矩阵。
同理求取驻点的极小值,最后得到
X = X k H k 1 g k X=X_{k}-H_{k}^{-1}*g_{k} 同理得到迭代格式。
在这里插入图片描述


二、求导

       然而对于矩阵的求导过程是很复杂的过程,尤其是二阶倒数。网站上的答案没有统一。 下面给出一般矩阵的求导法则:以下部分参考下列网站:
     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 是列向量,二 X X 是行向量。将上述表格中每一项单独拿出来看:

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


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


三、常见的求导结果

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

标量/向量

在这里插入图片描述

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

四、例子

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

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_19323819/article/details/83152687