线性回归与岭回归参数向量公式推导

线性回归是一种常用的机器学习回归算法,其原理是通过输入和输出学习回归函数,确定回归参数向量 w \mathbf{w} w和截距 b b b。对于新的样本 x \mathbf{x} x,其预测值为 y ^ = x w + b \hat{y}=\mathbf{x}\mathbf{w}+b y^=xw+b。式中, x \mathbf{x} x n − 1 n-1 n1维横向量, x = [ x 1 , x 2 , . . . , x n − 1 ] \mathbf{x}=[x_1,x_2,...,x_{n-1}] x=[x1,x2,...,xn1] w \mathbf{w} w n − 1 n-1 n1维列向量, w = [ w 1 , w 2 , . . . , w n − 1 ] T \mathbf{w}=[w_1,w_2,...,w_{n-1}]^\mathrm{T} w=[w1,w2,...,wn1]T
通常,为了方便表示,将 b b b写入 w \mathbf{w} w中, x \mathbf{x} x中也在末尾增加一个1,因此 w \mathbf{w} w x \mathbf{x} x y ^ \hat{y} y^分别变为:
w = [ w 1 , w 2 , . . . , w n − 1 , b ] T \mathbf{w}=[w_1,w_2,...,w_{n-1},b]^\mathrm{T} w=[w1,w2,...,wn1,b]T x = [ x 1 , x 2 , . . . , x n − 1 , 1 ] \mathbf{x}=[x_1,x_2,...,x_{n-1},1] x=[x1,x2,...,xn1,1] y ^ = x w \hat{y}=\mathbf{x}\mathbf{w} y^=xw
线性回归的成本函数为:
1 2 ∑ i = 1 m ( y i − y i ^ ) 2 \frac{1}{2}\sum_{i=1}^m(y_i-\hat{y_i})^2 21i=1m(yiyi^)2
其中 m m m为样本的数量。从成本函数可以看出,线性回归的求解是希望求得平方误差的最小值,即找到一条直线尽量拟合所有样本点。原理在这里不过多赘述,本文主要进行 w \mathbf{w} w的公式推导。
在推导之前,需要简单介绍矩阵求导规则。

矩阵求导规则

  1. 行向量对元素求导
    y = [ y 1 , y 2 , … , y n ] \mathbf{y}=\begin{bmatrix}y_{1},y_{2},\dots,y_{n}\end{bmatrix} y=[y1,y2,,yn] n n n维行向量, x x x是元素,则 ∂ y ∂ x = [ ∂ y 1 ∂ x , ∂ y 2 ∂ x , … , ∂ y n ∂ x ] \frac{\partial\mathbf{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x},\frac{\partial y_{2}}{\partial x},\dots,\frac{\partial y_{n}}{\partial x} \end{bmatrix} xy=[xy1,xy2,,xyn]
  2. 列向量对元素求导
    y = [ y 1 y 2 ⋮ y n ] \mathbf{y}=\begin{bmatrix}y_{1}\\ y_{2}\\ \vdots\\ y_{n} \end{bmatrix} y=y1y2yn n n n维列向量, x x x是元素,则 ∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y n ∂ x ] \frac{\partial\mathbf{y}}{\partial x}=\begin{bmatrix}\frac{\partial y_{1}}{\partial x}\\ \frac{\partial y_{2}}{\partial x}\\ \vdots\\ \frac{\partial y_{n}}{\partial x} \end{bmatrix} xy=xy1xy2xyn
  3. 元素对行向量求导
    y y y是元素, x = [ x 1 , x 2 , … , x n ] \mathbf{x}=\begin{bmatrix}x_{1},x_{2},\dots,x_{n}\end{bmatrix} x=[x1,x2,,xn] n n n维行向量,则 ∂ y ∂ x = [ ∂ y ∂ x 1 , ∂ y ∂ x 2 , … , ∂ y ∂ x n ] \frac{\partial y}{\partial \mathbf{x}}=\begin{bmatrix}\frac{\partial y}{\partial x_{1}},\frac{\partial y}{\partial x_{2}},\dots,\frac{\partial y}{\partial x_{n}} \end{bmatrix} xy=[x1y,x2y,,xny]
  4. 元素对列向量求导
    y y y是元素, x = [ x 1 x 2 ⋮ x n ] \mathbf{x}=\begin{bmatrix}x_{1}\\ x_{2}\\ \vdots\\ x_{n} \end{bmatrix} x=x1x2xn n n n维列向量,则 ∂ y ∂ x = [ ∂ y ∂ x 1 ∂ y ∂ x 2 ⋮ ∂ y ∂ x n ] \frac{\partial y}{\partial \mathbf{x}}=\begin{bmatrix}\frac{\partial y}{\partial x_{1}}\\ \frac{\partial y}{\partial x_{2}}\\ \vdots\\ \frac{\partial y}{\partial x_{n}} \end{bmatrix} xy=x1yx2yxny

以上只简单介绍了元素和向量之间相互求导的方法。更详细的有关矩阵求导的内容可以参考一下两篇博客:

第二篇博客中的图片取自维基百科,因此访问时需要踩个梯子。
总结几个重要的求导公式(分母布局结果,分子布局的结果为分母布局结果的转置):

  • ∂ A x ∂ x = A T \frac{\partial Ax}{\partial x}= A^\mathrm{T} xAx=AT
  • ∂ x T A ∂ x = A \frac{\partial x^\mathrm TA}{\partial x}= A xxTA=A
  • ∂ x T A x ∂ x = A x + A T x \frac{\partial x^\mathrm TAx}{\partial x}= Ax+A^\mathrm{T}x xxTAx=Ax+ATx

其中 x x x为列向量, A A A为与 x x x无关的行向量。

线性回归参数向量公式推导

