CONCEPT / learning-theory

监督学习:从带标签样本到可检验的预测规则

建立监督学习的问题定义,区分样本、模型、损失、经验风险、验证选择与未知分布上的泛化误差。

尚未开始仅保存在此浏览器
先修functions-and-graphsprobability-axioms

本页目标

  1. 用输入空间、标签空间、未知分布、假设空间和损失函数完整表述监督学习问题。
  2. 区分单样本损失、训练集经验风险、验证估计与总体泛化风险。
  3. 解释训练集、验证集和测试集的职责,以及数据泄漏为何破坏评估。
本页目录

问题从哪里开始

监督学习处理一类共同结构:已经观察到若干输入及其对应目标,希望据此构造一条规则,对尚未见过的输入给出预测。房屋的面积、位置和房龄可以作为输入,成交价作为连续目标;邮件正文、发件信息和链接特征可以作为输入,是否为垃圾邮件作为离散目标。两项任务的对象不同,却都要求从成对数据中学习输入到目标的关系。

设输入空间为 X\mathcal X,标签空间为 Y\mathcal Y。一个样本写成 (X,Y)X×Y(X,Y)\in\mathcal X\times\mathcal Y,其来源由未知联合分布 PP 描述。训练数据记为

S={(x1,y1),,(xn,yn)}.S=\{(x_1,y_1),\ldots,(x_n,y_n)\}.

最常用的理论起点是假设这些样本独立且服从同一分布 PP。这项假设方便分析,却不是数据收集过程自动具备的事实。时间序列、同一用户的重复记录、同一患者的多次检查以及传感器相邻帧都可能相关;产品上线后,输入分布也可能随时间改变。建模时应写明抽样单位、时间边界与部署人群,而不能只写一个数据表的行数。

学习对象与评价对象

假设空间 H\mathcal H 是允许学习算法选择的预测函数集合。回归函数通常写成 h:XRh:\mathcal X\to\mathbb R,分类函数可能输出类别,也可能先输出类别概率。学习算法 AA 接收训练集并返回函数

hS=A(S),hSH.h_S=A(S),\qquad h_S\in\mathcal H.

下标 SS 提醒我们:换一批训练数据,即使算法配置不变,得到的函数也可能改变。模型家族、训练算法和训练后的具体模型是三个不同对象。线性函数族属于模型家族;梯度下降属于一种参数优化方法;某次训练得到的权重向量才是具体模型。

预测好坏要通过损失函数量化。单样本损失

(h(x),y)0\ell(h(x),y)\ge 0

比较预测和真实目标。平方损失适合强调较大数值偏差的回归建模,对数损失适合概率分类,绝对损失对极端残差的增长较慢。损失的选择表达任务代价和统计假设;它不是数据固有的一列属性。

在未知分布上的总体风险定义为

RP(h)=E(X,Y)P[(h(X),Y)].R_P(h)=\mathbb E_{(X,Y)\sim P}[\ell(h(X),Y)].

它衡量模型面对同一目标分布的新样本时的平均损失,也是通常所说的泛化误差的一种精确定义。由于 PP 未知,这个期望不能直接从有限训练集精确算出。训练时常用经验风险

R^S(h)=1ni=1n(h(xi),yi)\widehat R_S(h)=\frac1n\sum_{i=1}^{n}\ell(h(x_i),y_i)

作为可计算目标。两者符号相似,信息来源却不同:前者涉及所有可能的新样本,后者只涉及已经观察的有限样本。

监督学习的基本流程

一个可审计的流程至少包括任务定义、数据划分、特征与标签构造、模型拟合、模型选择、最终评估和部署监测。任务定义先确定预测发生的时间点、可用输入、目标变量与业务代价。例如预测患者三十天内是否再入院时,预测时点之后产生的诊断记录不能作为输入。若使用了这些未来信息,即使测试分数很高,也无法代表真实部署能力。

训练集用于估计参数。验证集用于选择模型族、特征处理、正则化强度、决策阈值或停止轮次。测试集只在选择过程结束后估计最终方案的表现。若反复查看测试分数并据此改模型,测试集便参与了选择,报告结果会对该测试集产生适应性偏差。此时应准备新的独立测试数据,或明确承认原测试集已经成为验证信息的一部分。

划分方法应符合部署结构。随机划分适用于近似独立同分布的样本;时间预测通常按时间先后划分;同一主体的多条记录应按主体分组,避免一个人的近似副本同时进入训练和测试;类别极不均衡时,可在不破坏时间或群组约束的前提下保持各集合的类别构成。任何由全体数据估计的均值、词表、缺失值规则或降维变换,都可能把评估数据的信息泄露进训练过程。正确做法是在训练部分拟合预处理,再将同一变换应用到验证与测试部分。

回归、分类与结构化输出

Y\mathcal Y 是实数或实向量时,任务通常称为回归。房价、温度和需求量都属于连续目标,但它们的尺度、噪声和非负约束可能要求不同输出变换与损失。当 Y\mathcal Y 是有限类别集合时,任务通常称为分类。二分类可以输出 P(Y=1X=x)P(Y=1\mid X=x) 的估计,多分类可以输出各类别概率分布,再根据阈值或代价规则作决策。

概率预测和最终动作也应分离。医疗筛查模型可能输出风险概率,医院再根据漏诊与复查成本选择阈值。相同概率模型在不同资源约束下可以采用不同阈值。把阈值固定为 0.50.5 并非数学必然,它只是在某些对称代价与校准条件下的自然选择。

标签还可能是序列、树、分割掩码或多个相关变量,形成结构化预测。无论输出结构多复杂,核心问题仍是明确输入、目标、候选函数、损失与评估分布。监督学习这一框架不保证标签正确,也不保证训练分布代表未来;这些条件必须由数据采集和验证设计支持。

从有限样本到未知分布

训练经验风险低,只说明模型在当前样本与当前损失下拟合得好。若假设空间非常丰富,它可能记住训练样本的偶然细节,使 R^S(h)\widehat R_S(h) 很小,而 RP(h)R_P(h) 仍然较大。两者之差

RP(h)R^S(h)R_P(h)-\widehat R_S(h)

称为一种泛化间隙。间隙大小与数据量、样本依赖、假设空间容量、训练算法、正则化和模型选择过程有关。不能仅凭参数个数或训练误差单独判断泛化结果。

经验风险最小化写成

h^argminhHR^S(h).\widehat h\in\arg\min_{h\in\mathcal H}\widehat R_S(h).

这个式子把统计问题与优化问题连接起来。即使优化器找到了经验风险的全局最小点,也只解决了给定样本和给定假设空间内的优化;它没有消除采样误差、标签噪声或分布偏移。反过来,某些优化器没有达到最小训练损失,却可能因隐式限制而得到更好的验证表现。评价学习系统时应分别讨论表示能力、优化误差、估计误差与部署偏移。

例题一:把房价问题写成完整学习任务

例 1:从业务描述到数学对象

设目标是在挂牌时预测未来三个月内的成交价。输入 xx 包括挂牌时已知的面积、楼层、区域、房龄和挂牌价,目标 yy 是三个月窗口内实际成交价。未成交房源不能随意删除,否则训练分布可能只代表容易成交的房屋;可以重新定义目标、处理删失,或限定研究对象并说明边界。

选择仿射函数 hw,b(x)=wTx+bh_{w,b}(x)=w^\mathsf T x+b 作为初始假设空间,选择平方损失 =(h(x)y)2\ell=(h(x)-y)^2。训练集估计 w,bw,b,验证集选择特征变换与正则化强度,按更晚时间收集的测试集估计未来时段误差。若用全体数据计算房价均值再标准化,测试期信息已经进入训练;均值与尺度必须只由训练期估计。

测试均方误差反映目标尺度上的平均平方偏差,但它不回答不同区域是否存在系统性低估。因而还应按区域、价格段和时间段检查残差。分组诊断是对总体指标的补充,不可用训练残差替代。

例题二:垃圾邮件概率与决策阈值

例 2:区分概率预测、损失与动作

Y=1Y=1 表示垃圾邮件,模型对一封邮件输出 p(x)=0.72p(x)=0.72。这个数应解释为模型对条件概率的估计,而不是“邮件有百分之七十二的内容是垃圾”。训练时可以使用二元对数损失

(p,y)=ylogp(1y)log(1p),\ell(p,y)=-y\log p-(1-y)\log(1-p),

它会惩罚自信但错误的概率。部署系统还要选择阈值:若误删正常邮件代价很高,阈值可能高于 0.50.5;若漏过恶意邮件代价更高,阈值可能降低。阈值应在独立验证数据上结合代价选择。

若发件人域名的黑名单是在测试期之后汇总形成,把它用于早期邮件特征会引入时间泄漏。合理评估应重现每个预测时点真正可用的信息,并按时间划分数据。模型、损失、阈值和划分各自回答不同问题,不能用一个准确率数字全部代替。

反例与常见误区

随机切分会掩盖主体重复造成的泄漏

某数据集包含每位受试者连续拍摄的十张近似图像。若逐张随机切分,训练集与测试集很可能出现同一受试者的相邻帧。模型可以利用背景、设备噪声或个体标记获得很高测试分数,却未必能推广到新受试者。按受试者分组切分后,评估问题才与“预测新受试者”一致。随机切分本身没有普遍错误;错误来自切分单位与部署单位不一致。

训练损失足够低就证明模型已经学会任务

训练损失只是在训练样本上的经验量。它可能因为模型容量大、重复样本或泄漏而很低,也可能因标签噪声而无法降到零。是否学会部署任务需要独立数据、合适指标和与部署一致的抽样方案共同支持。

测试集只要没有参与梯度计算就始终独立

查看测试结果后再改特征、模型或阈值,也是在利用测试信息。信息可以通过人工决策进入选择过程,不必直接进入梯度公式。测试集的职责由整个工作流程决定。

练习

练习

某平台用用户最近七天行为预测下一天是否流失。说明输入、标签、预测时点和一种合理的数据划分,并指出一项可能的未来信息泄漏。

查看解答

可把预测日之前七天内的行为汇总为输入,把预测日之后规定窗口内是否停止使用定义为标签。训练、验证和测试按预测日期先后划分,并保证同一预测样本只使用预测时点前的信息。把下一天客服挽回记录或预测日之后计算的活跃等级放进输入,都会泄漏未来。

练习

写出二分类模型在训练集上的经验对数风险,并解释它与分类错误率为何不同。

查看解答

若模型输出 pi=P(Y=1xi)p_i=P(Y=1\mid x_i) 的估计,则经验风险为 n1i[yilogpi+(1yi)log(1pi)]-n^{-1}\sum_i[y_i\log p_i+(1-y_i)\log(1-p_i)]。它使用完整概率并对自信错误施加较大惩罚;分类错误率先按阈值转成类别,只记录是否分错。二者可用于不同的训练与评价目的。

练习

一个模型在训练集损失为 0.020.02,验证集损失为 0.180.18。列出至少三种应核查的原因,不要求直接断定模型过拟合。

查看解答

应核查训练与验证样本是否来自相近分布、预处理是否一致、验证集是否足够大、标签质量是否相同、同一损失是否以同一方式计算,以及模型是否利用了训练集特有噪声。只有结合这些证据,才能判断差距主要来自过拟合、抽样波动、实现错误或分布变化。

知识连接

可信资源

lecture · 年份待核

Stanford CS229 Course Materials

Andrew Ng

用于核对经典机器学习模型的目标函数、推导和适用前提。

打开官方来源

Stanford CS229 官方课程材料按监督学习、判别式算法、学习理论与正则化组织推导,可用于核对经典定义与符号。

book · 2016

Deep Learning

Ian Goodfellow, Yoshua Bengio, Aaron Courville

适合作为反向传播和优化章节的完整参考。

打开官方来源

《Deep Learning》官方在线教材第五章集中讨论机器学习基础、估计与泛化,可用于继续梳理总体风险和经验风险。

后续学习

先学习 线性回归,观察假设空间、平方损失和参数估计怎样落到可计算公式;再学习 逻辑回归,比较连续目标与二分类概率的输出解释。完成两类模型后进入 损失函数,统一讨论训练目标与评价量。

作者one-forth-core
最近修订2026-07-11
审阅状态待独立人工审阅