深入理解线性回归与岭回归(数学推导)

线性回归推导

视频参考:白板推导

一. 回顾

  对于一元线性回归模型, 假设从总体中获取了n组观察值(X1,Y1),(X2,Y2), …,(Xn,Yn)。对于平面中的这n个点,可以使用无数条曲线来拟合。要求样本回归函数尽可能好地拟合这组值。综合起来看,这条直线处于样本数据的中心位置最合理。 选择最佳拟合曲线的标准可以确定为:使总的拟合误差(即总残差)达到最小。有以下三个标准可以选择:

  1. 用“残差和最小”确定直线位置是一个途径。但很快发现计算“残差和”存在相互抵消的问题。
  2. 用“残差绝对值和最小”确定直线位置也是一个途径。但绝对值的计算比较麻烦。
  3. 最小二乘法的原则是以“残差平方和最小”确定直线位置。用最小二乘法除了计算比较方便外,得到的估计量还具有优良特性。这种方法对异常值非常敏感。

  最常用的是普通最小二乘法( Ordinary Least Square,OLS):所选择的回归模型应该使所有观察值的残差平方和达到最小。(Q为残差平方和)- 即采用平方损失函数.

二.最小二乘法推导

2.1.前置条件:

对于N个数据集
D=(x1,y1),((x2,y2)(xN,yN) D = {(x_{1},y_{1}),((x_{2},y_{2}) ······(x_{N},y_{N})}
其中xi ∈ℝp,yi∈ℝ,i =1,2,3,……N

  在机器学习中常把向量定义为列向量,所以我们令feature值为X,label值为Y,即:
X=(x1x2xN)T=[x11x12x1Nx21x22x2NxP1xP2xPN] X = ( x_ {1},x_ {2}……x_ {N})^T= \left[ \begin{matrix} x_ {11} & x_ {12} & \cdots & x_ {1N} \\ x_ {21} & x_ {22} & \cdots & x_ {2N} \\ \vdots & \vdots & \ddots & \vdots \\ x_ {P1} & x_ {P2} & \cdots & x_ {PN} \\ \end{matrix} \right]

Y=[y1y2yN] Y = \left[ \begin{matrix} y_{1} \\ y_{2} \\ \vdots \\ y_{N} \end{matrix} \right]

2.1.最小二乘法就损失函数极小值:

  构建线性模型:
y=wTx \vec{ y } = w^Tx

  则对于损失函数
L(w)=i=1nwTxiyi2 L(w) = \sum_{i=1}^n ||w^Tx_{i} - y_{i}||^2
  因为结果是一个实数,所以可以将式子直接改写为:
L(w)=i=1n(wTxiyi)2 L(w) = \sum_{i=1}^n (w^Tx_{i} - y_{i})^2
  则:
L(w)=i=1n(wTxiyi)2=(wTx1y1wTx2y2wTxNyN)(wTx1y1wTx2y2wTxNyN)=(wTx1y1wTx2y2wTxNyN)(wTx1y1wTx2y2wTxNyN)T L(w) = \sum_{i=1}^n (w^Tx_{i} - y_{i})^2 \\= (\begin{matrix} w^Tx_{1} - y_{1} & w^Tx_{2} - y_{2} & \cdots & w^Tx_{N} - y_{N}\end{matrix})\left( \begin{matrix} w^Tx_{1} - y_{1} \\ w^Tx_{2} - y_{2} \\ \vdots \\ w^Tx_{N} - y_{N} \end{matrix} \right) \\=(\begin{matrix} w^Tx_{1} - y_{1} & w^Tx_{2} - y_{2} & \cdots & w^Tx_{N} - y_{N}\end{matrix})(\begin{matrix} w^Tx_{1} - y_{1} & w^Tx_{2} - y_{2} & \cdots & w^Tx_{N} - y_{N}\end{matrix})^T
  括号中的式子可以看做是两个向量相减:
(wTx1y1wTx2y2wTxNyN)=(wTx1wTx2wTxN)(y1y2yN)=wT(x1x2xN)(y1y2yN) (\begin{matrix} w^Tx_{1} - y_{1} & w^Tx_{2} - y_{2} & \cdots & w^Tx_{N} - y_{N}\end{matrix}) \\=(\begin{matrix} w^Tx_{1} & w^Tx_{2} & \cdots & w^Tx_{N} \end{matrix}) - (\begin{matrix} y_{1} &y_{2} & \cdots &y_{N}\end{matrix}) \\=w^T(\begin{matrix} x_{1} & x_{2}& \cdots & x_{N}\end{matrix}) - (\begin{matrix} y_{1} &y_{2} & \cdots &y_{N}\end{matrix})
  因为
X=(x1x2xN)TY=(y1y2yN)T X = (\begin{matrix} x_{1} & x_{2}& \cdots & x_{N}\end{matrix}) ^T\\ Y = (\begin{matrix} y_{1} &y_{2} & \cdots &y_{N}\end{matrix}) ^T
  所以损失函数可以写成:
L(w)=(wTXTYT)(wTXTYT)T=(wTXTYT)(XwY)=wTXTXwYTXwwTXTY+YTY L(w) = (w^TX^T-Y^T)(w^TX^T-Y^T)^T \\ = (w^TX^T-Y^T)(Xw-Y) \\ = w^TX^TXw - Y^TXw-w^TX^TY+Y^TY
  因为损失函数是一个实数,所以式中的每一个函数皆为实数,所以

YTXw=(YTXw)T=wTXTY |Y^TXw| = |(Y^TXw)^T| = |w^TX^TY|
  所以最终损失函数:
L(w)=wTXTXw2wTXTY+YTY L(w) = w^TX^TXw - 2w^TX^TY+Y^TY
  令损失函数最小求得的w就是我们的目标,即损失函数对w求导为0:
dL(w)/dw=2XTXw2YTX=0 \text{d}L(w)/dw = 2X^TXw-2Y^TX = 0
  求得
w=(XTX)1XTY w = (X^TX)^{-1}X^TY
  这就是最小二乘法的解法,就是求得损失函数的极值点。

3.岭回归推导

  引入岭回归是因为最小二乘法中是假定XTX是一定可逆的。但是当数据量过少或者特征存在多重共线性时,XTX可能不可逆。所以引入岭回归处理。岭回归的本质是正则化,是为了防止模型过拟合而加上一个惩罚系数。

正则化框架:
argmin[L(w)+λP(w)] argmin[L(w) + λP(w)]
其中P(w)就是惩罚项。

正则化分为L1回归和L2回归。

  • Li回归中:P(w) = ||w||1
  • L2回归中:P(w) = ||w||22= wTw

则:
J(w)=i=1n(wTxiyi)2+λwTw=(wTXTYT)(XwY)+λwTw=wTXTXwYTXwwTXTY+YTY+λwTw J(w) = \sum_{i=1}^n (w^Tx_{i} - y_{i})^2 + λw^Tw \\ = (w^TX^T-Y^T)(Xw-Y)+ λw^Tw\\= w^TX^TXw - Y^TXw-w^TX^TY+Y^TY + λw^Tw
即:(矩阵求导与最小二乘法相同)
J(w)=wT(XTX+λI)w2wTXTY+YTY J(w) = w^T(X^TX+λI)w - 2w^TX^TY+Y^TY

w=argmin(J(w)) \vec{ w } =argmin(J(w))
J(w)对w求导:
dJ(w)/dw=2(XTX+λI)w2YTX=0 \text{d}J(w)/dw = 2(X^TX+λI)w-2Y^TX = 0
解得:
w=w=(XTX+λI)1XTY \vec{ w } =w = (X^TX+λI)^{-1}X^TY

4.注

  1. 矩阵的转置
    (AB)T=BTAT (AB)^T = B^TA^T
  2. 矩阵求导

深入理解线性回归与岭回归(数学推导)