本文推导过程采用分母布局。首先将成本函数矩阵化,表示为 w \mathbf w w的函数:
J ( w ) = 1 2 ∑ i = 1 m ( y i − y i ^ ) 2 = 1 2 ∑ i = 1 m ( y i − x i w ) 2 = 1 2 ( Y − X w ) T ( Y − X w ) = 1 2 ( Y T − w T X T ) ( Y − X w ) = 1 2 ( w T X T X w − w T X T Y − Y T X w + Y T Y ) \begin{aligned} J(\mathbf w) &=\frac{1}{2}\sum_{i=1}^m(y_i-\hat{y_i})^2\\ &=\frac{1}{2}\sum_{i=1}^m(y_i-\mathbf x_i\mathbf{w})^2\\ &=\frac{1}{2}(\mathbf Y-\mathbf X\mathbf w)^\mathrm T(\mathbf Y-\mathbf X\mathbf w)\\ &=\frac{1}{2}(\mathbf Y^\mathrm T-\mathbf w^\mathrm T\mathbf X^\mathrm T)(\mathbf Y-\mathbf X\mathbf w)\\ &=\frac{1}{2}(\mathbf w^\mathrm T\mathbf X^\mathrm T\mathbf X\mathbf w-\mathbf w^\mathrm T\mathbf X^\mathrm T\mathbf Y - \mathbf Y^\mathrm T\mathbf X\mathbf w + \mathbf Y^\mathbf T\mathbf Y) \end{aligned} J(w)=21i=1m(yiyi^)2=21i=1m(yixiw)2=21(YXw)T(YXw)=21(YTwTXT)(YXw)=21(wTXTXwwTXTYYTXw+YTY)
∂ J ( w ) ∂ w = 1 2 [ X T X w + ( X T X ) T w − X T Y − ( Y T X ) T ] = X T X w − X T Y \begin{aligned} \frac{\partial J(\mathbf w)}{\partial\mathbf w}&=\frac{1}{2}[\mathbf X^\mathrm T\mathbf X\mathbf w + (\mathbf X^\mathrm T\mathbf X)^\mathrm T\mathbf w-\mathbf X^\mathrm T\mathbf Y-(\mathbf Y^\mathrm T\mathbf X)^\mathrm T]\\ &=\mathbf X^\mathrm T\mathbf X\mathbf w-\mathbf X^\mathrm T\mathbf Y \end{aligned} wJ(w)=21[XTXw+(XTX)TwXTY(YTX)T]=XTXwXTY
令其等于0,则
X T X w − X T Y = 0 \mathbf X^\mathrm T\mathbf X\mathbf w-\mathbf X^\mathrm T\mathbf Y=0 XTXwXTY=0 w = ( X T X ) − 1 X T Y \mathbf w=(\mathbf X^\mathrm T\mathbf X)^{-1}\mathbf X^\mathrm T\mathbf Y w=(XTX)1XTY

岭回归参数向量公式推导

岭回归其实就是L2正则化,即在成本函数后面加上对参数向量的L2正则化项,因此,成本函数变为:
J ( w ) = 1 2 ( Y T − w T X T ) ( Y − X w ) + λ 2 ∣ ∣ w ∣ ∣ 2 = 1 2 ( Y T − w T X T ) ( Y − X w ) + λ 2 w T w \begin{aligned} J(\mathbf w) &=\frac{1}{2}(\mathbf Y^\mathrm T-\mathbf w^\mathrm T\mathbf X^\mathrm T)(\mathbf Y-\mathbf X\mathbf w)+\frac{\lambda}{2}||\mathbf w||^2\\ &=\frac{1}{2}(\mathbf Y^\mathrm T-\mathbf w^\mathrm T\mathbf X^\mathrm T)(\mathbf Y-\mathbf X\mathbf w) + \frac{\lambda}{2}\mathbf w^\mathrm T\mathbf w \end{aligned} J(w)=21(YTwTXT)(YXw)+2λw2=21(YTwTXT)(YXw)+2λwTw
∂ J ( w ) ∂ w = X T X w − X T Y + λ 2 ( w + w ) = X T X w − X T Y + λ w = ( X T X + λ I ) w − X T Y \begin{aligned} \frac{\partial J(\mathbf w)}{\partial\mathbf w}&=\mathbf X^\mathrm T\mathbf X\mathbf w-\mathbf X^\mathrm T\mathbf Y+\frac{\lambda}{2}(\mathbf w+\mathbf w)\\ &=\mathbf X^\mathrm T\mathbf X\mathbf w-\mathbf X^\mathrm T\mathbf Y+\lambda\mathbf w\\ &=(\mathbf X^\mathrm T\mathbf X\mathbf +\lambda\mathbf I)\mathbf w-\mathbf X^\mathrm T\mathbf Y \end{aligned} wJ(w)=XTXwXTY+2λ(w+w)=XTXwXTY+λw=(XTX+λI)wXTY
令其等于0,则
( X T X + λ I ) w − X T Y = 0 (\mathbf X^\mathrm T\mathbf X\mathbf +\lambda\mathbf I)\mathbf w-\mathbf X^\mathrm T\mathbf Y=0 (XTX+λI)wXTY=0 w = ( X T X + λ I ) − 1 X T Y \mathbf w=(\mathbf X^\mathrm T\mathbf X+\lambda\mathbf I)^{-1}\mathbf X^\mathrm T\mathbf Y w=(XTX+λI)1XTY
公式中的 λ I \lambda\mathbf I λI就是岭回归的“岭”。
其实,加入 λ I \lambda\mathbf I λI的作用除了可以防止过拟合、进行正则化的操作,还可以防止由于 X T X \mathbf X^\mathrm T\mathbf X XTX不可逆导致参数 w \mathbf w w无法求解。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值