邏輯迴歸LR推導

1 問題定義:

  • 給定數據集{x1,x2,...,xm}\{x_1,x_2, ...,x_m\}和標籤{y1,y2,...,ym}\{y_1,y_2, ...,y_m\},訓練一個模型,使得輸入新的 xx,輸出對應的標籤值。這裏數據集 xiRnx_i\in R^n,標籤 yi{0,1}y_i\in\{0,1\}

2 建立判別模型

  • 建立一個判別模型,輸入數據 xx,輸出該數據被分類成每個類別的概率;
  • 對於二分類問題,我們使用sigmoid函數來建立判別模型:
    p(y=1x,θ)=σ(θTx)p(y=1|x,\theta)=\sigma(\theta^Tx)
    p(y=0x,θ)=1σ(θTx)p(y=0|x,\theta)=1-\sigma(\theta^Tx)

3 建立似然函數:

  • 對於所有數據集,建立似然函數:
    L(θ)=i=1mp(yi=1x,θ)yip(yi=0x,θ)1yiL(\theta)=\prod_{i=1}^mp(y_i=1|x,\theta)^{y_i}p(y_i=0|x,\theta)^{1-y_i}
  • 對數似然:
    lnL(θ)=i=1m[yilnσ(θTxi)+(1yi)ln(1σ(θTxi))]lnL(\theta)=\sum_{i=1}^m[y_iln\sigma(\theta^Tx_i)+(1-y_i)ln(1-\sigma(\theta^Tx_i))]
  • 求導:
    αlnL(θ)αθ=i=1mxi[yiσ(θTxi)]\frac{\alpha lnL(\theta)}{\alpha \theta}=\sum_{i=1}^mx_i[y_i-\sigma(\theta^Tx_i)]
  • 令導數等於0,就得到了θ\theta的極大似然估計,但爲了方便求解,這裏使用梯度下降法,因此需要建立損失函數。

4 交叉熵損失函數

  • 我們基於對數似然來定義交叉熵損失函數,及極大化似然就等價於最小化交叉熵
    cost(θ)=1mlnL(θ)=1mi=1m[yilnσ(θTxi)+(1yi)ln(1σ(θTxi))]cost(\theta)=-\frac{1}{m}lnL(\theta)=-\frac{1}{m}\sum_{i=1}^m[y_iln\sigma(\theta^Tx_i)+(1-y_i)ln(1-\sigma(\theta^Tx_i))]
  • 損失函數梯度:
    cost(θ)=1mi=1mxi[yiσ(θTxi)]\bigtriangledown cost(\theta)=-\frac{1}{m}\sum_{i=1}^mx_i[y_i-\sigma(\theta^Tx_i)]

5 爲什麼不使用最小二乘損失函數(LSE)?

  • LSE損失函數:
    costLSE(θ)=12mi=1m[yiσ(θTxi)]2cost_{LSE}(\theta)=\frac{1}{2m}\sum_{i=1}^m[y_i-\sigma(\theta^Tx_i)]^2
  • LSE損失函數梯度:
    costLSE(θ)=1mi=1m[σ(θTxi)yi]σ(θTxi)xi\bigtriangledown cost_{LSE}(\theta)=\frac{1}{m}\sum_{i=1}^m[\sigma(\theta^Tx_i)-y_i]\sigma'(\theta^Tx_i)x_i
  • 由於存在σ(θTxi)\sigma'(\theta^Tx_i)項,會出現梯度消失問題,而交叉熵損失函數梯度不存在這個問題;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章