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−θ)(1−x)
對於這個式子,他的正確性是肯定的,舉個例子:
Ber(x|θ)={1−θ,x=0θ,x=1
我們所說的logistic迴歸,就是在bernoulli分佈的基礎上,將μ(x) 替換爲μ(x)=sigmoid(wTx)
其中的sigmoid函數爲:
sigmoid(η)=11+exp(−η)=exp(η)exp(η)+1
圖像爲:
針對我們的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)(1−yi)]=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]
這裏根據
Ber(x|θ)=θx(1−θ)(1−x) 得到
w 的分佈。
在上式中,我們稱其中的
yilog(μi)+(1−yi)log(1−μi)
爲
logistic損失,也稱作
極大似然估計。
2.2 計算梯度
由2.1中得到的損失函數可以進行梯度的計算,由於步驟比較繁瑣,這裏使用圖片進行表示。
損失函數:J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]
梯度:∂J(w)∂w=∂∂w[∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]]
梯度計算:
這裏的計算也不復雜,主要是用了複合函數的求導。
在最後一步得到的μ(xi)−yi 稱爲預測的殘差。
在上圖中,公式∂∂wμ(x)=μ(x)(1−μ(x))x 的推導爲如下所示:
這裏的求導主要用的是對於分數的求導,也不是很複雜,細心推一下就可以推出來。
在求得導數之後,我們如果想要使用牛頓法等二階優化算法的話,需要計算對梯度再求一次導,也就是去計算他的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^=wt−H−1(wt)g(wt)
因此可以得到參數的更新規則爲:
wt+1=wt−H−1(wt)g(wt)
這種方法也叫作
二階梯度下降法,因爲他的參數更新形式與梯度下降法是很相似的,但是使用的是Hessian矩陣,也就是梯度的梯度進行更新。
另外,牛頓法一般比梯度下降的方法要快,可能的原因是使用牛頓法這種二階梯度下降的算法“看”的更遠,因此會有比一般梯度下降更快的收斂速度。
3、正則化
如果損失函數取logistic損失,那麼logistic迴歸的目標函數爲:
J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]
加上L2正則化後,變爲
J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]+λ||w||22
或者L1正則:
J(w)=∑i=1N−[yilog(μi)+(1−yi)log(1−μi)]+λ|w|