文章目录

1 模型选择
1.1 训练误差与泛化误差
- 训练误差(Training Error):
- 模型在训练数据集上的误差
- 类似于学生在模拟考试中的成绩
- 可能因为"背题"而虚高,不代表真实能力
- 泛化误差(Generalization Error):
- 模型在新数据上的误差
- 类似于学生在真实考试中的成绩
- 是我们真正关心的指标

区别
-
GRE备考举例
通过背诵历年真题(训练数据)可能在模拟考试(训练误差)中表现很好,但在真实考试(泛化误差)中表现不佳
-
银行贷款举例
模型可能发现"穿蓝色衬衫"与违约的虚假关联(训练数据中的巧合),但这种模式在新数据中无效
1.2 验证集与测试集的正确使用
三种数据集的作用:
- 训练集(Training Set):
- 用于训练模型参数
- 相当于学生的日常作业和练习题
- 验证集(Validation Set):
- 用于评估模型好坏、选择超参数
- 相当于模拟考试,用于调整学习策略
- 常见错误:与训练集混用,导致"数据泄露"
- 测试集(Test Set):
- 理论上只能使用一次的数据集
- 相当于高考,用于最终评估
- 严重错误:在测试集上调参,导致结果虚高

实际应用中的陷阱
-
图像分类案例
使用Google搜索图片作为验证集,但这些图片可能已经包含在训练集(ImageNet)中
-
论文研究案例
在测试集上反复调参并报告最佳结果,属于学术不端行为
1.3 K折交叉验证
基本原理
当数据量有限时,直接划分验证集会浪费训练数据。K折交叉验证的算法如下:
- 将训练数据随机打散后分割成K个大小相似的子集
- 进行K次模型训练和验证:
- 每次使用K-1个子集作为训练数据
- 剩余1个子集作为验证数据
- 计算K次验证结果的平均值作为模型性能估计

K值选择
- 常用值:K=5或10
- 大数据集:可取较小值(如2或3)以减少计算量
- 小数据集:可取较大值(如10或N,即留一法)以充分利用数据
优点:
- 充分利用有限数据
- 减少因数据划分带来的随机性影响
缺点:
- 计算成本高,需要进行K次训练[citation:用户消息]
- 不适合超大数据集
1.4 超参数选择流程
基于K折交叉验证的超参数选择方法:
- 定义一组候选超参数组合
- 对每个超参数组合执行K折交叉验证
- 计算每个组合的平均验证误差
- 选择表现最好的超参数组合
- 使用全部训练数据(不划分验证集)重新训练最终模型
2 过拟合与欠拟合
2.1 概念
过拟合和欠拟合是机器学习模型在训练过程中常见的两种不良状态,反映了模型容量与数据复杂度之间的不匹配关系:
- 欠拟合(Underfitting):
- 模型在训练集和测试集上都表现不佳
- 训练误差高,泛化误差也高
- 类比:学生完全不复习考试内容,考试时连基本题型都无法理解
- 过拟合(Overfitting):
- 模型在训练集上表现极好,但在测试集上表现差
- 训练误差低,泛化误差高
- 类比:学生死记硬背所有练习题答案,但遇到新题型就束手无策

现象 | 训练误差 | 泛化误差 | 模型表现 | 类比 |
---|---|---|---|---|
欠拟合 | 高 | 高 | 训练集和测试集都表现差 | 完全不复习的学生 |
过拟合 | 低 | 高 | 训练集表现好,测试集表现差 | 死记硬背的学生 |
理想状态 | 低 | 低 | 训练集和测试集都表现好 | 真正理解知识的学生 |
2.2 模型容量与数据复杂度
理解过拟合和欠拟合的关键在于把握模型容量(模型复杂度)与数据复杂度的匹配关系:
- 模型容量:模型拟合各种函数的能力
- 低容量模型:如线性模型,只能学习简单模式
- 高容量模型:如深度神经网络,可以学习复杂模式甚至记住所有训练数据
- 数据复杂度:由以下因素决定
- 样本数量
- 每个样本的特征维度
- 数据中的时空结构(如图像的空间结构、时间序列的时间结构)
- 类别的多样性(分类任务中的类别数量)

当模型容量与数据复杂度不匹配时,就会出现问题:
- 简单模型+复杂数据 → 欠拟合
- 复杂模型+简单数据 → 过拟合
2.3 误差关系曲线
误差-容量曲线直观展示了这一关系:

曲线特点
- 训练误差:随着容量增加单调下降,理论上可降至零(模型记住所有训练数据)
- 泛化误差:先下降后上升,呈U型曲线
- 初始阶段:增加容量有助于学习有用模式,泛化误差下降
- 超过某点后:模型开始学习噪声和特定样本细节,泛化误差上升

最佳容量点位于泛化误差最低处,此时:
- 模型足够复杂以捕捉数据主要模式
- 但不过度复杂以致学习噪声和无关细节
2.4 VC维理论
统计学习理论中的VC维(Vapnik-Chervonenkis dimension)提供了衡量模型容量的理论工具:
- 定义:对于一个分类模型,VC维是它能"打散"(完美分类)的最大数据集大小

- 例子:
- 二维感知机的VC维为3(可分类任意标记的3个点,但无法处理XOR问题的4个点)
- N维感知机的VC维为N+1
- 多层感知机的VC维约为N×logN

VC维的意义
- 理论上限定了训练误差与泛化误差之间的差距
- 为模型选择提供理论指导
VC维在深度学习中的应用有限,因为:
- 深度神经网络的VC维难以精确计算
- 实际深度学习模型复杂度远超传统理论适用范围