1. 程式人生 > >機器學習-牛頓方法&指數分布族&GLM

機器學習-牛頓方法&指數分布族&GLM

最優解 logs alt cli 機器 目標 ner des style

本節內容

  • 牛頓方法
  • 指數分布族
  • 廣義線性模型

之前學習了梯度下降方法,關於梯度下降(gradient descent),這裏簡單的回顧下【參考感知機學習部分提到的梯度下降(gradient descent)】。在最小化損失函數時,采用的就是梯度下降的方法逐步逼近最優解,規則為技術分享其實梯度下降屬於一種優化方法,但梯度下降找到的是局部最優解。如下圖:


技術分享

本節首先講解的是牛頓方法(NewTon’s Method)。牛頓方法也是一種優化方法,它考慮的是全局最優。接著還會講到指數分布族和廣義線性模型。下面來詳細介紹。

1.牛頓方法

現在介紹另一種最小化損失函數?(θ)的方法——牛頓方法,參考Approximations Of Roots Of Functions – Newton’s Method
。它與梯度下降不同,其基本思想如下:

假設一個函數技術分享我們需要求解此時的x值。如下圖所示:
技術分享

圖1 f(x0)=0,a1,a2,a3...逐步接近x0

在a1點的時候,f(x)切線的目標函數技術分享由於(a2,0)在這條線上,所以我們有技術分享

技術分享

同理,在a2點的時候,切線的目標函數技術分享由於(a3,0)在這條線上,所以我們有技術分享

技術分享

假設在第n次叠代,有技術分享那麽此時有下面這個遞推公式:

技術分享

其中n>=2。

最後得到的公式也就是牛頓方法的學習規則,為了和梯度下降對比,我們來替換一下變量,公式如下:

技術分享

那麽問題來了,怎麽將牛頓方法應用到我們的問題上,最小化損失函數l(theta),(或者是求極大似然估計的極大值)呢?

對於機器學習問題,現在我們優化的目標函數為極大似然估計l,當極大似然估計函數取值最大時,其導數為 0,這樣就和上面函數f取 0 的問題一致了,令技術分享

極大似然函數的求解更新規則是:

技術分享

對於l,當一階導數為零時,有極值;此時,如果二階導數大於零,則l有極小值,如果二階導數小於零,則有極大值。

上面的式子是當參數θ為實數時的情況,下面我們要求出一般式。當參數為向量時,更新規則變為如下公式:

技術分享

其中技術分享和之前梯度下降中提到的一樣,是梯度,H是一個n*n矩陣,H是函數的二次導數矩陣,被成為Hessian矩陣。其某個元素Hij計算公式如下:

技術分享

和梯度下降相比,牛頓方法的收斂速度更快,通常只要十幾次或者更少就可以收斂,牛頓方法也被稱為二次收斂(quadratic convergence),因為當叠代到距離收斂值比較近的時候,每次叠代都能使誤差變為原來的平方。缺點是當參數向量較大的時候,每次叠代都需要計算一次 Hessian 矩陣的逆,比較耗時。

機器學習-牛頓方法&指數分布族&GLM