跳到主要内容

机器学习的简单示例 —— 线性回归

💡

线性回归(Linear Regression) 是机器学习和统计学中最基础广泛饮用的模型,是一种对自变量和因变量之间关系进行建模的回归分析

  • 自变量数量为 1 时称为 简单回归 ,自变量数量大于 1 时称为 多元回归

从机器学习的角度来看,自变量就是样本的特征向量 xRDx \in \mathbb{R}^{D} (每一维对应一个自变量),因变量是标签 yy ,这里 yRy \in \mathbb{R} 是连续值(实数或连续整数)

假设空间是一组参数化的线性函数

f(x;w,b)=wTx+b(30)f(x; w , b) = w^{T}x + b \tag{30}

其中权重向量 wRDw \in \mathbb{R}^{D} 和偏置 bRb \in \mathbb{R} 都是可学习的参数,函数 f(x;w,b)Rf(x; w, b) \in \mathbb{R} 也称为线性模型

简单起见,将公式 (30)\color{blue}{(30)} 写为

f(x;w^)=w^Tx^(31)f(x; \hat w) = \hat w^{T} \hat x \tag{31}
  • w^\hat w 为增广权重向量 , x^\hat x 为增广特征向量
x^=x1[x1]=[x1xD1](32)\hat x = x \oplus 1 \triangleq \begin{bmatrix} \qquad \\ x \\ \\ \\ 1 \end{bmatrix} = \begin{bmatrix} x_{1} \\ \vdots \\ x_{D} \\ \\ 1 \end{bmatrix} \tag{32}
w^=wb[wb]=[w1wDb](33)\hat w = w \oplus b \triangleq \begin{bmatrix} \qquad \\ w \\ \\ \\ b \end{bmatrix} = \begin{bmatrix} w_{1} \\ \vdots \\ w_{D} \\ \\ b \end{bmatrix} \tag{33}
  • \oplus 定义为两个向量的拼接操作

参数学习

给定一组包含 NN 个训练样本的训练集 D={(x(n),y(n))}n=1ND = \lbrace (x^{(n)}, y^{(n)})\rbrace_{n=1}^{N} ,我们希望能够学习一个最优的线性回归模型参数 ww

这里介绍四种不同的参数估计方法

  • 经验风险最小化
  • 结构风险最小化
  • 最大似然估计
  • 最大后验估计

经验风险最小化

线性回归的标签 yy 和模型输出都为连续的实数值,因此 平方损失函数 很适合衡量真实标签之间的差异

根据经验风险最小化准则,训练集 D\mathcal{D} 上的经验风险定义为

R(w)=n=1NL(y(n),f(x(n);w))=12n=1N(y(n)wTx(n))2=12yXTw2(34–36)\begin{aligned} \mathcal{R}(w) &= \sum_{n=1}^{N} \mathcal{L}(y^{(n)}, f(x^{(n)}; w))\\ &= \frac{1}{2} \sum_{n=1}^{N} (y^{(n)} - w^{T}x^{(n)})^{2}\\ &= \frac{1}{2} ||y-X^{T}w||^{2} \tag{34--36} \end{aligned}
💡

这里的风险函数省略了 1N\frac{1}{N} 来简化

  • 其中 y=[y(1),,y(N)]TRNy=[y^{(1)}, \mathellipsis, y^{(N)}]^{T} \in \mathbb{R}^{N} 是由所有样本的真实标签组成的列向量,而 XR(D+1)×NX \in \mathbb{R}^{(D+1)\times N} 是由所有样本的输入特征 x(1),,x(N)x^{(1), \mathellipsis, x^{(N)}} 组成的矩阵
X=[x1(1)x1(2)x1(N)xD(1)xD(1)xD(N)111](37)X = \begin{bmatrix} x_{1}^{(1)} & x_{1}^{(2)} & \mathellipsis & x_{1}^{(N)}\\ \\ \vdots & \vdots & \ddots & \vdots \\ \\ x_{D}^{(1)} & x_{D}^{(1)} & \mathellipsis & x_{D}^{(N)} \\ \\ 1 & 1 & \mathellipsis & 1 \end{bmatrix} \tag{37}

风险函数 R(w)\mathcal{R}(w) 是关于 ww 的凸函数,其对 ww 的偏导数为

R(w)w=12yXTw2w=X(yXTw)(38, 39)\begin{aligned} \frac{\partial \mathcal{R}(w)}{\partial w} &= \frac{1}{2} \frac{\partial ||y-X^{T}w||^{2}}{\partial w} \\ &= -X(y-X^{T}w) \end{aligned} \tag{38,~39}

wR(w)=0\frac{\partial}{\partial w} \mathcal{R}(w) = 0 ,得到的最优参数 ww^{*}

w=(XXT)1Xy=(n=1Nx(n)(x(n))T)1(n=1Nx(n)y(n))(40, 41)\begin{aligned} w^{*} &= (XX^{T})^{-1}Xy\\ &= (\sum_{n=1}^{N} x^{(n)}(x^{(n)})^{T})^{-1}(\sum_{n=1}^{N} x^{(n)}y^{(n)}) \tag{40,~41} \end{aligned}
  • 这种求解线性回归参数的方法叫做 最小二乘法(Least Square Method,LSM)

书中给出的线性回归参数学习的示例

在最小二乘法中, XXTR(D+1)×(D+1)XX^{T} \in \mathbb{R}^{(D+1)\times(D+1)} 必须存在逆矩阵,即 XXTXX^{T} 是满秩的 (rank(XXT)=D+1)(rank(XX^{T}) = D+1)

  • XX 中的行向量之间线性不相关,即每一个特征都和其他特征不相关
