文章目錄

.

1、牛頓法

牛頓法也是一種迭代的求解方法,相比於梯度下降法,牛頓法在搜尋方向上不僅考慮一階梯度方向,同時考慮二階梯度,因此用牛頓法求解收斂更快。
假設有函式 f ( x ) , x R f(x), x\in\R , x k x_k 為當前的極小值估計,在 x k x_k 處做二階泰勒展開:
f ( x ) = f ( x k ) + f ( x k ) ( x x k ) + 1 2 f ( x k ) ( x x k ) 2 f(x)=f(x_k)+f^\prime(x_k)(x-x_k)+\frac{1}{2}f^{\prime\prime}(x_k)(x-x_k)^2
兩邊同時對 x x 求導:
f ( x ) = f ( x k ) + f ( x k ) ( x x k ) f^\prime(x)=f^\prime(x_k)+f^{\prime\prime}(x_k)(x-x_k)
x x 取極值點的時候, f ( x ) = 0 f^\prime(x)=0 , 因此:
f ( x k ) + f ( x k ) ( x x k ) = 0 f^\prime(x_k)+f^{\prime\prime}(x_k)(x-x_k)=0 可以推導得到:
x = x k f ( x k ) f ( x k ) x=x_k-\frac{f^\prime(x_k)}{f^{\prime\prime}(x_k)}\qquad\qquad
因此給定初始點 x 0 x_0 , 可以構造如下迭代式:
x k + 1 = x k f ( x k ) f ( x k ) , k = 0 , 1 , 2 , . . . x_{k+1}=x_k-\frac{f^\prime(x_k)}{f^{\prime\prime}(x_k)}, k=0,1,2,...
如果推廣到多維,假設 x R N \bf x\in\R^N , 則在 x k \bf x_k 處的二階泰勒展開式:
f ( x ) = f ( x k ) + f ( x k ) ( x x k ) + 1 2 ( x x k ) T 2 f ( x k ) ( x x k ) f({\bf x})=f({\bf x_k})+\nabla f({\bf x_k})({\bf x-x_k})+\frac{1}{2}({\bf x-x_k})^{\bf T}\nabla^2 f({\bf x_k})({\bf x-x_k})
其中 f \nabla f f ( x ) f({\bf x}) 的梯度向量, 2 f \nabla^2 f f ( x ) f({\bf x}) 的海森矩陣(Hessian Matrix),
f = [ f x 1 f x 2 f x N ] , 2 f = [ 2 f x 1 2