上单元介绍了以下模型,该模型将测试集中的许多树误分类了:
上述模型包含许多复杂的形状。更简单的模型能否更好地处理新数据?假设您将复杂的模型替换为一个非常简单的模型:一条直线。
在对新数据进行泛化时,简单模型比复杂模型的效果更好。也就是说,简单模型在测试集上的预测结果比复杂模型更好。
简单一直以来都胜过复杂。事实上,人们对简约的偏好可以追溯到古希腊。几个世纪后,14 世纪的一位修士奥卡姆的威廉将这种对简单性的偏好正式化为一种哲学,称为“奥卡姆剃刀”。这一哲学仍然是许多科学(包括机器学习)的基本原理。
练习:检查您的理解情况
您正在推导一个物理方程。以下哪个公式更符合奥卡姆剃刀原则?
包含三个变量的公式。
三个变量比十二个变量更符合奥卡姆剃刀原则。
包含十二个变量的公式。
十二个变量似乎过于复杂,对吗?
史上最著名的两个物理公式(F=ma 和 E=mc2)各包含三个变量。
您正在着手一个全新的机器学习项目,即将选择您的第一个特征。您应选择多少个地图项?
选择 1-3 个似乎具有强大预测力的特征。
数据收集流水线最好先从一两个特征开始。这有助于您确认机器学习模型是否按预期运行。
此外,当您根据几个功能构建基准后,就会感觉自己在不断进步!
选择 4-6 个似乎具有强大预测力的特征。
您最终可能会使用这么多功能,但最好还是先从少量功能开始。功能越少,不必要的复杂功能就越少。
选择尽可能多的特征,以便开始观察哪些特征具有最强的预测能力。
先从小规模开始。每个新特征都会为训练数据集添加一个新维度。维度增加时,空间体积会快速增加,以至于可用的训练数据变得稀疏。数据越稀疏,模型就越难学习实际重要的特征与标签之间的关系。这种现象称为“维度诅咒”。
正则化
机器学习模型必须同时满足两个相互冲突的目标:
- 能很好地拟合数据。
- 尽可能简单地拟合数据。
为了让模型保持简单,一种方法是惩罚复杂的模型;也就是说,在训练过程中强制模型变得更简单。对复杂模型进行惩罚是一种正则化。
丢失和复杂性
到目前为止,本课程已表明训练的唯一目标是尽量减少损失;即:
$$\text{minimize(loss)}$$
如您所见,仅专注于最大限度地减少损失的模型往往会过拟合。更好的训练优化算法可最大限度地减少损失和复杂性的某种组合:
$$\text{minimize(loss + complexity)}$$
遗憾的是,损失和复杂性通常成反比。随着复杂性的增加,损失会降低。复杂性越低,损失就越大。您应找到一个合理的中间点,使模型对训练数据和真实数据都能做出良好的预测。也就是说,您的模型应在损失和复杂性之间找到合理的折衷。
什么是复杂性?
您已经了解了几种量化损失的方法。您如何量化复杂性?通过以下练习开始探索: