Day3_线性回归&正则化

线性回归


理论模型

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

基本假设

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

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

数据和估计

区分随机变量和这些变量的观测值是很重要的。通常来说,观测值或数据(以小写字母表记)包括了n个值 ( y i , x i 1 , , x i p ) , 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是一个包括了观测值 Y 1 , , Y n {\displaystyle Y_{1},\ldots ,Y_{n}} 的列向量, ε {\displaystyle \varepsilon } 包括了未观测的随机成分 ε 1 , , ε n {\displaystyle \varepsilon _{1},\ldots ,\varepsilon _{n}} 以及回归量的观测值矩阵 X {\displaystyle X}
X n × p + 1 = ( 1 x 11 x 1 p 1 x 21 x 2 p 1 x n 1 x n p ) {\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通常包括一个常数项。

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

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

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

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

在这里插入图片描述

所以有常用的一下方法

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

正则化

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

扫描二维码关注公众号,回复: 9593328 查看本文章

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

F : = arg min F Obj ( F ) = arg min F ( 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 } 是用于控制正则项重要程度的参数。正则项通常包括对光滑度及向量空间内范数上界的限制。 L p {\displaystyle L_{p}} -范数是一种常见的正则项。


范数

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

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

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

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


举例

下面我们考虑最简单的线性模型来进行举例:
给定数据集 D = ( x i , y i ) i = 1 n D=(x_{i},y_{i})_{i=1}^n ,其中 x i = ( x i 1 , x i 2 , x i 3 , , x i d ) x_{i}=(x_{i1},x_{i2},x_{i3},\ldots,x_{id}) , y i R y_{i} \in\mathbb {R}
机器学习模型当中的参数,可形式化地组成参数向量,记为 ω {\displaystyle {\vec {\omega }}}
所以 F ( x ; ω ) = ω x = i = 1 n ω i x i . {\displaystyle F({\vec {x}};{\vec {\omega }})={\vec {\omega }}^{\intercal }\cdot {\vec {x}}=\sum _{i=1}^{n}\omega _{i}\cdot x_{i}.}
损失函数 L ( F ) = i D ( y i , y ^ i ) = 1 / n i = 1 n ( y i w T x i ) 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. L 1 L_{1} 范数正则化(Lasso,Least Absoulute Shrinkage and Selection Operator)
    正则项:
    Ω ( F ( x ; ω ) ) : = γ 1 ω 1 n ,    γ 1 > 0. {\displaystyle \Omega {\bigl (}F({\vec {x}};{\vec {\omega }}){\bigr )}:=\gamma _{1}{\frac {\lVert {\vec {\omega }}\rVert _{1}}{n}},\;\gamma _{1}>0.}
  2. L 2 L_{2} 范数正则化(Ridge Regression,岭回归)
    正则项:
    Ω ( F ( x ; w ) ) : = γ 2 ω 2 2 2 n ,    γ 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 ω 2 2 2 n , {\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 + γ 2 n ω 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 η γ 2 n ω i = ( 1 η γ 2 n ) ω 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}}}.}
    注意到 η γ 2 n {\displaystyle \eta {\tfrac {\gamma _{2}}{n}}} 通常是介于 ( 0 , 1 ) {\displaystyle (0,\,1)} 之间的数,引入 L 2 {\displaystyle L_{2}} -正则项相当于衰减了(decay)参数的权重,使得参数接近零,从而对抗过拟合。
  2. 采用正规方程
    最优解为:
    w = ( X T X + γ I ) 1 X T y w^{*}=(X^{T}X+\gamma I)^{-1}X^{T}y
    最后得到模型
    y ^ = w T X = X T w = ( X T X + γ I ) 1 X T y {\hat{y}}=w^{T}X=X^{T}w=(X^{T}X+\gamma I)^{-1}X^{T}y

Lasso回归求解

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

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

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

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

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

这里引用一张来自周志华老师的著作,《机器学习》(西瓜书)里的插图,尝试解释这个问题。
在这里插入图片描述
稀疏解与平滑稠密

为了简便起见,我们只考虑模型有两个参数 w 1 w_1 w 2 w_2 的情形。

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

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

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

对于 L 2 L_2 -正则项来说,因为 L 2 L_2 -正则项的等值线是一组圆形。所以,这些交点可能落在整个平面的任意位置。所以它不能实现「稀疏化」。但是,另一方面,由于 ( w 1 , w 2 ) (w_1,w_2) 落在圆上,所以它们的值会比较接近。这就是为什么 L 2 L_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/

发布了20 篇原创文章 · 获赞 6 · 访问量 874

猜你喜欢

转载自blog.csdn.net/qq_43605381/article/details/104342596