平時經常看到牛頓法怎樣怎樣,一直不得要領,今天下午查了一下維基百科,寫寫我的認識,很多地方是直觀理解,並沒有嚴謹的證明。在我看來,牛頓法至少有兩個應用方向,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階形式:
這個式子是成立的,當且僅當 Δx 無線趨近於0。此時上式等價與:
(原因是當Δx 趨近於0的時候f(x)=f(x+Δ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)
指數分佈族是指可以表示爲指數形式的概率分佈。指數分佈的形式如下:
其中,η成爲分佈的自然參數(nature parameter);T(y)是充分統計量(sufficient statistic),通常 T(y)=y。當參數 a、b、T 都固定的時候,就定義了一個以η爲參數的函數族。
下面介紹兩種分佈,伯努利分佈和高斯分佈,分別把它們表示成指數分佈族的形式。
伯努利分佈
伯努利分佈是對0,1問題進行建模的,對於Bernoulli(
將其與指數族分佈形式對比,可以看出:
表明伯努利分佈也是指數分佈族的一種。從上述式子可以看到,
高斯分佈
下面對高斯分佈進行推導,推導公式如下(爲了方便計算,我們將方差
將上式與指數族分佈形式比對,可知:
兩個典型的指數分佈族,伯努利和高斯分佈。其實大多數概率分佈都可以表示成指數分佈族形式,如下所示:
- 伯努利分佈(Bernoulli):對 0、1 問題進行建模;
- 多項式分佈(Multinomial):多有 K 個離散結果的事件建模;
- 泊松分佈(Poisson):對計數過程進行建模,比如網站訪問量的計數問題,放射性衰變的數目,商店顧客數量等問題;
- 伽馬分佈(gamma)與指數分佈(exponential):對有間隔的正數進行建模,比如公交車的到站時間問題;
- β 分佈:對小數建模;
- Dirichlet 分佈:對概率分佈進建模;
- Wishart 分佈:協方差矩陣的分佈;
- 高斯分佈(Gaussian);
下面來介紹下廣義線性模型(Generalized Linear Model, GLM)。
3.廣義線性模型(Generalized Linear Model, GLM)
你可能會問,指數分佈族究竟有何用?其實我們的目的是要引出GLM,通過指數分佈族引出廣義線性模型。
仔細觀察伯努利分佈和高斯分佈的指數分佈族形式中的
下面我們看 GLM 的形式化定義,GLM 有三個假設:
- (1)
y|x;θ ExponentialFamily(η) ;給定樣本x 與參數θ ,樣本分類y 服從指數分佈族中的某個分佈; - (2) 給定一個
x ,我們需要的目標函數爲hθ(x)=E[T(y)|x] ; - (3)
η=θTx 。
依據這三個假設,我們可以推導出logistic模型與普通最小二乘模型。首先根據伯努利分佈推導Logistic模型,推導過程如下:
公式第一行來自假設(2),公式第二行通過伯努利分佈計算得出,第三行通過伯努利的指數分佈族表示形式得出,然後在公式第四行,根據假設三替換變量得到。
同樣,可以根據高斯分佈推導出普通最小二乘,如下:
公式第一行來自假設(2),第二行是通過高斯分佈
其中,將η與原始概率分佈中的參數聯繫起來的函數成爲正則相應函數(canonical response function),如
所以,對於廣義線性模型,需要決策的是選用什麼樣的分佈,當選取高斯分佈時,我們就得到最小二乘模型,當選取伯努利分佈時,我們得到 logistic 模型,這裏所說的模型是假設函數 h 的形式。
最後總結一下:廣義線性模型通過假設一個概率分佈,得到不同的模型,而梯度下降和牛頓方法都是爲了求取模型中的線性部分
多分類模型-Softmax Regression
下面再給出GLM的一個例子——Softmax Regression.
假設一個分類問題,y可取k個值,即
多項式分佈推導出的GLM可以解決多類分類問題,是 logistic 模型的擴展。對於多項式分佈中的各個y的取值,我們可以使用k個參數
但是,這些參數可能會冗餘,更正式的說可能不獨立,因爲
爲了使多項式分佈能夠寫成指數分佈族的形式,我們首先定義 T(y),如下所示:
和之前的不一樣,這裏我們的
下面我們引入指數函數I,使得:
這樣,
舉例來說,當
下面,二項分佈轉變爲指數分佈族的推導如下:
其中,最後一步的各個變量如下:
由
爲了方便,再定義:
於是,可以得到:
將上式代入到
從而,我們就得到了連接函數,有了連接函數後,就可以把多項式分佈的概率表達出來:
注意到,上式中的每個參數
於是,我們可以得到假設函數 h 如下:
那麼就建立了假設函數,最後就獲得了最大似然估計
對該式子可以使用梯度下降算法或者牛頓方法求得參數
附上大神筆記:
http://blog.csdn.net/dream_angel_z/article/details/46288167#t1