Logistic回歸(邏輯回歸)和softmax回歸


 一、Logistic回歸

Logistic回歸(Logistic Regression,簡稱LR)是一種常用的處理二類分類問題的模型。

在二類分類問題中,把因變量y可能屬於的兩個類分別稱為負類和正類,則因變量y∈{0, 1},其中0表示負類,1表示正類。線性回歸的輸出值在負無窮到正無窮的范圍上,不太好解決這個問題。於是我們引入非線性變換,把線性回歸的輸出值壓縮到(0, 1)之間,那就成了Logistic回歸,使得≥0.5時,預測y=1,而當<0.5時,預測y=0。Logistic回歸的名字中盡管帶有回歸二字,可是它是實打實的分類算法。

線性回歸和Logistic回歸的形狀如下圖所示:

那用什么非線性變換把線性回歸轉化成Logistic回歸呢?

1、Logistic回歸的函數形式:

Logistic回歸模型的函數形式為:,其中x代表樣本的特征向量,g(z)代表sigmoid函數,公式為。下圖為sigmoid函數的圖形。

所以Logistic回歸模型就是:

的作用是,對於給定的輸入變量,根據選擇的參數確定輸出變量y=1的概率,即后驗概率的取值范圍是(0, 1)。

那么怎么根據的輸出值來預測樣本的類別呢?按照下面的規則:

2、Logistic回歸的損失函數

Logistic回歸中的參數是θ,怎么估計這個參數呢?那么就要定義損失函數,通過最小化損失函數來求解參數。

線性回歸中的損失函數是平方誤差損失函數,如果Logistic回歸也采用這種損失函數形式,那么得到的損失函數將是一個非凸函數。這意味着損失函數會有很多局部極小值,因此不容易找到全局最小值。比如左邊這個就是非凸函數的形狀,明顯右邊這個平滑的圖不容易陷入局部極小值陷阱。

假設訓練數據集為{(x1,y1),(x2,y2),...(xm, ym)},即有m個樣本,令x=[x0, x1, ..., xn]T,x0=1,即每個樣本有n個特征,y∈{0, 1}。於是把Logistic回歸的損失函數定義為對數損失函數:

這個對數損失函數的特點是:當類別y=1時,損失隨着的減小而增大,為1時,損失為0;當類別y=0時,損失隨着的增大而增大,為0時,損失為0。與損失的關系如下圖:

可以把損失整理為以下的形式:

於是損失函數就成了:

這個損失函數叫做對數似然損失函數,也有個很好聽的名字:交叉熵損失函數(cross entropy loss)。這個損失函數是個凸函數,因此可以用梯度下降法求得使損失函數最小的參數。

3、Logistic回歸的梯度下降法

得到了交叉熵損失函數后,可以用梯度下降法來求得使代價函數最小的參數,也就是按下面這個公式更新每個參數θj

這個公式怎么推導的呢?如下是詳細的推導過程。

已知:

首先:

把上式代入損失函數中,並對θj求偏導:

這個推導比較長,但是推導的結果非常簡潔漂亮。

將這個偏導數乘以學習了,得到了用梯度來更新參數的公式,再用下面這個公式來同時更新所有的參數值,使損失函數最小化,直到模型收斂。

4、Logistic回歸防止過擬合

在損失函數中加入參數θj的L2范數,限制θj的大小,以解決過擬合問題,那么加入正則化項的損失函數為:

相應的,此時的梯度下降算法為:

重復以下步驟直至收斂:

 

二、softmax回歸

Logistic回歸是用來解決二類分類問題的,如果要解決的問題是多分類問題呢?那就要用到softmax回歸了,它是Logistic回歸在多分類問題上的推廣。此處神經網絡模型開始亂入,softmax回歸一般用於神經網絡的輸出層,此時輸出層叫做softmax層。

1、softmax函數

首先介紹一下softmax函數,這個函數可以將一個向量(x1,x2,...,xK)映射為一個概率分布(z1,z2,...,zK):

那么在多分類問題中,假設類別標簽y∈{1, 2, ..., C}有C個取值,那么給定一個樣本x,softmax回歸預測x屬於類別c的后驗概率為:

其中wc是第c類的權重向量。

那么樣本x屬於C個類別中每一個類別的概率用向量形式就可以寫為:

其中W=[w1,w2,...,wC]是由C個類的權重向量組成的矩陣,1表示元素全為1的向量,得到是由所有類別的后驗概率組成的向量,第c個元素就是預測為第c類的概率,比如[0.05, 0.01, 0.9, 0.02, 0.02],預測為第3類。

2、softmax回歸的損失函數和梯度下降

假設訓練數據集為{(x1,y1),(x2,y2),...(xM, yM)},即有M個樣本,softmax回歸使用交叉熵損失函數來學習最優的參數矩陣W,對樣本進行分類。

由於涉及到多分類,所以損失函數的表示方法稍微復雜一些。我們用C維的one-hot向量y來表示類別標簽。對於類別c,其向量表示為:

其中表示指示函數。

則softmax回歸的交叉熵損失函數為:

其中表示樣本預測為每個類別的后驗概率組成的向量。

上面這個式子不太好理解,我們單獨拿出一個樣本來觀察。假設類別有三類,預測一個樣本x屬於第2類的交叉熵損失為,其中,如果預測正確,如,則交叉熵損失為,而如果預測錯誤,如,則交叉熵損失為,可見預測錯誤時損失非常大。

同樣的,用梯度下降法對損失函數進行優化求解,首先得到損失參數向量W的梯度:

初始化W0=0,然后對所有參數WC進行迭代更新,直至收斂。

 

三、總結

Logistic回歸這個可愛的模型,相比SVM、GBDT等模型,要簡單得多,但是由於這個模型可解釋性強,被廣泛運用於各種業務場景中。此外,它也是如今大行其道的深度學習算法的基礎之一。

邏輯回歸的優點有以下幾點:

1、模型的可解釋性比較好,從特征的權重可以看到每個特征對結果的影響程度。

2、輸出結果是樣本屬於類別的概率,方便根據需要調整閾值。

3、訓練速度快,資源占用少。

而缺點是:

1、准確率並不是很高。因為形式非常簡單(非常類似線性模型),很難去擬合數據的真實分布。

2、處理非線性數據較麻煩。邏輯回歸在不引入其他方法的情況下,只能處理線性可分的數據。

3、很難處理數據不平衡的問題。

吳恩達老師說,學完了Logistic回歸,就有了豐富的機器學習知識,目測比那些硅谷工程師還厲害。所以有公司要我嗎?坐等。 

 

 

 

參考資料:

1、吳恩達:《機器學習》

2、邱錫鵬:《神經網絡與深度學習》

3、 https://blog.csdn.net/u010867294/article/details/79138603


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM