第03章 学习系统

设想有个名叫亚历克斯的年轻人,好奇心旺盛。他偶尔吃完东西会不舒服,却不确定究竟是哪种食物导致的。他反复出现过敏反应,于是迫切想要找出诱因,开始展开个人调查。为了弄清楚自己的身体敏感源,亚历克斯着手寻找规律与线索。

在这个例子中,亚历克斯的行为本质上和一个简单的机器学习模型别无二致。他:

  1. 收集数据(自己的饮食与身体症状)

  2. 寻找数据规律

  3. 依据规律做出预测

  4. 对照实际情况验证预测结果

  5. 结合新数据或矛盾信息,调整预测模型

尽管亚历克斯的学习过程充分说明大蒜会诱发他的不适,但我们必须意识到,他这套非正规“模型”存在局限性。和所有学习模型一样,预测误差可能由多重因素导致。比如,有时他吃了大蒜却没有不适,这可能和食用量、大蒜的食用形式(生蒜或熟蒜)有关;也可能存在外部因素,例如大蒜和其他食物同食影响了身体反应;还有可能在某些日子里,压力、潜在的其他疾病等干扰因素,掩盖或加重了大蒜引发的不适。因此,即便亚历克斯对自己的发现深信不疑,他也明白现实场景充满不确定性,必须持续完善、重新审视自己的结论。

这个生活化的例子可以说明:从经验中学习——通过观察规律、验证假设——正是机器学习的核心思想。机器的学习流程与之类似,只是通常会处理海量数据,步骤也更加规范化。

机器学习主要源自计算机科学,同样侧重于解读数据,这和上一章我们探讨的统计学习内容相近。不过,它的核心重点往往是做出精准的预测或决策,即便不一定能解释背后的深层原因。你可以将其理解为工程师打造工具:只要工具能可靠运作,工程师不必完全弄懂其内部机械构造的每一处细节。

那么,为什么机器学习有时会被称作统计学习?因为许多机器学习技术都植根于统计学,随着两个领域不断发展,二者的方法与目标出现了大量重叠。如今,二者的界限往往十分模糊。对大多数人而言,统计学习可被视作机器学习的近亲。二者都旨在从数据中学习,但侧重点有所不同:统计学习通常偏向解释原理,而机器学习更倾向于优化预测效果。从本质上讲,机器学习是让计算机依据数据自主做出决策或预测,而非给计算机下达一步步的指令。

机器学习的目标是构建一个包含特定参数的模型,使其能够对全新、未见过的数据做出精准预测。本书后续章节会详细讲解三大核心步骤:预测、训练、超参数调优

一切都始于数据——无论是图像、文本、经济指标、民意调查、公共健康记录,还是就业数据。这些数据经过整理后,会作为机器学习模型的训练输入。一般来说,数据量越大,模型效果越好。

数据准备就绪后,流程分为三个关键阶段:

  1. 训练(参数估计)阶段:模型从训练数据中学习。主要有两种方法:一种通过优化选定的质量指标,搜寻最优模型,得出点估计结果;另一种是贝叶斯推断(本书不深入讲解)。无论采用哪种方法,核心目标都一致:运用数值技术,估算出最贴合数据的参数。

  2. 超参数调优(模型选择)阶段:此步骤中,我们评估不同模型及其超参数(无法直接从数据中估算的设定值),筛选出在验证集或测试集上表现最佳的模型。最终目的是选出能适配未知新数据的模型。

  3. 预测(推理)阶段:将训练好的模型应用于从未见过的测试数据,此阶段模型的结构与参数已固定,任务就是用模型对新输入数据生成预测结果。

简单区分一下:参数是训练过程中习得的内部数值,例如回归或神经网络中的权重;而超参数在训练开始前就已设定,比如学习率、决策树的最大深度。超参数调优的作用,就是找出这些设定值的最优组合,实现最佳模型性能。

模型完成训练、调优与验证后,可应用于各类实际场景。在机器学习领域,“学习系统”指的是一类算法或模型:随着接触更多数据,自身性能不断提升。这类系统并非针对每项任务都进行显式编程,而是通过识别数据规律、基于输入做出决策,实现自主适配。

依据用户或机构的目标不同,这些系统具备不同功能:

举例来说,产业经济学家可借助机器学习,制定最优定价策略、高效分配资源、做出合理的招聘决策,所依据的数据包括消费者需求、竞品定价、产品表现、劳动力市场趋势、技能档案等。在医疗领域,机器学习模型可助力筛选性价比高的治疗方案、优化医院运营、为高危人群制定预防性干预措施、为药品定价提供参考、设定医保保费标准,所用到的数据涵盖患者治疗效果、医疗资源供给、公共健康趋势、药物疗效、保险理赔记录等。

至此,我们介绍了预测、训练、超参数调优这三大核心步骤,以及机器学习模型在不同行业的应用。下一小节,我们将分步讲解:如何筛选、训练、评估能良好适配未知新数据的模型。

3.1 学习系统

机器学习系统是一套常用于实际机器学习项目的动态框架。这类系统通常遵循包含多个关键阶段的迭代流程。整个流程始于数据收集,在此环节创建、维护并持续更新数据集。该步骤是基础,因为数据的质量与相关性会极大影响最终结果。

下一阶段是实验阶段。在这一阶段,对收集到的数据进行深度探究,提出并验证假设,筛选、评估合适的模型,同时搭建训练与预测流水线。开发出稳定可靠的模型后,部署阶段会将其投入实际产品或系统中使用。不过部署并非最终步骤,运维阶段会持续监控、更新模型,确保模型适配不断变化的数据规律,稳定可靠地运行。

