逻辑回归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)项,会出现梯度消失问题,而交叉熵损失函数梯度不存在这个问题;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章