✏️

一种常见的 XXTXX^{T} 不可逆情况是样本数量 NN 小于特征数量 (D+1)(D+1)XXTXX^{T} 的秩为 NN ,这时会存在很多解 ww^{*} 使得 R(w)=0\mathcal{R}(w^{*}) = 0

XXTXX^{T} 不可逆时,可以通过这两种方法来估计参数

  1. 先使用主成分分析等方法来预处理数据,消除不同特征之间的相关性,再使用最小二乘法

  2. 使用梯度下降来估计参数,先初始化 w=0w=0 ,然后这个公式进行迭代

ww+αX(yXTw)(42)w \leftarrow w + \alpha X(y- X^{T}w) \tag{42}
  • 其中 α\alpha 为学习率,这种利用梯度下降法来求解的方法也称为 最小均方算法(Least Mean Squares,LMS)

结构风险最小化

最小二乘法中要保证 XXTXX^{T} 可逆,但是即使 XXTXX^{T} 可逆,如果特征之间有较大的 多重共线性(Multicollinearity) ,也会使 XXTXX^{T} 的逆在数值上无法准确计算

💡

共线性(Collinearity) 是指一个特征可以通过其他特征的线性组合来较准确的预测

数据集 XX 上的一些小的扰动就会导致 (XXT)1(XX^{T})^{-1} 发生很大的改变,使得最小二乘法的计算变得很不稳定

为了解决这个问题,优秀的大佬们提出了 岭回归(Ridge Regression) ,即给 XXTXX^{T} 的对角线元素都加上一个常数 λ\lambda 使得 (XXT+λI)(XX^{T} + \lambda I) 满秩,最优的参数 ww^{*}

w=(XXT+λI)1Xy(43)w^{*} = (XX^{T} + \lambda I)^{-1}Xy \tag{43}
  • 其中 λ>0\lambda > 0 为预先设置的超参数,II 为单位矩阵

岭回归的解 ww^{*} 可以看作 结构风险最小化准则 下的最小二乘法估计,其目标函数可以改写为

R(w)=12yXTw2+12λw2(44)\mathcal{R}(w) = \frac{1}{2}||y - X^{T} w||^{2} + \frac{1}{2} \lambda ||w||^{2} \tag{44}
  • 其中 λ>0\lambda > 0 为正则化系数

最大似然估计

机器学习的任务可以分为两类

  1. 样本的特征向量 xx 和标签 yy 之间存在位置函数关系 y=h(x)y=h(x)
  2. 条件概率 p(yx)p(y|x) 服从某个未知分布
备注
  • 最小二乘法属于第一类,直接建模 xx 和标签 yy 之间的函数关系
  • 线性回归可以从建模条件概率 p(yx)p(y|x) 的角度进行参数估计

假设标签 yy 为一个随机变量,并由函数 f(x;w)=wTxf(x; w)=w^{T}x 加上一个随机噪声 ϵ\epsilon决定

y=f(x;w)+ϵ=wTx+ϵ(45, 46)\begin{aligned} y&= f(x; w) + \epsilon\\ &= w^{T}x + \epsilon \tag{45,~46} \end{aligned}
  • 其中 ϵ\epsilon 服从均值为 00、方差为 σ2\sigma^{2} 的高斯分布
  • yy 服从均值为 wTxw^{T}x、方差为 σ2\sigma^{2} 的高斯分布
p(yx;w,σ)=N(y;wTx,σ2)=12πσexp((ywTx)22σ2)(47, 48)\begin{aligned} p(y|x; w, \sigma) &= \mathcal{N}(y; w^{T}x, \sigma^{2}) \\ &= \frac{1}{\sqrt{2\pi}\sigma} exp(- \frac{(y-w^{T}x)^2}{2\sigma^{2}})\tag{47,~48} \end{aligned}
  • 参数 ww 在训练集 D\mathcal{D} 上的 似然函数(Likelihood)
p(yX;w,σ)=n=1np(y(n)x(n);w,σ)=n=1np(y(n)wTx(n),σ2))(49,  50)\begin{aligned} p(y|X; w, \sigma) &= \prod^{n}_{n=1}p(y^{(n)}|x^{(n)}; w, \sigma) \\ & = \prod^{n}_{n=1}p(y^{(n)}|w^{T}x^{(n)}, \sigma^{2})) \tag{49, ~50} \end{aligned}
  • 其中 y=[y(1),,y(N)]Ty = [y^{(1)}, \cdots, y^{(N)}]^{T} 为所有样本标签组成的向量, X=[x(1),,x(N)]X=[x^{(1)}, \cdots, x^{(N)}] 为所有样本特征向量组成的矩阵
提示

为了方便计算,对似然函数取对数得到 对数似然函数(Log Likelihood)

logp(yX;w,σ)=n=1nlogN(y(n)wTx(n),σ2))(51)\log p(y|X; w, \sigma) = \sum_{n=1}^{n} \log \mathcal{N}(y^{(n)}|w^{T}x^{(n)}, \sigma^{2})) \tag{51}

最大似然估计(Maximum Likelihood Estimation,MLE) 是指找到一组参数 ww 使得似然函数 p(yX;w,σ)p(y|X; w, \sigma) 最大,等价于对数似然函数 logp(yX;w,σ)\log p(y|X; w, \sigma) 最大

  • logp(yX;w,σ)w=0\frac{\partial \log p(y|X; w, \sigma)}{\partial w} = 0 得到
wML=(XXT)1Xy(52)w^{ML} = (XX^{T})^{-1}Xy \tag{52}

最大似然估计的解和最小二乘法的解相同

参考