线性回归详解

Linear Regression

线性回归模型是我认为的机器学习模型中最为简单也是最为基础的一个模型,但其意义是非常重大的,因为我们可以从简单的线性回归模型推导出二分类、多分类模型等。线性回归的intuition非常的直接简单,假设在一个二维平面 x o y xoy xoy上有一些呈带状分布的点,我们想要对这些数据进行拟合,并做预测,那么最直接的方法就是构造线性回归模型

线性回归详解

Mathematical Representation

但是在实际情况中,我们的数据特征维度通常是大于2的,例如我们要评价一个国家的综合国力,我们要综合考量它的政治影响力、经济实力、科技实力等等。因此,我们定义以下的线性模型基本形式:
给 定 由 d 个 属 性 描 述 的 实 例 x = ( x 1 ; x 2 ; , . . . ; x d ) , 其 中 x i 是 x 在 第 i 个 属 性 上 的 取 值 , 线 性 回 归 模 型 试 图 学 习 一 个 通 过 属 性 的 线 性 组 合 来 进 行 预 测 的 函 数 , 即 f ( x ) = w 1 x 1 + w 2 x 2 + ⋯ + w d x d + b 写 成 向 量 的 形 式 就 是 f ( x ) = w T x + b , w = ( w 1 ; w 2 ; …   ; w d ) 当 w 和 b 学 得 之 后 , 整 个 模 型 就 被 确 定 下 来 给定由d个属性描述的实例x=(x_1;x_2;,...;x_d),其中x_i是x在第i个属性上的取值,线性回归模型试图学习一个通过属性的线性组合来进行预测的函数,即\\ f(x)=w_1x_1+w_2x_2+\dots+w_dx_d+b\\ 写成向量的形式就是f(x)=w^Tx+b,w=(w_1;w_2;\dots;w_d)\\ 当w和b学得之后,整个模型就被确定下来 给定由d个属性描述的实例x=(x1​;x2​;,...;xd​),其中xi​是x在第i个属性上的取值,线性回归模型试图学习一个通过属性的线性组合来进行预测的函数,即f(x)=w1​x1​+w2​x2​+⋯+wd​xd​+b写成向量的形式就是f(x)=wTx+b,w=(w1​;w2​;…;wd​)当w和b学得之后,整个模型就被确定下来
上面是任何一般线性模型的基本形式,而对于线性回归任务来说,我们通常是根据已有的数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) … ( x n , y n ) } D=\{(x_1,y_1),(x_2,y_2)\dots(x_n,y_n)\} D={(x1​,y1​),(x2​,y2​)…(xn​,yn​)}学习出一个线性模型,使得它的 f ( x i ) f(x_i) f(xi​)尽可能接近 y i y_i yi​,也就是预测值尽可能接近真实值。那么如何度量 f ( x ) f(x) f(x)与 y y y之间的距离呢,常用的方法是最小二乘

Least Square Method

最小二乘法是从初中就开始学习的方法,它的公式如下:
对 于 线 性 回 归 模 型 f ( x ) , L = ∑ i = 1 n ( f ( x i ) − y i ) 2 对于线性回归模型f(x),L=\sum_{i=1}^n{(f(x_i)-y_i)^2} 对于线性回归模型f(x),L=i=1∑n​(f(xi​)−yi​)2
如果我们考虑的是多元的线性回归,那么我们把 w w w和 b b b吸收进向量形式 w ^ = ( w ; b ) \hat{w}=(w;b) w^=(w;b),把数据集写成一个 n ( d + 1 ) n(d+1) n(d+1)的矩阵,即
X = [ x 11 x 12 … x 1 d 1 x 21 x 22 … x 2 d 1 ⋮ ⋮ ⋱ ⋮ 1 x n 1 x n 2 ⋯ x n d 1 ] X = \left[ \begin{matrix} x_{11}&x_{12}\dots x_{1d}& 1 \\ x_{21}&x_{22} \dots x_{2d} & 1 \\ \vdots & \vdots \ddots \vdots &1 \\ x_{n1} & x_{n2} \cdots x_{nd} & 1 \end{matrix} \right] X=⎣⎢⎢⎢⎡​x11​x21​⋮xn1​​x12​…x1d​x22​…x2d​⋮⋱⋮xn2​⋯xnd​​1111​⎦⎥⎥⎥⎤​
然后将真实值 y y y也写作向量形式,即 Y = ( y 1 ; y 2 ; …   ; y n ) Y=(y_1;y_2;\dots;y_n) Y=(y1​;y2​;…;yn​),那么上式的 L L L就可以写作 L = ( X w ^ − Y ) T ( X w ^ − Y ) L=(X\hat{w}-Y)^T(X\hat{w}-Y) L=(Xw^−Y)T(Xw^−Y)

