Logistic Regression——邏輯迴歸算法推導

前言

之前學過用線性迴歸解決分類問題

使用如下的階躍函數,實現分類功能,但是這樣的分類很明顯太過粗糙了

y =\left\{\begin{matrix} 0, z \leq 0;\\ 1, z>0;\\ \end{matrix}\right.    令z = h_{\theta }(x)

我們希望有一個理想的階躍函數來幫我們實現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),去掉了求和,每次迭代式需要把樣本打亂

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章