牛頓法

平時經常看到牛頓法怎樣怎樣,一直不得要領,今天下午查了一下維基百科,寫寫我的認識,很多地方是直觀理解,並沒有嚴謹的證明。在我看來,牛頓法至少有兩個應用方向,1、求方程的根,2、最優化。牛頓法涉及到方程求導,下面的討論均是在連續可微的前提下討論。

 

1、求解方程。

並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。

原理是利用泰勒公式,在x0處展開,且展開到一階,即f(x) = f(x0)+(x-x0)f'(x0)

求解方程f(x)=0,即f(x0)+(x-x0)*f'(x0)=0,求解x = x1=x0-f(x0)/f'(x0),因爲這是利用泰勒公式的一階展開,f(x) = f(x0)+(x-x0)f'(x0)處並不是完全相等,而是近似相等,這裏求得的x1並不能讓f(x)=0,只能說f(x1)的值比f(x0)更接近f(x)=0,於是乎,迭代求解的想法就很自然了,可以進而推出x(n+1)=x(n)-f(x(n))/f'(x(n)),通過迭代,這個式子必然在f(x*)=0的時候收斂。整個過程如下圖:

 

2、牛頓法用於最優化

在最優化的問題中,線性最優化至少可以使用單純行法求解,但對於非線性優化問題,牛頓法提供了一種求解的辦法。假設任務是優化一個目標函數f,求函數f的極大極小問題,可以轉化爲求解函數f的導數f'=0的問題,這樣求可以把優化問題看成方程求解問題(f'=0)。剩下的問題就和第一部分提到的牛頓法求解很相似了。

這次爲了求解f'=0的根,把f(x)的泰勒展開,展開到2階形式:

這個式子是成立的,當且僅當 Δ無線趨近於0。此時上式等價與:

 (原因是當Δx 趨近於0的時候f(x)=f(x+Δ)所以纔有: )

求解:

得出迭代公式:

一般認爲牛頓法可以利用到曲線本身的信息,比梯度下降法更容易收斂(迭代更少次數),如下圖是一個最小化一個目標方程的例子,紅色曲線是利用牛頓法迭代求解,綠色曲線是利用梯度下降法求解。

在上面討論的是2維情況,高維情況的牛頓迭代公式是:

其中H是hessian矩陣,定義爲:

 

高維情況依然可以用牛頓迭代求解,但是問題是Hessian矩陣引入的複雜性,使得牛頓迭代求解的難度大大增加,但是已經有了解決這個問題的辦法就是Quasi-Newton methond,不再直接計算hessian矩陣,而是每一步的時候使用梯度向量更新hessian矩陣的近似。Quasi-Newton method的詳細情況我還沒完全理解,且聽下回分解吧。。。


牛頓法的好處在於當接近最優解的時候其收斂誤差將會是上一次迭代的誤差平方,例如上次 誤差0.001 下次將會小於0.00001 這也就是所謂的二次收斂

參考:

牛頓法是二階收斂,梯度下降是一階收斂,所以牛頓法就更快。如果更通俗地說的話,比如你想找一條最短的路徑走到一個盆地的最底部,梯度下降法每次只從你當前所處位置選一個坡度最大的方向走一步,牛頓法在選擇方向時,不僅會考慮坡度是否夠大,還會考慮你走了一步之後,坡度是否會變得更大。所以,可以說牛頓法比梯度下降法看得更遠一點,能更快地走到最底部。

根據wiki上的解釋,從幾何上說,牛頓法就是用一個二次曲面去擬合你當前所處位置的局部曲面,而梯度下降法是用一個平面去擬合當前的局部曲面,通常情況下,二次曲面的擬合會比平面更好,所以牛頓法選擇的下降路徑會更符合真實的最優下降路徑。

wiki上給的圖很形象,我就直接轉過來了:<img src="https://pic4.zhimg.com/365e99bcf8d2e1ef1986e09c795caef7_b.jpg" data-rawwidth="220" data-rawheight="253" class="content_image" width="220">紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑。紅色的牛頓法的迭代路徑,綠色的是梯度下降法的迭代路徑。

2.指數分佈族(The exponential family)

