1 正则化与泛化要回答什么
训练模型的目的,是让它处理以后才出现的数据。把训练集记得很熟,只能说明模型适应了已经看过的样本;泛化关心的是:换成来自目标场景的新样本,模型还能否保持可接受的表现。正则化则是在学习过程中加入约束,减少模型利用偶然细节的机会。它可以改善泛化,却不能保证任何数据上的成绩都提高,更不能代替正确的数据划分。
设想使用公开的电信客户流失表格。输入包含入网月数、月费用、合约类型、付款方式,目标是预测客户随后是否流失。模型可能学到“短合约且费用较高的客户风险较高”,也可能记住训练数据里某些客户编号与标签的巧合。前者有机会迁移到新客户,后者通常没有。客户编号即使能提升训练分数,也不等于适合进入模型;判断特征首先要问预测时是否可获得,以及它是否具有稳定含义。
为让这个问题可观察,可以把互不重叠的客户分成训练集、验证集和测试集,例如比例为 70%/15%/15%。训练集用于学习权重,验证集用于选择正则强度、训练轮次和决策阈值,测试集用于方案确定后的最终评价。这里的比例只是示例。如果同个客户有多条记录,应按客户分组划分;如果目标是预测未来月份,应按时间划分,不能仅靠随机打散模拟未来。
分类评价还必须与业务目标对应。精确率 precision 表示“预测为流失的客户中,实际流失的比例”;召回率 recall 表示“实际流失的客户中,被找到的比例”。F1 是 precision 与 recall 的调和平均,适合同时关注误报与漏报时使用。ROC-AUC 考察模型把正样本排在负样本前面的能力,跨越多个阈值,但不能直接说明某个联系名单的质量。这些指标都应标明数据范围、正类定义和阈值。
本课始终围绕同个问题展开:当训练成绩变好时,未参与拟合的数据是否也受益。我们会用训练与验证曲线观察趋势,用固定实验条件比较约束,用稀有类指标检查平均分掩盖的问题。所有具体分数都是教学示意,不是公开数据集的复现实测结果。读完后,你应能说明为什么某次训练应停止、为什么某个正则强度应被淘汰,以及为什么某个漂亮分数还不足以交付。

2 过拟合、欠拟合与偏差-方差直觉
过拟合是模型把训练数据中的偶然性也当成了规律。例如,客户流失分类器可能依据某种罕见付款方式给出极端预测,但这个关联只来自训练集中很少的客户。常见迹象是训练损失持续下降,而验证损失在下降后转为上升;也可能表现为训练 F1 很高,验证 F1 明显较低。差距需要结合绝对表现解释:训练与验证都很差时,不能因为差距小就称为泛化良好。
欠拟合意味着模型连有用的训练规律也没学好。可能是模型表达能力不足、特征遗漏、优化尚未完成,也可能是正则化太强。若训练与验证损失都较高,且增加合理训练预算仍无改善,应检查这些原因。仅凭曲线外观不能确定病因:学习率过大可能让损失振荡,标签错误可能让可达到的分数降低,输入处理错误也会制造类似“模型太简单”的表象。
偏差与方差提供了直觉。偏差可以理解为模型的假设与真实关系之间存在系统性距离,例如用过于简单的关系描述复杂现象。方差可以理解为对训练样本变化过于敏感:换个合理的训练子集,学出的预测就明显改变。增强约束通常会让模型更稳定,却可能妨碍它表达真实关系。这里使用的是入门直觉,不要求把分类误差机械拆成可直接测量的固定项。
想象用公开的 Fashion-MNIST 做服饰图像分类。模型若只看整张图的平均亮度,就可能难以区分轮廓不同而亮度相近的类别;这属于表达信息不足的方向。如果使用容量较大的网络,并训练到能记住训练图像中的个别噪点,则可能出现另一端的问题。增加约束能减少对噪点的依赖,但不能凭空为平均亮度特征补出袖口和鞋底的形状。
观察时应同时记录训练损失、验证损失和关心的指标。损失是训练优化的目标,F1 等指标体现具体决策质量,它们的最佳轮次可能不同。模型可能给错误样本越来越自信的概率,导致验证损失上升,而正确分类的数量暂时不变;也可能只是少量概率跨过阈值,让 F1 突然变化。因此不能把每次细小波动都解释成能力突变,也不能仅凭准确率平稳就忽略概率质量恶化。
数据量与数据覆盖同样影响这些现象。补充相近样本可能降低对个别样本的依赖,但重复复制相同记录不会增加独立信息。若训练数据缺少新套餐客户,即使训练曲线平滑,也未必能预测新套餐上线后的流失。正则化主要控制模型如何利用已有证据;证据本身覆盖哪些人群,仍由采样与数据建设决定。

3 权重衰减、Dropout 与早停边界
L2 正则化在原有训练损失上增加权重平方的惩罚。用简化记法表示,就是“总目标=数据损失+λ×权重平方和”。λ 越大,大权重受到的惩罚通常越重,模型需要更充分的证据才会给某个输入很强的影响。它约束的是参数,不是直接规定验证集分数。某个特征即使真实有效,在数据有限时也可能被过度压缩,所以更强的 L2 并不必然更可靠。
权重衰减通常指训练更新时让权重向较小的幅度收缩。在线性模型和某些普通梯度下降设置下,它与 L2 惩罚具有对应关系;在自适应优化器下,直接把 L2 加进损失与使用解耦的权重衰减不应随意当成相同操作。入门阶段只需明确实现名称、作用参数和强度,照所用工具的定义记录。不同工具对损失求和或求平均的约定也可能不同,不能仅凭相同数值认定约束相同。
特征尺度会改变 L2 的实际影响。假设月费用按元表示,而入网时长按年表示,同样大小的权重对应的输入变化不同。对需要缩放的数值特征,应只用训练集估计均值与尺度,再应用到验证集和测试集。类别特征可以采用适当编码,但不要为了方便把无序合约类型编码成带大小关系的连续数值。偏置项是否受到惩罚,也应查明实现约定。
Dropout 常用于神经网络。训练时,它按设定概率随机将部分激活置为 0,使后续计算不能总依赖固定的少数信号。直觉上,这会鼓励不同计算路径共同承担预测。常见实现还会调整保留下来的激活尺度;推理时关闭随机丢弃,并使用对应的确定性计算。丢弃概率设为 0.2 表示训练时约 20% 的相应激活被随机屏蔽,具体比例会随采样波动。
Dropout 不等于随机删除原始客户记录,也不表示推理时随意缺失字段仍会安全。输入字段缺失需要专门处理。它也不是所有模型的通用开关:逻辑回归基线不需要照搬神经网络的 Dropout 配置;网络太小或数据关系简单时,较强丢弃可能让学习变困难。每次比较都应确认训练模式与评估模式切换正确,否则验证结果可能含有额外随机性。
早停用验证表现决定训练何时结束。假设监控验证损失,最小改善幅度设为 0.001,耐心值设为 5 个完整评估轮次;连续 5 次未出现满足规则的新最佳值时停止,并恢复已经保存的最佳权重。它减少后期继续适应训练细节的机会,但需要先约定监控指标、比较方向、改善规则和评估频率。若只停止训练却保留最后轮次的权重,交付模型可能不是验证表现最佳的模型。
这 3 种办法作用位置不同,可以组合,但不宜从开始就同时大幅调整。先选择简单基线,再逐项比较,才能判断收益来自哪里。尤其不能在测试集上选择早停轮次;测试集一旦反复影响这些选择,其分数就失去独立验收的意义。更复杂的优化细节留到后续学习,本课先把约束的对象、使用时机和验收证据说明白。

