按理来说这章序号应该挺前面的,但是回归模型比较简单,且个人认为会用的比较少,所以之前没写。由于《机器学习(双语)》和《模式识别》这两门课要考,所以总结整理一下。

优化问题的闭合解与近似解

闭合解Closed Form Solution)是指优化问题的解能够直接通过有限次基本运算显式表达出来,通常具有确定且精确的解析形式。而近似解Approximate Solution)则是指当问题难以获得闭合解或计算成本过高时,通过数值迭代、启发式方法或随机采样等途径得到的、在可接受误差范围内接近最优解的估计结果。

线性回归

给定数据集X={x1,,xn},xiRd\boldsymbol{X} = \{\boldsymbol{x}_{1},\dots,\boldsymbol{x}_{n}\},\boldsymbol{x}_{i} \in \mathbb{R}^d及其标签y={y1,,yn},yiR\boldsymbol{y} = \{y_{1},\dots,y_{n}\},y_{i} \in \mathbb{R},线性回归假设特征与标签之间存在线性关系,即

yi=θTxi+b\begin{align} y_{i} = \boldsymbol{\theta}^T\boldsymbol{x}_{i} + b \end{align}

不妨令

θ=[θ0θ1θd]R(d+1)×1X=[1x1,1x1,d1x2,1x2,d1xn,1xn,d]Rn×(d+1)\theta = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \vdots \\ \theta_d \end{bmatrix} \in \mathbb{R}^{(d+1) \times 1} \qquad X = \begin{bmatrix} 1 & x_{1,1} & \cdots & x_{1,d} \\ 1 & x_{2,1} & \cdots & x_{2,d} \\ \vdots & \vdots & \ddots & \vdots \\ 1 & x_{n,1} & \cdots & x_{n,d} \end{bmatrix} \in \mathbb{R}^{n \times (d+1)}

则有

hθ(x)=Xθh_{\boldsymbol{\theta}}(\boldsymbol{x}) = \boldsymbol{X} \boldsymbol{\theta}

使用均分误差

L(θ)=1ni=1n(hθ(xi)yi)2=1n(Xθy)T(Xθy)\begin{aligned} \mathcal{L}(\theta) & = \frac{1}{n} \sum_{i=1}^{n} (h_{\boldsymbol{\theta}}(x_i) - y_i)^2 \\ & = \frac{1}{n} \boldsymbol{(X\theta - y)^T (X\theta - y)} \end{aligned}

对误差函数求导得到

Lθ=(XTX)θXTy=0θ=(XTX)1XTy\begin{align} \frac{\partial \mathcal{L}}{\partial \boldsymbol{\theta}} = \boldsymbol{(X^TX)\theta-X^Ty} = 0 \notag \\ \boldsymbol{\theta} = \boldsymbol{(X^TX)^{-1}X^Ty} \end{align}

式子(2)即为闭合解。

基函数与线性回归

基函数Basis Functions)是一组数学函数,它们通过线性组合能够表示或逼近某个函数空间中的任意函数。在机器学习中,基函数常用于将线性模型扩展为非线性模型,从而提升模型对复杂数据的拟合能力。
具体来说,广义线性模型的形式为:

hθ(x)=j=0dθjϕj(x)\begin{align} h_\theta(\boldsymbol{x}) = \sum_{j=0}^{d} \theta_j \phi_j(\boldsymbol{x}) \end{align}

其中 ϕ0(x),ϕ1(x),,ϕd(x)\phi_0(\boldsymbol{x}), \phi_1(\boldsymbol{x}), \dots, \phi_d(\boldsymbol{x}) 是选定的基函数,θj\theta_j 是对应的模型参数。
常见的基函数有:

  • 多项式基函数ϕj(x)=xj\phi_j(x) = x^j
  • 径向基函数ϕj(x)=ϕ(xμj)\phi_j(\boldsymbol{x}) = \phi\big(\|\boldsymbol{x} - \boldsymbol{\mu}_j\|\big),例如高斯径向基函数ϕj(x)=exp(xμj22σj2)\phi_j(\boldsymbol{x}) = \exp\left( -\frac{\|\boldsymbol{x} - \boldsymbol{\mu}_j\|^2}{2\sigma_j^2} \right)
  • Sigmoid基函数ϕj(x)=σ(xμjs)\phi_j(x) = \sigma\left(\frac{x - \mu_j}{s}\right)
    在实际建模过程中,原始特征 x\boldsymbol{x} 经基函数转换后,被映射到一个新的特征空间。在此空间中,学习任务转化为对这些新特征的线性组合进行拟合。也就是说,一旦将基函数的输出作为新的输入表示,拟合广义模型在形式上便等价于拟合一个普通线性模型,从而可直接应用最小二乘法、梯度下降等标准线性拟合方法。

线性回归的正则化

没有免费的午餐定理

学习理论指出,机器学习算法能够在有限训练样本上实现良好的泛化性能。基于概率框架,这类算法能够保证寻找到一条在大多数相关样本上很可能正确的规则。同时,在学习过程中,算法往往会对某类假设具有内在的偏好,这种倾向被称为“归纳偏好”。由于所有算法都有其自身的偏好,“没有免费午餐定理”(No Free Lunch Theorem)指出,若不对问题领域做任何假设,则所有算法在平均意义下的期望性能完全相同。换言之,不存在某种算法在所有潜在任务上都优于其他算法,而一种算法在某一类问题上的优势,往往以在另一类问题上的劣势为代价。

正则化

在训练机器学习模型时,我们通常更关注模型的测试误差,而非训练误差。正则化Regularization)正是一种通过修改学习算法,以降低模型泛化误差而非仅仅减少训练误差的技术。
在线性回归中,我们通常令L(θ)=1ni=1n(hθ(xi)yi)2\mathcal{L}(\theta) = \frac{1}{n} \sum_{i=1}^{n} (h_{\boldsymbol{\theta}}(x_i) - y_i)^2尽可能的低。然而,过度专注于最小化训练误差往往会导致过拟合Overfitting)——模型在训练集上表现优异,但在未见过的测试数据上性能显著下降,也就是说该模型的泛化能力变低了。
为了解决这一问题,我们在线性回归的损失函数中引入一个额外的正则项Regularization term),用以约束模型参数的复杂度。加入正则项后的损失函数通常写作:

Lreg(θ)=1ni=1n(hθ(xi)yi)2+λΩ(θ)\mathcal{L}_{\text{reg}}(\boldsymbol{\theta}) = \frac{1}{n} \sum_{i=1}^{n} (h_{\boldsymbol{\theta}}(x_i) - y_i)^2 + \lambda \, \Omega(\boldsymbol{\theta})

其中,λ\lambda 是正则化系数,控制正则化的强度;Ω(θ)\Omega(\boldsymbol{\theta}) 是正则化函数,它对模型参数 θ\boldsymbol{\theta} 施加某种约束。常见的正则化有L2、L1正则化。
L2正则化(岭回归,Ridge Regression)的正则项为参数向量的L2范数平方Ω(θ)=θ22=j=1mθj2\Omega(\boldsymbol{\theta}) = \|\boldsymbol{\theta}\|_2^2 = \sum_{j=1}^{m} \theta_j^2,它使权重向量更接近原点,降低模型复杂度,同时保持权重分量间平衡,避免某些特征过度主导。
在线性回归,其闭式解变更为

w=(XTX+λ[0111])1XTy\mathbf{w} = \left(\mathbf{X}^T\mathbf{X} + \lambda \begin{bmatrix} 0 & & \\ & 1 & \\ & & 1 & \\ & & & \ddots & \\ & & & & 1 \end{bmatrix}\right)^{-1} \mathbf{X}^T\mathbf{y}

L1正则化(LASSO回归,LASSO Regression)的正则项为参数向量的 L1 范数:Ω(θ)=θ1=j=1mθj\Omega(\boldsymbol{\theta}) = \|\boldsymbol{\theta}\|_1 = \sum_{j=1}^{m} |\theta_j|,它会产生稀疏解,使模型仅保留最显著的特征权重,显著提高解释性。

线性回归的概率解释

训练集和测试集数据通过数据集上被称为数据生成过程(data generating process)的概率分布生成。通常,我们会做一系列被统称为独立同分布假设(i.i.d. assumption)的假设。
我们假设标签 yiy_i 与输入特征 xi\boldsymbol{x_i} 之间的关系,除了由参数 θ\boldsymbol{\theta} 确定的线性部分外,还存在一个无法观测的随机噪声项 ϵi\epsilon_i,即

yi=θTxi+ϵiy_i = \boldsymbol{\theta^T x_i} + \epsilon_i

