Stanford机器学习笔记——Logistic Regression

2017-09-08 Alex Sun 更多博文 » 博客 » GitHub »

原文链接 https://syaning.github.io/2017/09/08/stanford-ml-logistic-regression/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


1. Sigmoid

线性回归针对的是连续值,逻辑回归则是针对离散的分类问题。如图所示:

需要注意的是,虽然绘图是在二维平面内,但是数据其实是有三个维度:$$x_1$$,$$x_2$$ 和 $$y$$。假设:

$$ f_\theta(x)=\theta^Tx=\theta_0+\theta_1x_1+\theta_2x_2 $$

则:

$$ \begin{array}{} y = \begin{cases} 1 & {\text{if}}\ f_\theta(x)\geq0 \ 0 & {\text{if}}\ f_\theta(x)<0 \ \end{cases} \end{array} $$

令:

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

如图:

则:

$$ \begin{array}{} y = \begin{cases} 1 & {\text{if}}\ h_\theta(x)\geq0.5 \ 0 & {\text{if}}\ h_\theta(x)<0.5 \ \end{cases} \end{array} $$

2. Cost Function

令:

$$ \begin{array}{} Cost(h_\theta(x),y) = \begin{cases} -log(h_\theta(x)) & {\text{if}}\ y=1 \ -log(1-h_\theta(x)) & {\text{if}}\ y=0 \ \end{cases} \end{array} $$

图像如下:

  • $$ y=1 $$ 时
    • 若 $$ h_\theta(x)=1 $$,则 $$ Cost=0 $$
    • 若 $$ h_\theta(x)=0 $$,则 $$ Cost\rightarrow\infty $$
  • $$ y=0 $$ 时
    • 若 $$ h_\theta(x)=1 $$,则 $$ Cost\rightarrow\infty $$
    • 若 $$ h_\theta(x)=0 $$,则 $$ Cost=0 $$

将以上两种情况统一起来,可以得到:

$$ Cost(h_\theta(x),y)=-ylog(h_\theta(x))-(1-y)log(1-h_\theta(x)) $$

令:

$$ J(\theta)=\frac{1}{m}\sum_{i=1}^{m}Cost(h_\theta(x^{(i)}),y^{(i)})=-\frac{1}{m}\sum_{i=1}^{m}[y^{(i)}logh_\theta(x^{(i)})+(1-y^{(i)})log(1-h_\theta(x^{(i)}))] $$

运行梯度下降,即对于 $$ j=0,1,...n $$:

$$ \theta_j:=\theta_j-\alpha\frac{\partial}{\partial\theta_j}J(\theta) $$

在只有一个样本的情况下:

$$ \begin{array}{}\ \frac{\partial}{\partial\theta_j}J(\theta) & = & -(y\frac{1}{g(\theta^Tx)}-(1-y)\frac{1}{1-g(\theta^Tx)})\frac{\partial}{\partial\theta_j}g(\theta^Tx) \ & = & -(y\frac{1}{g(\theta^Tx)}-(1-y)\frac{1}{1-g(\theta^Tx)})g(\theta^Tx)(1-g(\theta^Tx))\frac{\partial}{\partial\theta_j}\theta^Tx \ & = & -(y(1-g(\theta^Tx))-(1-y)g(\theta^Tx))x_j \ & = & (h_\theta(x)-y)x_j \ \end{array} $$

对于 Sigmoid 函数:

$$ g(z)=\frac{1}{1+e^{-z}} $$

由于:

$$ g'(z)=\frac{e^{-z}}{(1+e^{-z})^2}=\frac{1}{1+e^{-z}}\frac{e^{-z}}{1+e^{-z}}=g(z)(1-g(z)) $$

因此:

$$ \frac{\partial}{\partial\theta_j}g(\theta^Tx)=g(\theta^Tx)(1-g(\theta^Tx))\frac{\partial}{\partial\theta_j}\theta^Tx $$

因此对于 $$ j=0,1,...n $$:

$$ \theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} $$

与线性回归的形式是一致的。

3. 多类分类

假如一共有 $$k$$ 类,如果求某个样本属于第 $$i$$ 类的可能性,则将 $$i$$ 类作为是 $$y=1$$,其它 $$k-1$$ 类作为是 $$y=0$$。因此:

$$ h_\theta^{(i)}(x)=P(y=i|x;\theta)\space\space\space\space\space\space(i=1,2,...,k) $$

对于一个样本 $$x$$,选取最大的 $$h_\theta^{(i)}(x)$$,则该样本属于第 $$i$$ 类。