LR用於解決二分類問題。可以認爲LR模型擬合的是z=w*x+b 這條直線(分類邊界),使得儘可能地將數據中的兩個類別正確的分開。
預測函數:
hω(x)=g(ωTx)=1+e−ωTx1
0≤hω(x)≤1
輸出值不表示預測結果,而是數據被預測爲1(正例)的概率: P(y=1∣x;ω)=hω(x),
那麼預測爲負例的概率就是1−hω(x)=P(y=0∣x;ω)。
損失函數:
L(ω)=−ylogy^−(1−y)log(1−y^)
用極大似然估計的方法得出。
邏輯迴歸如果用誤差平方和作爲損失函數的話,
L(ω)=n1∑i=1n(ϕ(z(i))−y(i))2
其中,i表示第i個樣本點,y(i)表示第i個樣本的真實值,ϕ(z(i))表示第i個樣本的預測值,
ϕ(z)=1+e−z1,z(i)=wTx(i)+b ;
此時,將ϕ(z(i))=1+e−z1 代入的話,會發現這是一個非凸函數,
這就意味着代價函數有着許多的局部最小值,不利於我們的求解。
解決方法就是用極大似然估計。
爲什麼用負對數似然作爲損失函數呢?
極大似然估計:
把hω(x)視爲Y=1的後驗估計,假設因變量y服從伯努利分佈,取值爲0和1,那麼
p(y=1∣x)=hω(x)
p(y=0∣x)=1−hω(x)
兩式合併:p(y∣x)=hω(x)y(1−hω(x))1−y
對n個數據 {(x1,y1), (x2,y2), (x3,y3), … (Xn,Yn)},看作一組事件發生的總概率:
P總 = p(y1|x1)p(y2|x2)p(y3|x3)…p(yn|xn)
= ∏n=1Npyn(1−p)1−yn
這裏,p(y∣x)=hω是一個關於w的函數,x,y是已知數據,所以
P總是一個關於w的函數,未知變量只有一個w。
用極大似然估計來根據給定的訓練集估計出參數w:
(1) 寫出極大似然函數(Likehood)如下:
L(ω)=i=1∏mp(yi∣xi;ω)=i=1∏mhω(xi)yi(1−hω(xi)1−yi
可見,似然函數L(w)和上面的P總是一樣的。
(2) 兩邊取對數:
l(w)=lnL(w)=∑i=1m[yiln(hω(xi))+(1−yi)ln(1−hω(xi))]
取對數後l(w)與P總的單調性是一樣的。
參數估計的意思就是,通過改變w的值,使得P總有不同的取值,
選取使P總最大的那個ω∗,就認爲是我們要求得的w。寫成公式:
ω∗=argmaxωl(ω)
(2.5) 取負號
爲了讓最大似然值和最小損失相對應,
在l(w)前面加個負號,就從最大似然變爲最小化負對數似然函數,作爲LR的損失函數。
LR的損失函數是這麼來的!
J(ω)=−m1l(ω)=−m1i=1∑m[yiln(hω(xi))+(1−yi)ln(1−hω(xi))] {損失函數}
簡記爲:
Loss(ω)=−ylogy^−(1−y)log(1−y^)
(3) 將對數似然函數對各參數求偏導數 並令其爲0,得到對數似然方程組。
(4) 從方程組中解出各個參數。
既然要求J(w)的極小值,這裏就換用梯度下降法求w
wj:=wj+Δwj, Δwj=−η∂wj∂J(w)
先求偏導:
∂ωj∂J(ω)=−m1∑[yihω(xi)1∂ω∂hω(xi)+(1−yi)1−hw(xi)−1∂ω∂hω(xi)]=−m1i∑m[hω(xi)(1−hω(xi))yi−hω(xi)]∂ω∂hω(xi)
hω(x) 首先是個sigmoid函數,其導數 g’(x) = g(x)(1 - g(x)) ,於是
把下面h(x)對w的偏導數代入上式:
∂ω∂hω(xi)=hw(xi)(1−hω(xi))∂ωj∂(−ωTx)=−xi,jhω(xi)(1−hω(xi))
繼續得到:
∂ωj∂J(ω)=−m1i∑m(yi−hω(xi))(−xi,j)=−m1i∑m(−yi⋅xi,j+hω(xi)⋅xi,j)=−m1i∑m(hω(xi)−yi)xi,j
上述中xi,j表示第i個樣本的第j個屬性的取值。
於是,ω的更新方式:
ωj+1=ωj−α∑i=1m(hω(xi)−yi)xi,j
對於隨機梯度下降,每次只取一個樣本,則ω的更新方式爲:
ωj+1=ωj−α(hω(x)−y)xj
xj 爲這個樣本第j個屬性的值。
寫成矩陣的形式:
W←W−αXT(Y^−Y)
用梯度下降估計出似然函數的ω,就可以代入預測函數使用了,
Tips: 似然最大就是損失最小。
參考:
邏輯迴歸的本質–極大似然估計
邏輯迴歸
公式推導