百面機器學習 #3 經典算法:02 邏輯迴歸

參考:
百面機器學習
西瓜書

02 邏輯迴歸Logistic Regression(對數機率迴歸)

2.1 邏輯迴歸和線性迴歸

  • 二者都使用極大似然法來對訓練樣本進行建模。

  • 在求解超參數的過程中,都可以使用梯度下降的方法。

  • 邏輯迴歸處理的是分類問題,線性迴歸處理的是迴歸問題,這是兩者的最本質的區別。

    • 邏輯迴歸
      給定自變量和超參數後,得到因變量的期望E[yx;θ]E[y|x;\theta],並基於此期望來處理預測分類問題;
    • 線性迴歸
    • 求解y=θTx+by=\theta^T x +b是真實線性關係的近似,用近似關係來處理迴歸問題。
    • 特別地,廣義線性模型(Generalized Linear Models)中,輸入空間到輸出空間是非線性函數映射可以表示爲g(y)=θTx+by=g1(θTx+b)=f(θTx+b)g(y)=\theta^T x +b\Rightarrow y=g^{-1}(\theta^T x +b)=f(\theta^T x +b),故這裏函數gg要求是單調可微的。
  • 邏輯迴歸可以看成廣義線性模型,因爲只需找一個單調可微函數gg,將分類任務的真實標記yy與線性迴歸模型的預測值聯繫起來,就可以將回歸轉換成分類。

2.2 二分類邏輯迴歸

從線性迴歸到邏輯迴歸,可以理解成要找一個映射ff,將連續區間的值映射到有限值的區間,特定的值對應特定的類別。

  • 單位階躍函數是很好的選擇,大於0的預測爲一類,小於0的爲另一類,等於0隨意分。但是它不連續,因此構建模型後無法用作f=g1()f=g^{-1}(\cdot)
  • 因此用接近單位階躍函數的可微函數——對數機率函數(logistic function,是sigmoid函數,即S型函數的一種)來代替
    f(z)=11+ez f(z)=\frac{1}{1+e^{-z}}
    可對邏輯迴歸進行化簡
    y=f(θTx+b)=11+e(θTx+b))1yy=e(θTx+b))lny1y=θTx+b y=f(\theta^T x +b)=\frac{1}{1+e^{-(\theta^T x +b))}}\\ \frac{1-y}{y}=e^{-(\theta^T x +b))}\\ \ln\frac{y}{1-y}=\theta^T x +b
    若將y視爲樣本作爲正例的可能性P[y=1x;θ,b]P[y=1|x;\theta, b],或說似然;稱y1y\frac{y}{1-y}機率 (odds) ,對數機率 (log odds ,亦稱logit)爲
    lny1y \ln\frac{y}{1-y}
  • 可用極大似然法最大化對數似然對參數進行求解
    (θ,b)=i=1mlnp(yixi;θ,b)\ell({\theta}, b)=\sum_{i=1}^{m} \ln p\left(y_{i}\mid{x}_{i} ; \theta, b\right)
    其中
    p(y=1x)=eθTx+b1+eθTx+bp(y=0x)=11+eθTx+b \begin{array}{l} p(y=1 \mid {x})=\frac{e^{{\theta}^{\mathrm{T}} {x}+b}}{1+e^{{\theta}^{\mathrm{T}} {x}+b}} \\ p(y=0 \mid {x})=\frac{1}{1+e^{{\theta}^{\mathrm{T}} {x}+b}} \end{array}

2.3 多項邏輯迴歸Softmax regression

當使用邏輯迴歸處理多標籤分類問題時:

2.3.1 基本形式

假設每個樣本屬於kk個不同類別的概率服從幾何分佈,則對每一類的分類預測概率可以表示爲
hθ(x)=[p(y=1x;θ)p(y=2x;θ)p(y=kx;θ)]=1j=1keθjx[eexeθ2Txeqjx] h_{\theta}(x)=\left[\begin{array}{c} p(y=1 \mid x ; \theta) \\ p(y=2 \mid x ; \theta) \\ \vdots \\ p(y=k \mid x ; \theta) \end{array}\right]=\frac{1}{\sum_{j=1}^{k} \mathrm{e}^{\theta_{j}^{\top} x}}\left[\begin{array}{c} \mathrm{e}^{\mathrm{e}^{\top} x} \\ \mathrm{e}^{\theta_{2}^{\mathrm{T} x}} \\ \vdots \\ \mathrm{e}^{q_{j} x} \end{array}\right]

2.3.2 多項邏輯迴歸是二分類邏輯迴歸在多標籤分類下的一種拓展

用多分類的形式寫出二分類邏輯迴歸:
hθ(x)=1eθ1Tx+eθ2Tx[eθ1Txeθ2Tx] h_{\theta}(x)=\frac{1}{\mathrm{e}^{\theta_{1}^{\mathrm{T}} x}+\mathrm{e}^{\theta_{2}^{\mathrm{T}} x}}\left[\begin{array}{l} \mathrm{e}^{\theta_{1}^{\mathrm{T}} x} \\ \mathrm{e}^{\theta_{2}^{\mathrm{T}} x} \end{array}\right]
進行一下變化,消除參數θ\theta們的冗餘性
hθ(x)=1e0x+e(θ2Tθ1T)x[e0xe(θ2Tθ1T)x]=[11+eθTx111+eθTx]\begin{aligned} h_{\theta}(x)=& \frac{1}{\mathrm{e}^{0 \cdot x}+\mathrm{e}^{\left(\theta_{2}^{\mathrm{T}}-\theta_{1}^{\mathrm{T}}\right) x}}\left[\begin{array}{c} \mathrm{e}^{0 \cdot x} \\ \mathrm{e}^{\left(\theta_{2}^{\mathrm{T}}-\theta_{1}^{\mathrm{T}}\right) x} \end{array}\right] \\ &=\left[\begin{array}{c} \frac{1}{1+\mathrm{e}^{\theta^{\mathrm{T}} x}} \\ 1-\frac{1}{1+\mathrm{e}^{\theta^{\mathrm{T}} x}} \end{array}\right] \end{aligned}
這和二分類邏輯迴歸的式子就一樣了。

2.3.3 當存在樣本可能屬於多個類別的情況時

  • kk個類別,訓練kk二分類的邏輯迴歸分類器
  • 對每個類別,第ii個分類器用以區分樣本可不可以歸爲第i類,即“第i類”與“非第i類”兩類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章