从线性回归到最小二乘法和梯度下降法

线性回归

如下图,要对样本点进行线性拟合,求得使预测尽可能准确的函数,这个过程就是线性回归

线性函数

单变量

上升到两个变量即为如下形式

两个变量

image

多个变量即可以写成

多变量

我们可以使用误差平方和(几何中可视为欧式距离的平方)来度量回归任务的性能。

那么我们如何找到一条直线,使所有样本到直线地距离之和最小呢? 这就是最小二乘法(least square method)————基于误差平方和最小化来进行模型求解.

如果上升到更高维的空间,我们如何解释最小二乘呢。下面一小节尝试使用最大似然估计来解释最小二乘的合理性。

从最大似然解释最小二乘

线性回归似然函数如下

似然函数

假设误差 ​是独立同分布的,服从均值为 0,方差为 σ 平方的高斯分布(中心极限定理)。

中心极限定理的意义

实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往近似服从正态分布

  • 城市耗电量: 大量用户的耗电总和
  • 测量误差: 许多观察不到的、微小误差的总和

注: 应用前提是多个随机变量的和,有些问题是乘性误差,则需要鉴别或者取对数后再使用

根据以上,有概率密度以及似然估计

概率密度-似然估计

求解似然函数,将其取对数

求解似然函数

要使 l(θ) 最大,则上式减号右边的式子最小,即下式最小。下式形式与最小二乘相同,由此可解释最小二乘的合理性。

image

最小二乘与极大似然的区别

  • 最小二乘法:即观测值与实际数据误差平方和最小,其没有假设,几何意义上就是距离最小

  • 最大似然估计:估计参数可能值,使样本发生概率最大

最小二乘求解

将 m 个 n 维样本组成矩阵 X,每行对应一个样本,每列对应一个维度,额外一维常数项,全为 1

目标函数

目标函数

对上式求梯度

求梯度

令其最小,求驻点,则有

求驻点

损失函数增加正则项防止过拟合

常见的有以下三种

  • L1-norm (LASSO)

    L1 正则

    L1 正则可以做特征选择

  • L2-norm (Ridge)

    L2 正则

    L2 正则比较常用

  • Elastic Net

    Elastic Net

    结合 L1 和 L2

梯度下降法 (Gradient Descent)

接下来我们使用梯度下降法来求解上文中的目标函数 J(θ) ​,步骤如下

  1. 随机初始化 ​θ

  2. 沿着负梯度方向迭代,使更新后的 θ​ 令 J(θ) ​ 更小,公式如下

    迭代公式

    ​ α 为学习率、步长

  3. 当下降到无法下降或某个定义的极小值时,则停止下降。

注:梯度下降的最终点并非是全局最小点,可能是一个局部最小点

梯度下降

梯度方向,偏导数计算

偏导

批量梯度下降法(Batch Gradient Descent)

批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新,也就是上文中的计算方法

批量梯度下降

随机梯度下降法(Stochastic Gradient Descent)

随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本来求梯度。

随机梯度下降

对于训练速度来说,随机梯度下降法由于每次仅仅采用一个样本来迭代,训练速度很快,而批量梯度下降法在样本量很大的时候,训练速度不能让人满意。对于准确度来说,随机梯度下降法用于仅仅用一个样本决定梯度方向,导致解很有可能不是最优。对于收敛速度来说,由于随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。

小批量梯度下降法(Mini-batch Gradient Descent)

小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样本来迭代,即若干个样本的平均梯度作为更新方向,1<x<m。一般可以取 x=10,当然根据样本的数据,可以调整这个x的值。



作者:Skye_kh
链接:https://www.jianshu.com/p/1c86f9770aa7
來源:简书

猜你喜欢

转载自blog.csdn.net/FANGUOHAO/article/details/86549966