【温故而知新】线性回归(Linear Regression)

本文主要以下几个角度来讲解线性回归:

  • 最小二乘法LSE(矩阵表达,几何意义)
  • 概率角度:最小二乘法LSE——noise为Gaussian MLE
  • 正则化:
    • L1——Lasso
    • L2——Ridge
  • 正则化的几何解释

最小二乘法

定义为:通过给定样本数据集D=\left \{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\right \}, x_i \in \mathbb{R}^{p}, y_i \in \mathbb{R}, i =1,...,N,试图学习到这样的一个模型,使得对于任意的输入特征向量x=(x_1, x_2, ..., x_N)^T,模型的预测输出f(x)能够表示为输入特征向量\large x的线性函数,即满足:

                   f(x_i)=w_1x_{i1}+w_2x_{i2}+...+w_px_{ip}+b                          

也可以写成矩阵的形式:

                   f(X)=W^TX+b

其中,W=(w_1, w_2, ... , w_p)^Tb称为模型的参数。

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

                   L\left ( W, b \right ) = \frac{1}{2} \sum_{i=1}^{N}\left (f(x_i)-y_i \right )^2

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

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

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

1. 首先将参数Wb进行合并,用\theta来进行表示:\theta=\left( w_1, w_2, ..., w_p, b \right )^T_{1*(p+1)}, 容易知道\large \thetap+1维度。

对输入特征向量进行改写,,则全体训练集,可用矩阵进行如下表示:

                   X=\begin{pmatrix} x_1^T \\ x_2^T \\ ... \\ x_N^T \\ I\end{pmatrix}=\begin{pmatrix} x_{11} & x_{12} & ... & x_{1p} & 1 \\ x_{21} & x_{22} & ... & x_{2p} &1\\ ... & ... & ... & ... & ...\\ x_{N1} & x_{N2} & ... & x_{Np} & 1 \end{pmatrix}_{N*(p+1)}

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

                   Y=\left( y_1, y_2, ..., y_N\right)^T

2. 根据1.我们可以知道\large x_i是一个(p+1)\times 1的列向量,这样模型的预测结果可以写成矩阵形式:

                   f \left( x_i \right)=\theta^Tx_i

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

                   L\left( \theta \right ) = \sum_{i=1}^{N}\left \| \theta^Tx_i-y_i \right \|^{2}=\sum_{i=1}^{N}( \theta^Tx_i-y_i )^{2}

                             =\begin{pmatrix} \theta^Tx_1-y_1 & \theta^Tx_2-y_2 & ... & \theta^Tx_N-y_N \end{pmatrix} \begin{pmatrix} \theta^Tx_1-y_1 \\ \theta^Tx_2-y_2 \\ ... \\ \theta^Tx_N-y_N \end{pmatrix}

                             =(\theta^TX^T-Y^T)(X\theta-Y)         

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

Method 1:

      \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 {\color{Red} Y^TX\theta \in \mathbb{R}, \theta^TX^TY \in \mathbb{R}}

                       \large =\frac{1}{2}\bigtriangledown_\theta(\theta^TX^TX\theta - 2\theta^TX^TY+Y^TY)

                       \large =\frac{1}{2}\bigtriangledown_\theta(\theta^TX^TX\theta - 2X^TY)

Method 2:

      \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是可逆的,如果不可逆,则解析法求解失效。

 

几何意义

1. 第一种几何解释

如下图所示:误差与所有的红色距离有关;

 2. 第二种几何解释

把误差被分配到p个维度上;

由最小二乘法可知:

                    f(W)=XW

其中矩阵X_{N*p},W_{p*1}

X=\begin{pmatrix} x_1^T \\ x_2^T \\ ... \\ x_N^T \\ \end{pmatrix}=\begin{pmatrix} x_{11} & x_{12} & ... & x_{1p} \\ x_{21} & x_{22} & ... & x_{2p} \\ ... & ... & ... & ... \\ x_{N1} & x_{N2} & x_{Np} & 1 \end{pmatrix}_{N*p}, 这里X对一列一列来看,这p个N维向量就构成p维子空间;这里的Y_{N*1}是不在p维子空间,除非数据集每个样本点都被完全拟合;