ϵi\epsilon_i 是独立同分布的随机噪声项,服从均值为 00、方差为 σ2\sigma^2 的高斯分布

ϵiN(0,σ2)\epsilon_i \sim \mathcal{N}(0, \sigma^2)

由此可得,给定 xi\boldsymbol{x_i} 和参数 θ\boldsymbol{\theta} 时,yiy_i 的条件分布P(yixi;θ)P(y_i \mid \boldsymbol{x_i}; \boldsymbol{\theta})也是高斯分布

P(yixi;θ)=12πσexp((yiθTxi)22σ2)P(y_i \mid \boldsymbol{x_i}; \boldsymbol{\theta}) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left( -\frac{(y_i - \boldsymbol{\theta^T x_i})^2}{2\sigma^2} \right)

对于整个数据集 XX 和标签 y\boldsymbol{y},其似然函数为

L(θ)=P(yX;θ)=i=1nP(yixi;θ)L(\boldsymbol{\theta}) = P(\boldsymbol{y} \mid X; \boldsymbol{\theta}) = \prod_{i=1}^n P(y_i \mid \boldsymbol{x_i}; \boldsymbol{\theta})

为简化计算,通常最大化对数似然函数

(θ)=logL(θ)=i=1nlog(12πσexp((yiθTxi)22σ2))\ell(\boldsymbol{\theta}) = \log L(\boldsymbol{\theta}) = \sum_{i=1}^n \log \left( \frac{1}{\sqrt{2\pi}\sigma} \exp\left( -\frac{(y_i - \boldsymbol{\theta^T x_i})^2}{2\sigma^2} \right) \right)

展开并去掉常数项,最大化 (θ)\ell(\boldsymbol{\theta}) 等价于最小化

J(θ)=12i=1n(yiθTxi)2J(\boldsymbol{\theta}) = \frac{1}{2} \sum_{i=1}^n (y_i - \boldsymbol{\theta^T x_i})^2

这正是线性回归中使用的均方误差代价函数。因此,在高斯噪声假设下,最小二乘回归等价于对参数 θ\boldsymbol{\theta} 的最大似然估计。
假设目标变量 tt 由确定性函数 y(x,w)y(\mathbf{x}, \mathbf{w}) 加上高斯噪声给出:

t=y(x,w)+εt = y(\mathbf{x}, \mathbf{w}) + \varepsilon

其中 ε\varepsilon 是零均值高斯随机变量,精度(方差的倒数)为 β\beta
在平方损失函数下,最优预测由条件期望 h(x)h(\mathbf{x}) 给出:

h(x)=E[tx]=tp(tx)dth(\mathbf{x}) = \mathbb{E}[t \mathbf{x}] = \int tp(t \mathbf{x})dt

期望平方损失可以写成:

E[L]={y(x)h(x)}2p(x)dx+{h(x)t}2p(x,t)dxdt\mathbb{E}[L] = \int \{y(\mathbf{x})-h(\mathbf{x})\}^2p(\mathbf{x})d\mathbf{x} + \int\{h(\mathbf{x})-t\}^2p(\mathbf{x},t)d\mathbf{x}dt

第二项与 y(x)y(\mathbf{x}) 无关,来自于数据的内在噪声,表示期望损失可达到的最小值。
对于特定数据集 D\mathcal{D},我们可以将第一项展开:

{y(x;D)h(x)}2={y(x;D)ED[y(x;D)]}2+{ED[y(x;D)]h(x)}2+2{y(x;D)ED[y(x;D)]}{ED[y(x;D)]h(x)}\{y(\mathbf{x};\mathcal{D}) - h(\mathbf{x})\}^2 = \{y(\mathbf{x};\mathcal{D}) - \mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})]\}^2 + \{\mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})] - h(\mathbf{x})\}^2 + 2\{y(\mathbf{x};\mathcal{D}) - \mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})]\}\{\mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})] - h(\mathbf{x})\}

D\mathcal{D} 取期望,最后一项消失,得到:

ED[{y(x;D)h(x)}2]={ED[y(x;D)]h(x)}2+ED[{y(x;D)ED[y(x;D)]}2]=(bias)2+variance\begin{aligned} \mathbb{E}_{\mathcal{D}}[\{y(\mathbf{x};\mathcal{D}) - h(\mathbf{x})\}^2] &= \{\mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})] - h(\mathbf{x})\}^2 + \mathbb{E}_{\mathcal{D}}[\{y(\mathbf{x};\mathcal{D}) - \mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})]\}^2]\\ &= (\text{bias})^2 + \text{variance} \end{aligned}

因此,期望损失可分解为:

expected loss=(bias)2+variance+noise\begin{equation} \text{expected loss} = (\text{bias})^2 + \text{variance} + \text{noise} \end{equation}

其中:

(bias)2={ED[y(x;D)]h(x)}2p(x)dxvariance=ED[{y(x;D)ED[y(x;D)]}2]p(x)dxnoise={h(x)t}2p(x,t)dxdt\begin{align} (\text{bias})^2 & = \int \{\mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})] - h(\mathbf{x})\}^2p(\mathbf{x})d\mathbf{x}\\ \text{variance} & = \int\mathbb{E}_{\mathcal{D}}[\{y(\mathbf{x};\mathcal{D}) - \mathbb{E}_{\mathcal{D}}[y(\mathbf{x};\mathcal{D})]\}^2]p(\mathbf{x})d\mathbf{x}\\ \text{noise} & = \int\{h(\mathbf{x})-t\}^2p(\mathbf{x},t)d\mathbf{x}dt\\ \end{align}

局部加权回归

局部加权回归Locally Weighted Regression)在假设有足够训练数据的前提下,使得特征的选择变得不那么关键。

iω(i)(y(i)θTx(i))2\sum_i \omega^{(i)} (y^{(i)} - \boldsymbol{\theta^T x^{(i)}})^2

其中 ω(i)\omega^{(i)} 是非负权重值,通常ω(i)=exp((x(i)x)22τ2)\omega^{(i)} = \exp(-\frac{(\boldsymbol{x^{(i)} - x})^2}{2\tau^2})τ\tau称为带宽参数。
局部加权回归是一种非参数化学习算法。所谓非参数学习,是指其模型参数的数量并非固定不变,而是会随着训练样本量的增加而相应增长。


上述内容均为回归算法,而下面的两种算法虽带有“回归”二字,但是实际上是分类算法。

Logistics回归

逻辑斯谛回归Logistic Regression) 是一种用于解决二分类问题的统计学习模型。它通过 Sigmoid 函数将线性回归模型的输出映射到[0,1][0, 1]区间,并将其解释为样本属于某一类别的概率。
Sigmoid 函数为

g(z)=11+ez\begin{align} g(z) = \frac{1}{1+e^{-z}} \end{align}

对其求导有

g(z)=g(z)(1g(z))\begin{aligned} g'(z) = g(z)(1-g(z)) \end{aligned}

给定逻辑回归模型,我们将赋予我们的分类模型一组概率假设,然后通过最大似然法拟合参数。
假设

P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)\begin{array}{c} P(y = 1|x; \theta) = h_\theta(x)\\ P(y = 0|x; \theta) = 1 - h_\theta(x) \end{array} \begin{aligned} \end{aligned}

可以更简洁地写为

P(yx;θ)=hθ(x)y(1hθ(x))1yP(y|x; \theta) = h_\theta(x)^y (1 - h_\theta(x))^{1-y}

假设mm个训练样本是独立生成的,那么我们可以写出参数似然函数

L(θ)=P(yx;θ)=iP(y(i)x(i);θ)=ihθ(x(i))y(i)(1hθ(x(i)))1y(i)\begin{aligned} L(\theta) & = P(y|x; \theta)\\ & = \prod_i P(y^{(i)}|x^{(i)}; \theta)\\ & = \prod_i h_\theta(x^{(i)})^{y^{(i)}} (1 - h_\theta(x^{(i)}))^{1-y^{(i)}} \end{aligned}

和之前一样,最大化对数似然函数会更方便

l(θ)=logL(θ)=i=1my(i)log(hθ(x(i)))+(1y(i))log(1hθ(x(i)))\begin{aligned} l(\theta) &= \log L(\theta) \\ &= \sum_{i=1}^m y^{(i)} \log \left( h_\theta(x^{(i)}) \right) + (1 - y^{(i)}) \log (1 - h_\theta(x^{(i)})) \end{aligned}

使用梯度上升法,即θ:=θ+αθl(θ)\theta := \theta + \alpha \nabla_\theta l(\theta)
让我们从一个训练样本 (x,y)(x, y) 开始,通过求导来推导随机梯度上升规则

