机器学习分为三种范式,了解适用的是哪一种可以避免使用错误的工具。监督学习是主力:你给模型提供带标签的例子(这封邮件是垃圾邮件,这封不是),模型会学习从输入到输出的映射。分类、回归、翻译、图像描述——如果你有带标签的数据,监督学习几乎肯定是你的起点。无监督学习不需要标签:它自行发现结构。根据购买行为对客户进行聚类,将一个包含10000个特征的数据集简化为最有信息量的维度,检测不符合任何已知模式的异常网络流量。当你不知道在寻找什么时,就会使用它,这种情况比人们承认的更常见。强化学习是特例——模型通过试错学习,根据其行为获得奖励或惩罚。这就是AlphaGo击败世界冠军、机器人学习行走以及RLHF对齐大语言模型与人类偏好的方式。它也以难以正确实现而著称,这也是为什么大多数生产环境中的机器学习仍然是监督学习。
有一种持续存在的误解认为深度学习已经使经典机器学习过时了。事实并非如此。当你有500行表格数据、明确的特征集合,并且需要向监管机构解释预测结果时,逻辑回归仍然比Transformer更胜一筹。随机森林和梯度提升树(XGBoost、LightGBM)在结构化数据的Kaggle竞赛中占据主导地位是有原因的——它们训练速度快、难以过拟合、特征重要性可解释。深度学习在数据无结构(图像、文本、音频、视频)且特征过于复杂无法手动工程时表现出色。没有人再编写边缘检测滤波器,因为卷积网络能学习到更好的滤波器。没有人再编写翻译的语法规则,因为Transformer可以端到端地学习映射关系。关键在于知道自己处于哪种场景。如果数据能放进电子表格,先尝试XGBoost;如果不能,那才是神经网络展现其复杂性的时刻。
每个机器学习项目都遵循相同的循环,无论你是训练垃圾邮件过滤器还是4000亿参数的大语言模型。你从数据开始——收集数据、清洗数据、将其划分为训练集和测试集。然后提取或学习特征:在经典机器学习中,这意味着手动工程特征(词频、像素直方图、日期特征);在深度学习中,模型从原始输入中学习自己的特征。你选择模型架构,通过在训练数据上最小化损失函数来训练它,然后在保留数据上进行评估,以查看它是否真正泛化。第一次几乎从不会成功。因此你迭代——更多数据、更好特征、不同超参数、完全不同的架构。教科书上的机器学习流程与生产系统之间的差距,大多是这个循环,运行数百次,实验越来越绝望,直到某样东西足够好可以发布。
机器学习背后的理念并不新。反向传播在1980年代就已确定。支持向量机(SVM)和随机森林在2000年代初就已成熟。发生变化的是,三件事在同一时间汇聚。首先,数据:互联网生成了比任何人知道如何处理的更多有标签和无标签数据。其次,计算能力:GPU意外地完美适合神经网络所需的矩阵乘法,而云服务提供商按小时提供这些GPU。第三,算法:批量归一化、dropout、注意力机制和更好的优化器使得训练之前过于深且不稳定的网络成为可能。这三者中的任何一个单独存在都不足以实现这一切。1990年代已有大量数据,但没有人拥有足够的计算能力来训练它们。2000年代已有GPU,但训练百层网络的算法技巧尚未被发现。正是这三者同时出现才触发了当前的浪潮——这也是机器学习从学术好奇转变为十年内最受资助的技术领域的原因。