【机器学习】线性回归模型

一、线性回归模型概述

  • 线性回归模型:简单的来说就是在样本空间中的一条直线或者一个平面或者更高维的超平面,并且我们要使得预测值与真实值之间的误差最小化。
  • 三维样本空间如下图:
    【机器学习】线性回归模型
  • 二维样本空间:
    【机器学习】线性回归模型

二、线性回归模型

  • 给定训练集D=(x1,y1),(x2,y2),,(xn,yn)D={(x_1,y_1 ),(x_2,y_2 ),…,(x_n,y_n)}其中xiRd;yR;x_i∈R^d;y∈R;线性回归模型如下:f(xi)=wTxi+bf(x_i )=w^T x_i+b并且我们期望得到的模型有下面式子成立:f(xi)yif(x_i )≈y_i

  • 为便于讨论我们将将bb并入到ww中:xi=[xi1,xi2,,xid,1]Tx_i=[x_i^1,x_i^2,…,x_i^d,1]^T wi=[wi1,wi2,,wid,b]Tw_i=[w_i^1,w_i^2,…,w_i^d,b]^T所以线性回归模型可以表示为:f(xi)=wTxif(x_i )=w^T x_i

  • 我们将每个样本的预测值与真实值记为:εiε_i yi=wTxi+εiy_i=w^T x_i+ε_i

  • 假设误差εiε_i是独立同分布的,并且服从高斯分布。即:P(εi)=12πσexp(εi22σ2)P(ε_i )=\frac{1}{\sqrt{2πσ}} exp(-\frac{ε_i^2}{2σ^2 })εi=yixiε_i=y_i-x_i带入得到:P(yixi,w)=12πσexp((yiwTxi)22σ2)P(y_i |x_i,w)=\frac{1}{\sqrt{2πσ}} exp(-\frac{(y_i-w^T x_i)^2}{2σ^2 })已知参数ww和数据xix_i的情况下,预测值为yiy_i的条件概率.

  • 注:这个地方个人感觉比较疑惑:P(εi)P(ε_i )按理来说表示的是误差为εiε_i时的概率,为啥一下变成预测值为yiy_i的条件概率了呢?个人的一个理解:当我们的模型f(xi)=wTxif(x_i )=w^T x_i确定后,ww是固定的,所以我们向模型输入一个xix_i都会有一个预测值f(xi)f(x_i )输出,并且预测值是唯一确定的。而样本xix_i的标签yiy_i也是唯一确定的;那么误差εiε_i也唯一确定的并且与标签yiy_i是一一对应关系,所以εiε_i的概率就等于yiy_i的概率。

  • 于是可以得到最大似然函数:L(w)=i=1nP(yixi,w)=i=1n12πσexp((yiwTxi)22σ2)L(w)=∏_{i=1}^nP(y_i |x_i,w) =∏_{i=1}^n\frac{1}{\sqrt{2πσ}} exp(-\frac{(y_i-w^T x_i)^2}{2σ^2 })取对数:l(w)=i=1nlog(P(yixi,w))l(w)=∑_{i=1}^nlog(P(y_i |x_i,w))=i=1nlog(12πσ)i=1n(yiwTxi)22σ2=∑_{i=1}^nlog(\frac{1}{\sqrt{2πσ}}) -∑_{i=1}^n\frac{(y_i-w^T x_i )^2}{2σ^2 }=nlog(12πσ)12σ2i=1n(yiwTxi)2=nlog(\frac{1}{\sqrt{2πσ}})-\frac{1}{2σ^2 } ∑_{i=1}^n(y_i-w^T x_i )^2

  • 使用极大似然估计法最大化上面函数得到ww,从而得到模型。由于上面函数为ww的函数所以其它量都是常量,则最大化l(w)l(w)就是最小化下面公式:J(w)=12i=1n(yiwTxi)2J(w)=\frac{1}{2} ∑_{i=1}^n(y_i-w^T x_i )^2 12\frac{1}{2}只是为了求导方便留下的。这就是最小二乘法的目标函数。

  • 将上面式子转化为矩阵运算:J(w)=12i=1n(yiwTxi)2=12[y1wTx1y2wTx2ynwTxn]2J(w)=\frac{1}{2} ∑_{i=1}^n(y_i-w^T x_i )^2=\frac{1}{2} \begin{vmatrix} \begin{bmatrix} y_1-w^T x_1 \\ y_2-w^T x_2 \\ \vdots \\ y_n-w^T x_n \end{bmatrix} \end{vmatrix}^2=12YXTW2=12(YXTW)T(YXTW)=\frac{1}{2}\begin{vmatrix} Y-X^T W \end{vmatrix}^2=\frac{1}{2} (Y-X^T W)^T (Y-X^T W)其中:Y=[y1,y2,,yn]TRn×1Y=[y_1,y_2,…,y_n ]^T∈R^{n×1} X=[x1,x2,,xn]Rd+1×n X=[x_1,x_2,…,x_n ]∈R^{d+1×n}xi=[xi1,xi2,,xid,1]TRd+1×1 x_i=[x_i^1,x_i^2,…,x_i^d,1]^T∈R^{d+1×1}wi=[wi1,wi2,,wid,b]TRd+1×1 w_i=[w_i^1,w_i^2,…,w_i^d,b]^T ∈R^{d+1×1}\begin{vmatrix} \end{vmatrix}为行列式

  • J(w)J(w)称为线性回归模型的目标函数或损失函数,该函数是凸函数,只要找到一阶导数为0的位置,就找到了最优解

  • J(w)J(w)求导:J(w)w=12w((YXTW)T(YXTW))\frac{∂J(w)}{∂w}=\frac{1}{2} \frac{∂}{∂w} ((Y-X^T W)^T (Y-X^T W))=12w(YTYYTXTWWTXY+WTXXTW)=\frac{1}{2} \frac{∂}{∂w}(Y^T Y-Y^T X^T W-W^T XY+W^T XX^T W) 由于YTXTWY^T X^T W为一个常数所以:YTXTW=(YTXTW)T=WTXYY^T X^T W=(Y^T X^T W)^T=W^T XY所以有:J(w)w=12w(YTY2WTXY+WTXXTW)\frac{∂J(w)}{∂w}=\frac{1}{2} \frac{∂}{∂w}(Y^T Y-2W^T XY+W^T XX^T W)=(WTXY)w+12(WTXXTW)w=-\frac{∂(W^T XY)}{∂w}+\frac{1}{2} \frac{∂(W^T XX^T W)}{∂w}=XY+12(WT(XXTW)w+((WTXXT)W)w=-XY+\frac{1}{2} \frac{∂(W^T (XX^T W)}{∂w}+\frac{∂((W^T XX^T )W)}{∂w}=XY+12(XXTW+(WTXXT)T)=XXTWXY=-XY+\frac{1}{2} (XX^T W+(W^T XX^T )^T )=XX^T W-XY=X(XTWY)=X(X^TW-Y)

  • 线性模型的学习算法主要有:最小二乘法和梯度下降法

三、最小二乘法:

  • 最小二乘法是利用矩阵运算求解方程组的思想来直接求解:J(w)w=0\frac{∂J(w)}{∂w}=0XXTW=XY XX^T W=XY
  • XXTXX^T可逆:有唯一解:W=(XXT)1XY=(XT)1X1XY=(XT)1YW^*=(XX^T )^{-1} XY=(X^T )^{-1} X^{-1} XY=(X^T )^{-1} Y
  • XXTXX^T不可逆:可能有多个解,选择哪一个解作为输出,将有学习算法的偏好决定,常见的做法是增加λλ扰动:W=(XXT+λI)1XYW^*=(XX^T+λI)^{-1} XY
  • 算法步骤:
    • 从数据集D出发,构建输入矩阵XX和输出向量yy Y=[y1,y2,,yn]TRn×1Y=[y_1,y_2,…,y_n ]^T∈R^{n×1} X=[x1,x2,,xn]TRn×d+1 X=[x_1,x_2,…,x_n ]^T∈R^{n×d+1}
    • 计算伪逆(pseudo-inverse):X+X^+
    • 返回w=X+yw^*= X^+ y,得到线性回归模型为:y^=wTX\hat{y}= {w^*}^T X

四、梯度下降算法:

  • 上面求导的结果: J(w)w=X(XTWY)=\frac{∂J(w)}{∂w}=X(X^TW-Y)=它还有另外一个名字,叫梯度,它是一个向量表示自变量沿着这个方向移动函数值增长最快,也就是说如果我们沿着其反方向走,函数下降的最快。这就是梯度下降算法的思想:
  • 上面梯度可以写成:J(w)w=X(XTWY)=X(f(X)Y)\frac{∂J(w)}{∂w}=X(X^TW-Y)=X(f(X)-Y)展开为:J(w)wj=i=1n(f(xi)yi)xij\frac{∂J(w)}{∂w_j }=∑_{i=1}^n(f(x_i )-y_i ) x_i^j
  • 那么参数ww沿着梯度反方向,迭代的公式为:W=WλJ(w)wW=W-λ \frac{∂J(w)}{∂w}Wi=WiλJ(w)wj=Wii=1n(f(xi)yi)xijW_i=W_i-λ \frac{∂J(w)}{∂w_j }=W_i-∑_{i=1}^n(f(x_i )-y_i ) x_i^j 其中λ为步长。