[原理篇] 逻辑回归
1. Logistic Regression基本模型
??
?Logistic Regression 模型是廣義線性模型中的一種,屬于線性分類模型。對于類似上圖的分類問題,需要找到一條直線,將兩個不同的類區(qū)分開。多維情況下,可以利用如下線性函數(shù)描述該超平面。
W為權(quán)重,b為偏置。多維情況下,兩者都是向量。實際應(yīng)用中,通過對訓(xùn)練樣本的學(xué)習確定該超平面。其中,我們可以使用閾值函數(shù)將樣本映射到正負兩個類別中。其中,sigmoid函數(shù)是最常應(yīng)用的閾值函數(shù),其函數(shù)表達式和導(dǎo)數(shù)如下所示。
在實際應(yīng)用中,假設(shè)W,b已經(jīng)利用訓(xùn)練樣本得到有效的估計。新樣本的類別判別y=0or1如下:
?
2. 損失函數(shù)設(shè)計
Logistic Regression分類是典型的監(jiān)督學(xué)習算法。所以,我們常用利用優(yōu)化算法擬合訓(xùn)練集對參數(shù)進行求解。最常用到的優(yōu)化算法就是梯度下降算法。為了使用優(yōu)化算法,我們首先應(yīng)該定義模型的損失函數(shù)。
對于LR算法,其屬于類別y的概率計算如下:
假設(shè)訓(xùn)練集有m個訓(xùn)練樣本,我們可以采用最大似然法對參數(shù)W,b估計。假設(shè)
則訓(xùn)練樣本集的似然函數(shù)為:
如果訓(xùn)練樣本的數(shù)量非常龐大,優(yōu)化連乘很容易造成損失值超過/低于機器精度。因此,通常我們使用“負對數(shù)似然函數(shù)(Negative Log-Likelihood,NLL)”作為優(yōu)化的損失函數(shù)。那么,函數(shù)損失的優(yōu)化過程就是求NLL的最小值。
?3. 梯度下降算法訓(xùn)練LR模型
梯度下降法的優(yōu)點在于:求解過程中,只需要求解損失函數(shù)的一階導(dǎo)數(shù),計算成本小。梯度下降法的直觀理解:通過當前點的梯度方向?qū)ふ业叫碌牡c,并從當前點移動到新的迭代點繼續(xù)尋找新的迭代點(注意梯度下降法通常獲得的是局部極小值,改進的隨機梯度下降算法獲得全局極小值得概率更大)。Gradient Decent算法流程如下:
利用GD訓(xùn)練LR算法的關(guān)鍵在于求參數(shù)W,b的梯度方向。我們首先將原始的線性超平面改寫成如下形式:
那么,根據(jù)GD算法的更新公式, Wj更新公式為:
因此利用上式就可以完成對LR模型的訓(xùn)練。
注意1:關(guān)于梯度下降算法中的步長選擇問題可以參考一些文獻,關(guān)鍵一點,大的步長容易在極值附近出現(xiàn)震蕩,小的步長收斂太慢。目前,自適應(yīng)步長收斂策略還是很不錯的
注意2:關(guān)于模型過擬合的問題,后面會討論正則化約束,這里先不涉及
總結(jié)
以上是生活随笔為你收集整理的[原理篇] 逻辑回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中文名称:深入浅出SQL
- 下一篇: 用VC写Assembly代码(6)--附