1.监督学习和非监督学习

1.1 监督学习

监督学习的训练集带标签,即“正确答案”,监督学习分为两大类,一类产生回归模型,预测连续值输出,如预测房价和股票;另一类产生分类模型,预测离散值输出。常见的算法有今天要谈的线性回归/逻辑回归和后续的SVM等。

1.2 无监督学习

无监督学习指给机器一个不带标签的数据集,让机器自己学习到其中的结构或者信息。比如聚类算法就是典型的无监督学习模型,可以用在新闻聚类和矢量量化(图像压缩)中。

2.线性回归

机器学习的最终目的是学习到一个函数h,这个函数被称为假设函数,学习了训练样本的特征,对新样本有很好的泛化能力。本部分从单因素预测房价这个例子出发,实现线性回归。

2.1 模型学习过程

Task1-浅谈线性回归和逻辑回归

2.2 如何得到假设函数h

设线性回归模型的h为hθ(x)=θ0+θ1xh_{\theta}(x)=\theta_{0}+\theta_{1} x,训练的目的是选择合适的θ0\theta_{0}θ1\theta_{1}hθ(x)h_{\theta}(x)更靠近真实值y。
代价函数计算了整个训练集中预测值和真实值的差距,线性回归模型使用预测值和真实值的平方差来计算代价,代价函数如下所示:J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2J\left(\theta_{0}, \theta_{1}\right)=\frac{1}{2 m}\sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right)^{2}
其中m为样本的个数,代价函数求的是平均代价,乘以1/2有利于参数求导后的表示,并不影响收敛性。
从此,找到使代价函数最小化的θ0\theta_{0}θ1\theta_{1}成为模型优化的目标。

2.3 梯度下降

2.3.1 作用

梯度下降可以用来求解最小化问题,本文用来最小化代价函数J(θ0,θ1)J\left(\theta_{0}, \theta_{1}\right)。梯度下降的过程分为两步。

  1. 初始化需要学习的参数θ0\theta_{0}θ1\theta_{1}
  2. 改变参数值降低J(θ0,θ1)J\left(\theta_{0}, \theta_{1}\right),直到最后找到最小值

2.3.2 参数更新

同时对各个参数进行下面的更新,直到收敛。
θj=θjαθjJ(θ0,θ1)( for j=0 and j=1)\theta_{j}=\theta_{j}-\alpha \frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) \quad(\text { for } j=0 \text { and } j=1)
正确的更新:
temp0:=θ0αθ0J(θ0,θ1)temp1:=θ1αθ1J(θ0,θ1)θ0:=temp0θ1:=temp1\begin{array}{l} \operatorname{temp} 0:=\theta_{0}-\alpha \frac{\partial}{\partial \theta_{0}} J\left(\theta_{0}, \theta_{1}\right) \\ \operatorname{temp} 1:=\theta_{1}-\alpha \frac{\partial}{\partial \theta_{1}} J\left(\theta_{0}, \theta_{1}\right) \\ \theta_{0}:=\operatorname{temp} 0 \\ \theta_{1}:=\operatorname{temp} 1 \end{array}

2.3.3 知识点总结

(1)梯度下降可以让参数的改变方向往代价loss减少的方向改变
(2)学习率α\alpha的取值问题。太小会使梯度下降太慢,影响收敛速度,太大会导致无法收敛甚至发散。
(3)在合适的学习率下,尽管学习率被固定,使用梯度下降也能收敛到局部最小值,原因是越接近局部最小值时,梯度下降时的梯度变得越小,对应参数变化的步子也变小了。

2.3.4 梯度下降应用于线性回归

不断重复以下过程直至收敛,记住,参数是同时更新的。
θ0=θ0α1mi=1m(hθ(x(i))y(i))θ1=θ1α1mi=1m(hθ(x(i))y(i))x(i)\begin{array}{l} \theta_{0}=\theta_{0}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \\\\ \theta_{1}=\theta_{1}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) \cdot x^{(i)} \end{array}

3.逻辑回归

3.1概述

逻辑回归虽然名字里带着回归,可是却是用来做分类的。比如垃圾邮件分类、网上交易欺诈识别和肿瘤预测等。那可以用线性回归分类吗?可以,但有两个缺点:一是一个样本的偏移可能引起分类结果变得很差,二是线性回归的输出值可能很大,也可能很小,而分类的标记是数量很少的离散的值,此时,逻辑回归就很好满足这个条件了,它的输出范围由于经过了sigmoid函数的归一化控制在[0,1]中,可以理解为分为正例的概率(正例往往是感兴趣的类别,比如属于垃圾邮件)。

3.2 新的假设函数和损失函数

(1)假设函数h在线性回归的基础上加上了sigmoid函数的归一化,增加了非线性。
hθ(x)=g(θTx)g(z)=11+ez\begin{aligned} h_{\theta}(x) &=g\left(\theta^{T} x\right) \\ g(z) &=\frac{1}{1+e^{-z}} \end{aligned}
(2)由于假设函数h的改变,代价函数也改变了,不变会导致J(θ\theta)成为非凸函数,不容易收敛到全局最小值。
J(θ)=1mi=1mcost(hθ(x(i)),y(i))=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]\begin{aligned} J(\theta) &=\frac{1}{m} \sum_{i=1}^{m} \operatorname{cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right) \\ &=-\frac{1}{m}\left[\sum_{i=1}^{m} y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right] \end{aligned}

3.3 解决多分类

未完待续

4.几个问题

  1. 什么是逻辑回归
    逻辑回归使用sigmoid函数让输出值以正例概率的形式呈现,适合用于分类。
  2. 逻辑回归与SVM的异同
    同:都会产生决策边界
    异:逻辑回归使用了极大似然估计估计参数,SVM使用的是EM算法
  3. 逻辑回归与线性回归的不同
    逻辑回归用于分类,而线性回归用于回归;假设函数和代价函数的形式不同。
  4. 为什么LR需要归一化或者取对数,为什么LR把特征离散化后效果更好
    让输出值固定在[0,1]区间,方便与概率联系在一起。
  5. LR为什么用Sigmoid函数,这个函数有什么优缺点,为什么不用其他函数
    1)直接对分类可能性进行预测
    2)不需事先考虑数据分布

5.参考内容

吴恩达机器学习系列课程
有错误的请指出,欢迎评论交流。

相关文章: