逻辑斯蒂回归

Posted by xyangk on May 1, 2018

逻辑斯蒂回归

Logistic Regression

  • sigmoid函数:

    $g(z)=\frac{e^{z}}{1+e^{z}}$函数图像如下,令 $z=\theta^Tx$

    $g(x)=\frac{e^{\theta^Tx}}{1+e^{\theta^Tx}}$

    sigmoid

$\theta^Tx$的结果是整个实数域,通过sigmoid函数可以映射到区间[0,1],得到概率

可以把分类问题理解成事件发生的概率$p$,比如对邮件分类来说更有可能属于哪一类,分到哪一类的概率最大。既然是概率,值介于0到1,而我么最初的线性分类器$\theta^Tx$的值域是整个实数域,所以需要进行变换。

  • 从实数域映射到$[0,1]$。 令$z=\theta^Tx$, 其结果是任意实数,$f=e^z$可以将$z$映射到正实数域$(0,\infty)$,再从正实数域映射到$[0,1]$可以用$g=\frac{f}{1+f}$,函数图像如下:

    exp1

  • 从概率$[0,1]$映射到实数域即$\theta^Tx$。知道概率$p$,几率(odds)表示事件发生的概率和该事件不发生的概率的比值,$odds=\frac{p}{1-p}$,可以转换到正实数域$[0,\infty]$,再使用log函数$log(odds)=log(\frac{p}{1-p})$转换到实数域$(-\infty,\infty)$,函数图像分别如下:

    odds

    通过上面的转换可以将线性分类器和概率值联系起来,即$log(\frac{p}{1-p})=\theta^Tx$,可以求出来$p=\frac{e^{\theta^Tx}}{1+e^{\theta^Tx}}$,得到sigmoid函数。

  • 最大似然估计

    现在知道了

    $P(y=1|x)=\frac{e^{\theta^Tx}}{1+e^{\theta^Tx}}=g(x)$,$P(y=0|x)=\frac{1}{1+e^{\theta^Tx}}=1-g(x)$

    由于$y\in{0,1}$,可以写成

    $P(y_i|x)=P(y=1|x)^{y_i} \cdot P(y=0|x)^{1-y_i}$

    所以似然函数是:

对数形式是:

对数函数并不会影响原函数的凹凸性质,不会改变原函数的极值点。求解最大似然函数等价于求解代价函数$J(\theta)=-log(\ell(\theta))$的最小值。因此定义逻辑斯底回归的代价函数:

为了求$minJ(\theta)​$使用梯度下降法更新$\theta​$:

所以通过

来更新$\theta_i$,其中$\alpha$是学习率 。

随机梯度下降法:

每次使用一个样本更新$\theta$

​批量随机梯度下降法(Mini Batch Gradient Descent):

$b$是mini-batch size,训练如下图:

mini-batch

参考吴恩达的机器学习课件

SGD

SGD 正则化

  • 正则化

    L1范数是$\sum_{i=1}^n|\omega_i|$

    L2范数是$\frac{1}{2}\sum_{i=1}^n\omega_i^2$

L2正则化

$J$对$\theta$求导:

其中$j\in{1,2,3…}$,$j=0$时$\theta_0$是偏置项。所以:

如果初始$J(\theta)$先不除以$m$,那

于是

对于随机梯度下降法有