【回故系列】线性回归的矩阵推导

线性模型(Linear Model),是机器学习中的一类算法的总称,其形式化定义为:通过给定的样本数据集\large D,线性模型试图学习到这样的一个模型,使得对于任意的输入特征向量\large x=(x_1, x_2, ..., x_n)^T,模型的预测输出\large f(x)能够表示为输入特征向量\large x的线性函数,即满足:

\large f(x)=w_1x_1+w_2x_2+...+w_nx_n+b)                          

也可以写成矩阵的形式:

\large f(x)=w^Tx+b

其中,\large w=(w_1, w_2, ... , w_n)^T\large b称为模型的参数。

为了求解线性模型的参数wb,首先我们定义损失函数,在回归任务中,常用的损失函数是均方误差:

L\left ( w, b \right ) = \frac{1}{2} \sum_{i=1}^{m}\left (f(x^i)-y^i \right )^2

优化损失函数就是我们的目标,基于均方误差损失函数来求解模型参数的方差,也就是我们熟悉的最小二乘法,最小二乘法的思想其实就是寻找一个超平面,使得训练数据集\large D中的所有样本点到这个超平面的欧式距离最小。

OK,接下来就是优化问题了,如何取优化该损失函数,从而获得最优模型参数\large w^*\large b^*,因为该损失函数是凸函数,根据极值存在的必要条件,我们可以运用解析法进行求解。

下面我们将给出详细的推导求解wb的过程:

1. 首先将参数wb进行合并,用\large \theta来进行表示:\large \theta=\left( w_1, w_2, ..., w_n, b \right ), 容易知道\large \theta\large n+1维度。

对输入特征向量进行改写,\large X^i=\left ( x_1^i,x_2^i,x_n^i,1 \right ),则全体训练集,可用矩阵进行如下表示:

【回故系列】线性回归的矩阵推导_第1张图片

对输入特征向量的输出标签,可以改写为:

\large Y=\left( y^1, y^2, ..., y^m \right)^T

 

2. 根据1.我们可以知道\large X是一个\large m\times (n+1)的矩阵,这样模型在训练集上所有预测结果可以写成矩阵形式:

\large f \left( X \right)=X\theta

 

3. 根据1和2,损失函数可以转化为矩阵形式:

\large L\left( \theta \right ) =\frac{1}{2}(X\theta-Y)^T(X\theta-Y)

根据极值存在的必要条件,下面进行对参数\large \theta的求导:

\large \bigtriangledown_\theta L(\theta) =\bigtriangledown_\theta \frac{1}{2}(X\theta-Y)^T(X\theta-Y)

\large =\frac{1}{2}\bigtriangledown_\theta(\theta^TX^TX\theta - \theta^TX^TY-Y^TX\theta+Y^TY)       对上一步结果进行展开

\large =\frac{1}{2}\bigtriangledown_\theta tr(\theta^TX^TX\theta - \theta^TX^TY-Y^TX\theta + Y^TY)转换为迹运算

\large =\frac{1}{2}\bigtriangledown_\theta \left ( tr(\theta^TX^TX\theta) -tr( \theta^TX^TY)-tr(Y^TX\theta )+ tr(Y^TY) \right )  对上一步结果进行展开

根据常见矩阵求导公式\large tr(A)=tr(A^T),可知\large \because (\theta^TX^TY)^T = Y^TX\theta \therefore tr( \theta^TX^TY) = tr(Y^TX\theta )

\large =\frac{1}{2}\bigtriangledown_\theta \left ( tr(\theta^TX^TX\theta) -2tr(Y^TX\theta )\right )

根据常见矩阵求导公式\large \bigtriangledown_X tr(X^TAX)=(A+A^T)X,可知\large \bigtriangledown_\theta \left ( tr(\theta^TX^TX\theta) \right ) = \left ((X^TX)^T + X^TX \right)\theta = 2X^TX\theta

根据常见矩阵求导公式\large \bigtriangledown_X tr(\beta^TX)=\beta,可知\large \bigtriangledown_\theta \left ( tr(Y^TX\theta )\right ) = (Y^TX)^T=X^TY

综上可知,\large \bigtriangledown_\theta L(\theta) = \frac{1}{2} \left (2X^TX\theta -2X^T\theta \right)=X^TX\theta-X^TY

\large \bigtriangledown_\theta L(\theta) = 0,可得\large X^TX\theta-X^TY=0,求解得到\large \theta=(X^TX)^{-1}X^TY

需要注意,要保证对称矩阵\large X^TX是可逆的,如果不可逆,则解析法求解失效。

完,脊回归的推导也很相似。

你可能感兴趣的:(【回故系列】线性回归的矩阵推导)