GitHub
簡書
CSDN
在我們學習機器學習的過程中,我們所需解決的問題,大致可以分爲兩部分:分類和迴歸.其中,分類是指模型用來預測一個有限的離散值集合中的一個,比如貓狗分類,腫瘤的惡性或良性; 迴歸是指模型的輸出是一個連續變量,比如預測房價、身高等.本篇內容講解的是機器學習中經典的邏輯(斯諦)迴歸(Logistic Regression),從名字上看,大家誤以爲該方法是一種迴歸方法,其實不然,它是分類方法的一種,常用於二元分類,但是爲什麼會取名迴歸,我個人理解大致有如下幾點原因:
1. 利用迴歸的思想來解決分類問題;
2. 它的輸出也是一個連續值,通過設定閾值來實現分類
1. 邏輯斯諦分佈
定義:設X是連續隨機變量,X服從邏輯斯諦分佈是指X具有下列分佈函數和密度函數:
F(x)=P(X≤x)=1+e−(x−u)/γ1(1)
f(x)=F′(x)=γ(1+e−(x−u)/γ)2e−(x−μ)γ(2)
其中,μ爲位置參數,γ>0爲形狀參數.
該函數以點(μ,21)爲中對稱,既有如下關係:
F(−x+μ)F(−x+μ)−21=1−F(x+μ)=F(x+μ)+21(3)
形狀參數γ的值越小,曲線在中心附近增長的越快.該函數的圖形如下圖所示:
圖一 邏輯斯諦分佈的分佈函數和密度函數
2 二元邏輯斯諦迴歸
二元邏輯斯諦迴歸模型是一種分類模型,有條件概率分佈P(Y∣X)表示,X取值爲實數,隨機變量 Y 取值爲 1或0;
邏輯斯諦迴歸模型的條件概率如下:
p(Y=1∣x)P(Y=0∣x)=1+exp(w⋅x+b)exp(w⋅x+b)=1+exp(−(w⋅x+b))1=1+exp((w⋅x+b))1(4)
這裏, $ x \in R^n 表示樣本的特徵向量,Y \in {0, 1}$是輸出表示樣本的類別, w∈Rn 和 $ b \in R是模型的參數,其中,w$ 表示權重向量,b表示偏置。w⋅x表示w和x的內積.通常爲了方便,我們將樣本和權重向量進行擴充,仍記作w和b:
w=(w1,w2...wn,b)
x=(x1,x2...xn,1)
此時邏輯斯蒂迴歸模型記作:
p(Y=1∣x)P(Y=0∣x)=1+exp(w⋅x)exp(w⋅x)=1+exp((w⋅x))1(5)
機率是指一個事件發生與不發生的概率比值,即1−pp
則它的對數機率爲lnit(p)=log1−pp,對於邏輯斯蒂迴歸迴歸而言,其對數機率爲
logit(1−P(Y=1∣x)P(Y=1∣x))=w⋅x(6)
3 模型參數估計
對於給定的訓練數據集T={(x1,y1),(x2,y2)...(xn,yx)},可以應用極大似然估計(使模型預測的標籤爲真是標籤的值最大化)模型參數,從而得到最優的邏輯斯蒂迴歸模型。
首先,設P(Y=1∣x)=π(x),P(Y=0∣x)=1−π(x),則似然函數爲:
i=1∏n[π(x)]yi[1−π(x)]1−yi=i=1∏nyiπ(xi)+(1−yi)(i−π(xi))(7)
極大似然函數和交叉熵的樹學公式形式時一摸一樣的,但是他們背後的數學原理略有不同。
通常在處理優化問題時,我們都利用對數函數來把連乘變成求和來簡化問題,因此公式七的對數似然函數爲:
L(w)=i=1∑n[yilnπ(xi)+(1−yi)ln(1−π(xi))]=i=1∑n[yilnπ(xi)−yiln(1−π(xi))+ln(1−π(xi))]=i=1∑n[yiln1−π(xi)π(xi)(注:這就是對數幾率值)+ln(1−π(xi))]=i=1∑n[yi(w∗xi)+ln(1+exp((w⋅x))1)]=i=1∑n[yi(w∗xi)−ln(1+exp(w⋅x1))](8)
通過梯度下降和擬牛頓法即可求的該函數,我們求L(w)對w的倒數:
∂w∂L(w)=i=1∑n[yixi−(1+exp(w⋅x1)1∗exp(w⋅xi))∗xi]=i=1∑n[yixi−π(xi)∗xi](9)
通常我們在實際優化的時候,都是求取最小值,因此通常使用−L(w)作爲損失函數.
問題:在機器學習或深度學習中,我們通常以L2作爲損失函數,但是爲什麼這裏是用了極大似然估計?
我們先觀察一下使用L2範數作爲損失函數時,對w的求導公式:
L2(w)∂w∂l2(w)=21i=1∑n(π(xi)−yi)2=i=1∑n[(π(xi)−yi)∗∂z∂π(xi)∗∂w∂z]=i=1∑n[(π(xi)−yi)π(xi)(1−π(xi))xi](10)
其中, z=w⋅x, 則π(x)=1+exp(x)exp(x),其導數爲π′(x)=π(x)(1−π(x))
這裏主要考慮的是優化問題,極大似然估計函數是一個凸函數,這是優化問題再最容易優化的模型,我們可以得到全局最優解,而對於L2,由於Sigmoig函數導數的特性,當π(x)接近0或者1時,此時的倒數就接近0,從而容易使函數陷入局部最優.
下圖是兩個損失函數以w爲參數的簡化圖