6720 字
34 分钟
OceanAI-Chapter4:机器学习/监督学习

概述#

这一章的核心是:

监督学习利用带标签数据,学习一个从输入空间到输出空间的映射,并通过损失函数、风险最小化与先验约束,使模型对未见数据仍具有较好的预测能力。

整章可以串成一条主线:

  1. 用训练样本表示未知的数据规律;
  2. 先规定模型属于哪个 假设空间(hypothesis space)
  3. 损失函数(loss function) 衡量预测与标签的差异;
  4. 通过优化经验风险学习模型参数;
  5. 用验证集控制训练过程,用测试集评价最终泛化性能;
  6. 用正则化限制模型复杂度,缓解过拟合。

本次课堂重点包括:

  • 机器学习与监督学习的基本概念
  • 损失函数、经验风险、期望风险与结构风险
  • 判别模型与生成模型
  • 一元与多元线性回归
  • 逻辑斯蒂回归与二元分类
  • 二分类数据投影到一维的线性判别分析
  • 线性可分情况下的硬间隔支持向量机
NOTE

课堂明确略过了决策树、AdaBoost、多类 LDA、软间隔 SVM、核方法等内容,因此本笔记不展开这些部分。


目录#


机器学习的基本概念#

从规则驱动到数据驱动#

前几章中的逻辑推理和搜索,主要依靠人工给定的规则、状态和推理方式。

面对文本、语音、图像等复杂对象时,许多规律难以写成明确的解析公式,因此采用数据驱动方法:

  • 给模型大量观测数据;
  • 通过优化从数据中提取规律;
  • 用学得的规律处理新的输入。

机器学习是一套通用的方法论。不同领域处理的对象不同,但很多问题最终都可以抽象为:

输入数据特征表示映射函数任务输出\text{输入数据} \longrightarrow \text{特征表示} \longrightarrow \text{映射函数} \longrightarrow \text{任务输出}

例如:

  • 图像分类:图像 \rightarrow 猫 / 狗;
  • 文本情感分类:文本 \rightarrow 喜悦 / 愤怒;
  • 海洋探测:接收信号 \rightarrow 目标参数或类别;
  • 回归预测:环境特征 \rightarrow 连续物理量。

机器学习的目标#

机器学习通过数据学习一个映射函数:

f:XYf:\mathcal X\rightarrow\mathcal Y

其中:

  • X\mathcal X:输入空间或特征空间;
  • Y\mathcal Y:标签空间或输出空间;
  • ff:模型学习到的映射。

给定输入 xx,模型输出:

y^=f(x)\hat y=f(x)

训练的目标是让 y^\hat y 尽可能接近真实标签 yy,同时使该规律能够推广到没有见过的新样本。

[图片占位符:插入 PPT 第 4 页“图像 / 文本数据经映射函数进入语义空间”的示意图。]

不同数据如何进入模型#

模型最终处理的是数值。

图像#

一张 RGB 图像可以表示为张量。例如一张 256×256256\times256 的彩色图像可表示为:

256×256×3256\times256\times3

三个通道分别对应 R、G、B。张量也可以通过 reshape 改写为矩阵或向量形式,例如:

256×256×3256×768256\times256\times3 \quad\longrightarrow\quad 256\times768

reshape 只改变数据的组织方式,元素总数保持不变。

文本#

文本不能直接进行数值计算,需要先把词或句子映射为向量,这一过程常称为 词向量表示(word embedding)

因此文本任务通常包含:

词 / 句子数值向量f类别或其他输出\text{词 / 句子}\rightarrow\text{数值向量}\rightarrow f\rightarrow\text{类别或其他输出}
TIP

模型结构可以统一,但输入表示必须符合数据自身的结构。图像具有局部空间关系,文本具有顺序和语义关系,简单 reshape 不会自动保留这些关系。

机器学习的分类#

监督学习(supervised learning)#

训练数据带有标签:

D={(xi,yi)}i=1N\mathcal D=\{(x_i,y_i)\}_{i=1}^{N}

常见任务:

  • 回归(regression)yiy_i 为连续值;
  • 分类(classification)yiy_i 为离散类别。

例子:

  • 根据电流预测电压;
  • 根据气温预测森林火灾影响面积;
  • 根据图片判断猫或狗;
  • 根据商品属性判断用户是否购买。

无监督学习(unsupervised learning)#

训练数据没有标签:

D={xi}i=1N\mathcal D=\{x_i\}_{i=1}^{N}

目标是发现数据自身的分布或结构,例如:

  • 聚类;
  • 降维;
  • 分布估计;
  • 异常检测。

课堂例子:二维空间中存在三团数据点,虽然没有类别标签,聚类算法仍可根据数据分布把它们划分为三个簇。

半监督学习(semi-supervised learning)#

同时使用:

  • 少量有标签数据;
  • 大量无标签数据。

强化学习(reinforcement learning)#

强化学习研究序贯决策。智能体根据当前状态选择动作,并通过环境反馈的奖励调整策略。

例如:

  • 下棋;
  • 打游戏;
  • 动态避障。

它与动态规划都处理多阶段决策。强化学习常用数据或函数逼近来估计难以解析求出的价值函数或策略。

监督学习的三个基本要素#

1. 标注数据#

D={(xi,yi)}i=1N\mathcal D=\{(x_i,y_i)\}_{i=1}^{N}

其中:

  • xix_i 可以是标量、向量、矩阵或张量;
  • yiy_i 可以是连续值、类别,也可以是多维输出;
  • NN 是样本数。

2. 学习模型#

模型给出映射:

f(xi)yif(x_i)\approx y_i

模型既包含结构,也包含需要从数据中估计的参数。

3. 损失函数#

损失函数衡量:

预测值 f(xi)真实标签 yi\text{预测值 } f(x_i) \quad\text{与}\quad \text{真实标签 }y_i

之间的差异。

假设空间与先验知识#

学习算法不会在所有可能函数中任意寻找。通常先规定:

fHf\in\mathcal H

H\mathcal H 称为 假设空间

例如:

  • 只考虑直线 f(x)=ax+bf(x)=ax+b
  • 只考虑某阶多项式;
  • 只考虑某种神经网络结构;
  • 只考虑线性分类超平面。

假设空间体现了人对问题的先验认识。

若模型完全记住训练样本:

f(xi)=yif(x_i)=y_i

训练误差可以为零,但输入一个训练集中没有出现的新点时,模型可能无法给出合理预测。这种“死记硬背”缺乏泛化能力。

No-Free-Lunch 定理的核心含义#

不存在一个对所有可能数据分布都同样优秀、同时不使用任何先验知识的通用学习器。

因此学习必须至少包含一种限制:

  • 对数据分布 D(x,y)D(x,y) 的假设;
  • 对预测器 hh 的结构约束;
  • 对模型复杂度的偏好;
  • 对参数范围的限制。

学习能力来自数据,也来自对可选模型范围的合理限制。

训练集、验证集与测试集#

监督学习通常把数据划分为三个互不重叠的集合。

训练集(training set)#

用于更新模型参数,例如神经网络的权重和偏置。

验证集(validation set)#

用于:

  • 选择模型结构;
  • 选择超参数;
  • 判断何时停止训练;
  • 比较不同训练轮次的模型。

测试集(test set)#

只在最终模型确定后使用,用于报告泛化性能。

[图片占位符:插入 PPT 第 7 页“训练集、验证集、测试集比例及用途”的示意图。]

WARNING

训练过程中应根据验证集决定早停和调参。若反复查看测试集并据此修改模型,测试集信息会泄漏,最终测试结果将失去客观性。

课堂中的拟合例子:

  • 只看三个训练点,二次多项式可以精确穿过三个点;
  • 若验证点更符合直线趋势,验证误差会提示二次曲线已经过拟合;
  • 最终测试集用于检查模型在新区域、新海域或新工况下是否仍有效。

损失函数与风险最小化#

损失函数#

ii 个样本的预测值为:

y^i=f(xi)\hat y_i=f(x_i)

损失函数写为:

L(yi,f(xi))L(y_i,f(x_i))

常见损失函数如下。

0-1 损失#

L(yi,f(xi))={1,f(xi)yi0,f(xi)=yiL(y_i,f(x_i))= \begin{cases} 1,&f(x_i)\neq y_i\\ 0,&f(x_i)=y_i \end{cases}

含义:预测错误记 1,预测正确记 0。

平方损失#

L(yi,f(xi))=(yif(xi))2L(y_i,f(x_i))=(y_i-f(x_i))^2

常用于回归。

绝对损失#

L(yi,f(xi))=yif(xi)L(y_i,f(x_i))=|y_i-f(x_i)|

对数损失#

L(yi,P(yixi))=logP(yixi)L(y_i,P(y_i\mid x_i))=-\log P(y_i\mid x_i)

模型给真实类别的概率越小,损失越大。

已知联合分布时的最优预测#

假设特征与标签的联合分布 P(x,y)P(x,y) 已知,则可以直接进行贝叶斯最优预测。

回归:平方损失#

优化:

minf(x)E[(Yf(X))2X=x]\min_{f(x)}\mathbb E\left[(Y-f(X))^2\mid X=x\right]

最优结果为条件均值:

f(x)=E[YX=x]f^*(x)=\mathbb E[Y\mid X=x]

分类:0-1 损失#

最优分类器选择后验概率最大的类别:

f(x)=argmaxyP(yx)f^*(x)=\arg\max_y P(y\mid x)

这就是最大后验概率判决(MAP)。

TIP

机器学习需要训练数据,根本原因在于真实联合分布 P(x,y)P(x,y) 通常未知。数据用于近似这个未知规律。

经验风险与期望风险#

经验风险(empirical risk)#

训练集上的平均损失:

R^N(f)=1Ni=1NL(yi,f(xi))\hat R_N(f)=\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))

经验风险小,表示模型对训练样本拟合较好。

经验风险最小化(ERM):

minfH1Ni=1NL(yi,f(xi))\min_{f\in\mathcal H}\frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i))

期望风险(expected risk)#

在真实联合分布下的平均损失:

R(f)=E(X,Y)P[L(Y,f(X))]R(f)=\mathbb E_{(X,Y)\sim P}[L(Y,f(X))]