4 动手:对照有无正则的验证曲线
这次练习使用公开的电信客户流失数据,以“随后是否流失”为二分类目标。先保留入网月数、月费用、合约类型和付款方式等预测时能够获得的字段,删除客户编号,排除在流失发生后才生成的字段。若使用的是已经整理好的静态快照,应说明它不能充分代表真实的未来预测过程,不能凭静态随机划分声称已经证明时间泛化。
为方便观察逐轮曲线,可以使用固定结构的小型神经网络:输入经过编码的特征,接 2 个隐藏层,宽度分别为 32 和 16,输出流失概率。基线不使用权重衰减与 Dropout,对照组只增加权重衰减。固定最大训练轮数为 100,批大小为 64;学习率、初始化规则和优化器保持相同。这里的结构只是教学起点,不代表适合任何客户数据的最优配置。
先按标签分层划出 70%/15%/15% 的训练、验证、测试数据,并保存记录归属。此处假定每个客户只出现 1 次且不存在额外分组依赖。缺失值填补、数值标准化和类别编码的拟合都只能发生在训练集。验证集出现训练时没有的类别,应按事先约定的未知类别策略处理。若检查到重复客户或时间依赖,应先更换划分方法,再开展后续实验。
为了看清完整轨迹,这轮曲线比较可以暂不触发早停,所有组都画到 100 个轮次,同时标记各自最佳验证轮次。随后交付训练再启用已约定的早停规则。每个轮次结束后,切换到评估模式,分别计算完整训练集与验证集的数据损失;训练集评估也应关闭 Dropout。把正则惩罚单独记录,避免把“含惩罚的训练目标”与“不含惩罚的验证损失”直接比较。
建议记录如下实验表。固定阈值 0.5 只是为了让这轮模型对照保持可比;如需选择业务阈值,随后另用验证集完成,并明确它属于模型方案的一部分。
| 实验 | 唯一主动改变项 | 每轮记录 | 选择依据 |
|---|---|---|---|
| A | 衰减系数为 0 | 数据损失、验证损失、验证 F1 | 固定的验证规则 |
| B | 衰减系数为 0.001 | 相同字段与阈值 | 相同的验证规则 |
| C | 衰减系数为 0.01 | 相同字段与阈值 | 相同的验证规则 |
示意结果可能是:A 的训练损失从 0.62 降到 0.18,验证损失在第 24 轮达到 0.43 后回升到 0.59;B 的训练损失最终为 0.31,验证损失在第 46 轮达到 0.40;C 的训练与验证损失都停在约 0.55。这个结果支持“适度约束在本次划分中改善了验证损失”,也提示过强约束可能欠拟合。它不支持“有正则一定优于无正则”,更不能跳过验证 F1 与少数类召回率的比较。
公平比较还要包含 A 在第 24 轮的最佳状态,而不应拿 A 的最后状态去对比 B 的最佳状态。如果早停本身就能取得相近成绩,应如实记录,而不是把后期过拟合全部算成权重衰减的独立收益。对筛出的少量候选可使用 3 个预先确定的随机种子,报告平均表现与波动范围;这些结果体现训练随机性,不能被称为完整的统计置信区间。
最后输出曲线、实验配置、最佳轮次和验证指标表。到此仍不需要查看测试分数。若 B 只把曲线画得更平滑,却让实际关心的流失召回率变差,就应继续分析阈值与分类别结果。动手的产物是可解释的选择证据,而不是预设“正则组必须胜出”的展示图。

5 约束强度与拟合能力取舍
正则强度像限制模型自由度的旋钮。约束很弱时,模型有能力学习真实细节,也可能利用不稳定的巧合;约束很强时,预测更不容易随少量样本变化,却可能把有价值的细节同时压掉。合适的位置依赖模型结构、样本规模、噪声水平和任务目标,不存在脱离这些条件的通用最优数值。
可以先用较少候选探索数量级,例如对同种权重衰减实现比较 0、0.0001、0.001、0.01,再围绕表现较好的范围细化。不要默认 0.001 到 0.002 与 0.1 到 0.101 有相同的探索价值。还要限制尝试次数:验证集虽然不直接参与权重更新,反复依据它挑选方案,也会逐渐迎合它的偶然性。实验预算与选择规则最好在观察结果前写清楚。
选择时应同时看能力与稳定性。若候选配置的平均 F1 接近,但某个配置在不同种子间波动更大,就需要判断这种不稳定是否可接受。若提升只出现在某个分组,应检查样本量与标签质量。验证集只有很少的稀有类时,新增或错判少量样本就可能明显改变召回率;显示到很多小数位不会让证据变充分。
阈值也会改变取舍。约束加强后,输出概率可能更靠近中间区域,在阈值 0.5 下,原本略高于阈值的正样本可能变成负预测。此时召回率下降,未必意味着排序能力同样恶化。如果 ROC-AUC 接近、F1 却明显下降,可以在验证集上检查其他阈值;但阈值降低通常会带来更多误报,必须同时报告 precision,不能用调阈值遮盖代价。
对不均衡任务,还应查看 PR 曲线或 PR-AUC,并始终附上正类比例。PR 类指标聚焦 precision 与 recall 的关系,其数值会受类别比例影响,不能把不同流失率的数据集结果直接作高低排名。约束强度的选择因此往往是满足条件后的取舍,例如在 precision 不低于某个业务底线时尽量提高 recall,而不是追逐某个孤立的最高分。
下面的滑块把这种关系画成教学示意。移动参数会改变训练损失、验证损失和稀有类召回率,使你看到“训练更难”和“新样本更好”有时可以同时出现,也看到约束继续增强后会失去什么。图中有限个点不代表真实任务的普遍曲线;实际选择必须回到固定划分上的测量结果。