θjl(θ)=(yg(θTx)(1y)1g(θTx))θjg(θTx)=(yg(θTx)(1y)1g(θTx))g(θTx)(1g(θTx))θjθTx=(y(1g(θTx))(1y)g(θTx))xj=(yhθ(x))xj\begin{aligned} \frac{\partial}{\partial \theta_j} l(\theta) &= \left( \frac{y}{g(\theta^T x)} - \frac{(1-y)}{1-g(\theta^T x)} \right) \frac{\partial}{\partial \theta_j} g(\theta^T x) \\ &= \left( \frac{y}{g(\theta^T x)} - \frac{(1-y)}{1-g(\theta^T x)} \right) g(\theta^T x)(1-g(\theta^T x)) \frac{\partial}{\partial \theta_j} \theta^T x \\ &= \left( y(1-g(\theta^T x)) - (1-y)g(\theta^T x) \right) x_j \\ &= (y - h_\theta(x)) x_j \end{aligned}

因此,这为我们提供了随机梯度上升规则:

θj:=θj+αi=1m(y(i)hθ(x(i)))xj(i)\theta_j := \theta_j + \alpha \sum_{i=1}^m \left( y^{(i)} - h_\theta(x^{(i)}) \right) x_j^{(i)}

Softmax回归

Softmax回归Softmax Regression)是一种用于解决多类别分类Multi-class Classification)的统计学习模型。它通过Softmax函数将线性回归模型的输出映射到[0,1][0, 1]区间,并将其解释为样本属于某一类别的概率。

假设有KK个类别,Softmax回归定义为

hθ(x)=[P(y=1x;θ)P(y=2x;θ)P(y=Kx;θ)]=1j=1Keθ(j)Tx[eθ(1)Txeθ(2)Txeθ(K)Tx]\begin{equation} h_{\theta}(x) = \begin{bmatrix} P(y = 1 | x; \theta) \\ P(y = 2 | x; \theta) \\ \vdots \\ P(y = K | x; \theta) \end{bmatrix} = \frac{1}{\sum_{j=1}^{K} e^{\theta^{(j)T} x}} \begin{bmatrix} e^{\theta^{(1)T} x} \\ e^{\theta^{(2)T} x} \\ \vdots \\ e^{\theta^{(K)T} x} \end{bmatrix} \end{equation}

可得当K=2K=2时,Softmax回归退化为逻辑斯谛回归。
其损失函数为交叉熵损失函数

J(θ)=1m[i=1mk=1K1{y(i)=k}logeθ(k)Tx(i)j=1Keθ(j)Tx(i)]\begin{align} J(\theta) = -\frac{1}{m} \left[ \sum_{i=1}^m \sum_{k=1}^K \mathbf{1}\{ y^{(i)} = k \} \log \frac{e^{\theta^{(k)T} x^{(i)}}}{\sum_{j=1}^K e^{\theta^{(j)T} x^{(i)}}} \right] \end{align}

其中,1{y(i)=k}\mathbf{1}\{ y^{(i)} = k \} 是指示函数,当样本 ii 的真实类别为 kk 时取值为 11,否则取值为 00
对损失函数求导得到

θ(k)J(θ)=1mi=1m[x(i)(1{y(i)=k}P(y(i)=kx(i);θ))]\begin{align} \nabla_{\theta^{(k)}} J(\theta) = -\frac{1}{m} \sum_{i=1}^m \left[ x^{(i)} \left( \mathbf{1}\{ y^{(i)} = k \} - P(y^{(i)} = k | x^{(i)}; \theta) \right) \right] \end{align}

混淆矩阵

混淆矩阵Confusion Matrix)是一种用于评估分类模型性能的工具。它以矩阵形式展示了模型在不同类别上的预测结果与实际标签之间的对应关系。混淆矩阵的行表示实际类别,列表示预测类别。通过分析混淆矩阵,可以直观地了解模型在各个类别上的正确预测和错误预测情况,从而帮助识别模型的优势和不足,指导进一步的优化和改进。
对于二分类问题,混淆矩阵通常包含以下四个基本元素:

  • 真正例(True Positive, TP):模型正确预测为正类的样本数量。
  • 假正例(False Positive, FP):模型错误预测为正类的样本数量。
  • 真反例(True Negative, TN):模型正确预测为负类的样本数量。
  • 假反例(False Negative, FN):模型错误预测为负类的样本数量。

混淆矩阵的结构如下所示:
混淆矩阵