线性回归法(Linear Regression)

线性回归法(Linear Regression)

训练样本的表示 S = { x ( i ) , y ( i ) } i = 1 n , x ( i ) ∈ R d , y ( i ) ∈ R S=\{x^{(i)},y^{(i)}\}^n_{i=1},x^{(i)}\in R^d,y^{(i)}\in R S={x(i),y(i)}i=1n,x(i)Rd,y(i)R

也就是说,假设我们有一个d维的数据,我们也就需要d个参数对其进行拟合,最后输出一个实数值y。

Structural Model:线性函数 f ( x ) = β T x + b f(x)=\beta^Tx+b f(x)=βTx+b,拥有参数集 ( β , b ) (\beta,b) (β,b)

这里的 β \beta β 是一个d维的向量,也就是上面说的d个参数组成的。x是一个矢量,也就是我们希望预测的输入数据。

损失函数:RSS 残差平方和(Residual Sum of Square)

R S S ( β ) = ∑ i = 1 n ( y ( i ) − f ( x ( i ) ) ) 2 = ∑ i = 1 n ( y ( i ) − β T x ( i ) − b ) 2 RSS(\beta)=\sum\limits^n_{i=1}(y^{(i)}-f(x^{(i)}))^2\\ =\sum\limits^n_{i=1}(y^{(i)}-\beta^Tx^{(i)}-b )^2 RSS(β)=i=1n(y(i)f(x(i)))2=i=1n(y(i)βTx(i)b)2
可以使用梯度下降法对损失函数求最优解,得到我们需要的 β \beta β

上面的写法比较啰嗦,我们选择使用矩阵的表示法

首先把上面的 β \beta β 改写为 [ b ; β ] [b;\beta] [b;β],也就是变成了 [ b ; β 1 ; β 2 ; β 3 ; . . . ; β d ] [b;\beta_1;\beta_2;\beta_3;...;\beta_d] [b;β1;β2;β3;...;βd] 这样的一个列向量,在开始添加了一个1,实际上,也可以在末尾加,只要x的形式符合即可,西瓜书中是在末尾加的,这里需要注意一下。

然后我们改写一下数据的向量,变为 [ 1 , x ( i ) ] [1,x^{(i)}] [1,x(i)] 这样一个d+1维的行向量,其中 x ( i ) x^{(i)} x(i) 是一个d维行向量。然后我们将数据集中的n个这样的行向量竖着排列,就变成了一个 n × ( d + 1 ) n\times (d+1) n×(d+1) 维的矩阵 X \boldsymbol X X
X = [ x 1 x 2 ⋮ x n ] = [ x 11   x 12   x 13 …   x 1 d x 21   x 22   x 23 …   x 2 d ⋮ x n   x n 2   x n 3 …   x n d ] X=\begin{bmatrix} x_1\\ x_2\\ \vdots\\ x_n \end{bmatrix} =\begin{bmatrix} x_{11} \space x_{12} \space x_{13} \dots \space x_{1d}\\ x_{21} \space x_{22} \space x_{23} \dots \space x_{2d} \\ \vdots \\ x_n \space x_{n2} \space x_{n3} \dots \space x_{nd} \end{bmatrix} X=x1x2xn=x11 x12 x13 x1dx21 x22 x23 x2dxn xn2 xn3 xnd
其中 x i j x_{ij} xij 是第i个数据的第j个分量。

于是我们就可以使用矩阵的形式来改写RSS如下:
R S S ( β ) = ∑ i = 1 n ( y ( i ) − f ( x ( i ) ) ) 2 = ∑ i = 1 n ( y ( i ) − β T x ( i ) − b ) 2 = ( y − X β ) T ( y − X β ) RSS(\beta)=\sum\limits^n_{i=1}(y^{(i)}-f(x^{(i)}))^2\\ =\sum\limits^n_{i=1}(y^{(i)}-\beta^Tx^{(i)}-b )^2\\ =(\boldsymbol y-\boldsymbol X \boldsymbol \beta)^T(\boldsymbol y-\boldsymbol X \boldsymbol \beta) RSS(β)=i=1n(y(i)f(x(i)))2=i=1n(y(i)βTx(i)b)2=(yXβ)T(yXβ)
我们如果对其求最优解,也就是对 β \beta β 求一阶导,然后使其等于0,就可以得到使RSS最优的 β \beta β

求导的推导过程如下,参考南瓜书:

∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=2\mathbf{X}^{\mathrm{T}}(\mathbf{X}\hat{\boldsymbol w}-\boldsymbol{y}) w^Ew^=2XT(Xw^y)
[推导]:将 E w ^ = ( y − X w ^ ) T ( y − X w ^ ) E_{\hat{\boldsymbol w}}=(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol w})^{\mathrm{T}}(\boldsymbol{y}-\mathbf{X}\hat{\boldsymbol w}) Ew^=(yXw^)T(yXw^)展开可得
E w ^ = y T y − y T X w ^ − w ^ T X T y + w ^ T X T X w ^ E_{\hat{\boldsymbol w}}= \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}-\boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}-\hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+\hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w} Ew^=yTyyTXw^w^TXTy+w^TXTXw^
w ^ \hat{\boldsymbol w} w^求导可得
∂ E w ^ ∂ w ^ = ∂ y T y ∂ w ^ − ∂ y T X w ^ ∂ w ^ − ∂ w ^ T X T y ∂ w ^ + ∂ w ^ T X T X w ^ ∂ w ^ \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= \cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \boldsymbol{y}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}}-\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\boldsymbol{y}}{\partial \hat{\boldsymbol w}}+\cfrac{\partial \hat{\boldsymbol w}^{\mathrm{T}}\mathbf{X}^{\mathrm{T}}\mathbf{X}\hat{\boldsymbol w}}{\partial \hat{\boldsymbol w}} w^Ew^=w^yTyw^yTXw^w^w^TXTy+w^w^TXTXw^
由矩阵微分公式 ∂ a T x ∂ x = ∂ x T a ∂ x = a , ∂ x T A x ∂ x = ( A + A T ) x \cfrac{\partial\boldsymbol{a}^{\mathrm{T}}\boldsymbol{x}}{\partial\boldsymbol{x}}=\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\boldsymbol{a}}{\partial\boldsymbol{x}}=\boldsymbol{a},\cfrac{\partial\boldsymbol{x}^{\mathrm{T}}\mathbf{A}\boldsymbol{x}}{\partial\boldsymbol{x}}=(\mathbf{A}+\mathbf{A}^{\mathrm{T}})\boldsymbol{x} xaTx=xxTa=a,xxTAx=(A+AT)x可得
∂ E w ^ ∂ w ^ = 0 − X T y − X T y + ( X T X + X T X ) w ^ \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}= 0-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}-\mathbf{X}^{\mathrm{T}}\boldsymbol{y}+(\mathbf{X}^{\mathrm{T}}\mathbf{X}+\mathbf{X}^{\mathrm{T}}\mathbf{X})\hat{\boldsymbol w} w^Ew^=0XTyXTy+(XTX+XTX)w^
∂ E w ^ ∂ w ^ = 2 X T ( X w ^ − y ) \cfrac{\partial E_{\hat{\boldsymbol w}}}{\partial \hat{\boldsymbol w}}=2\mathbf{X}^{\mathrm{T}}(\mathbf{X}\hat{\boldsymbol w}-\boldsymbol{y}) w^Ew^=2XT(Xw^y)

于是就令一阶导 − 2 X T ( y − X β ∗ ) = 0 -2\boldsymbol X^T(\boldsymbol y-\boldsymbol X\boldsymbol\beta^*)=0 2XT(yXβ)=0,可得:
β ∗ = ( X T X ) − 1 X T y \boldsymbol \beta^*=(\boldsymbol X^T\boldsymbol X)^{-1}\boldsymbol X^T\boldsymbol y β=(XTX)1XTy
那么,我们给定输入 x \boldsymbol x x,通过线性回归器得到的结果即为 [ 1 , x ] T β ∗ [1,x]^T\boldsymbol\beta^* [1,x]Tβ

