LeetCode题目记录
1.泛化能力(generalization)
对于模型,我们不仅要求它对训练数据集有很好的拟合(训练误差),同时也希望它可以对未知数据集(预测集)有很好的拟合结果(泛化能力),所产生的测试误差被称为泛化误差。
度量泛化能力的好坏,最直观的表现就是模型的过拟合(overfitting)和欠拟合(underfitting)
过拟合和欠拟合是用于描述模型在训练过程中的两种状态,一般来说,训练会是这样的一个曲线。下面的training error,generalization error分别是训练集和测试集的误差。
训练刚开始的时候,模型还在学习过程中,训练集和测试集的性能都比较差,这个时候,模型还没有学习到知识,处于欠拟合状态,曲线落在underfitting zone,随着训练的进行,训练误差和测试误差都下降。
随着模型的进一步训练,在训练集上表现的越来越好,终于在突破一个点之后,训练集的误差下降,测试集的误差上升了,这个时候就进入了过拟合区间overfitting zone。
不过也不是说什么训练过程,都会满足上面的曲线。
(1) 模型训练过程中,训练集的误差一定一直低于测试集吗?未必。
如果这两个集合本来就取自于同样的数据分布,比如从一个数据集中随机采样,那么有可能测试的误差从一开始就低于训练集。不过,总体的趋势肯定是不变的,两者从一开始慢慢下降直到最后过拟合,训练集的误差低于测试集。
(2) 模型的训练一定会过拟合吗?这也不一定!
如果数据集足够大,很可能模型的能力不够始终都不会过拟合。另一方面,有很多的方法可以阻止,或者减缓模型的过拟合,比如正则化。
2.正则化(regularization)
正则化的目标: 模型的经验风险和模型复杂度之和达到最小,即结构风险达到最小。