过拟合和欠拟合
1)欠拟合:机器学习模型无法得到较低训练误差。
2)过拟合:机器学习模型的训练误差远小于其在测试数据集上的误差。
我们要尽可能同时避免欠拟合和过拟合的出现。虽然有很多因素可能导致这两种拟合问题,在这里我们重点讨论两个因素:模型的选择和训练数据集的大小。
1)模型选择
拿多项式函数举例,一般来说,高阶多项式函数(拟合能力较强)比低阶多项式函数(拟合能力较弱)更容易在相同的训练数据集上得到较低的训练误差。需要指出的是,给定数据集,过低拟合能力的模型更容易欠拟合,而过高拟合能力的模型更容易过拟合。
模型拟合能力和误差之间的关系如下图:
2)训练数据集的大小
一般来说,如果训练数据集过小,特别是比模型参数数量更小时,过拟合更容易发生。除此之外,泛化误差不会随训练数据集里样本数量增加而增大。
通俗解释
1)学渣:模型复杂度低(笨人),训练量小(不努力),训练误差大,泛化误差大,(训练集表现不好,测试集表现也不好,严重欠拟合)
2)学痞:模型复杂度高(聪明人),训练量小(不努力),训练误差小,泛化误差大,(训练集表现好,测试集表现不好,有些过拟合)
3)学痴:模型复杂度较低(笨人),训练量大(努力),训练误差大,泛化误差大,(训练集表现一般,测试集表现也一般,这种应该属于欠拟合,太笨)
4)学霸:模型复杂度较高(聪明人),训练量大(努力),训练误差小,泛化误差小,(模型复杂度和训练量结合的很好,既不欠拟合,也不过拟合)
结论
训练误差的降低并不一定意味着泛化误差的降低。欠拟合和过拟合都是需要尽量避免的。我们要注意模型的选择和训练量的大小。