线性回归
如下图,要对样本点进行线性拟合,求得使预测尽可能准确的函数,这个过程就是线性回归
上升到两个变量即为如下形式
多个变量即可以写成
我们可以使用误差平方和(几何中可视为欧式距离的平方)来度量回归任务的性能。
那么我们如何找到一条直线,使所有样本到直线地距离之和最小呢? 这就是最小二乘法(least square method)————基于误差平方和最小化来进行模型求解.
如果上升到更高维的空间,我们如何解释最小二乘呢。下面一小节尝试使用最大似然估计来解释最小二乘的合理性。
从最大似然解释最小二乘
线性回归似然函数如下
假设误差 是独立同分布的,服从均值为 0,方差为 σ 平方的高斯分布(中心极限定理)。
中心极限定理的意义
实际问题中,很多随机现象可以看做众多因素的独立影响的综合反应,往往近似服从正态分布
- 城市耗电量: 大量用户的耗电总和
- 测量误差: 许多观察不到的、微小误差的总和
注: 应用前提是多个随机变量的和,有些问题是乘性误差,则需要鉴别或者取对数后再使用
根据以上,有概率密度以及似然估计
求解似然函数,将其取对数
要使 l(θ) 最大,则上式减号右边的式子最小,即下式最小。下式形式与最小二乘相同,由此可解释最小二乘的合理性。
最小二乘与极大似然的区别
最小二乘法:即观测值与实际数据误差平方和最小,其没有假设,几何意义上就是距离最小
最大似然估计:估计参数可能值,使样本发生概率最大
最小二乘求解
将 m 个 n 维样本组成矩阵 X,每行对应一个样本,每列对应一个维度,额外一维常数项,全为 1
目标函数
对上式求梯度
令其最小,求驻点,则有
损失函数增加正则项防止过拟合
常见的有以下三种
-
L1-norm (LASSO)
L1 正则可以做特征选择
-
L2-norm (Ridge)
L2 正则比较常用
-
Elastic Net
结合 L1 和 L2
梯度下降法 (Gradient Descent)
接下来我们使用梯度下降法来求解上文中的目标函数 J(θ) ,步骤如下
随机初始化 θ
-
沿着负梯度方向迭代,使更新后的 θ 令 J(θ) 更小,公式如下
α 为学习率、步长
当下降到无法下降或某个定义的极小值时,则停止下降。
注:梯度下降的最终点并非是全局最小点,可能是一个局部最小点
梯度方向,偏导数计算
批量梯度下降法(Batch Gradient Descent)
批量梯度下降法,是梯度下降法最常用的形式,具体做法也就是在更新参数时使用所有的样本来进行更新,也就是上文中的计算方法
随机梯度下降法(Stochastic Gradient Descent)
随机梯度下降法,其实和批量梯度下降法原理类似,区别在与求梯度时没有用所有的m个样本的数据,而是仅仅选取一个样本来求梯度。
对于训练速度来说,随机梯度下降法由于每次仅仅采用一个样本来迭代,训练速度很快,而批量梯度下降法在样本量很大的时候,训练速度不能让人满意。对于准确度来说,随机梯度下降法用于仅仅用一个样本决定梯度方向,导致解很有可能不是最优。对于收敛速度来说,由于随机梯度下降法一次迭代一个样本,导致迭代方向变化很大,不能很快的收敛到局部最优解。
小批量梯度下降法(Mini-batch Gradient Descent)
小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,也就是对于m个样本,我们采用x个样本来迭代,即若干个样本的平均梯度作为更新方向,1<x<m。一般可以取 x=10,当然根据样本的数据,可以调整这个x的值。