机器学习之线性回归

发布时间 2023-04-17 16:24:14作者: crazypigf

解析解

最小二乘法求极值

对于\(p\)维数据,多元线性回归使用\(p\)元线性函数\(y = a_1x_1 + a_2x_2 + \cdots +a_px_p + a_0\)拟合真实数据分布。此时预测数据\(\hat y\)与真实数据\(y\)的均方误差\(MES = \frac{1}{n} \sum_{i=1}^{n}(\sum_{j=1}^{p}a_{j}x_{ij} + a_{0}-y_i)^2\)
如果把预测数据\(\hat y\)写成矩阵形式\(\hat Y = XA\),其中
\(X = \begin{pmatrix} 1 & x_11 & x_12 & \cdots & x_{1p} \\ 1 & x_21 & x_22 & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & \ddots & \vdots\\ 1 & x_n1 & x_n2 & \cdots & x_{np} \\ \end{pmatrix}\)\(A = \begin{pmatrix} a_0 & a_1 & \cdots & a_p \end{pmatrix} ^{T}\)
那么,均方误差\(MSE = \frac{1}{n}\begin{Vmatrix} \hat Y - Y \end{Vmatrix} ^2\) ,其中\(\hat Y = XA\)\(Y = \begin{pmatrix} y_1 & y_2 & \cdots & y_n \end{pmatrix} ^T\)
此时,我们的目标函数是\(\hat A = \underset{A}{\arg\min}\,MES\),其中\(\frac{1}{n}\)对结果不产生影响,为了方便后面计算我们重新定义\(\underset{A}{\arg\min}\,MES\)中的\(MES = \begin{Vmatrix} \hat Y - Y \end{Vmatrix} ^2\)
\(MES\)化简可得
\(\begin{aligned} MES &= \begin{pmatrix}\hat Y-Y\end{pmatrix}^T\begin{pmatrix}\hat Y-Y\end{pmatrix} \\ &= A^TX^TXA - 2A^TX^TY + Y^TY \end{aligned}\)
我们通过对\(A\)求偏导,令偏导数等于0。
\(\frac{\partial MES}{\partial A} = 2X^TXA - 2X^TY = 0 \\ \Rightarrow X^TXA = X^TY\)
最终解得
\(\hat A = (X^TX)^{-1}X^TY\)

极大似然估计法

数据集:\(X = \begin{pmatrix} 1 & x_11 & x_12 & \cdots & x_{1p} \\ 1 & x_21 & x_22 & \cdots & x_{2p} \\ \vdots & \vdots & \vdots & \ddots & \vdots\\ 1 & x_n1 & x_n2 & \cdots & x_{np} \\ \end{pmatrix}\)参数向量:\(A = \begin{pmatrix} a_0 & a_1 & \cdots & a_p \end{pmatrix} ^{T}\)标签:\(Y = \begin{pmatrix} y_1 & y_2 & \cdots & y_n \end{pmatrix} ^T\)
我们令\(X\)的第\(i\)行构成的列向量为\(x_i\)
我们做如下假设:
预测数据\(\hat y\)与真实数据\(y\)的误差\(\epsilon \sim N(0, \sigma^2)\)。因为\(y = A^Tx + \epsilon\),所以\(y \sim N(A^Tx, \sigma^2)\)
密度函数\(f(y) = \frac{1}{\sqrt{2\pi}\sigma}e^{\frac{(y-A^Tx)^2}{2\sigma^2}}\),根据极大似然估计法估计参数\(A\)的值。
似然函数\(L(A) = \prod_{i = 1}^{n}\frac{1}{\sqrt{2\pi}\sigma}e^{\frac{(y_i-A^Tx_i)^2}{2\sigma^2}}\)
取对数后得到
\(\ln{L(A)} = \sum_{i = 1}^{n}\ln{\frac{1}{\sqrt{2\pi}\sigma}} + \sum_{i = 0}^{n}\ln{e^{\frac{(y_i-A^Tx_i)^2}{2\sigma^2}}}\)\(\Rightarrow\)\(\underset{A}{\arg\max}\,\ln{L(A)} = \underset{A}{\arg\min}\,\sum_{i = 0}^{n}(y_i-A^Tx_i)^2\)
我们不难推导出\(\sum_{i = 0}^{n}(y_i-A^Tx_i)^2 = \begin{Vmatrix} XA - Y \end{Vmatrix} ^2\),推导过程如下:
\(\sum_{i = 0}^{n}(y_i-A^Tx_i)^2 = \sum_{i = 0}^{n}(A^Tx_i - y_i)^2\)
上式根据求和符号逐项拆开可得
\((A^Tx_1 - y_1, A^Tx_2 - y_2,...,A^Tx_n - y_n)(A^Tx_1 - y_1, A^Tx_2 - y_2,...,A^Tx_n - y_n)^T\)
左边一项可以写成\(A^TX^T - Y^T = (XA-Y)^T\),左边一项是左边项的转置,故右边项为\((XA-Y)\)
所以\(\sum_{i = 0}^{n}(y_i-A^Tx_i)^2 = (XA-Y)^T(XA-Y)= \begin{Vmatrix} XA - Y \end{Vmatrix} ^2\)
综上所述\(\underset{A}{\arg\max}\,\ln{L(A)} = \underset{A}{\arg\min}\,\begin{Vmatrix} XA - Y \end{Vmatrix} ^2\),求解过程过程和最小二乘法求极值法一致

几何角度

对于预测向量\(\hat y = a_0 + a_1x_1 + a_2x_2 + \cdots +a_px_p\),可以看成\(p+1\)个列向量\(1, x_1, x_2, ..., x_p\)的线性组合,系数构成稀疏向量A。实际的标签向量\(Y\)\(p+1\)个列向量张成的空间外的一个向量。
我们的目标是在\(p+1\)个列向量张成的空间中寻求出\(\hat Y\),使得\(Y\)\(\hat Y\)的距离最小。显然当\(Y - \hat Y\)\(p+1\)个列向量张成的空间垂直时\(Y\)\(\hat Y\)的距离最小。
此时\((1, x_1, x_2, ..., x_p)^T(Y - \hat Y) = X^T(Y - \hat Y) = 0\)
\(X^T(Y - XA) = 0\)\(\Rightarrow\)\(X^TY - X^TXA = 0\)\(A = (X^TX)^{-1}X^TY\)

梯度下降优化求解

线性回归系数解析解\(A = (X^TX)^{-1}X^TY\),可以看到对于解析解必须满足数据矩阵\(X\)是列满秩的,否则不能求出\(X^TX\)的逆矩阵。
有时我们并不需要求出解析解,此时我们就可以使用梯度下降的方法优化损失函数,求解系数向量A。
我们有损失函数\(L = \frac{1}{n}\begin{Vmatrix} \hat Y - Y \end{Vmatrix} ^2\),使用梯度下降法,不断更新A的值。