线性回归
理论模型
给一个随机样本:(Yi,Xi1,…,Xip),i=1,…,n,一个线性回归模型假设回归子 Yi 和回归量Xi1,…,Xip之间的关系是除了X的影响以外,还有其他的变量存在。我们加入一个误差项εi(也是一个随机变量)来捕获除了Xi1,…,Xip之外任何对Yi的影响。所以一个多变量线性回归模型表示为以下的形式:
Yi=β0+β1Xi1+β2Xi2+…+βpXip+εi,i=1,…,n其他的模型可能被认定成非线性模型。一个线性回归模型不需要是自变量的线性函数。线性在这里表示Yi的条件均值在参数β里是线性的。例如:模型Yi=β1Xi+β2Xi2+εi在β1和β2里是线性的,但在Xi2里是非线性的,它是Xi的非线性函数。
基本假设
- 样本是在总体之中随机抽取出来的。
- 因变量Y在实直线上是连续的,
- 残差项是独立且相同分布的,也就是说,残差是独立随机的,且服从正态分布Normal distribution(高斯分布Gaussian distribution)。
这些假设意味着残差项不依赖自变量的值,所以εi和自变量X(预测变量)之间是相互独立的。
在这些假设下,建立一个显式线性回归作为条件预期模型的简单线性回归,可以表示为:
E(Yi∣Xi=xi)=α+βxi
数据和估计
区分随机变量和这些变量的观测值是很重要的。通常来说,观测值或数据(以小写字母表记)包括了n个值 (yi,xi1,…,xip),i=1,…,n
我们有p+1个参数β0,…,βp需要确定,为了估计这些参数,使用矩阵记是很有用的。
Y=Xβ+ε其中Y是一个包括了观测值Y1,…,Yn的列向量,ε包括了未观测的随机成分ε1,…,εn以及回归量的观测值矩阵X:
Xn×p+1=⎝⎜⎜⎜⎛11⋮1x11x21⋮xn1⋯⋯⋱⋯x1px2p⋮xnp⎠⎟⎟⎟⎞X通常包括一个常数项。
所以如果X列满秩时,这是后求解参数向量β 可以使用最小二乘法:
β^=(XTX)−1XTy
如果X不是列满秩,或者某些列之间的线性相关性比较大时,XTX的行列式接近于0,即XTX接近于奇异,计算((XTX)−1时误差会很大。此时传统的最小二乘法缺乏稳定性与可靠性。这样会造成过拟合Overfit
过拟合: 当样本特征很多,样本数相对较少时,模型容易陷入过拟合。

所以有常用的一下方法
- 减少特征数量。由于X不是列满秩,即样本X列向量之间有高度的相关性,这时候进行降维,从而使其变成列满秩然后进行计算。这里降维的方法有
- 正则化。减少特征参数w的数量级,下面主要讲的就是这个方法
正则化
写之前先了解一下相关概念:
我们要了解正则化就从机器学习这个方向入手,机器学习的训练过程,就是要找到一个足够好的函数F∗用以在新的数据上进行推理。为了定义什么是“好”,人们引入了损失函数的概念。一般地,对于样本(x,y)和模型F,有预测值y^=F(x)。损失函数是定义在R×R→R上的二元函数ℓ(y,y^),用来描述基准真相和模型预测值之间的差距。一般来说,损失函数是一个有下确界的函数;当基准真相和模型预测值足够接近,损失函数的值也会接近该下确界。
因此,机器学习的训练过程可以被转化为训练集D上的最小化问题。我们的目标是在泛函空间内,找到使得全局损失L(F)=i∈D∑ℓ(yi,y^i)最小的模型F∗。
F∗:=arg minFL(F).
由于损失函数只考虑在训练集上的经验风险,这种做法可能会导致过拟合。为了对抗过拟合,我们需要向损失函数中加入描述模型复杂程度的正则项Ω(F),将经验风险最小化问题转化为结构风险最小化。
F∗:=arg minFObj(F)=arg minF(L(F)+γΩ(F)),γ>0.
这里,Obj(F)称为目标函数(Objective Function),它描述模型的结构风险;L(F)是训练集上的损失函数;Ω(F)是正则项,描述模型的复杂程度;γ是用于控制正则项重要程度的参数。正则项通常包括对光滑度及向量空间内范数上界的限制。Lp-范数是一种常见的正则项。
范数
所谓范数,就是某种抽象的长度。范数满足通常意义上长度的三个基本性质:
非负性:∥x∥⩾0;
齐次性:∥c⋅x∥=∣c∣⋅∥x∥;
三角不等式:∥x+y∥⩽∥x⃗∥+∥y⃗∥。
在这里,我们需要关注的最主要是范数的非负性。我们刚才讲,损失函数通常是一个有下确界的函数。而这个性质保证了我们可以对损失函数做最优化求解。如果我们要保证目标函数依然可以做最优化求解,那么我们就必须让正则项也有一个下界。非负性无疑提供了这样的下界,而且它是一个下确界——由齐次性保证(当 c=0 时)。
因此,我们说,范数的性质使得它天然地适合作为机器学习的正则项。而范数需要的向量,则是机器学习的学习目标——参数向量。
机器学习中有几个常用的范数,分别是
L0-范数:∥x⃗∥0=(i),i=0;
L1-范数:∥x⃗∥1=∑i=1d∣xi∣;
L2-范数:∥x⃗∥2=(∑i=1dxi2)1/2;
Lp-范数:∥x⃗∥p=(∑i=1dxip)1/p;
L∞-范数:∥x⃗∥∞=limp→+∞(∑i=1dxip)1/p。
在机器学习中,如果使用了 ∥w⃗∥p 作为正则项;则我们说,该机器学习任务引入了Lp-正则项。
举例
下面我们考虑最简单的线性模型来进行举例:
给定数据集D=(xi,yi)i=1n,其中xi=(xi1,xi2,xi3,…,xid),yi∈R
机器学习模型当中的参数,可形式化地组成参数向量,记为ω。
所以F(x;ω)=ω⊺⋅x=i=1∑nωi⋅xi.
损失函数L(F)=i∈D∑ℓ(yi,y^i)=1/n∑i=1n(yi−wTxi)2
-
L1范数正则化(Lasso,Least Absoulute Shrinkage and Selection Operator)
正则项:
Ω(F(x;ω)):=γ1n∥ω∥1,γ1>0.
-
L2范数正则化(Ridge Regression,岭回归)
正则项:
Ω(F(x;w)):=γ22n∥ω∥22,γ2>0,
岭回归求解
有目标函数
Obj(F)=L(F)+γ22n∥ω∥22,
- 梯度下降法
对于参数ωi,有偏导
∂ωi∂Obj=∂ωi∂L+nγ2ωi.
因此,在梯度下降时,参数ωi的更新
ωi′←ωi−η∂ωi∂L−ηnγ2ωi=(1−ηnγ2)ωi−η∂ωi∂L.
注意到ηnγ2通常是介于(0,1)之间的数,引入L2-正则项相当于衰减了(decay)参数的权重,使得参数接近零,从而对抗过拟合。
- 采用正规方程
最优解为:
w∗=(XTX+γI)−1XTy
最后得到模型
y^=wTX=XTw=(XTX+γI)−1XTy
Lasso回归求解
理解:我们考虑这样一种普遍的情况,即:预测目标背后的真是规律,可能只和某几个维度的特征有关;而其它维度的特征,要不然作用非常小,要不然纯粹是噪声。在这种情况下,除了这几个维度的特征对应的参数之外,其它维度的参数应该为零。若不然,则当其它维度的特征存在噪音时,模型的行为会发生预期之外的变化,导致过拟合。
由于L1范数用的是绝对值,导致LASSO的优化目标不是连续可导的,也就是说,最小二乘法,梯度下降法,牛顿法,拟牛顿法都不能用。
L1范数正则化问题求解可采用近端梯度下降法(Proximal Gradient Descent,PGD)。
L1-正则项与 L2-正则项的区别
现在,我们考虑这样一个问题:为什么使用L1-正则项,会倾向于使得参数稀疏化;而使用 L2-正则项,会倾向于使得参数稠密地接近于零?
这里引用一张来自周志华老师的著作,《机器学习》(西瓜书)里的插图,尝试解释这个问题。

稀疏解与平滑稠密
为了简便起见,我们只考虑模型有两个参数 w1与 w2 的情形。
在图中,我们有三组「等值线」。位于同一条等值线上的 w1与 w2 ,具有相同的值(平方误差、L1-范数或L2-范数)。并且,对于三组等值线来说,当 (w1,w2) 沿着等值线法线方向,像外扩张,则对应的值增大;反之,若沿着法线方向向内收缩,则对应的值减小。
因此,对于目标函数 Obj(F)来说,实际上是要在正则项的等值线与损失函数的等值线中寻找一个交点,使得二者的和最小。
对于L1-正则项来说,因为L1-正则项的等值线是一组菱形,这些交点容易落在坐标轴上。因此,另一个参数的值在这个交点上就是零,从而实现了稀疏化。
对于L2-正则项来说,因为L2-正则项的等值线是一组圆形。所以,这些交点可能落在整个平面的任意位置。所以它不能实现「稀疏化」。但是,另一方面,由于 (w1,w2) 落在圆上,所以它们的值会比较接近。这就是为什么L2-正则项可以使得参数在零附近稠密而平滑。
引用
[1]维基百科:https://zh.wikipedia.org/wiki/%E7%B7%9A%E6%80%A7%E5%9B%9E%E6%AD%B8
[2] 《机器学习》 周志华
[3] 《Python机器学习基础教程》 人 民 邮 电 出 版 社
[4] https://blog.csdn.net/pxhdky/article/details/82960659
[5] https://liam.page/2017/03/30/L1-and-L2-regularizer/