logistic迴歸的數學推導

1、引入

1.1 分類問題的描述

對於分類問題,我們通常將整個問題記爲D={xi,yi}Ni=1 ,我們的對於y 的預測值記爲

y=f(x)=argmaxcp(y=c|x,D)
這個公式中,y 爲離散值,其取值範圍爲y={1,2,...,C} ,表示有C 個類別。當C=2 時即爲二分類問題,在下面將詳細討論這種分類問題。在正式的討論之前,回顧一下貝葉斯公式。

1.2 貝葉斯公式

貝葉斯公式中有三個概率:先驗概率、後驗概率、類條件概率。

先驗概率:p(y=c)
類條件概率:p(x|y=c)
後驗概率:p(y=c|x)

這裏用一個例子來說明:
假設y=1 表示某個病人得病,x 表示血液中白細胞的數量。
類條件概率 指的是當得了病之後,血液中白細胞的數量爲某值的概率;
先驗概率 指的是這個人本身得病的概率;
後驗概率 指的是通過檢查已經知道了某個人血液中的白細胞數量,這個人得病的概率。

我們熟悉的貝葉斯公式爲:

P(A|B)=P(B|A)P(A)P(B)

1.3 logistic迴歸引入

接着第一部分的內容,當C=2 時,即爲最簡單的兩分類問題,對於這類問題,y 的取值爲0和1兩個,因此有p(y=1|x)+p(y=0|x)=1 ,求出其中一個就可以得到另一個概率。這裏我們將這種二分類問題的分佈稱作Bernoulli分佈。

p(y|x)=Ber(y|μ(x))

Tips:其中的μ(x)=E(y|x)=p(y=1|x) 表示的是整個分佈的均值。
(其中的E(y|x)=1×p(y=1|x)+0×p(y=0|x)

這裏介紹一下bernoulli分佈:

Ber(x|θ)=θx(1θ)(1x)
對於這個式子,他的正確性是肯定的,舉個例子:
Ber(x|θ)={1θ,x=0θ,x=1

我們所說的logistic迴歸,就是在bernoulli分佈的基礎上,將μ(x) 替換爲μ(x)=sigmoid(wTx)
其中的sigmoid函數爲:

sigmoid(η)=11+exp(η)=exp(η)exp(η)+1

圖像爲:
sigmoid函數圖形

針對我們的logistic迴歸,μ(x)=sigmoid(wTx) 一式中的wTx 的取值範圍爲(,+) ,而bernoulli分佈參數的取值是[0,1] ,因此這裏的sigmoid函數的作用就是將取值範圍爲(,+) 的參數轉換到[0,1] 上。

2、損失函數與優化

2.1 損失函數與極大似然估計

在引入了logistic迴歸後,按照機器學習的常規操作需要確定損失函數,這裏的損失函數使用負log似然

J(w)=NLL(w)=i=1Nlog[(μi)yi×(1μi)(1yi)]=i=1N[yilog(μi)+(1yi)log(1μi)]
這裏根據Ber(x|θ)=θx(1θ)(1x) 得到w 的分佈。
在上式中,我們稱其中的
yilog(μi)+(1yi)log(1μi)
logistic損失,也稱作極大似然估計

2.2 計算梯度

由2.1中得到的損失函數可以進行梯度的計算,由於步驟比較繁瑣,這裏使用圖片進行表示。
損失函數J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]
梯度J(w)w=w[i=1N[yilog(μi)+(1yi)log(1μi)]]
梯度計算
計算梯度

這裏的計算也不復雜,主要是用了複合函數的求導。

在最後一步得到的μ(xi)yi 稱爲預測的殘差。
在上圖中,公式wμ(x)=μ(x)(1μ(x))x 的推導爲如下所示:
計算梯度2
這裏的求導主要用的是對於分數的求導,也不是很複雜,細心推一下就可以推出來。

在求得導數之後,我們如果想要使用牛頓法等二階優化算法的話,需要計算對梯度再求一次導,也就是去計算他的Hessian矩陣。

H(w)=w[g(w)T]=i=1N(wμi)xTi=μi(1μi)xixTi=XTdiag(μi(1μi))X
也就是可以寫成這樣的形式,最後一個等號後面的矩陣表示說明了他是一個正定的矩陣,可以使用凸優化的方法對其進行優化。

2.3 牛頓法

主要思想是使用f(x) 泰勒展開的前幾項來尋找f(x)=0 的解
首先對式子進行泰勒展開:

0=g(w^)=g(wt)+(w^wt)H(wt)+O(w^wt)
去掉後面的高階無窮小項,即可得:
g(wt)+(w^wt)H(wt)=0
也就可以推得:
w^=wtH1(wt)g(wt)
因此可以得到參數的更新規則爲:
wt+1=wtH1(wt)g(wt)
這種方法也叫作二階梯度下降法,因爲他的參數更新形式與梯度下降法是很相似的,但是使用的是Hessian矩陣,也就是梯度的梯度進行更新。

另外,牛頓法一般比梯度下降的方法要快,可能的原因是使用牛頓法這種二階梯度下降的算法“看”的更遠,因此會有比一般梯度下降更快的收斂速度。

3、正則化

如果損失函數取logistic損失,那麼logistic迴歸的目標函數爲:

J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]
加上L2正則化後,變爲
J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]+λ||w||22
或者L1正則:
J(w)=i=1N[yilog(μi)+(1yi)log(1μi)]+λ|w|
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章