指數分佈族是指可以表示爲指數形式的概率分佈。指數分佈的形式如下:

P(y;η)=b(y)exp(ηTT(y)a(η))

其中,η成爲分佈的自然參數(nature parameter);T(y)是充分統計量(sufficient statistic),通常 T(y)=y。當參數 a、b、T 都固定的時候,就定義了一個以η爲參數的函數族。

下面介紹兩種分佈,伯努利分佈和高斯分佈,分別把它們表示成指數分佈族的形式。

伯努利分佈

伯努利分佈是對0,1問題進行建模的,對於Bernoulli(φ),yϵ{0,1}.有p(y=1;φ)=φ;p(y=0;φ)=1φ,下面將其推導成指數分佈族形式:


這裏寫圖片描述 

將其與指數族分佈形式對比,可以看出:


這裏寫圖片描述 

表明伯努利分佈也是指數分佈族的一種。從上述式子可以看到,η的形式與logistic函數(sigmoid)一致,這是因爲 logistic模型對問題的前置概率估計其實就是伯努利分佈。

高斯分佈

下面對高斯分佈進行推導,推導公式如下(爲了方便計算,我們將方差 σ設置爲1):


這裏寫圖片描述 

將上式與指數族分佈形式比對,可知:

b(y)=12πexp(12y2)

T(y)=y

η=μ

a(η)=12μ2

兩個典型的指數分佈族,伯努利和高斯分佈。其實大多數概率分佈都可以表示成指數分佈族形式,如下所示:

  • 伯努利分佈(Bernoulli):對 0、1 問題進行建模;
  • 多項式分佈(Multinomial):多有 K 個離散結果的事件建模;
  • 泊松分佈(Poisson):對計數過程進行建模,比如網站訪問量的計數問題,放射性衰變的數目,商店顧客數量等問題;
  • 伽馬分佈(gamma)與指數分佈(exponential):對有間隔的正數進行建模,比如公交車的到站時間問題;
  • β 分佈:對小數建模;
  • Dirichlet 分佈:對概率分佈進建模;
  • Wishart 分佈:協方差矩陣的分佈;
  • 高斯分佈(Gaussian);

下面來介紹下廣義線性模型(Generalized Linear Model, GLM)。

3.廣義線性模型(Generalized Linear Model, GLM)

你可能會問,指數分佈族究竟有何用?其實我們的目的是要引出GLM,通過指數分佈族引出廣義線性模型。

仔細觀察伯努利分佈和高斯分佈的指數分佈族形式中的η變量。可以發現,在伯努利的指數分佈族形式中,η與伯努利分佈的參數φ是一個logistic函數(下面會介紹logistic迴歸的推導)。此外,在高斯分佈的指數分佈族表示形式中,η與正態分佈的參數μ相等,下面會根據它推導出普通最小二乘法(Ordinary Least Squares)。通過這兩個例子,我們大致可以得到一個結論,η以不同的映射函數與其它概率分佈函數中的參數發生聯繫,從而得到不同的模型,廣義線性模型正是將指數分佈族中的所有成員(每個成員正好有一個這樣的聯繫)都作爲線性模型的擴展,通過各種非線性的連接函數將線性函數映射到其他空間,從而大大擴大了線性模型可解決的問題。

下面我們看 GLM 的形式化定義,GLM 有三個假設:

  • (1) y|x;θ ExponentialFamilyη;給定樣本x與參數θ,樣本分類y 服從指數分佈族中的某個分佈;
  • (2) 給定一個 x,我們需要的目標函數爲hθ(x)=E[T(y)|x];
  • (3)η=θTx

依據這三個假設,我們可以推導出logistic模型與普通最小二乘模型。首先根據伯努利分佈推導Logistic模型,推導過程如下:

hθ(x)=E[T(y)|x]=E[y|x]=p(y=1|x;θ)

=φ

=11+eη

=11+eθTx

公式第一行來自假設(2),公式第二行通過伯努利分佈計算得出,第三行通過伯努利的指數分佈族表示形式得出,然後在公式第四行,根據假設三替換變量得到。

同樣,可以根據高斯分佈推導出普通最小二乘,如下:

hθ(x)=E(T(y)|x)=E[y|x]

