【機器學習模型詳細推導2】- 邏輯迴歸

1. 模型引入

線性模型可以進行迴歸學習(參見【機器學習模型1】- 線性迴歸),但如何用於分類任務?需要找一個單調可微函數將分類任務的真實標記y與線性迴歸模型的預測值聯繫起來。
對於二分類任務,輸出標記 yy 取值 {0,1}\{0, 1\},而線性迴歸預測值 z=wTx+bz = w^Tx+b 屬於實數集 RR,所以需要一個變換使實值 zz 映射到 0/10/1 值。
引入 SigmoidSigmoid 函數:y=11+ezy=\frac{1}{1+e^{-z}},可以將 zz 值轉爲一個接近0或1的 yy 值,而且單調可微。圖像如下:
Sigmoid函數圖像

2. 模型描述

根據廣義線性模型 y=g1(θTx)y=g^{-1}(\theta^T x)定義,將Sigmoid函數作爲g1()g^{-1}()代入:
hθ(x)=11+eθTxh_\theta(x) = \frac{1}{1+e^{-\theta^T x}}

對數機率函數:邏輯迴歸也稱爲對數機率函數。

  • hθ(x)h_\theta(x)反映了作爲正例的可能性 ,則 1hθ(x)1-h_\theta(x) 反映了作爲負例的可能性
  • 所以hθ(x)1hθ(x)\frac{h_\theta(x)}{1-h_\theta(x)}反映了作爲正例的相對可能性,hθ(x)1hθ(x)>1\frac{h_\theta(x)}{1-h_\theta(x)} > 1,則爲正例,稱爲 “機率”
  • lnhθ(x)1hθ(x)ln\frac{h_\theta(x)}{1-h_\theta(x)}“對數機率”

所以,邏輯迴歸實際上是用線性迴歸模型的預測來逼近真實的對數機率。

3. 模型求解策略(代價函數)

1) 代價函數公式:
J(θ)=1mi=1m[y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i)))] J(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[ y^{(i)}lnh_\theta(x^{(i)})+(1-y^{(i)})ln(1-h_\theta(x^{(i)})) ]
2)推導過程:
極大似然法 :根據給定數據集,最大化對數似然函數:
L(θ)=i=1mlnP(y(i)x;θ) L(\theta) = \sum_{i=1}^{m}lnP(y^{(i)}|x;\theta) 由於 y 只能取 0 / 1,所以
P(y=0x;θ)=hθ(x)=11+eθTxP(y=1x;θ)=1hθ(x)=eθTx1+eθTx=1eθTx+1 P(y=0|x;\theta) = h_\theta(x)=\frac{1}{1+e^{-\theta^T x}}\\ P(y=1|x;\theta) = 1-h_\theta(x)=\frac{e^{-\theta^T x}}{1+e^{-\theta^T x}} = \frac{1}{e^{\theta^T x}+1} \\ 所以:
P(yx;θ)=(hθ(x))y(1hθ(x))(1y) P(y|x;\theta) = (h_\theta(x))^y(1-h_\theta(x))^{(1-y)} 可以求得:
L(θ)=i=1m[y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i)))] L(\theta) =\sum_{i=1}^{m}[ y^{(i)}lnh_\theta(x^{(i)})+(1-y^{(i)})ln(1-h_\theta(x^{(i)})) ] 爲了使用梯度下降法求解,將L(θ)L(\theta)取負,定義損失函數:
J(θ)=1mL(θ)=1mi=1m[y(i)lnhθ(x(i))+(1y(i))ln(1hθ(x(i)))] J(\theta) = -\frac{1}{m}L(\theta) = -\frac{1}{m}\sum_{i=1}^{m}[ y^{(i)}lnh_\theta(x^{(i)})+(1-y^{(i)})ln(1-h_\theta(x^{(i)})) ]

爲什麼除以m?在使用樣本不同數量的多個批次來更新 θ\theta 時,除以樣本數量 m 來抵消不同批次樣本數量不同帶來的影響。

4. 模型求解算法 - 梯度下降

1)參數更新方程:
θj=θjα1mi=1m[hθ(x(i))y(i)]xj(i) \theta_j = \theta_j - \alpha\frac{1}{m}\sum_{i=1}^{m}[h_\theta(x^{(i)})-y^{(i)}]x_j^{(i)}

2)推導過程:

  • 設定:初始值 θ\theta、學習步長 α\alpha
  • 不斷更新 θ\theta
    θj=θjαθjJ(θ) \theta_j = \theta_j -\alpha\frac{\partial }{\partial \theta_j} J(\theta) 其中,梯度計算如下:
    梯度計算
    (Ref:參考吳恩達Cousera機器學習課程 6.4節)
  • 直到 Δθ=θjJ(θ)<ε梯度\Delta\theta = \frac{\partial }{\partial \theta_j} J(\theta) < 閾值\varepsilon,得到最優θ\theta

3)向量化表示
θ=θαmXT(11+eXθy) \theta = \theta - \frac{\alpha}{m}X^T(\frac{1}{1+e^{-X\theta}}-y)

X,y表示如下:
X=[X1(1)X2(1)...Xn(1)X1(2)X2(2)...Xn(2)............X1(m)X2(m)...Xn(m)]θ=[θ1θ2...θn]y=[y1y2...ym] X=\begin{bmatrix} X^{(1)}_1& X^{(1)}_2& ...& X^{(1)}_n& \\ X^{(2)}_1& X^{(2)}_2& ...& X^{(2)}_n& \\ ...& ...& ...& ...& \\ X^{(m)}_1& X^{(m)}_2& ...& X^{(m)}_n& \\ \end{bmatrix}, \theta=\begin{bmatrix} \theta_1& \\ \theta_2& \\ ...& \\ \theta_n& \\ \end{bmatrix}, y=\begin{bmatrix} y_1& \\ y_2& \\ ...& \\ y_m& \\ \end{bmatrix},

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