参数学习

我们的目标是最小化预测值和真实值之间的差距,因此我们希望我们学习到的参数 w ^ \hat{w} w^能够帮我们实现这一目标,那么就是
w ^ = a r g m i n w ^ ( X w ^ − Y ) T ( X w ^ − Y ) \hat{w}=argmin_{\hat{w}}(X\hat{w}-Y)^T(X\hat{w}-Y) w^=argminw^​(Xw^−Y)T(Xw^−Y)
想要得到最优解,最自然的想法是求导,即
∂ L ∂ w ^ = 2 X T ( X w ^ − Y ) \frac{\partial{L}}{\partial\hat{w}}=2X^T(X\hat{w}-Y) ∂w^∂L​=2XT(Xw^−Y)
这个时候,假如我们可以求得解析解,即 X T X X^TX XTX是可逆矩阵,那么 w ^ \hat{w} w^自然可以求出。但是大多数情况下,我们是无法直接求出 w ^ \hat{w} w^的值的,因此采用梯度下降法进行参数求解

概率视角理解

上文中我们谈到了最小二乘法,那么下面我们从概率的视角来推导一下线性回归的目标函数,这里其实是为后面的贝叶斯回归和高斯过程回归做铺垫。

首先,我们来看一种线性回归模型的定义:
m o d e l : { f ( x ) = w T x y = f ( x ) + ϵ model:\left\{ \begin{matrix} f(x)=w^Tx \\ y=f(x)+\epsilon \end{matrix} \right. model:{f(x)=wTxy=f(x)+ϵ​
其中,这个 ϵ \epsilon ϵ是一个噪声, 我们令它是服从高斯分布 N ( 0 , σ 2 ) N(0, \sigma^2) N(0,σ2),那么可以得到 y = f ( x ) + ϵ = w T x + ϵ y=f(x)+\epsilon=w^Tx+\epsilon y=f(x)+ϵ=wTx+ϵ也是服从于高斯分布 N ( w T x , σ 2 ) N(w^Tx, \sigma^2) N(wTx,σ2)。如果我们以概率的角度来看待,那么我们想要最大化的就应该是 p ( y ∣ x ; w ) p(y|x;w) p(y∣x;w)。而我们数据集中的每条数据之间都是相互独立的,因此, p ( y ∣ x ; w ) = ∏ i = 1 n p ( y i ∣ x i , w ) p(y|x;w)=\prod_{i=1}^np(y_i|x_i,w) p(y∣x;w)=∏i=1n​p(yi​∣xi​,w),根据高斯分布也就是正态分布的概率密度函数,由最大似然估计法得
w ∗ = a r m a x w     L ( w ) = a r g m a x w     l o g ∏ i = 1 n ( e − ( y i − w T x i ) 2 2 σ 2 2 π σ ) = a r g m a x w     − 1 2 σ 2 ∑ i = 1 n ∣ y i − w T x i ∣ 2 + C = a r g m i n w     ∑ i = 1 n ∣ y i − w T x i ∣ 2 w^*=armax_w \ \ \ {L(w)}\\=argmax_w \ \ \ {{log\prod_{i=1}^{n}(\frac{e^{-\frac{(y_i-w^Tx_i)^2}{2\sigma^2}}}{\sqrt{2\pi\sigma}})}}\\=argmax_w \ \ \ -\frac{1}{2\sigma^2}\sum_{i=1}^n|y_i-w^Tx_i|^2 +C \\ =argmin_w \ \ \ \sum_{i=1}^n|y_i-w^Tx_i|^2 w∗=armaxw​   L(w)=argmaxw​   logi=1∏n​(2πσ ​e−2σ2(yi​−wTxi​)2​​)=argmaxw​   −2σ21​i=1∑n​∣yi​−wTxi​∣2+C=argminw​   i=1∑n​∣yi​−wTxi​∣2
我们发现这就是最小二乘的形式。其实最小二乘就是由此推到过来的,这种将数据和参数看作是点,然后构造目标函数进行优化的方法是“频率派”的主张,在贝叶斯回归一节,我们将看到贝叶斯派的做法。

正则化(Lasso&Ridge)

在Model Selection章节我们谈到了模型的过拟合问题,在线性回归模型中仍然存在这一问题。当我们的特征数量太多的时候,模型经常会出现过拟合现象,一种抑制方法就是加入正则化项,而常用的正则项有L1范数和L2范数,因此也就衍生出了Lasso回归和Ridge回归

Lasso回归

Lasso回归是在原有的线性回归目标函数(最小二乘)上加入L1范数的正则化项,即 L = ( X w ^ − Y ) T ( X w ^ − Y ) + λ ∑ i = 1 d ∣ w i ∣ L=(X\hat{w}-Y)^T(X\hat{w}-Y)+\lambda\sum_{i=1}^d|w_i| L=(Xw^−Y)T(Xw^−Y)+λ∑i=1d​∣wi​∣

线性回归详解

上面这张图要理解一下,事实上,加入正则化项之后之所以能够降低模型复杂度、抑制过拟合,是因为它使得模型不仅要满足线性回归的要求,还要满足L1正则的要求。假设我们只有二维特征,那么我们就可以将这两个部分分别在平面上绘制出来。我们知道 ∣ x ∣ + ∣ y ∣ = c |x|+|y|=c ∣x∣+∣y∣=c的图像是一个菱形,如上图中绿色部分所示;而最小二乘的部分其实是一个椭圆。对于不同的 w w w的取值,这两部分函数会分别形成一簇等高线,那么当两簇等高线相交时,交点就是我们的可行解。那么从上图也可以看得出来,红线与绿线相交时,交点是在 y y y轴上的,因此 w 1 w_1 w1​此时为0,这也就起到了降低模型复杂度的作用。

L1正则的特点:

线性回归详解

Ridge回归

Ridge回归是在原有的线性回归目标函数(最小二乘)上加入L2范数的正则化项,即 L = ( X w ^ − Y ) T ( X w ^ − Y ) + λ ∑ i = 1 d ∣ w i ∣ 2 L=(X\hat{w}-Y)^T(X\hat{w}-Y)+\lambda\sum_{i=1}^d|w_i|^2 L=(Xw^−Y)T(Xw^−Y)+λ∑i=1d​∣wi​∣2

线性回归详解

L1正则是线性的,因此是方形;L2正则是二次曲线,因此是圆形,其余的原理其实是和L1正则一致的。在实际预测过程中,我们发现Ridge回归的效果往往比Lasso回归要好。

L2正则的特点:

线性回归详解

Polynomial Regression

这里我们简单说一下多项式回归。我们知道很多任务中,数据的分布往往不能用线性函数来进行拟合,非线性函数的情况会更多。而多项式回归其实就是在目标函数中添加高次项特征,多项式的一般形式为:
f ( x ) = a 0 + a 1 x + a 2 x 2 + ⋯ + a n x n f(x) = a_0+a_1x+a_2x^2+\dots+a_nx^n f(x)=a0​+a1​x+a2​x2+⋯+an​xn
当我们加入了 x α x^\alpha xα项 ( α > 1 ) (\alpha\gt1) (α>1)后,理论上(泰勒展开)我们就可以拟合出任意的非线性函数。但是,多项式回归出现过拟合的可能性更大,尤其是次数过高的时候,因此一定要加入正则化项。
入了 x α x^\alpha xα项 ( α > 1 ) (\alpha\gt1) (α>1)后,理论上(泰勒展开)我们就可以拟合出任意的非线性函数。但是,多项式回归出现过拟合的可能性更大,尤其是次数过高的时候,因此一定要加入正则化项。

上一篇:误差序列实验——《数值计算方法》


下一篇:神经网络与深度学习--读书笔记1