训练误差和泛化误差
训练误差:模型在训练数据上的误差
泛化误差:模型在新数据上的误差
我们更关心的是泛化误差,而不是训练误差。
验证数据集和测试数据集
验证数据集:一个用来评估模型好坏的数据集
测试数据集:只用一次的数据集
k-折交叉验证
在没有足够多数据时使用(这是常态)
算法:
(1)将训练数据分割成k块
(2)for i =1,…,k:
使用第i块作为验证数据集,其余的作为训练集
(3)报告k个验证机误差的平均
常用: k=5或10
过拟合和欠拟合
模型容量\数据 | 简单数据 | 复杂数据 |
---|---|---|
低 (简单模型) | 正常 | 欠拟合 |
高(复杂模型) | 过拟合 | 正常 |
模型容量
(1)拟合各种函数的能力;
(2)低容量的模型难以拟合训练数据;
(3)高容量的模型可以记住所有的训练数据。
估计模型容量
(1)难以在不同的种类算法之间比较
(2)给定一个模型种类,将有两个主要因素
参数的个数、参数值的选择范围
VC维(很少用)
统计学习理论的一个核心思想
对于一个分类模型,VC等于一个最大的数据集的大小,不管如何给定标号,都存在一个模型来对他进行完美分类
VC维的用处
其提供为什么一个模型好的理论依据,可以衡量训练误差和泛化误差之间的间隔。但在深度学习中很少使用,因为其衡量不是很准确,且计算深度模型的VC维很困难。
数据复杂度
多个重要因素:样本个数,每个样本的元素个数,时间、空间结构,多样性
总结
模型容量需要匹配数据复杂度,否则可能会导致欠拟合/过拟合
统计机器学习提供数学工具来衡量模型复杂度
实际中一般靠观察训练误差和验证误差