牛顿法原理推导

牛顿法是用迭代的方法,来求解方程的根和最优化

预备知识
1.Hessian矩阵
2.多元泰勒展开

用牛顿法求解方程的根
用牛顿法求解导数为0 的点


1.Hessian矩阵

相当于一元函数的二阶导数,所有元素由函数的二阶偏导数构成。

由于高阶导数一般和求导次序无关,所以Hessian矩阵往往是对称矩阵

f ( x 1 , x 2 , . . . x n ) f(x_1,x_2,...x_n)
H ( f ) = ( 2 f x 1 x 1 2 f x 1 x 2 2 f x 1 x 3 2 f x 2 x 1 2 f x 2 x 2 2 f x 2 x 3 2 f x 3 x 1 2 f x 3 x 2 2 f x 3 x 3 ) H(f)=\begin{pmatrix} \frac{\partial^2 f}{\partial x_1\partial x_1} & \frac{ \partial^2 f}{\partial x_1\partial x_2} & \frac{ \partial^2 f}{\partial x_1\partial x_3 }\\ \frac{\partial^2 f}{\partial x_2\partial x_1} & \frac{ \partial^2 f}{\partial x_2\partial x_2} & \frac{ \partial^2 f}{\partial x_2\partial x_3 }\\ \frac{\partial^2 f}{\partial x_3\partial x_1} & \frac{ \partial^2 f}{\partial x_3\partial x_2} & \frac{ \partial^2 f}{\partial x_3\partial x_3 }\\ \end{pmatrix}

举个例子:
f ( x , y , z ) = 2 x 2 x y + y 2 3 z 2 f(x,y,z)=2x^2-xy+y^2-3z^2
故Hessian矩阵为
( 4 1 0 1 2 0 0 0 6 ) \begin{pmatrix} 4&-1&0\\-1&2&0\\0&0&-6 \end{pmatrix}

Hessian矩阵的作用:
与多元函数的凹凸性由密切的关系。
如果Hessian矩阵正定,则f(x,y,z)是凸函数
如果Hessian矩阵负定,则f(x,y,z)是凹函数

极值判别法:
一元函数的极值判别法:

  • f’(x)=0 f’’(x)>0 极小值
  • f’(x)=0 f’’(x)<0 极大值
  • f’(x)=0 f’’(x)=0 无法判断

多元函数的极值判别法

  • f = 0 \nabla f=0 ,Hessian矩阵正定,极小值点
  • f = 0 \nabla f=0 ,Hessian矩阵负定,极大值点
  • f = 0 \nabla f=0 ,Hessian矩阵不定,还需要看更高阶的导数

2.多元函数的泰勒展开

一元函数的泰勒展开
f ( x k + 1 ) = f ( x k ) + f ( x k ) ( x k + 1 x k ) + 1 2 f ( x k ) ( x ( k + 1 ) x k ) 2 + . . . + 1 n ! f ( n ) ( x k ) ( x k + 1 x k ) n + 1 n + 1 ! f ( n + 1 ) ( ϵ ) ( x k + 1 x k ) n + 1 f(x^{k+1})=f(x^{k})+f&#x27;(x^{k})(x^{k+1}-x^{k})+\frac{1}{2}f&#x27;&#x27;(x^{k})(x^{(k+1)}-x^{k})^2+...+\frac{1}{n!}f^{(n)}(x^{k})(x^{k+1}-x^{k})^n+\frac{1}{n+1!}f^{(n+1)}(\epsilon)(x^{k+1}-x^{k})^{n+1}
其中 ϵ \epsilon 是介于 x k x^{k} x k + 1 x^{k+1} 的数

推广到多元函数的泰勒展开
f ( x ) = f ( x 0 ) + ( f ( x 0 ) ) T ( x x 0 ) + 1 2 ( x x 0 ) T H ( x 0 ) ( x x 0 ) + O ( x x 0 2 ) f(x)=f(x_0)+(\nabla f(x_0))^T(x-x_0)+\frac{1}{2}(x-x_0)^TH(x_0)(x-x_0)+O\big( ||x-x_0||^2 \big)


用牛顿法求解方程的根