连续情形可写为:

R(f)=L(y,f(x))P(x,y)dxdyR(f)=\int L(y,f(x))P(x,y)\,dx\,dy

真正希望最小化的是期望风险:

minfHR(f)\min_{f\in\mathcal H}R(f)

P(x,y)P(x,y) 未知,所以实际只能利用有限训练样本计算经验风险。

根据大数定律,当样本独立同分布且样本量趋于无穷时:

R^N(f)R(f)\hat R_N(f)\rightarrow R(f)

有限样本下,两者仍可能存在明显差异。

过拟合与欠拟合#

泛化能力强#

  • 经验风险小;
  • 期望风险也小。

模型在训练数据与新数据上都表现较好。

过拟合(overfitting)#

  • 经验风险很小;
  • 期望风险较大。

模型过度适应训练样本中的偶然波动,通常表现为模型复杂度过高。

例子:本来接近直线的几个点,被高阶多项式精确穿过。训练误差为零,但曲线在样本之间剧烈振荡。

欠拟合(underfitting)#

  • 经验风险大;
  • 期望风险也大。

模型结构过于简单,连训练集中的主要规律都没有学到。

经验风险大、期望风险小#

理论上偶尔可能出现,但缺乏稳定性。课堂中称为“神仙算法”或“黄粱美梦”。

[图片占位符:插入 PPT 第 14 页“经验风险、期望风险与泛化能力关系”的表格。]

结构风险最小化与正则化#

只最小化经验风险容易得到过于复杂的模型,因此加入复杂度惩罚:

minfH[1Ni=1NL(yi,f(xi))+λJ(f)]\min_{f\in\mathcal H} \left[ \frac{1}{N}\sum_{i=1}^{N}L(y_i,f(x_i)) +\lambda J(f) \right]

其中:

  • 第一项:训练误差;
  • J(f)J(f):模型复杂度或参数规模的惩罚;
  • λ\lambda:误差与复杂度之间的权衡系数。

课堂例子 1:正弦信号个数#

若观测信号由若干正弦分量构成:

  • 假设的正弦分量越多,拟合误差通常越小;
  • 但分量过多会把噪声也解释为信号;
  • 因此需要惩罚分量数量。

课堂例子 2:高阶多项式#

即使采用四阶或五阶多项式,也可以通过限制高阶系数的大小,让高阶项接近零:

ya0+a1x+106x2107x3+108x4y\approx a_0+a_1x+10^{-6}x^2-10^{-7}x^3+10^{-8}x^4

虽然模型形式允许高阶项存在,实际结果仍接近低阶直线。

常见先验约束包括:

  • 让参数范数较小:Tikhonov / L2L_2 正则化思想;
  • 让有效参数或模型组件较少:稀疏性、最小描述长度思想。

结构风险最小化追求训练误差与模型复杂度之间的平衡。


判别模型与生成模型#

监督学习方法可以分为两种建模思路。

判别模型(discriminative model)#

直接学习:

f:xyf:x\rightarrow y

或直接学习条件分布:

P(yx)P(y\mid x)

它关心:

给定输入 xx,应预测哪个输出 yy

典型例子:

  • 线性回归;
  • 逻辑斯蒂回归;
  • 神经网络;
  • 支持向量机。

生成模型(generative model)#

先学习:

P(xy)P(y)P(x\mid y) \quad\text{和}\quad P(y)

从而得到联合分布:

P(x,y)=P(xy)P(y)P(x,y)=P(x\mid y)P(y)

预测时使用贝叶斯公式:

P(yx)=P(xy)P(y)P(x)P(y\mid x)=\frac{P(x\mid y)P(y)}{P(x)}

分类只需比较不同类别的后验概率。由于对固定输入 xx,分母 P(x)P(x) 对所有类别相同,因此:

y^=argmaxyP(yx)=argmaxyP(xy)P(y)\hat y =\arg\max_y P(y\mid x) =\arg\max_y P(x\mid y)P(y)

它关心:

每个类别如何生成具有某种特征分布的数据?

典型例子:贝叶斯分类模型、隐马尔可夫模型。

两者的区别#

思路直接学习的对象预测方式
判别模型f(x)f(x)P(yx)P(y\mid x)直接从输入得到类别或输出
生成模型P(xy)P(x\mid y)P(y)P(y)用贝叶斯公式构造 P(yx)P(y\mid x)

[图片占位符:插入 PPT 第 16—17 页“判别模型直接预测、生成模型学习联合分布”的对比图。]


回归分析#

回归的含义#

回归分析研究变量之间的数量关系,并用一个函数描述这种关系。

英国统计学家 Francis Galton 研究父母平均身高 xx 与成年子女平均身高 yy,得到:

y=33.73+0.516xy=33.73+0.516x

由于斜率 0.516<10.516<1,父母身高的极端偏差在子女一代中趋向群体平均水平,这种现象被称为“回归到均值”。“回归”一词由此保留下来。

在现代机器学习中,回归通常表示:

从输入特征预测连续值输出。

一元线性回归#

假设输入与输出满足:

y^=ax+b\hat y=ax+b

给定训练数据:

{(xi,yi)}i=1n\{(x_i,y_i)\}_{i=1}^{n}

用平方损失建立目标函数:

L(a,b)=i=1n(yiaxib)2L(a,b)=\sum_{i=1}^{n}(y_i-ax_i-b)^2

求解:

mina,bL(a,b)\min_{a,b}L(a,b)

森林火灾案例#

Montesinho 地区历史数据:

气温 xx5.18.211.513.915.116.219.623.3
火灾影响面积 yy2.144.628.2411.2413.9916.3319.2328.74

目标是寻找一条直线,使其对这些数据点的总平方残差最小。

[图片占位符:插入教材图 4.1 或 PPT 第 21—24 页的森林火灾散点图与拟合直线。]

最小二乘的几何意义#

对样本 (xi,yi)(x_i,y_i),模型预测为:

y^i=axi+b\hat y_i=ax_i+b

残差为:

ei=yiy^ie_i=y_i-\hat y_i

平方损失计算的是图中沿 yy 轴方向的竖直误差:

ei2=(yiaxib)2e_i^2=(y_i-ax_i-b)^2

它没有直接计算点到直线的最短垂直距离。

TIP

普通最小二乘默认输入 xx 的误差可以忽略,主要考虑输出 yy 的误差。若同时考虑 xxyy 的测量误差,并最小化点到直线的垂直距离,对应总最小二乘(total least squares)一类方法。

从最大似然估计推导平方损失#

假设观测模型为:

yi=axi+b+εiy_i=ax_i+b+\varepsilon_i

噪声独立同分布,且:

εiN(0,σ2)\varepsilon_i\sim\mathcal N(0,\sigma^2)

因此:

P(yixi,a,b)=12πσexp[(yiaxib)22σ2]P(y_i\mid x_i,a,b) = \frac{1}{\sqrt{2\pi}\sigma} \exp\left[ -\frac{(y_i-ax_i-b)^2}{2\sigma^2} \right]

所有样本独立时,似然函数为:

P(Da,b)=i=1nP(yixi,a,b)P(\mathcal D\mid a,b) =\prod_{i=1}^{n}P(y_i\mid x_i,a,b)

取对数:

logP(Da,b)=常数12σ2i=1n(yiaxib)2\log P(\mathcal D\mid a,b) = \text{常数} - \frac{1}{2\sigma^2} \sum_{i=1}^{n}(y_i-ax_i-b)^2

所以:

maxa,blogP(Da,b)mina,bi=1n(yiaxib)2\max_{a,b}\log P(\mathcal D\mid a,b) \quad\Longleftrightarrow\quad \min_{a,b}\sum_{i=1}^{n}(y_i-ax_i-b)^2

高斯加性噪声假设自然导出了平方损失和最小二乘法。

一元线性回归的闭式解#

bb 求偏导并令其为零:

Lb=2i=1n(yiaxib)=0\frac{\partial L}{\partial b} =-2\sum_{i=1}^{n}(y_i-ax_i-b)=0

得到:

b=yˉaxˉb=\bar y-a\bar x

其中:

xˉ=1ni=1nxi,yˉ=1ni=1nyi\bar x=\frac{1}{n}\sum_{i=1}^{n}x_i, \qquad \bar y=\frac{1}{n}\sum_{i=1}^{n}y_i

再对 aa 求偏导并代入 bb

a=i=1n(xixˉ)(yiyˉ)i=1n(xixˉ)2a= \frac{\sum_{i=1}^{n}(x_i-\bar x)(y_i-\bar y)} {\sum_{i=1}^{n}(x_i-\bar x)^2}

等价形式:

a=i=1nxiyinxˉyˉi=1nxi2nxˉ2a= \frac{\sum_{i=1}^{n}x_iy_i-n\bar x\bar y} {\sum_{i=1}^{n}x_i^2-n\bar x^2}

对森林火灾数据:

a=1.428,b=7.09a=1.428, \qquad b=-7.09

因此:

y^=1.428x7.09\boxed{\hat y=1.428x-7.09}

矩阵形式的最小二乘#

为了统一处理一元和多元回归,定义增广特征:

x~i=[1xi],θ=[ba]\tilde x_i= \begin{bmatrix} 1\\ x_i \end{bmatrix}, \qquad \theta= \begin{bmatrix} b\\a \end{bmatrix}

把样本按行排列:

X=[1x11x21xn],y=[y1y2yn]X= \begin{bmatrix} 1&x_1\\ 1&x_2\\ \vdots&\vdots\\ 1&x_n \end{bmatrix}, \qquad y= \begin{bmatrix} y_1\\y_2\\\vdots\\y_n\end{bmatrix}

模型为:

y^=Xθ\hat y=X\theta

目标函数:

J(θ)=yXθ22J(\theta)=\|y-X\theta\|_2^2

梯度为:

θJ(θ)=2XT(yXθ)\nabla_\theta J(\theta) =-2X^T(y-X\theta)

令梯度为零:

XT(yXθ)=0X^T(y-X\theta)=0

得到正规方程:

XTXθ=XTyX^TX\theta=X^Ty

XTXX^TX 可逆:

θ=(XTX)1XTy\boxed{\theta=(X^TX)^{-1}X^Ty}
WARNING

参数向量的顺序必须与设计矩阵的列顺序一致。若设计矩阵写成 [xi,1][x_i,1],参数应写成 [a,b]T[a,b]^T;若写成 [1,xi][1,x_i],参数应写成 [b,a]T[b,a]^T

用方向导数求矩阵梯度#

课堂用一维辅助函数说明如何从标量求导识别向量梯度。

定义:

f(θ)=yXθ22f(\theta)=\|y-X\theta\|_2^2

在任意方向 vv 上构造标量函数:

g(t)=f(θ0+vt)g(t)=f(\theta_0+vt)

由多元 Taylor 展开:

g(0)=f(θ0)Tvg'(0)=\nabla f(\theta_0)^Tv

另一方面:

g(t)=yX(θ0+vt)22=(yXθ0)Xvt22\begin{aligned} g(t) &=\|y-X(\theta_0+vt)\|_2^2\\ &=\|(y-X\theta_0)-Xvt\|_2^2 \end{aligned}

使用:

ab22=a22+b222aTb\|a-b\|_2^2 =\|a\|_2^2+\|b\|_2^2-2a^Tb

可得:

g(0)=2(yXθ0)TXvg'(0)=-2(y-X\theta_0)^TXv

改写为:

g(0)=[2XT(yXθ0)]Tvg'(0)=\left[-2X^T(y-X\theta_0)\right]^Tv

g(0)=f(θ0)Tvg'(0)=\nabla f(\theta_0)^Tv 对比:

f(θ)=2XT(yXθ)\boxed{\nabla f(\theta)=-2X^T(y-X\theta)}

这种方法的关键是:

把多元函数限制到任意一条直线上,先做普通的一元求导,再从方向导数中识别梯度。

最小二乘的投影解释#

XθX\theta 是矩阵 XX 各列的线性组合,因此:

XθCol(X)X\theta\in\operatorname{Col}(X)

最小二乘寻找列空间中离 yy 最近的向量 XθX\theta^*

最优时,残差:

r=yXθr=y-X\theta^*

垂直于 XX 的列空间,因此:

XTr=0X^Tr=0

即:

XT(yXθ)=0X^T(y-X\theta^*)=0

这正是正规方程。

最小二乘解可以理解为:把 yy 正交投影到 XX 的列空间上。

多元线性回归#

输入具有 DD 个特征:

xi=[xi1,xi2,,xiD]Tx_i=[x_{i1},x_{i2},\ldots,x_{iD}]^T

模型为:

f(xi)=a0+j=1Dajxij=a0+aTxif(x_i)=a_0+\sum_{j=1}^{D}a_jx_{ij} =a_0+a^Tx_i

统一写为:

y^=Xθ\hat y=X\theta

解仍为:

θ=(XTX)1XTy\theta=(X^TX)^{-1}X^Ty

森林火灾案例:加入风力#

气温 xx5.18.211.513.915.116.219.623.3
风力 zz4.55.84.06.34.07.26.38.5
火灾影响面积 yy2.144.628.2411.2413.9916.3319.2328.74

采用设计矩阵列顺序 [1,x,z][1,x,z],参数顺序为 [a0,ax,az]T[a_0,a_x,a_z]^T,得到:

θ=[9.1031.3120.626]\theta= \begin{bmatrix} -9.103\\ 1.312\\ 0.626 \end{bmatrix}

因此:

y^=9.103+1.312x+0.626z\boxed{\hat y=-9.103+1.312x+0.626z}
WARNING

课堂特别更正了 PPT 中参数排列容易造成的误解。截距应为 9.103-9.103,气温系数为 1.3121.312,风力系数为 0.6260.626


逻辑斯蒂回归#

从连续预测到二元分类#

线性回归输出范围为:

(,+)(-\infty,+\infty)

二分类标签通常只有:

y{0,1}y\in\{0,1\}

若直接用直线拟合 0/1 标签:

  • 输出可能小于 0 或大于 1;
  • 离群点会显著拉动回归直线;
  • 输出很难直接解释为概率。

逻辑斯蒂回归先构造线性得分:

z=wTx+bz=w^Tx+b

再用 Sigmoid 函数把它压缩到 (0,1)(0,1)

课堂例子:

  • 输入 xx 包含商品甜度与价格;
  • 标签 y=1y=1 表示喜欢,y=0y=0 表示不喜欢;
  • 学习 wwbb,描述每个特征对购买意愿的影响。

Sigmoid 函数#

σ(z)=11+ez\sigma(z)=\frac{1}{1+e^{-z}}

定义:

hθ(x)=σ(wTx+b)h_\theta(x)=\sigma(w^Tx+b)

性质:

  • 单调递增;
  • 值域为 (0,1)(0,1)
  • z=0z=0 时,σ(z)=0.5\sigma(z)=0.5
  • z+z\rightarrow+\infty 时,σ(z)1\sigma(z)\rightarrow1
  • zz\rightarrow-\infty 时,σ(z)0\sigma(z)\rightarrow0
  • z=0z=0 附近变化最快,两端逐渐饱和。

