基於自己理解與ng老師的課程總結出來的LR
http://mooc.study.163.com/learn/2001281002?tid=2001392029#/learn/content?type=detail&id=2001702014&cid=2001693016
邏輯迴歸原理
我們知道,線性迴歸模型是
但是線性迴歸無法用於分類,爲了解決這個問題
邏輯迴歸利用sigmoid函數對 進行了改造
PS: sigmoid函數是
也就是說將線性迴歸輸出的 對應到了sigmoid函數中的 將原本的連續輸出變成了分類
z趨向於正無窮時,sigmoid趨向於1
z趨向於負無窮時,sigmoid趨向於0
sigmoid函數輸出大於0.5,即輸入 大於0 則y = 1
sigmoid函數輸出小於0.5,即輸入 小於0 則y = 0
並且越靠近臨界點,分類的準確性會越低
邏輯迴歸使用對數似然損失函數
邏輯迴歸的目標函數
,
目標函數爲:
a是預測值,y是真實標籤的label
邏輯迴歸的迭代過程
首先對 進行求a的偏導
PS: sigmoid函數有一個很好的導數性質便於我們使用
sigmoid函數 進行對z的求導
因爲 所以
再求
最後通過鏈式法則得到
w1: = w1 -
爲學習率
邏輯迴歸的損失函數的解釋
首先我們從邏輯迴歸模型的最大似然估計的角度出發,假設訓練集都是獨立同分布的條件下,將邏輯迴歸的結果用概率的方式表示出來
if y = 1:
if y = 0:
然後將着兩條式子拼起來
樣本聯合概率
做最大似然估計找到一組參數使得樣本聯合概率達到最大(最符合訓練數據)
在式子左右均取對數,因爲樣本聯合概率最大化等價於取對數之後最大化
我們目的是爲了讓這個logP(所有樣本)最大化,但是損失函數是要讓其最小化。
所以在前加負值就是LR的損失函數
爲何使用邏輯對數損失函數?
答:假如採用平方和損失函數是非凸函數,無法使用梯度下降法去求得全局最低點
所以邏輯迴歸採用這個特殊的邏輯對數損失函數,是凸函數,可利用梯度下降法取得全局最低點
邏輯迴歸的成本函數
成本函數:
是爲了計算方便,人爲進行的縮放
損失函數的優化方法
迭代尺度法, 梯度下降法,牛頓法或者擬牛頓法.牛頓法或者擬牛頓法一般收斂速度更快
LR爲什麼用sigmoid函數??爲什麼
因爲LR是伯努利分佈,遵循廣義線性分佈,所以預測的輸出的期望就是伯努利分佈本身發生的概率,也就正好推出來sigmoid函數的形式