一元函数的情形:
f ( x k + 1 ) f(x^{k+1}) x = x k x=x^{k} 一阶展开
f ( x k + 1 ) = f ( x k ) + f ( x k ) ( x k + 1 x k ) + O f(x^{k+1})=f(x^{k})+f&#x27;(x^{k})(x^{k+1}-x^{k})+O
因为我们要找到的是 f ( x k + 1 ) = 0 f(x^{k+1})=0 的位置
f ( x k ) + f ( x k ) ( x k + 1 x k ) = 0 f(x^{k})+f&#x27;(x^{k})(x^{k+1}-x^{k})=0
化简的
x k + 1 = x k f ( x k ) f ( x k ) x^{k+1}=x^{k}-\frac{f(x^{k})}{f&#x27;(x^{k})}


用牛顿法求解导数为0 的点

一元函数的情形:
f ( x k + 1 ) f(x^{k+1}) x = x k x=x^{k} 二阶展开
f ( x k + 1 ) = f ( x k ) + f ( x k ) ( x k + 1 x k ) + 1 2 f ( x k ) ( x ( k + 1 ) x k ) 2 + O f(x^{k+1})=f(x^{k})+f&#x27;(x^{k})(x^{k+1}-x^{k})+\frac{1}{2}f&#x27;&#x27;(x^{k})(x^{(k+1)}-x^{k})^2+O
因为我们要找的 f ( x k + 1 ) f(x^{k+1}) 的导数为0
故函数左右两端同时对 x k + 1 x^{k+1} 求导=0

x k + 1 = x k f ( x k ) f ( x k ) = x k f ( x k ) 1 f ( x k ) x^{k+1} = x^{k}-\frac{f&#x27;(x^{k})}{f&#x27;&#x27;(x^{k})}\\ =x^{k}-f&#x27;&#x27;(x^{k})^{-1}f&#x27;(x^{k})
由此可以推测,若求n阶导为0的点
则迭代公式为:
x k + 1 = x k f n ( x k ) f n + 1 ( x k ) x^{k+1} = x^{k}-\frac{f^{n}(x^{k})}{f^{n+1}(x^{k})}

推广到多元
f ( x k + 1 ) f(x^{k+1}) x = x k x=x^{k} 二阶展开
f ( x k + 1 ) = f ( x k ) + f ( x k ) T ( x k + 1 x k ) + 1 2 ( x k + 1 x k ) T H ( x k ) ( x k + 1 x k ) + O ( x x 0 2 ) f(x^{k+1})=f(x^{k})+\nabla f(x^{k})^T(x^{k+1}-x^{k})+\frac{1}{2}(x^{k+1}-x^{k})^TH(x^{k})(x^{k+1}-x^{k})+O\big( ||x-x_0||^2 \big)
因为我们要找的 f ( x k + 1 ) \nabla f(x^{k+1}) 为0的坐标
故函数左右两端同时对 x k + 1 x^{k+1} 求梯度,并令其为0

x k + 1 = x k H ( x k ) 1 f ( x k ) x^{k+1}=x^{k}-H(x_k)^{-1}\nabla f(x_k)
为了保证确实可以忽略高阶无穷小

x k + 1 = x k H ( x k ) 1 f ( x k ) γ x^{k+1}=x^{k}-H(x_k)^{-1}\nabla f(x_k)*\gamma
其中
H ( x k ) 1 f ( x k ) γ -H(x_k)^{-1}\nabla f(x_k)*\gamma
为搜索方向

牛顿法无法保证每次迭代后,函数值会更小,所以 γ \gamma 的选取非常有技巧,往往采用线性搜索(line search)
即gamma的取值在0.01,0.001,0.0001,0.00001这几个选项中,选择令函数值下降最快的步长。

牛顿法的终止条件:
设置迭代停止条件:

1) 最大迭代次数T,迭代次数大于T时停止迭代

2) 停止搜索条件 f &lt; ϵ ||\nabla f||&lt;\epsilon ,满足条件时停止

牛顿法与梯度下降法的联系:
牛顿法与梯度下降法是非常相似的,只是牛顿法多乘Hessian矩阵的逆矩阵。
梯度下降法是用线性函数来近似代替目标函数,而牛顿法是用二次函数来代替目标函数,故牛顿法的收敛速度是更快的。
尤其是当函数的三阶导为0时,只需要迭代一次,即可得到最终的结果。

牛顿法的局限:

  1. Hessian矩阵不一定可逆
  2. 当Hessian矩阵规模很大时,变量很多时,解Hessian矩阵的逆矩阵非常耗时,由此出现改进算法(拟牛顿法)
发布了38 篇原创文章 · 获赞 9 · 访问量 2437

猜你喜欢

转载自blog.csdn.net/weixin_44264662/article/details/99866159