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

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

矩阵求导规则

  1. 行向量对元素求导
    y=[y1,y2,,yn]\mathbf{y}=\begin{bmatrix}y_{1},y_{2},\dots,y_{n}\end{bmatrix}y=[y1​,y2​,…,yn​​]是nnn维行向量,xxx是元素,则yx=[y1x,y2x,,ynx]\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}∂x∂y​=[∂x∂y1​​,∂x∂y2​​,…,∂x∂yn​​​]
  2. 列向量对元素求导
    y=[y1y2yn]\mathbf{y}=\begin{bmatrix}y_{1}\\ y_{2}\\ \vdots\\ y_{n} \end{bmatrix}y=⎣⎢⎢⎢⎡​y1​y2​⋮yn​​⎦⎥⎥⎥⎤​是nnn维列向量,xxx是元素,则yx=[y1xy2xynx]\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}∂x∂y​=⎣⎢⎢⎢⎡​∂x∂y1​​∂x∂y2​​⋮∂x∂yn​​​⎦⎥⎥⎥⎤​
  3. 元素对行向量求导
    yyy是元素,x=[x1,x2,,xn]\mathbf{x}=\begin{bmatrix}x_{1},x_{2},\dots,x_{n}\end{bmatrix}x=[x1​,x2​,…,xn​​]是nnn维行向量,则yx=[yx1,yx2,,yxn]\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}∂x∂y​=[∂x1​∂y​,∂x2​∂y​,…,∂xn​∂y​​]
  4. 元素对列向量求导
    yyy是元素,x=[x1x2xn]\mathbf{x}=\begin{bmatrix}x_{1}\\ x_{2}\\ \vdots\\ x_{n} \end{bmatrix}x=⎣⎢⎢⎢⎡​x1​x2​⋮xn​​⎦⎥⎥⎥⎤​是nnn维列向量,则yx=[yx1yx2yxn]\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}∂x∂y​=⎣⎢⎢⎢⎢⎡​∂x1​∂y​∂x2​∂y​⋮∂xn​∂y​​⎦⎥⎥⎥⎥⎤​

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

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

  • Axx=AT\frac{\partial Ax}{\partial x}= A^\mathrm{T}∂x∂Ax​=AT
  • xTAx=A\frac{\partial x^\mathrm TA}{\partial x}= A∂x∂xTA​=A
  • xTAxx=Ax+ATx\frac{\partial x^\mathrm TAx}{\partial x}= Ax+A^\mathrm{T}x∂x∂xTAx​=Ax+ATx

其中xxx为列向量,AAA为与xxx无关的行向量。

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

本文推导过程采用分母布局。首先将成本函数矩阵化,表示为w\mathbf ww的函数:
J(w)=12i=1m(yiyi^)2=12i=1m(yixiw)2=12(YXw)T(YXw)=12(YTwTXT)(YXw)=12(wTXTXwwTXTYYTXw+YTY) \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)​=21​i=1∑m​(yi​−yi​^​)2=21​i=1∑m​(yi​−xi​w)2=21​(Y−Xw)T(Y−Xw)=21​(YT−wTXT)(Y−Xw)=21​(wTXTXw−wTXTY−YTXw+YTY)​
J(w)w=12[XTXw+(XTX)TwXTY(YTX)T]=XTXwXTY \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} ∂w∂J(w)​​=21​[XTXw+(XTX)Tw−XTY−(YTX)T]=XTXw−XTY​
令其等于0,则
XTXwXTY=0\mathbf X^\mathrm T\mathbf X\mathbf w-\mathbf X^\mathrm T\mathbf Y=0XTXw−XTY=0w=(XTX)1XTY\mathbf w=(\mathbf X^\mathrm T\mathbf X)^{-1}\mathbf X^\mathrm T\mathbf Yw=(XTX)−1XTY

岭回归参数向量公式推导

岭回归其实就是L2正则化,即在成本函数后面加上对参数向量的L2正则化项,因此,成本函数变为:
J(w)=12(YTwTXT)(YXw)+λ2w2=12(YTwTXT)(YXw)+λ2wTw \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​(YT−wTXT)(Y−Xw)+2λ​∣∣w∣∣2=21​(YT−wTXT)(Y−Xw)+2λ​wTw​
J(w)w=XTXwXTY+λ2(w+w)=XTXwXTY+λw=(XTX+λI)wXTY \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} ∂w∂J(w)​​=XTXw−XTY+2λ​(w+w)=XTXw−XTY+λw=(XTX+λI)w−XTY​
令其等于0,则
(XTX+λI)wXTY=0(\mathbf X^\mathrm T\mathbf X\mathbf +\lambda\mathbf I)\mathbf w-\mathbf X^\mathrm T\mathbf Y=0(XTX+λI)w−XTY=0w=(XTX+λI)1XTY\mathbf w=(\mathbf X^\mathrm T\mathbf X+\lambda\mathbf I)^{-1}\mathbf X^\mathrm T\mathbf Yw=(XTX+λI)−1XTY
公式中的λI\lambda\mathbf IλI就是岭回归的“岭”。

上一篇:*IntelliJ IDEA配置Hibernate


下一篇:LaTeX公式手册(全网最全)