Ridge线性回归(岭回归)和Lasso线性回归

但是上面的求解可能存在一些问题,因为 X T X \boldsymbol X^T\boldsymbol X XTX 不一定满秩,所以不一定有逆矩阵,比如当数据集中数据的个数比数据的维度还要低的时候。可以通过**正则化(Regularization)**来缓解这种情况,也就是在损失函数后再加一项 β 2 \beta^2 β2
R S S ( β ) = ( y − X β ) T ( y − X β ) + λ β T β RSS(\beta) =(\boldsymbol y-\boldsymbol X \boldsymbol \beta)^T(\boldsymbol y-\boldsymbol X \boldsymbol \beta) + \lambda\boldsymbol\beta^T\boldsymbol\beta RSS(β)=(yXβ)T(yXβ)+λβTβ
通常正则化可以用来防止过拟合,而这里加上正则化项之后,我们求得的解就变成了:
β ∗ = ( X T X + λ I ) − 1 X T y \boldsymbol \beta^*=(\boldsymbol X^T\boldsymbol X + \lambda I)^{-1}\boldsymbol X^T\boldsymbol y β=(XTX+λI)1XTy
由于在 X T X X^TX XTX 的对角线上加上了比较小的数然后再求逆,而不是直接对 X T X X^TX XTX 求逆,就可以缓解不满秩而无法求逆的情况。

这种线性回归法也被叫做 Ridge线性回归(岭回归),也就是在损失函数上加了一个欧式距离(L2范数),同时,还有一种叫做 Lasso线性回归,区别就在于Lasso加上的是L1范数,即:
R S S ( β ) = ( y − X β ) T ( y − X β ) + λ ∣ β ∣ RSS(\beta) =(\boldsymbol y-\boldsymbol X \boldsymbol \beta)^T(\boldsymbol y-\boldsymbol X \boldsymbol \beta) + \lambda|\boldsymbol\beta| RSS(β)=(yXβ)T(yXβ)+λβ
这种线性回归求解起来比较难,因为绝对值函数不可导,没有解析解,而优点就在于它可以获得一个稀疏解向量,也就是说,得到的 β \beta β 中很多分量为0、少数为1,这可以起到一个筛选维度的作用,因为只有几个为1的分量是有用的,增加了可解释性,也有一些降噪的意思。

为什么Lasso线性回归会得到稀疏的解向量呢,我们来看两张图,其中左边的是Lasso,右边是ridge:

img

这是以二维的数据为例,即 x ∈ R 2 \boldsymbol x \in \boldsymbol R^2 xR2 ,由于Lasso的限制是 ∣ β ∣ ≤ t |\beta|\le t βt,而Ridge的限制是 β 2 ≤ t \beta ^2\le t β2t,所以画出来限制域就是灰色的这部分,一个是正方形,一个是圆形,而坐标的两个维度就是 β \beta β 的两个维度(图里是 w w w)。图中的椭圆表示了一个个等高线,在等高线上具有相同的 R S S RSS RSS
R S S ( β ) = ∑ i = 1 n ( y ( i ) − f ( x ( i ) ) ) 2 = ∑ i = 1 n ( y ( i ) − β T x ( i ) − b ) 2 RSS(\beta)=\sum\limits^n_{i=1}(y^{(i)}-f(x^{(i)}))^2\\ =\sum\limits^n_{i=1}(y^{(i)}-\beta^Tx^{(i)}-b )^2\\ RSS(β)=i=1n(y(i)f(x(i)))2=i=1n(y(i)βTx(i)b)2
我们期望的最优解也就是图中的 w ∗ ( β ∗ ) w^*(\beta^*) w(β),但是由于我们需要满足限制条件,则一定需要和灰色区域相交,就无法达到这样的解,而越远离这个最优解,损失也就越大,所以我们能够达到的最优解就是和灰色区域相切的解,这样的RSS是最小的。从图中可以看出,如果是一个圆形区域,不易相切在轴上,而正方形区域则可以做到,这也就是为什么Lasso会更容易得到稀疏解的原因,而Ridge很多时候只能得到靠近0的解。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值