=μ

=η

=θTx

公式第一行來自假設(2),第二行是通過高斯分佈y|x;θ~N(μ,σ2)計算得出,第三行是通過高斯分佈的指數分佈族形式表示得出,第四行即爲假設(3)。

其中,將η與原始概率分佈中的參數聯繫起來的函數成爲正則相應函數(canonical response function),如φ=11+eημ=η即是正則響應函數。正則響應函數的逆成爲正則關聯函數(canonical link function)。

所以,對於廣義線性模型,需要決策的是選用什麼樣的分佈,當選取高斯分佈時,我們就得到最小二乘模型,當選取伯努利分佈時,我們得到 logistic 模型,這裏所說的模型是假設函數 h 的形式。

最後總結一下:廣義線性模型通過假設一個概率分佈,得到不同的模型,而梯度下降和牛頓方法都是爲了求取模型中的線性部分(θTx)的參數θ的。

多分類模型-Softmax Regression

下面再給出GLM的一個例子——Softmax Regression.

假設一個分類問題,y可取k個值,即yϵ{1,2,...,k}。現在考慮的不再是一個二分類問題,現在的類別可以是多個。如郵件分類:垃圾郵件、個人郵件、工作相關郵件。下面要介紹的是多項式分佈(multinomial distribution)。

多項式分佈推導出的GLM可以解決多類分類問題,是 logistic 模型的擴展。對於多項式分佈中的各個y的取值,我們可以使用k個參數ϕ1,ϕ2,...,ϕk來表示這k個取值的概率。即

P(y=i)=ϕi

但是,這些參數可能會冗餘,更正式的說可能不獨立,因爲ϕi=1,知道了前k-1個,就可以通過1k1i=1ϕi計算出第k個概率。所以,我們只假定前k-1個結果的概率參數ϕ1,ϕ2,...,ϕk1,第k個輸出的概率通過下面的式子計算得出:

ϕk=1i=1k1ϕi

爲了使多項式分佈能夠寫成指數分佈族的形式,我們首先定義 T(y),如下所示:


 

和之前的不一樣,這裏我們的T(y)不等yT(y)現在是一個k1維的向量,而不是一個真實值。接下來,我們將使用(T(y))i表示T(y)的第i個元素。

下面我們引入指數函數I,使得:

I(True)=1,I(False)=0

這樣,T(y)向量中的某個元素還可以表示成:

(T(y))i=I(y=i)

舉例來說,當y=2T(2)2=I(2=2)=1T(2)3=I(2=3)=0。根據公式 15,我們還可以得到:

E[(T(y))i]=y=1k(T(y))ϕi=y=1kI(y=i)ϕi=ϕi

i=1kI(y=i)=1

下面,二項分佈轉變爲指數分佈族的推導如下:


這裏寫圖片描述 

其中,最後一步的各個變量如下:


這裏寫圖片描述 

η的表達式可知:

ηi=logϕiϕkϕi=ϕkeηi

爲了方便,再定義:

ηk=logϕkϕk=0

於是,可以得到:

j=1kϕi=j=1kϕkeηi=1ϕk=1kj=1eηi

將上式代入到ηi=logϕiϕkϕi=ϕkeηi,得到:

ϕi=eηikj=1eηi=eηi1+k1j=1eηi

從而,我們就得到了連接函數,有了連接函數後,就可以把多項式分佈的概率表達出來:

P(y=i)=ϕi=eηi1+k1j=1eηi=eθTix1+k1j=1eθTjx

注意到,上式中的每個參數ηi都是一個可用線性向量θTix表示出來的,因而這裏的θ其實是一個二維矩陣。

於是,我們可以得到假設函數 h 如下:


這裏寫圖片描述 

那麼就建立了假設函數,最後就獲得了最大似然估計


這裏寫圖片描述 

對該式子可以使用梯度下降算法或者牛頓方法求得參數θ後,使用假設函數h對新的樣例進行預測,即可完成多類分類任務。這種多種分類問題的解法被稱爲 softmax regression.

附錄:
斯坦福機器學習第4講
附上大神筆記:

http://blog.csdn.net/dream_angel_z/article/details/46288167#t1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章