模型选择
训练误差与泛化误差
- 训练误差:模型在训练数据上的误差
- 泛化误差:模型在新数据上的误差
训练数据集与验证数据集
-
训练数据集∶训练模型参数
-
验证数据集:选择模型超参数 ,用来评估模型好坏的数据集

常将数据集分为两部分,一部分作为训练数据集用来训练模型,一部分作为验证数据集用来将训练好的模型在验证数据集上比较精度与误差。
根据精度与误差的结果的大小来更换超参数,例如学习率,模型大小。然后再在验证数据集上测试精度与误差,从而比较更换前后超参数好坏
验证数据集一定不能和训练数据集混在一起
-
例如采用制作好的MGNET作为训练集,然后网上再爬取图片作为测试集,但MGNET中本来就存在很多网上爬取的图片,这导致训练集和测试集内容重合了
k-折交叉验证
- 非大数据集上通常使用k-折交叉验证
将数据分为K份,依次将第 i 份数据作为验证数据集,其他的部分作为训练数据集,最后算出循环K次的平均误差

过拟合和欠拟合
- 过拟合会将噪音也全部拟合住,导致遇到新数据的泛化能力差,过拟合与欠拟合都是不好的结果
- 但在实际的实践中,在模型足够大的情况下,通过各种手段控制模型容量,达到降低泛化误差的目的,会承受一定程度的过拟合

模型容量
模型容量:拟合各种函数的能力
- 低容量的模型难以拟合训练数据
- 高容量的模型可以记住所有的训练数据
模型容量需要匹配数据复杂度,否则可能导致欠拟合和过拟合

- 数据简单的话应该选择比较低的模型容量,就会得到正常的结果
- 数据复杂如果选择低模型容量,会训练不好模型,导致欠拟合
模型容量的估计

注:d+1中的 1 为偏移,m为中间层核心的个数,k为输出的个数
VC维
- 支持N维输入的感知机的VC维是N+1
- —些多层感知机的VC维 O(N log2 N)
例如:

数据复杂度多个重要因素
- 样本个数
- 每个样本的元素个数
- 时间、空间结构
- 多样性
统计机器学习提供数学工具来衡量模型复杂度,但在实际中一般靠观察训练误差和验证误差