天天看點

Logistic regression ,Softmax regression and Newton's method

首先說的是Logistic regression,一般來說他隻能用于分兩類(0或1)的情況,雖然我曾在Andrew Ng的課上講過也可以處理多類的情況。

Logistic regression的思想非常簡單,就是将負無窮到正無窮的區間用一個函數映射到了0到1的區間。這個函數是:

Logistic regression ,Softmax regression and Newton's method

使用這個函數是有一套理論支撐的,Andrew Ng在網易公開課有講,大概就是涉及到指數分布和一般線性模型的概念,比較複雜,這裡略過。

假如設Htheta(x)為x是1類的機率,那麼顯然有1-Htheta(x)為x是0類的機率,我們可以寫出兩個式子

P(y=1/x)=Htheta(x)

P(y=0/x)=1-Htheta(x)

那麼有:

Logistic regression ,Softmax regression and Newton's method

我之是以寫出這個式子,是因為我想用它來推導cost函數,而不是直接得到cost函數。

根據最大似然理論:

Logistic regression ,Softmax regression and Newton's method

根據這個式子,取對數後能夠得到cost函數為:

Logistic regression ,Softmax regression and Newton's method

接下來就是如何最小化這個cost函數得到最優的theta值,這裡可以用梯度下降法,或者牛頓法來解決。

這裡說下Logistic regression解決多類的問題,具體可以這樣做,當我們想要分很多類的時候,我們對于每一類當做一類,其他不屬于這個類的屬于另一類,然後可以算得一條分界線,對于k類的情況,可以算得k條分界線,也就是k個分類器,每當一個新的樣本來時,隻要枚舉所有分類器,每j個分類器能算出這個新的樣本屬于第j類的機率Pj(1<=j<=k),最後的結果則取使得Pj最大的那個j所對應的類。

Softmax regression 的Htheta函數和cost函數如下:

Logistic regression ,Softmax regression and Newton's method
Logistic regression ,Softmax regression and Newton's method

可以發現,Softmax regression 和Logistic regression 的損失函數非常相似,

這是因為Logistic regression的損失函數可以寫成這樣:

Logistic regression ,Softmax regression and Newton's method

Softmax regression最優化後得到的參數有一個特點,就是所有的參數減去同一個值

後,他們還是最優的,有證明如下:

Logistic regression ,Softmax regression and Newton's method

這個說明了參數的解不是唯一的,我們還需要加一個規則項來修改cost函數:

Logistic regression ,Softmax regression and Newton's method

最後得到偏導數表達式為:

Logistic regression ,Softmax regression and Newton's method

至此說完這兩個回歸,個人覺得這裡還是有必要說一下牛頓法,

牛頓法可以用來求解f(x)=0的根,它的求解方法如下:設r是f(x)=0的根,選取x0作為r的初始近似值,過點(x0,f(x0)做曲線y=f(x)的切線L,L的方程為y=f(x0)+f'(x0)(x-x0),求出L與x軸交點的橫坐标x1=x0-f(x0)/f'(x0),稱x1為r的一次近似值。過點(x1,f(x1)做曲線y=f(x)的切線,并求該切線與x軸交點的橫坐标x2=x1-f(x1)/f'(x1),稱x2為r的二次近似值。重複以上過程直到誤差小于某個值。

而對于一個似然函數的最大值,我們可以選擇将這個似然函數的導數令做f(x)求其的0解來得到似然函數的最大值。

對于最一般的牛頓法,有:

Logistic regression ,Softmax regression and Newton's method

此時theta是一個向量,H是hessian矩陣。

這裡說一點牛頓法并不是對所有的f(x)試用,比如f(x)不連續就不可以使用。

繼續閱讀