1. 程式人生 > >機器學習方法(五):邏輯迴歸Logistic Regression,Softmax Regression

機器學習方法(五):邏輯迴歸Logistic Regression,Softmax Regression

歡迎轉載,轉載請註明:本文出自Bin的專欄blog.csdn.net/xbinworld
技術交流QQ群:433250724,歡迎對演算法、技術、應用感興趣的同學加入。

前面介紹過線性迴歸的基本知識,線性迴歸因為它的簡單,易用,且可以求出閉合解,被廣泛地運用在各種機器學習應用中。事實上,除了單獨使用,線性迴歸也是很多其他演算法的組成部分。線性迴歸的缺點也是很明顯的,因為線性迴歸是輸入到輸出的線性變換,擬合能力有限;另外,線性迴歸的目標值可以是(,+),而有的時候,目標值的範圍是[0,1](可以表示概率值),那麼就不方便了。

邏輯迴歸可以說是最為常用的機器學習演算法之一,最經典的場景就是計算廣告中用於CTR預估,是很多廣告系統的核心演算法。

邏輯迴歸Logistic Regression

邏輯迴歸(LR),雖然叫回歸,然是從目標函式來看,它是設計用來做分類的,經典的LR是用於二分類的情況的,也就是說只有0,1兩類。

定義一個樣本xiRm的類別是1的概率為:

P(yi=1|xi)=exp(wTxi)1+exp(wTxi)=11+exp(wTxi)
這就是sigmoid函式的形式,繪製出來是這樣的形式:
這裡寫圖片描述
圖1

可以看到,取值範圍是在(0,1)的,因此近似可以理解為一個概率的取值。在神經網路模型中,sigmoid函式是一種激勵函式,其他常見的還有tanh函式,以及其他一些函式。(這些激勵函式後面介紹神經網路模型的時候再展開)

記sigmoid函式為

h(xi)=P(yi=1|xi)=11+exp(wTxi)

給定一個數據集S,其中有N個樣本,那麼可以寫出目標函式:最小化負對數似然函式:

minwL(w)=logi=1Nh(xi)yi1h(xi))1yi=i=1N[yilogh(xi)+(1yi)log(1h(xi))]=i=1N[yi(wTxi)log(1+exp(wTxi))]

可以看到目標函式本質上是一個求和的形式,為了防止數值本身過大,一般會用平均值形式:

L(w)=1Ni=1N[yi(wTxi)log(1+exp(wTxi))]

如何優化這個目標函式呢?採用標準的梯度下降

演算法,梯度下降可以參考我前面寫的PRML ch5.2-5.3中關於梯度下降的部分,也可以參考一下資料[2]。

L(w)=Lw=1Ni=1N(h(xi)yi)xiw=wαL(w)

通過梯度下降,我們就可以求出w,然後帶到

P(yi=1|xi)=11+exp(wTxi)
就可以求出屬於1類的概率,只要概率大於0.5,我們就可以分類為1;當然,如果保留概率本身的數值,我們也可以認為是做了一個迴歸預測,只不過取值範圍是(0,1)。

Softmax Regression

上面介紹的邏輯迴歸是針對二分類問題的,可以看下圖圖2,實線部分就是表示邏輯迴歸的model,多個輸入,一個輸出,

這裡寫圖片描述
圖2

如果有多類,我們可以採用多個二分類,且互相間是獨立的;另外一種情況,類別之間不是獨立的,而是同時在多個類中進行分類,這個時候就需要用softmax了(圖2中,虛線部分又增加了一個輸出,實際上邏輯迴歸是softmax的一個特例)。

當有k個類別時,一個樣本x(i)屬於第j類的概率是:

p(y(i)=j|x(i);w)=e