在这里我们f(W)=X\theta改写成f(W)=X\beta

几何意义:在p维子空间找到一个平面f(\beta),使得Y_{N*1}与此f(\beta)最近,即Y_{N*1}p维子空间的投影,则满足Y-f(W)p维子空间的基向量垂直。如下图所示:

综上可知:X^T(Y-f(W))=0 

                  X^T(Y-X\beta)=0

                  X^TY=X^TX\beta

                   \beta=(X^TX)^{-1}X^TY

概率视角

概率视角主要考察最小二乘法与高斯分布之间的关系

考虑第i个样本x_i的真实输出y_if(x_i)存在如下关系:

                     y_i = f(x_i) + \varepsilon =\theta^Tx_i + \varepsilon_i

其中\varepsilon_i表示由噪声引起的误差项,\varepsilon_i服从均值0,标准差为\delta的高斯分布,则y|x;w\sim N(\theta^Tx,\delta^2)

整理可得:  p(y_i|x_i;\theta)=\frac{1}{\sqrt{2\pi}}exp\left ( -\frac{(\theta^Tx_i - y_i)^2}{2\delta^2} \right )

利用对数最大似然估计有:

L(\theta)=\log P(Y|X;\theta)=\log \prod_{i=1}^{N}P(y_i|x_i;\theta)=\sum_{i=1}^{N}\log P(y_i|x_i;\theta)         

                                      =\sum_{i=1}^{N}\log \frac{1}{\sqrt{2\pi}\delta}+\sum_{i=1}^{N}\log exp \left ( -\frac{(\theta^Tx_i-y_i)^2}{2\delta^2}\right)

                                      =\sum_{i=1}^{N} \left( \log \frac{1}{\sqrt{2\pi}\delta} - \frac{1}{2\delta^2}(\theta^Tx_i-y_i)^2 \right )

                                 

                     \hat{\theta}=\arg \max_\theta L(\theta)

                        =\arg \max_\theta \left( -\frac{1}{2\delta^2}(\theta^Tx_i-y_i)^2 \right)

                        =\arg \min_\theta \left(\theta^Tx_i-y_i \right)^2     等价于损失函数{\color{Red} L\left( \theta \right ) = \sum_{i=1}^{N}\left \| \theta^Tx_i-y_i \right \|^{2}{\color{Red} }}

综上可知:最小二乘估计等价于噪声服从高斯分布的极大似然估计;

 

正则化

由上面可知,最小二乘的损失函数为L(\theta)=\sum_{i=1}^{N}\left \| \theta^Tx_i-y_i \right \|^2,解析解为\hat{\theta}=(X^TX)^{-1}X^TY

其中X_{N*(p+1)}N个样本,x_i \in \mathbb{R}^{p+1},多出来的一维度是因为方便与偏置加法计算。一般情况下,N>>(p+1);

模型过拟合的解决方案:

  1. 加数据
  2. 特征选择/特征提取.(PCA)
  3. 正则化

正则化框架如下:

                  \arg \min_\theta \left [ L(\theta) + \lambda P(\theta) \right ]

其中,P(\theta)为惩罚项,  L1: lasso, P(\theta) = \left \| \theta \right \|

                                       L2: Ridge, P(\theta) = \left \| \theta \right \|_{2}^{2}=\theta^T\theta

带L1正则化的线性回归的损失函数:

                J(\theta)=\sum_{i=1}^{N}\left \| \theta^Tx_i-y_i \right \|^2+\lambda \left \| \theta \right \|=\sum_{i=1}^{N}\left \| \theta^Tx_i-y_i \right \|^2+\lambda \sum_{i=1}^{p+1}\left | \theta_i \right |

                        =(\theta^TX^T-Y^T)(XW-Y)+\lambda \sum_{i=1}^{p+1}\left | \theta_i \right |

                        =\theta^TX^TXW-2\theta^TX^TY+Y^TY+\lambda \sum_{i=1}^{p+1}\left | \theta_i \right |