数据收集、实验、部署、运维,所有这些阶段共同构成完整的机器学习系统。需要注意的是,各阶段所需的专业技能不同,通常由不同领域的专业人员负责。例如,在行业场景中,部署与运维环节一般由工程师或数据基础设施团队主导。而经济学家、社会科学家与健康研究人员,主要参与数据准备、模型开发与模型评估工作。即便如此,了解完整的工作流程,对跨学科环境中的协作与沟通十分重要。

本节将介绍机器学习系统在实际中的结构、构建预测模型的典型步骤,以及从数据中学习的核心理论思想。同时探讨:什么样的模型适合预测,什么样的模型适合解释。

机器学习系统所使用的算法与模型,会随着处理更多数据而持续优化。它们无需为每项任务编写详尽程序,而是通过学习数据规律、基于输入数据做出决策。本书重点讲解机器学习模型,即这些系统的核心组件。模型将数据与代码结合,生成预测结果或决策。我们该如何寻找、训练模型,并确保模型在未知数据上表现良好?

以下为分步流程概述:

  1. 划分数据:将数据集划分为两大主要部分:训练集与测试集。

  2. 合理使用训练数据:通常约 \(80\%\) 的数据用于训练。训练集内部再拆分为两部分:估计数据(用于训练模型)与验证数据(用于评估模型性能)。

  3. 保留测试数据:测试数据单独留存,不参与训练与模型筛选,仅在最终阶段评估所选模型在未知数据上的表现。

  4. 筛选备选模型:训练前,选定若干候选模型。

    • 参数模型:确定模型的函数形式,待后续估计参数。

    • 非参数模型:选择纳入的特征/变量,设定调优参数的取值。

  5. 训练模型:利用估计数据(通常为训练集中的大部分数据),训练(拟合)每一个候选模型。

  6. 核验对比模型:训练完成后,使用模型从未见过的验证数据评估各模型,以此预估模型的泛化能力。

  7. 选择最优模型:挑选在验证数据上表现最佳的模型。

  8. 最终训练:整合全部训练数据(估计数据+验证数据),重新训练选定模型,充分利用现有信息。

  9. 测试:最后,使用未参与任何过程的测试数据,评估训练完成的模型在新数据上的泛化能力。

必须区分验证数据与测试数据的作用:验证数据用于指导模型筛选,测试数据用于评估模型最终性能

以上概述用通俗语言总结了典型的机器学习工作流。后续章节会使用标准专业术语深入讲解这些步骤。若遇到陌生术语或概念无需担心,本书后续会逐一详细阐释。

  1. 学习器拥有一组观测样本。这是一组随机选取的对象(样本),每个对象包含一系列特征(特征向量 \(X\)标签/结果(\(y\)。我们将这组成对数据称为训练集\(S=((X_1,y_1)\dots(X_m,y_m))\)

  2. 我们要求学习器生成一套预测规则(预测器或分类器模型)\(\hat{f}(x)\),用于预测新样本的结果。

  3. 我们假设训练集\(S\)数据生成模型(DGM)或某种真实标签函数\(f(x)\)生成。学习器无法获知真实的预测函数\(f(x)\),只能通过样本集\(S\)对其进行近似。

  4. 学习器基于样本集\(S\)生成预测规则\(\hat{f}(x)\),该规则与真实函数\(f(x)\)存在差异。我们使用损失函数\(L_{(S,f)}(\hat{f})\)衡量预测规则的优劣,量化真实函数\(f(x)\)与学习器预测函数\(\hat{f}(x)\)的差距,该差距也被称为泛化误差风险

  5. 算法的目标是找到\(\hat{f}(x)\),使其相对于未知的\(f(x)\)误差最小。关键在于:由于学习器不知道\(f(x)\),无法直接计算损失函数,因此转而计算训练误差(也称经验误差、经验风险),该误差用于衡量\(\hat{f}(x)\)\(y_i\)的差异。

  6. 因此,学习过程可定义为:寻找能最小化经验误差的预测器\(\hat{f}(x)\),该过程称为经验风险最小化(ERM)

  7. 接下来的问题是:哪些条件会导致经验风险最小化效果差,哪些条件会使其效果好?

若使用训练数据(样本内数据点)最小化经验风险,可能会使\(L_{(S,f)}(\hat{f})=0\),该问题称为过拟合。解决该问题的常规方法是:在部分数据(样本内/可见数据点)上训练模型,同时使用测试数据(样本外/未知数据点)执行经验风险最小化。该方法通过限制模型的特征数量约束学习模型,也被称为学习过程中的归纳偏置

统计分析中始终存在两个总体:总体样本。总体通常未知、难以获取,我们将样本视为总体的随机子集。我们开展的几乎所有统计分析,都基于这份可大可小的样本数据集。即便样本随机抽取自总体,也未必能代表总体,存在抽样数据无法反映总体特征的风险。直观来说,样本是我们了解总体的窗口,我们用样本估计总体的未知参数,这是推断统计学的核心任务;或是用样本构建预测规则,预判总体的未知结果。

当输出结果为数值型(非二分类)时,我们通常使用均方误差(MSE)这类损失函数,评估预测器或估计量的性能。我们用符号\(\hat{f}(x)\)统称二者。但一个优秀的估计量,是否也能成为优秀的预测器?下一章我们会了解到:估计误差小的估计量,在预测任务中依旧可以表现优异。为何会出现这种情况?我们将在下一章深入探讨该问题。

后续章节,我们将详细分析估计与预测的区别,探究模型在何种条件下能很好地泛化至未知数据。

注释

  1. 对于二分类输出结果,分类误差(另一类损失函数)便具有实际意义,我们将在第 \(10\) 章对其展开讲解。