6 常见坑:只降训练损失当作成功
最常见的错误是把训练损失当成交付指标。模型可以越来越确信训练集的答案,甚至记住错误标签,同时在验证集上逐渐恶化。排查时先确认画出的到底是数据损失还是带惩罚的总目标,再确认各次实验使用了相同定义。若日志混用了按批平均与按样本平均,或者在训练与评估中使用不同随机机制,曲线差异可能部分来自统计口径。
更隐蔽的问题是数据泄漏。对全部数据先标准化再划分,会让验证与测试分布参与预处理参数估计;把流失确认后生成的“关户原因”作为输入,则直接带入了目标之后的信息。图像任务中,同张原图的不同裁剪若落入训练与验证,也会制造过于乐观的结果。文本任务中,同段评论的复制版本或同来源的近重复句子也需要按来源分组处理。
正则化不能修复泄漏。泄漏字段通常具有很强的预测力,适度压缩权重后仍可能维持虚假的高分。发现泄漏应删除不合时序的输入、重新划分,并从预处理开始重新训练;旧验证分数不能继续用来证明效果。若测试集也受到污染,就需要符合目标场景的新独立评估数据,而不是只在报告里补句说明。
类别不均衡会让平均指标制造另一种假象。如果真实流失比例为 10%,始终预测“不流失”就有 90% 的准确率,但流失召回率为 0。此时加强正则后即使准确率略升,也可能只是模型更偏向多数类。应核对混淆矩阵、正类 precision、recall、F1,以及各类别支持数。若采用类别权重或重采样,也要作为独立实验因素记录,不能与正则强度同时改变后把所有收益归给正则化。
分布漂移则发生在训练与使用环境不同的时候。例如新套餐上线后,月费用的范围与合约类型发生变化;短文本分类器遇到新的缩写;图像分类器遇到不同光照。模型在原验证集上表现良好,并不保证覆盖这些变化。需要用时间留出集或目标环境样本检查,还可以比较字段缺失率、类别比例及关键分组指标。更强的 L2 不能保证解决这些变化。
排查顺序应从证据可信度开始:先检查划分、标签时序和预处理,再检查指标口径与类别分布,然后检查训练是否正常,最后讨论正则强度。这样能避免把数据问题误诊为模型容量问题。每次修复后保留原因和新的实验编号;如果改变了划分,前后分数应明确属于不同评估条件,不能把它们当成同张排行榜上的直接升级。

