基本术语
• 错误率 (error rate): m 个样本中 a 个分类错误,错误率 E = a/m
• 精度 (accuracy): 1 − a/m
• 经验误差 (empirical error)/训练误差 (training error): 学习器在训练集上的误差
• 泛化误差 (generalization error): 学习器训练后在新样本上的误差
(注:误差指的是学习器的实际预测输出和样本的真实输出之间)
过拟合
毫无疑问我们希望能够得到泛化误差最小的学习器,然而由于我们手中的数据集有限,因此实际情况中我们通常是努力得到一个经验误差最小的学习器,但我们就会遇到一个新的问题:过拟合(Overfitting)
过拟合是由于模型的学习能力相对于数据来说过于强大,反过来说,欠拟合是因为模型的学习能力相对于数据来说过于低下。
一般来说,欠拟合的问题比较好解决,例如增加神经网络的训练轮数,增加决策树额分支等,而过拟合的问题相对难以解决。过拟合在训练中是无法完全避免的,只能做到缓解。
想要更好的理解这一点,我们要先去理解机器学习中的 NP 和 P:
• P: P stands for ”Polynomial time”, 如果我们能够在一个多项式时间内计算出问题的解,也就是说算法的时间复杂度是多项式形式,那么这个问题就属于 P 问题
• NP: NP stands for ”Nondeterministic Polynomial time”, ” 非确定性” 的意思是,我们考虑的情是,一台神奇的计算机可以猜出问题的解决方案,然后我们只需在多项式时间内验证这个解决方案是否正确。请注意,找到解本身(没有这台神奇的猜测计算机)并不需要多项式时间。
• NPC: NPC stands for ”Nondeterministic Polynomial Complete”, NPC 必须满足两个条件:1.本身是一个 NP 问题 2. 所有的 NP 问题都可以约化为它。
(注:如果我们可以用解决 B 问题的算法,同时解决问题 A,那么我们就称作可以把问题 A 约化为 B,比如一元一次求解问题可以约化为二元一次问)
• NP-hard: 满足 NPC 问题的第二条,但不一定要满足第一条,NP hard 的范围最广。如 Figure
2.1所示
why过拟合无法彻底避免
接下来我们就能够更好的理解为什么过拟合无法避免:
在机器学习问题中,我们需要解决的问题通常是 NP hard 问题,这是因为我们能够获得的数据集是有限的,我们只能够在多项式时间里得到训练集组成的空间的解,无法实现囊括所有的样本间,因此也就不可能在多项式时间内得到解决这个问题的解(我们能够得到的仅仅是训练集的解),如果我们认为可以彻底的避免过拟合,那么也就意味着我们可以在多项式时间内得到问题的解,即意味着我们要解决的问题实际上是一个 P 问题,我们就人为的构建了 P==NP 的逻辑,然而这在实际情况中显然是矛盾的。