本文是吴恩达《机器学习》视频笔记系列的一部分,具体对应于第6周的第12个视频。
该视频主要探讨如何通过量化指标评估机器学习系统的性能。然而,没有数据支持的机器学习系统如同无根之木,难以生长。因此,本节的重点在于讨论机器学习中常用的数据集。
在之前的课程中,已经提到,在不清楚具体情况下投入大量精力收集数据并不明智。因为并不是所有收集到的数据都能发挥作用,这样做可能会浪费资源。然而,在满足特定条件的情况下,大数据集确实有助于提升算法的表现。那么,这些条件是什么呢?接下来的内容将解答这个问题。
假设我们需要设计一个机器学习模型,使其能够区分一些非常相似的词语,如“to”、“two”和“too”,以及“then”和“than”。
在2001年,当时的一些算法已经相当先进。通过使用不同规模的训练数据集对这些算法进行训练,发现随着训练数据量的增加,模型的准确性也随之提高。如下图所示:
从图中可以看出,即使是相对简单的算法,当其拥有足够多的训练数据时,也能取得良好的表现。因此,在机器学习领域,大数据集和算法同样重要。有人甚至提出:“掌握数据即掌握一切。”
以早餐需要两个鸡蛋为例,我们可能面临的问题是如何区分“two eggs”、“to eggs”和“too eggs”。为了实现这一点,我们需要构建一个特征向量x,其中包含足够的信息,以便模型能够准确识别“two”。实际上,只要关注“eggs”这个词,就能确定正确的答案。在这里,“eggs”一词已经提供了足够的信息来做出判断。
然而,很多时候仅凭少量数据无法得出准确的结果。例如,仅凭房屋面积很难预测房价,因为北京和鹤岗的房价差异巨大。
可以通过以下方式检验:选取某个实际问题,邀请该领域的专家,并提供他们一些特征x,看看专家能否利用这些特征自信且准确地预测出正确的结果y。
那么,大数据在何时才能发挥其价值呢?可以从两个方面来看待这个问题:一是从算法的角度出发,考虑特征的维度,是否需要尽可能多的特征;二是从训练集的角度出发,是否需要尽可能大的数据集以避免过拟合。
简而言之,我们所需要收集的训练数据量应与算法所需的特征维度相匹配。维度越高,需要的数据量也就越大。