前言
之前學過用線性迴歸解決分類問題
,
使用如下的階躍函數,實現分類功能,但是這樣的分類很明顯太過粗糙了
令z =
我們希望有一個理想的階躍函數來幫我們實現z值到0/1值的轉化。
而且是單調可微的凸函數->sigmoid function
定義
輸出Y=1的對數機率是由輸入x的線性函數表示的模型,這就是 邏輯迴歸模型。是一種廣義的線性模型。
- 所以決策函數爲
推導
- 有了Sigmoid fuction之後,由於其取值在[0,1],我們就可以將其視爲類1的後驗概率估計p(y=1|x)。即ϕ(z)可以視爲類1的後驗估計,於是有
- 寫成一般的形式
- 用極大似然估計根據給定的訓練集估計出參數w
極大似然估計:就是試圖在w的所有可能的取值中,找到一個能使數據出現的可能性最大的值,不清楚的可以查看博主的另一篇介紹極大似然估計的文章 - 爲了防止結果下溢,用對數似然
- 在l(w)前加負號,就變成了代價函數J(w)
- 先來理解一下代價函數
- 對於二分類問題,有
- 從圖中看出,當y=1的時候,φ(z)越接近1,代價就越小。當y=0時,φ(z)越接近0,誤差越小,因此可以作爲我們的代價函數
- 梯度下降求參數
- sigmoid function有一個很好的性質就是
- 對代價函數關於參數求導 -- 鏈式求導
- 因此,更新權重的公式
是不是與線性迴歸的權重更新式子極爲相似 - 樣本量較大的時,採用隨機梯度下降(或者mini batch SGD),去掉了求和,每次迭代式需要把樣本打亂