由于\theta_i的正负无法确定,因为这里将转换成\sum_{i=1}^{p+1}\theta_i\cdot sign(\theta_i)进行求导,sign(\cdot )为符号函数。

           \bigtriangledown_\theta J(\theta) =\theta^TX^TXW-2\theta^TX^TY+Y^TY+\lambda \sum_{i=1}^{p+1}\left | \theta_i \right |

                         =\theta^TX^TXW-2\theta^TX^TY+Y^TY+\lambda \sum_{i=1}^{p+1}\theta_i\cdot sign(\theta_i) 

                         =2X^TX\theta - 2X^TY+\lambda\cdot sign(\theta_i)  

\bigtriangledown_\theta J(\theta) = 0,可得2X^TX\theta - 2X^TY+\lambda\cdot sign(\theta_i)=0,有X^T(Y-X\theta)=\lambda\cdot sign(\theta_i), 在这里是得不到解析解的,那么如何求解L1正则化的极小值呢?可采用坐标轴下降法(Coordinate Descent)和最小角回归法(Least Angle Regressionm), 此处不展开。

带L2正则化的线性回归的损失函数:

                J(\theta)=\sum_{i=1}^{N}\left \| \theta^Tx_i-y_i \right \|^2+\lambda \theta^T\theta

                         =(\theta^TX^T-Y^T)(XW-Y)+\lambda\theta^T\theta

                         =\theta^TX^TXW-2\theta^TX^TY+Y^TY+\lambda\theta^T\theta       

                         =\theta^T(X^TX + \lambda I)\theta-2\theta^TX^TY+Y^TY      

               \hat{\theta}=\arg \min_\theta J(\theta)         

在前边已经详细推导过,这里不在详细推导,求导结果为 \bigtriangledown_\theta J(\theta) =2(X^TX+\lambda I)\theta - 2X^TY 

\bigtriangledown_\theta J(\theta) = 0,可得2(X^TX+\lambdaI)\theta - 2X^TY=0,求解得到\theta=(X^TX+\lambda I)^{-1}X^TY

 正则化的几何解释

带L2正则化的线性回归:

在最大似然估计中,是假设权重\theta是未知的参数,从而求得对数似然函数:

 L(\theta)=\log P(Y|X;\theta)=\log \prod_{i=1}^{N}P(y_i|x_i;\theta)=\sum_{i=1}^{N}\log P(y_i|x_i;\theta)

在最大化后验概率估计中,是将权重\theta看作随机变量,也具有某种概率分布,从而有:

P(X;\theta | Y)=\frac{P(Y | X;\theta)\cdot P(\theta)}{P(Y)}\propto P(Y | X;\theta)\cdot P(\theta)

利用最大化后验概率可以有:

后验概率函数: L(\theta)=\log P(X;\theta | Y)= \log P(Y | X;\theta)\cdot P(X;\theta)=\log P(Y |X; \theta) + \log P(X;\theta)

后验概率函数是在似然函数的基础上增加了 \log P(X;\theta)P(X;\theta)的意义为对权重系数\theta的概率分布的先验假设,在收集到足够的数据集D,则依据在数据集D下的后验概率对权重系数\theta进行修正,从而完成对权重系数\theta的估计。

这里假设权重系数\theta的先验分布为高斯分布,\theta \sim N(0,\delta_0^2).如下图所示:

则有:

P(X;\theta)=\frac{1}{\sqrt{2\pi}\delta_0} exp(-\frac{\left \| \theta \right \|_2^2}{2\delta_0^2})

P(Y|X;\theta)=\frac{1}{\sqrt{2\pi}\delta} exp(-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2})