7 案例:过强 L2 抹平稀有类信号
考虑使用公开的 20 Newsgroups 语料构造短文本分类练习。把正文截取为事先约定长度的片段,并在实验记录中写明截取规则;移除可能直接暴露来源标签的头部信息。选择 1 个主题作为正类、其余选定主题作为负类,再通过预先固定的抽样方案让正类占 8%。这属于人为构造的不均衡练习,不代表原语料天然具有相同比例,也不能据此推断现实主题流行程度。
使用词频或 TF-IDF 特征配合带 L2 的逻辑回归,便于看清约束的作用。词表与 IDF 统计只在训练集拟合;按重复内容或来源分组后,再在可行范围内保持标签比例。某些主题词只在少量正类文本出现,却对区分该主题有用。当 L2 过强时,相关系数可能被压向较小值,模型对这些文本的正类分数随之降低。这里的“抹平”是幅度被压缩的直觉,并不表示 L2 会把所有稀有词权重精确变成 0。
假设验证集有 1000 条文本,其中 80 条为正类。适度 L2 的模型在固定阈值下得到 TP=48、FP=24、FN=32、TN=896;precision 约为 0.67,recall 为 0.60,F1 约为 0.63,准确率为 94.4%。过强 L2 的模型得到 TP=16、FP=2、FN=64、TN=918;precision 约为 0.89,recall 为 0.20,F1 约为 0.33,准确率却升到 93.4% 以上。
这个示例中,过强 L2 的准确率为 93.4%,仍然看起来较高,但它比适度 L2 的 94.4% 更低;不能写成“准确率提升证明成功”。关键在于:它漏掉了 64 条正类文本,precision 的提升也无法代表整体取舍更好。若验收只设“准确率超过 90%”,这 2 个模型都会过关,而严重的召回损失会被忽略。指标门槛必须围绕漏报与误报代价制定。
进一步诊断时,先抽看新增的漏报文本,检查它们是否集中包含低频主题词,再比较相关特征的系数幅度与概率分布。如果多数新增漏报的分数只是从阈值上方移到下方,降低阈值可能恢复部分 recall;若正负样本排序已经明显混杂,仅靠阈值不能恢复原有区分能力。要将这个判断与 ROC-AUC、PR 曲线及具体错例共同记录,而不是从混淆矩阵直接猜测 AUC 数值。
修复可以从降低 L2 强度开始,随后独立评估类别权重、词表最小频次和阈值策略。不要立刻取消全部约束:稀有词也可能是拼写错误、用户名或偶然引用。应核对它是否在多个独立样本中重复提供有效信息,以及在时间变化后仍然成立。对少数类的保护不等于相信每个罕见特征,而是要求它的真实收益获得足够证据。

8 把泛化验收写进训练方案
训练方案要让其他人能够复查“为什么选它”。先写任务与预测时点:输入来自哪个时刻,输出要支持什么决策,正类代表什么,误报与漏报各有什么影响。再写数据边界:来源、版本、时间范围、去重规则、分组字段和划分清单。仅写随机种子不足以恢复数据边界,因为数据文件变化后,同个种子也可能对应不同样本。
接着把实验控制写清楚。列出固定的特征、预处理、模型结构、优化器和训练预算;明确本轮主动改变的是 L2、Dropout 还是早停规则。记录系数所对应的具体实现,而不是只写“加了正则”。约束施加在哪些参数上、数值特征如何缩放、验证何时执行,都会影响别人能否重复实验与理解曲线。
验收指标应包含主要目标与保护条件。例如把正类 F1 设为主要选择指标,并要求正类 recall 不低于 0.60、precision 不低于 0.55。这些数值只是教学门槛,实际应由数据和使用代价决定。如果候选都未满足条件,结论应该是当前方案尚未达标,而不是从中挑出最高分后改写门槛。必要时可明确“验证损失用于早停,F1 用于候选比较”,避免把不同用途混在一起。
候选范围与选择次数同样应受控制。先用有限组合筛选,再对少量候选重复训练;记录失败结果,而不只留下最优曲线。如果标签稀少、划分偶然性明显,可以在开发数据内部采用交叉验证提高判断稳定性,但按客户或时间分组的限制仍然适用。交叉验证不能把未来信息变成合法输入,具体实现留给后续实验课。
方案冻结后,才在测试集上评价选定模型、预处理和阈值,报告主要指标、混淆矩阵、样本量与重要分组表现。如果测试失败,要承认这次独立验收没有通过。可以重新开发,但继续围绕同个测试集调参后,它已经承担开发角色;后续需要新的独立证据,不能持续把反复查看的结果称作从未参与选择的最终测试。
上线前还应说明适用范围和观察计划。客户流失模型可以按新老客户、合约类型和月份监测;图像模型可以检查采集设备与光照分组;文本模型可以观察语言风格和新词变化。有标签延迟时,先监测输入变化,再在真实标签到齐后复算指标。输入变化只是告警线索,不能单独证明性能下降;触发再评估的条件应与业务风险和标签可得性一起约定。

