1. 程式人生 > >牛頓法(Newton’s method)

牛頓法(Newton’s method)

牛頓法通常都是用來尋找一個根,同時也可以理解為最大化目標函式的區域性二次近似。設我們的目標函式為f(x),那麼一個關於x0的二次近似就有:


我們用f進行匹配:


可以得到:


如果b<0,g的最大值為a,得到更新規則:


這是牛頓法在最優化方面的表述,但是一旦,牛頓法就不適用了,我們必須要使用其他的優化演算法。

下面給出一種非二次的變形:

在Dirichlet分佈的最大似然估計中,我們接觸到目標函式:


這個目標函式是凸函式,但是牛頓法在計算負的x時仍然不適用。我們可以使用一種更快更穩定的區域性近似演算法:


我們用f進行匹配:


Figure 1給出這種近似相比於二次近似的高效能:


既然對所有x來說都有

,我們知道,如果還有b < 0,那麼g的最大值就是−a/b,得到更新規則:


如果,就要用到其他的方法。

這種更新規則並不是簡單地改變f的引數化。比如,如果我們令f(x) = f(1/y),並在y上使用二次近似,更新規則為:


既然x必須是正的,可以令,更新規則為:


Figure 2比較了這三種更新規則的收斂率:


當然牛頓法的迭代方式可以推向更高的維:


H被稱為Hessian矩陣,有這樣的定義:


另外,為了控制收斂的速度,我們引入步長r,r>0:


牛頓法通常比梯度下降收斂得更快,在靠近最優解的時候,需要更少的迭代次數。當然,牛頓法的每一次迭代都比梯度下降代價更高。為了避免計算高維的H的逆,我們轉而計算向量


當牛頓法被用來處理logistic regression的最大似然函式ℓ(θ)的時候,這種方法被稱為:Fisher scoring(漁民得分?)