(本章節介紹邏輯迴歸模型及如何使用似然函數推導最優參數,並在最後介紹什麼是最大似然算法;下一章節將介紹如何使用牛頓法求解參數及代碼展示)
邏輯回歸屬於分類問題中的一種,與線性迴歸問題不同的是,邏輯迴歸的輸出是有限個離散值,而線性迴歸的輸出是連續型數值。首先我們關注二分類問題,可以考慮這樣的實際應用場景,如判斷郵件是否是垃圾郵件,判斷腫瘤是是否是惡性腫瘤,網上購物商城根據用戶購買記錄預測用戶是否會點擊特定商品等等問題。
對於二分類問題,定義輸出類別標籤 y∈{0,1} ,即當y=0 時,表示數據屬於負樣本,否則數據屬於正樣本。最直接的想法是使用前面介紹的線性迴歸模型對數據建模,當輸出大於某個閾值時,認爲是負樣本,否則認爲數據是正樣本。這樣設計很容易存在問題,首先線性迴歸的輸出不僅侷限在[0,1] 的,其次很容易受到數據分佈的影響,如下圖,因爲孤立數據的影響,導致分界面的偏移,部分數據無法正確分類。
1.1邏輯迴歸
由此,我們引入邏輯迴歸問題,主要形式爲,
hθ(x)=g(θTx)=11+e−θTx
其中
g(z) 爲sigmoid函數,值域爲
[0,1] ,所以
hθ(x) 的輸出範圍被控制在
[0,1] 內。
sigmoid函數
g(z) 的基本形式
g(z)=11+e−z ,其數據分佈爲,
這樣,對於分類問題,當有輸出hθ(x)>0.5 時,預測分類值爲y=1 ,否則,有預測值爲y=0 。也就是說,當θTx>0 時,預測分類爲1,當θTx<0 時,預測分類爲0。由此可以看出,參數θ 控制分類界面。
接下來,我們將使用最大似然函數的思想求解最優參數θ 值。
1.2參數θ 求解
數據的分佈模型我們已經定義好了,那麼接下來的問題是給定輸入數據x 和標籤數據y ,如何確定參數θ ,使得能夠得到當前數據的可能性最大呢?沒錯,這裏用到的就是最大似然估計的思想(maximum likelihood estimation)。(關於最大似然估計的思想參考小章節1.3)
我們假設數據之間採樣是獨立的,且數據分佈滿足,
p(y=1|x;θ)=hθ(x)
p(y=0|x;θ)=1−hθ(x)
可以理解爲
hθ(x) 表示正樣本出現概率。將兩者結合起來,可以寫成
p(y|x;θ)=(hθ(x))y(1−hθ(x))1−y
,
那麼
m 個樣本的似然函數表達爲,
L(θ)=p(y⃗ |X;θ)=∏i=1mp(y(i)|x(i);θ)=∏i=1m(hθ(x(i)))y(i)(1−hθ(x(i)))1−y(i)
爲了使計算方便,我們計算對數似然函數,
l(θ)=logL(θ)=∑i=1my(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))
我們同樣可以採用梯度下降的方法求解θ ,使得似然函數最大,不過不同的是,迭代函數爲θ←θ+α∇θl(θ) , 注意,這裏α 前面是加號,因爲求解的是最大值。當只有一個樣本時的推導公式爲,
所以參數θ 在m 個訓練樣本時的更新公式爲,
θj←θj+α1m∑i=1m(y(i)−h(i)θ)x(i)j
有趣的是,我們發現,迭代公式竟然與線性迴歸中求解參數的公式是類似的,只不過模型
hθ(x) 是不一樣的。
1.3 最大似然估計
最大似然估計提供了當給定觀察數據和數據模型,求解模型參數的方法,也就是說,數據分佈模型是一定的,但是模型參數是未知的。舉個例子來說,假設我們期望統計全國人口的身高,假定分口分佈是服從正態分佈的,但是該分佈的參數,也就是均值和方差是未知的。那麼我們可以通過採樣的方法獲取部分樣本數據,然後通過最大似然估計求出正態分佈的均值和方差參數。
最大似然估計中一個必須注意的假設是採樣數據之間是相互獨立的。對於最大似然估計的數學描述是,
給定一個概率分佈D,並且其概率分佈表示爲fD ,其參數爲θ ,我們獨立地採樣m個樣本,表示爲x1,x2,⋯,xm 。那麼這m個樣本的聯合密度分佈爲,
P(x1,x2,⋯,xm)=fD(x1,x2,⋯,xm|θ)=∏i=1mfD(xi|θ)
我們期望求解到一個最合適的參數θ ,或者說可以使得當前採樣數據出現可能性最大的參數,也就是使得聯合概率密度函數最大的參數。那麼似然函數就定義爲,
L(θ|x1,x2,⋯,xm)=P(x1,x2,⋯,xm)
在實際中,爲了計算方便,消除連乘,通過計算對數似然函數,
logL(θ)=∑i=1mfD(xi|θ)
通常求解參數θ 的方法是對對數似然函數求導,並令其爲0求解得到。
例子:假定樣本服從正態分佈N(μ,σ2) ,獨立抽取樣本x1,x2,⋯,xm ,利用最大似然方法求解參數μ 和σ
似然函數爲,
L(μ,σ2)=∏i=1m12π−−√σe−(xi−μ)22σ2
對數似然爲(此處省略推導過程,讀者可以自行推導)
logL(μ,σ2)=−n2log(2π)−n2log(σ2)−12σ2∑i=1m(xi−μ)2
對數似然函數對每個參數求導數,並將其爲0,得到方程組,
⎧⎩⎨∂logL(μ,σ2)∂μ=1σ2∑mi=1(xi−μ)=0∂logL(μ,σ2)∂σ2=−n2σ2+12σ4∑mi=1(xi−μ)2=0
求解到參數分別爲,
μ=1m∑i=1mxi
σ2=1m∑i=1m(xi−μ)2