[图片占位符:插入教材图 4.5 或 PPT 第 30—31 页的 Sigmoid 曲线。]

二分类概率模型:

P(y=1x;w,b)=hθ(x)P(y=1\mid x;w,b)=h_\theta(x)P(y=0x;w,b)=1hθ(x)P(y=0\mid x;w,b)=1-h_\theta(x)

几率与对数几率#

正例概率为 PP,负例概率为 1P1-P

几率(odds):

P1P\frac{P}{1-P}

对数几率(log odds / logit):

logP1P\log\frac{P}{1-P}

对逻辑斯蒂回归:

P=P(y=1x)=11+e(wTx+b)P=P(y=1\mid x)=\frac{1}{1+e^{-(w^Tx+b)}}

可以推出:

P1P=ewTx+b\frac{P}{1-P}=e^{w^Tx+b}

因此:

logP1P=wTx+b\boxed{\log\frac{P}{1-P}=w^Tx+b}

这说明模型用线性函数拟合的是对数几率。

若采用阈值 0.50.5

P(y=1x)>0.5wTx+b>0P(y=1\mid x)>0.5 \quad\Longleftrightarrow\quad w^Tx+b>0

所以决策边界仍是线性的:

wTx+b=0w^Tx+b=0

最大似然与交叉熵#

给定:

D={(xi,yi)}i=1n,yi{0,1}\mathcal D=\{(x_i,y_i)\}_{i=1}^{n}, \qquad y_i\in\{0,1\}

记:

hi=hθ(xi)h_i=h_\theta(x_i)

单个样本的概率可以统一写为:

P(yixi;θ)=hiyi(1hi)1yiP(y_i\mid x_i;\theta) =h_i^{y_i}(1-h_i)^{1-y_i}

验证:

  • yi=1y_i=1 时,结果为 hih_i
  • yi=0y_i=0 时,结果为 1hi1-h_i

独立同分布假设下,似然函数为:

L(θ)=i=1nhiyi(1hi)1yiL(\theta) =\prod_{i=1}^{n}h_i^{y_i}(1-h_i)^{1-y_i}

对数似然:

(θ)=i=1n[yiloghi+(1yi)log(1hi)]\ell(\theta) =\sum_{i=1}^{n} \left[ y_i\log h_i+(1-y_i)\log(1-h_i) \right]

最大化对数似然,等价于最小化负对数似然:

J(θ)=i=1n[yiloghi+(1yi)log(1hi)]J(\theta) =-\sum_{i=1}^{n} \left[ y_i\log h_i+(1-y_i)\log(1-h_i) \right]

这就是二元交叉熵损失。

单个样本的形式:

Li={loghi,yi=1log(1hi),yi=0L_i= \begin{cases} -\log h_i,&y_i=1\\ -\log(1-h_i),&y_i=0 \end{cases}
TIP

当真实标签为 1 时,模型给正例的概率越接近 1,损失越小;当真实标签为 0 时,模型给正例的概率越接近 0,损失越小。

逻辑斯蒂回归通常没有像普通最小二乘那样的简单闭式解,需要用梯度下降或其他数值优化方法估计 w,bw,b

若写成平均损失,其梯度为:

wJ=1ni=1n(hiyi)xi\nabla_w J =\frac{1}{n}\sum_{i=1}^{n}(h_i-y_i)x_iJb=1ni=1n(hiyi)\frac{\partial J}{\partial b} =\frac{1}{n}\sum_{i=1}^{n}(h_i-y_i)

课堂没有要求展开梯度与 Hessian 的完整推导。

预测与多分类推广#

训练得到 w,bw,b 后,对新输入 xx

  1. 计算 z=wTx+bz=w^Tx+b
  2. 计算 hθ(x)=σ(z)h_\theta(x)=\sigma(z)
  3. 根据阈值决定类别。

二分类逻辑斯蒂回归可以推广为多分类的 Softmax 回归。课堂只说明了这一推广思路,没有展开公式与优化过程。


线性判别分析#

LDA 的目标#

线性判别分析(Linear Discriminant Analysis, LDA)是一种有监督降维方法。

给定带类别标签的高维数据,寻找一个投影方向 ww,把样本投影到一维:

z=wTxz=w^Tx

希望投影后:

  • 同一类别内部尽可能集中;
  • 不同类别的中心尽可能分离。

[图片占位符:插入 PPT 第 42 或 44 页“两类数据沿不同方向投影后可分性不同”的示意图。]

本次课堂只讨论二分类数据投影到一维。

投影后的均值与方差#

设两类样本为 C1,C2C_1,C_2

kk 类样本均值:

mk=1NkxiCkxim_k=\frac{1}{N_k}\sum_{x_i\in C_k}x_i

协方差矩阵:

Σk=1NkxiCk(ximk)(ximk)T\Sigma_k =\frac{1}{N_k}\sum_{x_i\in C_k}(x_i-m_k)(x_i-m_k)^T

投影后,第 kk 类的均值为:

μk=1NkxiCkwTxi=wTmk\mu_k =\frac{1}{N_k}\sum_{x_i\in C_k}w^Tx_i =w^Tm_k

投影后方差:

σk2=1NkxiCk(wTxiwTmk)2=wTΣkw\begin{aligned} \sigma_k^2 &=\frac{1}{N_k}\sum_{x_i\in C_k}(w^Tx_i-w^Tm_k)^2\\ &=w^T\Sigma_kw \end{aligned}

Fisher 判别准则#

类别中心距离:

(μ1μ2)2=[wT(m1m2)]2(\mu_1-\mu_2)^2 =\left[w^T(m_1-m_2)\right]^2

类内离散程度:

σ12+σ22=wT(Σ1+Σ2)w\sigma_1^2+\sigma_2^2 =w^T(\Sigma_1+\Sigma_2)w

定义类间散度矩阵:

Sb=(m1m2)(m1m2)TS_b=(m_1-m_2)(m_1-m_2)^T

定义类内散度矩阵:

Sw=Σ1+Σ2S_w=\Sigma_1+\Sigma_2

Fisher 准则:

J(w)=wTSbwwTSww\boxed{ J(w)=\frac{w^TS_bw}{w^TS_ww} }

优化目标:

maxwJ(w)\max_w J(w)

其含义非常直接:

  • 分子大:两类中心投影后距离大;
  • 分母小:每一类投影后更集中。

J(w)J(w)ww 的整体缩放不敏感:

J(cw)=J(w)J(cw)=J(w)

因此只需确定投影方向,不需要确定向量长度。

广义特征值解法#

由于尺度无关,可增加约束:

wTSww=1w^TS_ww=1

构造拉格朗日函数:

L(w,λ)=wTSbwλ(wTSww1)\mathcal L(w,\lambda) =w^TS_bw-\lambda(w^TS_ww-1)

ww 求导:

2Sbw2λSww=02S_bw-2\lambda S_ww=0

得到:

Sbw=λSww\boxed{S_bw=\lambda S_ww}

这是广义特征值问题。

SwS_w 可逆:

Sw1Sbw=λwS_w^{-1}S_bw=\lambda w

选择最大特征值对应的特征向量,得到最佳投影方向。

对称平方根分解法#

课堂重点说明了把分母化为普通欧氏范数的方法。

SwS_w 对称正定,可写为:

Sw=Sw1/2Sw1/2S_w=S_w^{1/2}S_w^{1/2}

令:

u=Sw1/2wu=S_w^{1/2}w

则:

w=Sw1/2uw=S_w^{-1/2}u

代入 Fisher 准则:

J(u)=uTSw1/2SbSw1/2uuTuJ(u) = \frac{ u^T S_w^{-1/2}S_bS_w^{-1/2} u} { u^T u}

这是 Rayleigh 商。

因此 uu 取矩阵:

Sw1/2SbSw1/2S_w^{-1/2}S_bS_w^{-1/2}

最大特征值对应的特征向量,再由:

w=Sw1/2uw=S_w^{-1/2}u

恢复投影方向。

二分类 LDA 的直接结果#

由于:

Sb=(m1m2)(m1m2)TS_b=(m_1-m_2)(m_1-m_2)^T

它是一个向量与自身的外积,因此:

rank(Sb)=1\operatorname{rank}(S_b)=1

所以最多只有一个非零判别方向。

二分类 LDA 可直接得到:

wSw1(m1m2)\boxed{w\propto S_w^{-1}(m_1-m_2)}

解释:

  • m1m2m_1-m_2 指向两类中心的差异方向;
  • Sw1S_w^{-1} 对类内变化大的方向进行压缩;
  • 最终保留“类间差异大、类内波动小”的方向。
NOTE

教材还介绍了多类数据降到多维空间的情况。本次课堂明确不讲,复习时掌握二分类投影到一维即可。


支持向量机#

分类超平面#

对二分类样本:

{(xi,yi)}i=1n,yi{1,+1}\{(x_i,y_i)\}_{i=1}^{n}, \qquad y_i\in\{-1,+1\}

线性分类超平面:

wTx+b=0w^Tx+b=0

其中:

  • ww 是超平面的法向量;
  • bb 控制超平面相对原点的位置。

分类函数:

y^=sign(wTx+b)\hat y=\operatorname{sign}(w^Tx+b)

若:

wTx+b>0w^Tx+b>0

点位于法向量 ww 指向的一侧;若小于 0,则位于另一侧。

为什么符号表示超平面的两侧#

取超平面上一点 x0x_0

wTx0+b=0w^Tx_0+b=0

任意点 xx 满足:

wTx+b=wT(xx0)w^Tx+b=w^T(x-x_0)

右侧是向量 xx0x-x_0 在法向量 ww 方向上的投影符号,因此可以判断点位于哪一侧。

点到超平面的距离#

xx 到超平面:

wTx+b=0w^Tx+b=0

的距离为:

d(x)=wTx+bw2\boxed{ d(x)=\frac{|w^Tx+b|}{\|w\|_2} }

这对应高中解析几何中的点到平面距离公式。

最大间隔思想#

能把训练样本正确分开的超平面通常有很多个。SVM 选择离最近训练样本最远的那个超平面。

定义两条支持超平面:

wTx+b=1w^Tx+b=1wTx+b=1w^Tx+b=-1

离分类超平面最近的样本满足等号,称为 支持向量(support vectors)

每一侧支持向量到中间超平面的距离:

1w2\frac{1}{\|w\|_2}

两条支持超平面之间的总间隔:

γ=2w2\boxed{\gamma=\frac{2}{\|w\|_2}}

最大化间隔等价于最小化 w2\|w\|_2

[图片占位符:插入 PPT 第 76—78 页“分类超平面、支持向量与最大间隔”的示意图。]

硬间隔 SVM 的标准形式#

对正类:

wTxi+b1w^Tx_i+b\ge1

对负类:

wTxi+b1w^Tx_i+b\le-1

统一写为:

yi(wTxi+b)1,i=1,2,,ny_i(w^Tx_i+b)\ge1, \qquad i=1,2,\ldots,n

最大化间隔:

maxw,b2w2\max_{w,b}\frac{2}{\|w\|_2}

等价于凸二次规划:

minw,b12w22s.t.yi(wTxi+b)1,i=1,,n\boxed{ \begin{aligned} \min_{w,b}\quad &\frac12\|w\|_2^2\\ \text{s.t.}\quad &y_i(w^Tx_i+b)\ge1, \quad i=1,\ldots,n \end{aligned} }

前面的 1/21/2 只用于简化求导,不改变最优解。

这个模型称为 线性可分硬间隔 SVM,前提是存在一个超平面能把所有训练样本完全分开。

NOTE

课堂到此为止。样本线性不可分时需要引入松弛变量、软间隔和 hinge 损失;非线性分类还可使用核函数。这些内容本次明确不要求掌握。


本章知识链条#

这一章各部分可以统一理解为:

1. 先规定模型形式#

例如:

  • 线性回归:f(x)=wTx+bf(x)=w^Tx+b
  • 逻辑斯蒂回归:P(y=1x)=σ(wTx+b)P(y=1\mid x)=\sigma(w^Tx+b)
  • LDA:z=wTxz=w^Tx
  • SVM:wTx+b=0w^Tx+b=0

2. 再规定优化目标#

  • 线性回归:最小化平方误差;
  • 逻辑斯蒂回归:最大化似然 / 最小化交叉熵;
  • LDA:最大化类间散度与类内散度之比;
  • SVM:最大化最小分类间隔。

3. 最后求模型参数#

  • 闭式解:线性最小二乘;
  • 特征值问题:LDA;
  • 数值优化:逻辑斯蒂回归、SVM。

4. 用先验约束控制泛化#

  • 限定假设空间;
  • 使用验证集选择模型;
  • 使用正则化控制复杂度;
  • 用独立测试集评价最终效果。

复习要点#

必须理解#

  1. 监督、无监督、半监督、强化学习的区别;
  2. 监督学习中标注数据、模型、损失函数三要素;
  3. 假设空间为什么体现先验知识;
  4. 训练集、验证集、测试集各自用途;
  5. 经验风险与期望风险的区别;
  6. 过拟合、欠拟合与结构风险最小化;
  7. 判别模型与生成模型的建模路径;
  8. 最小二乘的概率解释与投影解释;
  9. 逻辑斯蒂回归如何从最大似然得到交叉熵;
  10. LDA 为什么追求“类间远、类内近”;
  11. SVM 为什么通过最小化 w2\|w\|^2 实现最大间隔。

必须会写的公式#

经验风险#

R^N(f)=1Ni=1NL(yi,f(xi))\hat R_N(f)=\frac1N\sum_{i=1}^{N}L(y_i,f(x_i))

结构风险#

R^N(f)+λJ(f)\hat R_N(f)+\lambda J(f)

线性最小二乘#

θ=(XTX)1XTy\theta=(X^TX)^{-1}X^Ty

Sigmoid#

σ(z)=11+ez\sigma(z)=\frac{1}{1+e^{-z}}

二元交叉熵#

J=i[yiloghi+(1yi)log(1hi)]J=-\sum_i\left[y_i\log h_i+(1-y_i)\log(1-h_i)\right]

Fisher 准则#

J(w)=wTSbwwTSwwJ(w)=\frac{w^TS_bw}{w^TS_ww}

二分类 LDA 方向#

wSw1(m1m2)w\propto S_w^{-1}(m_1-m_2)

硬间隔 SVM#

minw,b12w22s.t.yi(wTxi+b)1\min_{w,b}\frac12\|w\|_2^2 \quad\text{s.t.}\quad y_i(w^Tx_i+b)\ge1

本次不要求展开#

  • 决策树与信息增益;
  • AdaBoost;
  • 多类、多维 LDA;
  • 逻辑斯蒂回归 Hessian 的完整推导;
  • SVM 的 VC 维理论;
  • 软间隔、hinge 损失、对偶问题、SMO;
  • 核函数与非线性 SVM。
OceanAI-Chapter4:机器学习/监督学习
https://www.sleepyfish2031.top/posts/课程笔记/海洋人工智能基础/chapter4/
作者
Sleepyfish
发布于
2026-06-14
许可协议
CC BY-NC-SA 4.0