线性回归


理论模型

给一个随机样本:(Yi,Xi1,,Xip),i=1,,n{\displaystyle (Y_{i},X_{i1},\ldots ,X_{ip}),\,i=1,\ldots ,n},一个线性回归模型假设回归子 Yi{\displaystyle Y_{i}} 和回归量Xi1,,Xip{\displaystyle X_{i1},\ldots ,X_{ip}}之间的关系是除了X的影响以外,还有其他的变量存在。我们加入一个误差项εi{\displaystyle \varepsilon _{i}}(也是一个随机变量)来捕获除了Xi1,,Xip{\displaystyle X_{i1},\ldots ,X_{ip}}之外任何对Yi{\displaystyle Y_{i}}的影响。所以一个多变量线性回归模型表示为以下的形式:
Yi=β0+β1Xi1+β2Xi2++βpXip+εi,i=1,,n {\displaystyle Y_{i}=\beta _{0}+\beta _{1}X_{i1}+\beta _{2}X_{i2}+\ldots +\beta _{p}X_{ip}+\varepsilon _{i},\qquad i=1,\ldots ,n} 其他的模型可能被认定成非线性模型。一个线性回归模型不需要是自变量的线性函数。线性在这里表示Yi{\displaystyle Y_{i}}的条件均值在参数β{\displaystyle \beta }里是线性的。例如:模型Yi=β1Xi+β2Xi2+εi{\displaystyle Y_{i}=\beta _{1}X_{i}+\beta _{2}X_{i}^{2}+\varepsilon _{i}}β1β2{\displaystyle \beta _{1}}和{\displaystyle \beta _{2}}里是线性的,但在Xi2{\displaystyle X_{i}^{2}}里是非线性的,它是Xi{\displaystyle X_{i}}的非线性函数。

基本假设

  • 样本是在总体之中随机抽取出来的。
  • 因变量Y在实直线上是连续的,
  • 残差项是独立且相同分布的,也就是说,残差是独立随机的,且服从正态分布Normal distribution(高斯分布Gaussian distribution)。
    这些假设意味着残差项不依赖自变量的值,所以εi{\displaystyle \varepsilon _{i}}和自变量X(预测变量)之间是相互独立的。

在这些假设下,建立一个显式线性回归作为条件预期模型的简单线性回归,可以表示为:
E(YiXi=xi)=α+βxi{\displaystyle E( Y_{i}|X_{i}=x_{i})=\alpha+\beta x_{i}}

数据和估计

区分随机变量和这些变量的观测值是很重要的。通常来说,观测值或数据(以小写字母表记)包括了n个值 (yi,xi1,,xip),i=1,,n{\displaystyle (y_{i},x_{i1},\ldots ,x_{ip}),\,i=1,\ldots ,n}

我们有p+1{\displaystyle p+1}个参数β0,,βp{\displaystyle \beta _{0},\ldots ,\beta _{p}}需要确定,为了估计这些参数,使用矩阵记是很有用的。
Y=Xβ+ε{\displaystyle Y=X\beta +\varepsilon \,}其中Y是一个包括了观测值Y1,,Yn{\displaystyle Y_{1},\ldots ,Y_{n}}的列向量,ε{\displaystyle \varepsilon }包括了未观测的随机成分ε1,,εn{\displaystyle \varepsilon _{1},\ldots ,\varepsilon _{n}}以及回归量的观测值矩阵X{\displaystyle X}
Xn×p+1=(1x11x1p1x21x2p1xn1xnp){\displaystyle X_{n×p+1}={\begin{pmatrix}1&x_{11}&\cdots &x_{1p}\\1&x_{21}&\cdots &x_{2p}\\\vdots &\vdots &\ddots &\vdots \\1&x_{n1}&\cdots &x_{np}\end{pmatrix}}}X通常包括一个常数项。

所以如果XX列满秩时,这是后求解参数向量β{\displaystyle \beta } 可以使用最小二乘法:

β^=(XTX)1XTy{\hat \beta }=(X^{T}X)^{{-1}}X^{T}y\,

如果XX不是列满秩,或者某些列之间的线性相关性比较大时,XTXX^TX的行列式接近于0,即XTXX^TX接近于奇异,计算((XTX)1(X^TX)^{-1}时误差会很大。此时传统的最小二乘法缺乏稳定性与可靠性。这样会造成过拟合Overfit

过拟合: 当样本特征很多,样本数相对较少时,模型容易陷入过拟合。

Day3_线性回归&正则化

所以有常用的一下方法

  1. 减少特征数量。由于XX不是列满秩,即样本XX列向量之间有高度的相关性,这时候进行降维,从而使其变成列满秩然后进行计算。这里降维的方法有
  2. 正则化。减少特征参数ww的数量级,下面主要讲的就是这个方法

正则化

写之前先了解一下相关概念:

我们要了解正则化就从机器学习这个方向入手,机器学习的训练过程,就是要找到一个足够好的函数F{\displaystyle F^{*}}用以在新的数据上进行推理。为了定义什么是“好”,人们引入了损失函数的概念。一般地,对于样本(x,y){\displaystyle ({\vec {x}},y)}和模型F{\displaystyle F},有预测值y^=F(x){\displaystyle {\hat {y}}=F({\vec {x}})}。损失函数是定义在R×RR{\displaystyle \mathbb {R} \times \mathbb {R} \to \mathbb {R} }上的二元函数(y,y^){\displaystyle \ell (y,{\hat {y}})},用来描述基准真相和模型预测值之间的差距。一般来说,损失函数是一个有下确界的函数;当基准真相和模型预测值足够接近,损失函数的值也会接近该下确界。
因此,机器学习的训练过程可以被转化为训练集D{\displaystyle {\mathcal {D}}}上的最小化问题。我们的目标是在泛函空间内,找到使得全局损失L(F)=iD(yi,y^i){\displaystyle L(F)=\sum _{i\in {\mathcal {D}}}\ell (y_{i},{\hat {y}}_{i})}最小的模型F{\displaystyle F^{*}}
F:=arg minFL(F). {\displaystyle F^{*}:=\mathop {\text{arg min}} _{F}L(F).}
由于损失函数只考虑在训练集上的经验风险,这种做法可能会导致过拟合。为了对抗过拟合,我们需要向损失函数中加入描述模型复杂程度的正则项Ω(F){\displaystyle \Omega (F)}将经验风险最小化问题转化为结构风险最小化

F:=arg minFObj(F)=arg minF(L(F)+γΩ(F)),γ>0.{\displaystyle F^{*}:=\mathop {\text{arg min}} _{F}{\text{Obj}}(F)=\mathop {\text{arg min}} _{F}{\bigl (}L(F)+\gamma \Omega (F){\bigr )},\qquad \gamma >0.}

这里,Obj(F){\displaystyle {\text{Obj}}(F)}称为目标函数(Objective Function),它描述模型的结构风险;L(F){\displaystyle L(F)}是训练集上的损失函数;Ω(F){\displaystyle \Omega (F)}是正则项,描述模型的复杂程度;γ{\displaystyle \gamma }是用于控制正则项重要程度的参数。正则项通常包括对光滑度及向量空间内范数上界的限制。Lp{\displaystyle L_{p}}-范数是一种常见的正则项。


范数

所谓范数,就是某种抽象的长度。范数满足通常意义上长度的三个基本性质:
非负性:x0∥{\vec {x}}∥⩾0
齐次性:cx=cx∥c·{\vec {x}}∥=|c|⋅∥{\vec {x}} ∥
三角不等式:x+yx+y∥{\vec {x}} +{\vec {y}} ∥⩽∥x⃗ ∥+∥y⃗ ∥
在这里,我们需要关注的最主要是范数的非负性。我们刚才讲,损失函数通常是一个有下确界的函数。而这个性质保证了我们可以对损失函数做最优化求解。如果我们要保证目标函数依然可以做最优化求解,那么我们就必须让正则项也有一个下界。非负性无疑提供了这样的下界,而且它是一个下确界——由齐次性保证(当 c=0 时)。

因此,我们说,范数的性质使得它天然地适合作为机器学习的正则项。而范数需要的向量,则是机器学习的学习目标——参数向量。

机器学习中有几个常用的范数,分别是

L0-范数:x0=(i),i0∥x⃗ ∥_{0}=(i), i≠0
L1-范数:x1=i=1dxi∥x⃗ ∥_{1}=∑^{d}_{i=1}|x_i|
L2-范数:x2=(i=1dxi2)1/2∥x⃗ ∥_{2}=(∑^{d}_{i=1}x_{i}^{2})^{1/2}
Lp-范数:xp=(i=1dxip)1/p∥x⃗ ∥_{p}=(∑^{d}_{i=1}x^{p}_{i})^{1/p}
L∞-范数:x=limp+(i=1dxip)1/p∥x⃗ ∥∞=lim_{p→+∞}(∑^{d}_{i=1}x^{p}_{i})^{1/p}
在机器学习中,如果使用了 wp∥w⃗ ∥_p 作为正则项;则我们说,该机器学习任务引入了LpL_p-正则项。


举例

下面我们考虑最简单的线性模型来进行举例:
给定数据集D=(xi,yi)i=1nD=(x_{i},y_{i})_{i=1}^n,其中xi=(xi1,xi2,xi3,,xid)x_{i}=(x_{i1},x_{i2},x_{i3},\ldots,x_{id}),yiRy_{i} \in\mathbb {R}
机器学习模型当中的参数,可形式化地组成参数向量,记为ω{\displaystyle {\vec {\omega }}}
所以F(x;ω)=ωx=i=1nωixi.{\displaystyle F({\vec {x}};{\vec {\omega }})={\vec {\omega }}^{\intercal }\cdot {\vec {x}}=\sum _{i=1}^{n}\omega _{i}\cdot x_{i}.}
损失函数L(F)=iD(yi,y^i)=1/ni=1n(yiwTxi)2{\displaystyle L(F)=\sum _{i\in {\mathcal {D}}}\ell (y_{i},{\hat {y}}_{i})}=1/n \sum_{i=1}^{n}(y_{i}-w^{T}x_{i})^{2}

  1. L1L_{1}范数正则化(Lasso,Least Absoulute Shrinkage and Selection Operator)
    正则项:
    Ω(F(x;ω)):=γ1ω1n,  γ1>0.{\displaystyle \Omega {\bigl (}F({\vec {x}};{\vec {\omega }}){\bigr )}:=\gamma _{1}{\frac {\lVert {\vec {\omega }}\rVert _{1}}{n}},\;\gamma _{1}>0.}
  2. L2L_{2}范数正则化(Ridge Regression,岭回归)
    正则项:
    Ω(F(x;w)):=γ2ω222n,  γ2>0,{\displaystyle \Omega {\bigl (}F({\vec {x}};{\vec {w}}){\bigr )}:=\gamma _{2}{\frac {\lVert {\vec {\omega }}\rVert _{2}^{2}}{2n}},\;\gamma _{2}>0,}

岭回归求解

有目标函数
Obj(F)=L(F)+γ2ω222n,{\displaystyle {\text{Obj}}(F)=L(F)+\gamma _{2}{\frac {\lVert {\vec {\omega }}\rVert _{2}^{2}}{2n}},}

  1. 梯度下降法
    对于参数ωi{\displaystyle \omega _{i}},有偏导
    Objωi=Lωi+γ2nωi.{\displaystyle {\frac {\partial {\text{Obj}}}{\partial \omega _{i}}}={\frac {\partial L}{\partial \omega _{i}}}+{\frac {\gamma _{2}}{n}}\omega _{i}.}
    因此,在梯度下降时,参数ωi{\displaystyle \omega _{i}}的更新
    ωiωiηLωiηγ2nωi=(1ηγ2n)ωiηLωi.{\displaystyle \omega '_{i}\gets \omega _{i}-\eta {\frac {\partial L}{\partial \omega _{i}}}-\eta {\frac {\gamma _{2}}{n}}\omega _{i}={\Bigl (}1-\eta {\frac {\gamma _{2}}{n}}{\Bigr )}\omega _{i}-\eta {\frac {\partial L}{\partial \omega _{i}}}.}
    注意到ηγ2n{\displaystyle \eta {\tfrac {\gamma _{2}}{n}}}通常是介于(0,1){\displaystyle (0,\,1)}之间的数,引入L2{\displaystyle L_{2}}-正则项相当于衰减了(decay)参数的权重,使得参数接近零,从而对抗过拟合。
  2. 采用正规方程
    最优解为:
    w=(XTX+γI)1XTyw^{*}=(X^{T}X+\gamma I)^{-1}X^{T}y
    最后得到模型
    y^=wTX=XTw=(XTX+γI)1XTy{\hat{y}}=w^{T}X=X^{T}w=(X^{T}X+\gamma I)^{-1}X^{T}y

Lasso回归求解

理解:我们考虑这样一种普遍的情况,即:预测目标背后的真是规律,可能只和某几个维度的特征有关;而其它维度的特征,要不然作用非常小,要不然纯粹是噪声。在这种情况下,除了这几个维度的特征对应的参数之外,其它维度的参数应该为零。若不然,则当其它维度的特征存在噪音时,模型的行为会发生预期之外的变化,导致过拟合。

由于L1L_{1}范数用的是绝对值,导致LASSO的优化目标不是连续可导的,也就是说,最小二乘法,梯度下降法,牛顿法,拟牛顿法都不能用。

L1L_{1}范数正则化问题求解可采用近端梯度下降法(Proximal Gradient Descent,PGD)。

L1-正则项与 L2-正则项的区别

现在,我们考虑这样一个问题:为什么使用L1L_1-正则项,会倾向于使得参数稀疏化;而使用 L2L_2-正则项,会倾向于使得参数稠密地接近于零?

这里引用一张来自周志华老师的著作,《机器学习》(西瓜书)里的插图,尝试解释这个问题。
Day3_线性回归&正则化
稀疏解与平滑稠密

为了简便起见,我们只考虑模型有两个参数 w1w_1w2w_2 的情形。

在图中,我们有三组「等值线」。位于同一条等值线上的 w1w_1w2w_2 ,具有相同的值(平方误差、L1L_1-范数或L2L_2-范数)。并且,对于三组等值线来说,当 (w1,w2)(w_1,w_2) 沿着等值线法线方向,像外扩张,则对应的值增大;反之,若沿着法线方向向内收缩,则对应的值减小。

因此,对于目标函数 Obj(F)Obj(F)来说,实际上是要在正则项的等值线与损失函数的等值线中寻找一个交点,使得二者的和最小。

对于L1L_1-正则项来说,因为L1L_1-正则项的等值线是一组菱形,这些交点容易落在坐标轴上。因此,另一个参数的值在这个交点上就是零,从而实现了稀疏化。

对于L2L_2-正则项来说,因为L2L_2-正则项的等值线是一组圆形。所以,这些交点可能落在整个平面的任意位置。所以它不能实现「稀疏化」。但是,另一方面,由于 (w1,w2)(w_1,w_2) 落在圆上,所以它们的值会比较接近。这就是为什么L2L_2-正则项可以使得参数在零附近稠密而平滑。

引用

[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/

相关文章:

  • 2022-12-23
  • 2021-05-08
  • 2022-01-16
  • 2021-09-20
  • 2022-12-23
  • 2021-07-02
  • 2022-12-23
  • 2021-04-01
猜你喜欢
  • 2021-10-19
  • 2021-11-06
  • 2021-09-06
  • 2021-07-22
  • 2021-11-05
  • 2022-01-03
  • 2021-07-27
相关资源
相似解决方案