9 从正则化与泛化走向CNN(A23)
下一课将进入卷积神经网络 CNN。图像中相邻像素往往共同描述边缘、纹理和局部形状;如果把每个像素都当成互不相关的表格字段,模型就需要从数据中自行发现许多空间关系。CNN 通过关注局部区域、在不同位置复用参数,为图像任务引入适合空间结构的学习方式。具体卷积计算与网络层次将在 A23 展开。
这种结构选择也会影响泛化。参数共享让模型不必为每个位置分别学习完全独立的局部规则,表达方式因此受到约束。但它没有免除过拟合风险:数据少、标签噪声大或训练过久时,CNN 仍可能记住训练样本。进入新模型后,本课的训练、验证、测试边界仍然适用,权重衰减和早停也仍需要通过验证证据选择。
如果继续使用 Fashion-MNIST,可以保留公开测试集作为最终验收,从官方训练部分另划验证集。先记录简单基线的分类别 precision、recall 和 F1,再比较 CNN 的改进集中在哪些服饰类别。不要只因为平均准确率上升就忽略“衬衫”类召回率下降,也不要在每次改变网络后马上查看测试结果。新结构的价值应在相同评价边界下比较。
图像增强是后续会遇到的另一种训练约束:在保持标签有效的前提下改变训练图像,让模型少依赖无关细节。例如轻微平移是否合理,需要由任务决定;随意翻转文字可能改变含义,强裁剪可能删掉关键物体。增强只应用于适当的训练流程,验证与测试的处理规则应固定。它可以扩展模型见到的变化,却不能制造缺失人群或新设备的完整真实分布。
带到 A23 的核心习惯,是把结构、约束和验收分开说明。结构决定模型擅长表达什么,正则化影响它如何利用训练证据,独立评价检验这些选择在目标样本上是否有效。只要始终能够回答数据来自哪里、选择依据是什么、哪些错误仍未解决,就能在模型变复杂时继续保持判断清晰。
放进方案里
在训练方案中写明:本次任务是根据客户当前的入网月数、月费用、合约类型与付款方式预测随后流失,预测时不可获得的关户结果不得进入输入。数据按客户去重;若目标是预测未来月份,则采用时间划分并标明各时间段。训练、验证、测试清单分别保存,预处理统计只由训练集生成,测试集在模型与阈值冻结后使用。
以固定结构和训练预算建立基线,本轮只比较权重衰减强度,候选为 0、0.0001、0.001、0.01。每轮记录不含正则惩罚的训练数据损失、验证损失、正类 F1 与召回率。早停监控验证损失,最小改善为 0.001,耐心值为 5 次评估,停止后恢复最佳权重。保留全部候选记录,并对入围配置用 3 个固定种子检查波动。
以验证 F1 作为主要选择依据,同时要求正类召回率不低于 0.60、精确率不低于 0.55;阈值在验证集选择后冻结。这些门槛需在真实项目中按干预成本确认。验收报告同时提供混淆矩阵、ROC-AUC、正类比例、主要分组表现及错例,不能用训练损失下降替代泛化改善,也不能仅凭高准确率通过不均衡任务。正则收益须与无衰减基线各自的最佳验证轮次比较;若提升小于种子间波动,应标记证据不足,不能宣称稳定改善泛化。
若验证恶化,先查泄漏、重复样本、标签时序和预处理,再检查优化与正则强度。若稀有类召回下降,比较新增漏报、特征系数和阈值变化,单独实验修复措施。测试未达标则记录验收失败,重新开发后补充独立评估证据。交付时保存数据版本、配置、最佳轮次和模型,并约定按月份及客户分组复查真实指标,输入变化触发调查,标签到齐后确认是否需要重训。
10 小结:下一步CNN(A23)
正则化帮助模型减少对训练偶然性的依赖,合适强度由验证证据决定。训练损失下降、训练与验证差距缩小、平均准确率较高,都不能单独证明泛化成功。需要同时检查绝对表现、少数类错误、数据边界和目标环境。
自测时回答 3 个问题:为什么无正则基线也应比较最佳验证轮次?为什么过强 L2 可能提高 precision 却损害 recall?为什么发现泄漏后必须重新训练与评价?能够把答案落到数据、曲线和混淆矩阵上,就具备进入 A23 的基础。
下一课用 CNN 学习图像中的局部空间规律,并继续沿用本课的独立验收习惯。