机器学习笔记-2-线性回归和似然估计

作者: 胡涂笔记 | 来源:发表于2019-08-14 23:15 被阅读5次

    本文我们讨论以下问题:

    1. 线性回归及线性模型的定义
    2. 利用最小二乘法估计线性模型参数
    3. 似然函数和极大似然估计,后者和最小二乘法存在的关系
    4. 梯度下降

    1. 从一个实例说起

    假设我们有四个数据点:(1, 6)、(2, 5)、(3, 7)、(4, 10),想要用一条直线拟合它,如下图所示:


    图1 Linear regression demo

    我们假设单变量(一元)线性模型的函数方程是:
    h_\theta(x) = \theta_0 + \theta_1x

    所以我们希望找到最佳的\theta_0\theta_1组合(这也就是机器学习想要求解的参数),能够尽可能符合以下超定方程组:
    \begin{align*} 6 &= \theta_0 + \theta_1* 1 \\ 5 &= \theta_0 + \theta_1* 2 \\ 7 &= \theta_0 + \theta_1* 3 \\ 10 &= \theta_0 + \theta_1* 4 \end{align*}

    线性回归即在一些样本上对特征(x)和期望值(y)建立线性模型的一种回归分析
    将第0个特征设为1,即x_0 = 1,那么:
    X = \begin{bmatrix} x_0 \\ x_1 \\ \vdots \\ x_n \end{bmatrix} \qquad \theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_n \end{bmatrix}
    线性模型则可以表示为:
    h_\theta(X) = \theta^TX

    2. 最小二乘法(Least Squares Method)

    说到直线拟合,最常用的便是最小二乘法。最小二乘法的思路是让前述超定方程组左右两边的方差和最小,即需要令以下函数取值最小:
    J(\theta_0, \theta_1) = \sum_{i = 1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2
    m表示样本数量,上标(i)表示第i个样本。
    对于前面的例子,则有:
    J(\theta_0, \theta_1) = [(\theta_0 + \theta_1 * 1) - 6]^2 + [(\theta_0 + \theta_1 * 2) - 5]^2 + [(\theta_0 + \theta_1 * 3) - 7]^2 + [(\theta_0 + \theta_1 * 4) - 10]^2
    函数J(\theta_0, \theta_1)是关于参数\theta的函数,并且是一个凸函数。
    要令其值最小可以通过分别对\theta_0\theta_1求偏导,然后令偏导等于0来计算:
    \begin{align*} \frac{\partial J}{\partial \theta_0} &= 8\theta_0 + 20\theta_1 - 56 &= 0 \\ \frac{\partial J}{\partial \theta_1} &= 20\theta_0 + 60\theta_1 - 154 &= 0 \\ \end{align*}
    于是可以解得:
    \begin{align*} \theta_0 &= 3.5 \\ \theta_1 &= 1.4 \end{align*}

    3. 似然函数和极大似然估计(Maximum Likelihood Estimation)

    3.1 什么是似然函数?

    开始讲线性回归的极大似然估计前,我们先看下什么是似然函数:
    似然函数是一种关于模型中参数的函数,用来表示模型参数中的似然性

    我们的目标是求解最为合理的模型参数,也就是求使得似然性最大时的参数,此时求解得到参数即为极大似然估计
    概率是在已知参数的情况下,预测某些输入应该得到的结果;似然性则是在观测到的结果上,对参数的合理性(可能性)进行评估。
    如果在已知参数\theta的情况下,模型输出y的概率可以表示为:
    P(y|\theta) = \frac{P(y,\theta)}{P(\theta)}
    利用贝叶斯定理:
    P(\theta|y) = \frac{P(y,\theta)P(\theta)}{P(y)}
    因此我们可以构造一个似然函数L(\theta|y)用于表示期望值为y时,当前估计参数为\theta的可能性。

    似然函数的取值并不重要,而是参数变化时似然函数变大还是变小,所以并不需要似然函数满足归一性。

    3.2 线性回归的似然函数

    对于线性回归,大多数时候,并不存在一个函数,可以让所有数据点都落在这个函数上面,所以预测值和实际值之间会存在误差,所以线性模型应该完善成如下方程:
    h_\theta(x) = \theta_0 + \theta_1x + \varepsilon
    其中\varepsilon为残差,转换一下,即:
    \varepsilon = \theta_0 + \theta_1x - h_\theta(x)
    线性模型的前提假设是残差\varepsilon服从均值为0的正态分布(不同样本间相互独立,方差一致)。
    因此对于某个样本,预测值h_\theta(x^{(i)})服从正态分布:h_\theta(x^{(i)}) \sim N(y^{(i)}, \sigma^2)

    如果残差均值不为0,这里的期望将会有偏置,但是也并不影响后续的推导。

    考虑正态分布的概率密度函数,预测值h_\theta(x^{(i)})越接近期望(也就是y^{(i)}),其概率越大,说明参数取值越合理。
    所以对于某个样本,我们可以认为其似然函数就是正态分布的概率密度函数,于是有:
    L(\theta|y^{i}) = P(h_\theta(x^{(i)})) = \frac{1}{\sigma\sqrt{2\pi}}exp(-{\frac{1}{2\sigma^2}}(h_\theta(x^{(i)}) - y^{(i)})^2)
    对于m个样本,相互之间是独立的,因此所有样本的联合似然函数为:
    \begin{align*} L(\theta|Y) &= P(h_\theta(x^{(1)}), h_\theta(x^{(2)}), ... , h_\theta(x^{(m)})) \\ &= (\frac{1}{\sigma\sqrt{2\pi}})^m exp(\sum_{i = 1}^{m}-\frac{1}{2\sigma^2}(h_\theta(x^{(i)}) - y^{(i)})^2) \end{align*}
    取对数,得:
    L^* = lnL = -mln(\sigma\sqrt{2\pi}) - \frac{1}{2\sigma^2}\sum_{i = 1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2
    要使似然性最大,其实就是使\sum_{i = 1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2最小
    因此显然,在满足残差服从正态分布的前提下,线性回归的参数估计,最小二乘估计和极大似然估计其实是等价的

    4. 梯度下降(Gradient descent)

    如果是多元线性回归,表示成矩阵形式,可以推导得到参数\theta最小二乘估计
    \theta = (X^TX)^{-1}X^TY
    在参数量比较少的时候,我们可以通过此正规方程求解;但在参数量很大时,因为存在求逆操作,当参数量很大时,求解这个方程性能会很低。
    所以我们就需要更加有效的求解参数的方法,这就是梯度下降(它有很多变种,有机会此后会再细聊)。

    在机器学习中,我们将模型的参数求解过程,转变为一个最小优化问题:定义一个损失函数,求解使得损失函数最小时的参数。
    对于线性回归,损失函数核心就是采用最小二乘法的平方误差函数,如下:
    J(\theta) = \frac{1}{2m}\sum_{i = 1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2
    我们使用如下的方式同时更新所有参数,直到收敛或者损失小于指定值:
    \theta_j := \theta_j - \alpha \frac{\partial J(\theta))}{\partial \theta_j}
    其中\alpha称为学习率(Learning rate),用于控制梯度下降的速度。下标j表示第j个参数。

    梯度下降有效的前提是损失函数是一个凸函数,这样才能保证运用梯度下降时参数更新一定往全局最优解靠近。
    对于一元线性回归,函数J(\theta_0, \theta_1)针对某个\theta_0,关于\theta_1图形可能如下图所示:

    Gradient discent

    可以很直观看到:

    1. \theta_1大于全局最优解时,梯度大于0,因此更新后参数将靠近最优解;
    2. \theta_1大于全局最优解时,梯度小于0,因此更新后参数也会靠近最优解。

    5. 总结

    在开始总结前,简单画了一个图,方便对本文内容进行理解记忆:


    Linear Regression Steps.png

    总结内容:

    1. 线性回归即尝试对样本用线性模型进行拟合(描述自变量和因变量之间的关系)的回归分析;
    2. 为了求解线性模型的参数,可以使用最小二乘法和极大似然估计。
    3. 最小二乘法目核心是,在所有样本上,找到使估计值和真实值平方误差和最小的参数。
    4. 极大似然估计则是假设估计值满足某个分布,定义似然函数,找到使似然函数取值最大的参数。在线性模型的残差服从正态分布时,其极大似然估计和最小二乘估计本质是一样的。
    5. 最小二乘法和极大似然估计将如何求解模型参数,转化成一个最小优化问题,梯度下降则是解决最小优化问题的一种手段。
    6. 机器学习的目的在于建立合适的模型,然后求解模型的参数,亦即似然估计。

    2019-08-14

    相关文章

      网友评论

        本文标题:机器学习笔记-2-线性回归和似然估计

        本文链接:https://www.haomeiwen.com/subject/cmawjctx.html