MAP:\hat{\theta}=\arg \max_\theta \log P(X;\theta|Y)=arg \max_\theta \log \left [ P(Y|X;\theta)\cdot P(X;\theta)\right]

               =arg \max_\theta \log \left \{ \frac{1}{\sqrt{2\pi}\delta_0} exp(-\frac{\left \| \theta \right \|_2^2}{2\delta_0^2}) \cdot \frac{1}{\sqrt{2\pi}\delta} exp(-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2}) \right \}

               =arg \max_\theta \log \left \{ \frac{1}{\sqrt{2\pi}\delta_0} \frac{1}{\sqrt{2\pi}\delta} \right \} + \log exp \left \{ -\frac{\left \| \theta \right \|_2^2}{2\delta_0^2}-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2} \right \}

               =arg \max_\theta \log exp \left \{ -\frac{\left \| \theta \right \|_2^2}{2\delta_0^2}-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2} \right \}

               =arg \min_\theta \left \{ \frac{\left \| \theta \right \|_2^2}{2\delta_0^2}+\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2} \right \}

               =arg \min_\theta \left \{ \frac{\delta^2}{\delta_0^2}\left \| \theta \right \|_2^2+\left \| \theta^Tx-y \right \|_2^2 \right \}

MAP: \hat{\theta}_{MAP}=\arg \min_\theta \sum_{i=1}^{N}(\theta^Tx_i-y_i)^2+\lambda \theta^T\theta,  \lambda=\frac{\delta^2}{\delta_0^2}

综上可知,最小二乘估计LSE 等价于 极大似然估计MLE(noise 为Gaussian Distribution)

                  L2正则化最小二乘估计Regularized LSE 等价于 最大后验概率估计MAP (priod 和 noise均为Gaussian Distribution)

 

同理,带L1正则化的线性回归:

这里假设权重系数\theta的先验分布为拉普拉斯分布,.

则有:

P(X;\theta)=\frac{1}{2\delta_0} exp (-\frac{\left | \theta \right |}{\delta_0} )

P(Y|X;\theta)=\frac{1}{\sqrt{2\pi}\delta} exp(-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2})

MAP:\hat{\theta}=\arg \max_\theta \log P(X;\theta|Y)=arg \max_\theta \log \left [ P(Y|X;\theta)\cdot P(X;\theta)\right]

               =arg \max_\theta \log \left \{ \frac{1}{2\delta_0} exp (-\frac{\left | \theta \right |}{\delta_0} ) \cdot \frac{1}{\sqrt{2\pi}\delta} exp(-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2}) \right \}

               =arg \max_\theta \log \left \{ \frac{1}{2\delta_0} \frac{1}{\sqrt{2\pi}\delta} \right \} + \log exp \left \{ -\frac{\left | \theta \right |}{\delta_0}-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2} \right \}

               =arg \max_\theta \left \{ -\frac{\left | \theta \right |}{\delta_0}-\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2} \right \}

               =arg \min_\theta \left \{ \frac{\left | \theta \right |}{\delta_0}+\frac{\left \| \theta^Tx-y \right \|_2^2}{2\delta^2} \right \}

               =arg \min_\theta \left \{ \frac{ 2\delta^2}{\delta_0}\left | \theta \right |+\left \| \theta^Tx-y \right \|_2^2\right \}

MAP: \hat{\theta}_{MAP}=arg \min_\theta \left \{ \frac{ 2\delta^2}{\delta_0}\left | \theta \right |+\left \| \theta^Tx-y \right \|_2^2\right \},  \lambda=\frac{2\delta^2}{\delta_0}

综上可知,最小二乘估计LSE 等价于 极大似然估计MLE(noise 为Gaussian Distribution)

                  L1正则化最小二乘估计Regularized LSE 等价于 最大后验概率估计MAP (priod 为Laplace Distribution,noise为Gaussian Distribution)

 完,

【参考资料】

1. https://github.com/shuhuai007/Machine-Learning-Session

2. https://github.com/ws13685555932/machine_learning_derivation

你可能感兴趣的:(ML算法实现-python,深度学习)