機器學習之邏輯迴歸(logistics regression)

邏輯迴歸(Logistic Regression)與線性迴歸(Linear Regression)都是一種廣義線性模型(generalized linear model)。邏輯迴歸假設因變量 y 服從伯努利分佈,而線性迴歸假設因變量 y 服從高斯分佈。 因此邏輯迴歸與線性迴歸有很多相同之處,去除Sigmoid映射函數的話,邏輯迴歸算法就是一個線性迴歸。

邏輯迴歸雖然帶有“迴歸”二字,但其本質卻是一個經典的二分類算法。對於線性迴歸,其輸出值可以是任意值,比如我要預測2025年的房價,訓練出模型並應用之後得到的是一個具體的數值;而分類的話得到的答案是1 or 0,1表示屬於該類,0表示不屬於該類。

1.Sigmoid

邏輯迴歸中用到了一個非常重要的函數:Sigmoid函數,Sigmoid函數也叫Logistic函數,其取值範圍是(0,1)。
Sigmoid函數由下列函數定義:
在這裏插入圖片描述
圖像:
在這裏插入圖片描述
求導:
在這裏插入圖片描述

2.Loss Function的推導

在這裏插入圖片描述
邏輯迴歸的損失函數我們採用的是一種交叉熵,而不是線性迴歸裏面的Square Error,解釋如下:
在這裏插入圖片描述
從推導可以看出,對邏輯迴歸假若使用Square Error,無論f(w,b,x)=1還是0,都是靠近最優解的,這顯然是不合理的。借用李宏毅老師課件上的一張圖可以更加具體地說明這個問題:
在這裏插入圖片描述
距離target越遠,我們應該更快地更新參數,即距離越遠微分值應該越大,梯度下降時移動的距離就越遠。but對於Square Error,即使距離很遠,微分值也會非常小,移動到target的速度就非常慢了。

3.Discriminative VS Generative

邏輯迴歸的方法稱爲Discriminative(判別) 方法;上一篇中用高斯來描述後驗概率,稱爲 Generative(生成) 方法。它們的函數集都是一樣的:
在這裏插入圖片描述
區別是:判別方法中的w和b是用梯度下降的方法找到的,而生成方法中的w和b,從上一篇文章可以看出來,是使用極大似然估計,先估計出u1,u2以及共用的協方差矩陣∑,最後代入式子中算出來的。

4.Multi-class Classification

圖源:李宏毅機器學習課件
在這裏插入圖片描述
最後的輸出y1y2,y3是每一項除以各項之和的形式,所以可以把它們看成概率,從圖中我們可以看出當softmax用於二分類時,就自動變成了logistics regression。
前面邏輯迴歸二分類時,損失函數用的是交叉熵的形式,多分類問題同樣如此。二分類時,定義的y head爲:當xi屬於C1時,y head=1否則爲0。而在多分類問題中顯然不能再如此,多分類問題中,y head定義爲一個向量,具體定義形式見上圖。

5.邏輯迴歸的限制:

在這裏插入圖片描述
考慮一個簡單的二分類問題,有x1,x2兩個特徵,兩個特徵值都爲0 or 1爲C2,否則爲C1。在邏輯迴歸中,輸入某一個樣本的兩個特徵值x1,x2,與各自的權重w1,w2相乘,也就是求inner product,最後加上一個bias,得到z,再將z用Sigmoid函數處理,最後與0.5進行比較,就可以判斷屬於哪一個類別。但是我們將兩個特徵映射到到一個二維座標系上,發現根本不可能找到一條直線將兩類樣本完全分開。這種限制與數據量無關,是邏輯迴歸自己本身的限制。
鑑於上面這種情況,就需要用到
Teature Transformation
,即特徵轉換。用特徵轉換處理後,使得我們能夠用一條直線將C1和C2,也就是上面的紅點和藍點分開。圖裏面的處理方法是:定義新的x1,x2,x1爲點到(0,0)的距離,x2爲到點(1,1)的距離,處理後如下圖所示:
在這裏插入圖片描述
這時候我們發現,就能夠找到一條直線將兩類點分開,但在實際應用中,我們往往不能夠找到比較好的特徵變換的方法。
事實上,Feature Transformation也可以用一個邏輯迴歸模型來實現,如下所示:在這裏插入圖片描述
第一個邏輯迴歸是實現了特徵轉換,第二個邏輯迴歸實現了分類。
在這裏,就引入了Deep Learning的概念。一個邏輯迴歸的輸入可以來源於其他邏輯迴歸的輸出,這個邏輯迴歸的輸出也可以是其他邏輯迴歸的輸 入。把每個邏輯迴歸稱爲一個 Neuron(神經元),把這些神經元連接起來的網絡,就叫做 Neural Network(神經網絡)。

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