机器学习公开课笔记(3)：Logistic回归

Logistic 回归

• Email: spam / not spam
• Tumor: Malignant / benign

1. 对于输出的解释

$h_\theta(x)$=该数据属于 $y=1$分类的概率， 即 $$h_\theta(x) = P\{y = 1|x; \theta\}$$ 此外由于y只能取0或者1两个值，换句话说，一个数据要么属于0分类要么属于1分类，假设已经知道了属于1分类的概率是p，那么当然其属于0分类的概率则为1-p，这样我们有以下结论 $$P(y=1|x;\theta) + P(y=0|x;\theta) = 1$$ $$P(y=0|x;\theta) = 1 - P(y = 1|x; \theta)$$

2. 决策边界(Decision Bound)

• $h_\theta(x)\geq 0.5$预测输出$y=1$, 等价于$\theta^Tx \geq 0$预测输出$y=1$;
• $\theta(x) < 0.5$预测输出$y=0$, 等价于$\theta^Tx < 0$预测输出$y=0$;

3. 代价函数 (Cost Function)

$$J(\theta)=\frac{1}{m}\sum\limits_{i=1}^{m}\text{cost}(h_\theta(x^{(i)}), y)$$ $$\text{cost}(h_\theta(x), y)=\frac{1}{2}(h_\theta(x)-y)^2$$

$$\text{cost}(h_\theta(x), y)=\begin{cases}-log(h_\theta(x)); y = 1\\ -log(1-h_\theta(x)); y = 0\end{cases}$$

4. 简化的代价函数

$$\text{cost}(h_\theta(x), y)=-y\log(h_\theta(x))-(1-y)\log(1-h_\theta(x))$$

$$J(\theta)=-\frac{1}{m}\sum\limits_{i=1}^{m}y^{(i)}\log(h_\theta(x^{(i)})) + (1-y^{(i)})\log(1-h_\theta(x^{(i)}))$$

梯度下降

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

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

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

$$\frac{dz}{d\theta_j}=\frac{d(\theta^Tx)}{d\theta_j}=\frac{d(\theta_0+\theta_1x_1+\theta_2x_2+\ldots+\theta_nx_n)}{d\theta_j}=x_j$$

\begin{aligned}\frac{\partial J(\theta)}{\partial \theta_j}&=-\frac{1}{m}\sum\limits_{i=1}^{m}y^{(i)}\frac{1}{g(z^{(i)})}g'(z^{(i)})\frac{dz}{d\theta_j}+(1-y^{(i)})\frac{1}{1-g(z^{(i)})}(-1)g'(z^{(i)})\frac{dz}{d\theta_j}\\ &= -\frac{1}{m}\sum\limits_{i=1}^{m}y^{(i)}\frac{1}{g(z^{(i)})}g(z^{(i)})(1-g(z^{(i)}))x_j^{(i)}+(1-y^{(i)})\frac{1}{1-g(z^{(i)})}(-1)g(z^{(i)})(1-g(z^{(i)}))x_j^{(i)}\\ &= -\frac{1}{m}\sum\limits_{i=1}^{m}y^{(i)}(1-g(z^{(i)}))x_j^{(i)}+(y^{(i)}-1)g(z^{(i)})x_j^{(i)}\\ &=-\frac{1}{m}\sum\limits_{i=1}^{m}(y^{(i)}-g(z^{(i)}))x_j^{(i)}\\ &= \frac{1}{m}\sum\limits_{i=1}^{m}(g(z^{(i)})-y^{(i)})x_j^{(i)}\\ &=\frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}\end{aligned}

高级优化算法

• BFGS (逆牛顿法的一种实现)
• L-BFGS（对BFGS的一种改进）

Logistic回归用于多元分类

Logistic回归可以用于多元分类，采用所谓的One-vs-All方法，具体来说，假设有K个分类{1,2,3,...,K}，我们首先训练一个LR模型将数据分为属于1类的和不属于1类的，接着训练第二个LR模型，将数据分为属于2类的和不属于2类的，一次类推，直到训练完K个LR模型。

Regularization

1. Overfitting (过拟合)

Overfitting通常指当模型中特征太多时，模型对训练集数据能够很好的拟合（此时代价函数$J(\theta)$接近于0），然而当模型泛化(generalize)到新的数据时，模型的预测表现很差。

Overfitting的解决方案

1. 减少特征数量:
• 人工选择重要特征，丢弃不必要的特征
• 利用算法进行选择(PCA算法等）
2. Regularization
• 保持特征的数量不变，但是减少参数$\theta_j$的数量级或者值
• 这种方法对于有许多特征，并且每种特征对于结果的贡献都比较小时，非常有效

2. 线性回归的Regularization

$$J(\theta) = \frac{1}{2m}\left[ \sum\limits_{i=1}^{m} (h_\theta(x^{(i)})-y^{(i)})^2 + \lambda \sum\limits_{j=1}^{n}\theta_j^{2}\right]$$

$$\theta_0 = \theta_0 - \alpha\frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}; j = 0$$

$$\theta_j = \theta_j - \alpha \left[ \frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} + \frac{\lambda}{m}\theta_j \right]; j > 1$$

3. Logistic回归的Regularization

$$\theta_0 = \theta_0 - \alpha\frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}; j = 0$$

$$\theta_j = \theta_j - \alpha \left[ \frac{1}{m}\sum\limits_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)} + \frac{\lambda}{m}\theta_j \right]; j > 1$$

参考文献

[1] Andrew Ng Coursera 公开课第三周

[2] Logistic cost function derivative: http://feature-space.com/en/post24.html

posted @ 2015-12-21 23:27  python27  阅读(3408)  评论(0编辑  收藏  举报