Logistic回归

前言

本文是以《机器学习实战》、周志华《机器学习》、吴恩达《机器学习》Course公开课为基础的个人笔记。LaTeX大法好!

Sigmoid函数

定义:

下图给出了Sigmoid函数在不同坐标尺度下的两条曲线图。当x为0时,Sigmoid函数值为0.5。显然,Sigmoid函数将前一级的线性输出映射到[0,1]之间的数值概率上。如果横坐标刻度足够大,Sigmoid函数看起来很像一个阶跃函数。


向量形式如下:

损失函数

不同于线性回归,如果我们简单地使用以下MSE(均方误差)作为loss函数,在Logistic回归中Sigmoid函数是一个非线性函数,这会使损失函数变得非凸,在应用梯度下降法时容易陷入局部最优解。


Andrew Ng在公开课中直接给出了如下的损失函数,但并没给出具体推导过程:

其中$Cost(h_{\theta}(x),y)=-log(h_\theta(x))$图像为:

可以看出当$y=1$时,$Cost=0$,而当预测值$h_\theta(x)=0$时,我们将对损失函数施加一个很大的惩罚,即$Cost=\infty$。
当$Cost(h_{\theta}(x),y)=-log(1-h_\theta(x))$时同理。

下面是推导过程:
对于输入$x$分类结果为类别$1$和类别$0$的概率分别为:

综合上述二式,可以写成:

构造似然函数:

对似然函数取对数:

取负数求均值即可得到损失函数:

其中:

应用梯度下降法

Sigmoid函数求导过程如下,这一步将在下面求解梯度时用到:

向量形式:

梯度下降法的一般形式如下,α为学习率:

求偏导过程如下,比较麻烦,一步步来吧:

其中$(\theta^\mathrm{T}x){}’$为对第$j$个$\theta$求偏导,即$x_j^{(i)}$

由于α与$\frac{1}{m}$连乘得到还是常量,将$\frac{1}{m}$省略,最后得到梯度更新公式为:

至此,推导完成。

  • 本文作者: Marticles
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!