跳转至

P1-5.1 学习(learning)会改变什么

Section ID: P1-5.1 Version: v2026.07.20

第 4 章已经把现实问题整理成模型可处理的 inputoutputfeaturerepresentationparameter 关系。

现在要把问题再往前推进一步:当我们说模型在学习时,模型内部到底是什么发生了变化?

在 AI 里,learning 是一个更宽的概念,表示在经历经验数据之后,模型在某个任务上的表现变好了。其中,training 是更具体的过程:模型一边看 examples,一边调整内部数值,让输出误差减小。这里的内部值主要指参数,尤其是 weightsbiases

在 Part 1 中,learningtrainingfitting 的基本区分会在这一节固定。parameterweightbias 的基本含义已经在 4.3 先整理过,inference 的执行视角会在紧接着的 5.2 再展开。这里先专注于分清:到底什么发生了变化,以及 是什么过程制造了这种变化

但如果把这句话读得太宽,就会出现危险。说模型会学习,并不意味着它像人一样理解经验、理解世界。这里把术语先收窄成下面这样:

learning = 有了经验数据之后,任务表现得到改善的宽概念
training = 为了贴合数据和目标而调整模型内部值的过程

三个基准

这里说的“学习”,不是在说模型像人一样学会了什么,而是在更窄地说明:到底什么被改了。先抓住下面三个基准。

基准 为什么重要 本节所需的理解水平
learning 很宽,而 training 是它里面的具体过程 这样能减少中文里两者都被翻成“学习”时的混淆。 learning 读成变化后的结果,把 training 读成调整数值的过程。
training 主要调整的是参数(parameter) 这样会自然连到后面的权重、损失与优化。 理解模型内部值会为了贴合数据而变化。
这里的“学习”不是理解或意识,而是任务表现的改善 这样能避免把人的学习和模型学习夸张地混在一起。 把它读成:有了经验数据之后,效果可测地变好。

learningtrainingfittinginference 一开始听起来很像。先把位置简单分开就够了。

术语 极简含义 本节中的角色
learning 经验之后更广义的改善 指“到底什么变得更好了”的外层概念
training 调整内部值的具体过程 让模型标准贴合数据与目标的步骤
fitting 在某个工具里把模型状态对齐到数据上 常与 fit 这类 API 连在一起的实务说法
inference 使用已学习值去生成新输出的阶段 训练之后的使用阶段

这里保持的区分是:learning 是宽的结果,training 是值的调整,fitting 是某种执行形式,inference 是使用阶段。

为什么叫 learning

机器学习里的 learning 并不是指模型像人一样获得理解或意识,而是一个更窄的技术性说法。

Deep Learning 一书介绍了 Tom Mitchell 的定义:如果一个程序在经历了经验之后,能够在某个任务上的表现变好,我们就说它学到了东西。这里最关键的是三个词。

元素 在机器学习里的意思 客服消息例子
experience 模型看到的数据或例子 过去的客服消息与标签
task 模型要完成的工作 客服消息分类
performance measure 用来判断是否进步的标准 分类准确率、人工复核结果

所以我们之所以使用 learning,是因为模型看到了类似“经验”的数据,内部值被调整了,并且在定义好的任务上按可测标准变得更好了。

经验数据进入
模型内部值被调整
任务表现变好
所以我们把它叫作 learning

这种说法和人的学习只在非常有限的地方相像:过去经验会影响后面的行为或判断。但人的学习还包括理解、记忆、语境、目的、身体经验和社会互动;机器学习里的 learning 通常被更窄地定义成:数据、目标、表现标准与内部值调整。

所以本书说“模型在学习”时,应当读成下面这个意思:

模型看到了数据,
围绕既定目标,
调整了用来计算输出的内部值。

把 learning 和 training 分开读更安全

在研究和技术文档里,learningtraining 并不总是被当成一组绝对严格的对立词。learning algorithm 往往就包含训练过程,日常技术文档里 train a modellearn from data 也经常自然连用。

尽管如此,它们的重心仍然不同。Learning 更常指经验之后性能改善这一更宽的现象或问题设置;training 更常指使用数据去调整模型参数的具体过程。

因为中文里两者经常都被翻成“学习”,这两个层次很容易被混到一起。为了减少混淆,本书会先这样读。

英文表达 本书里的优先理解 中心问题 例子
learning 学习 经验之后表现有没有变好? 看过客服数据之后分类效果提升了
training 训练 内部值是怎么被调整的? 权重和偏置为了减小损失而被更新
fitting 拟合 是否把模型状态对齐到了给定数据? 运行 model.fit(X, y)
inference 推理执行 / 模型执行 是否利用已学习值产生了新输出? 把新消息分到配送类

从这个角度看,learning 是更宽的结果,而 training 是其中一个代表性的过程。

learning:到底什么变得更好了?
training:通过什么过程把值改掉了?

这个区分最好按流程来读,而不是死记成一张分类表。Learning 是更宽的,training 是里面最典型的实现过程,而 inference 则是用训练结果去处理新输入的下一阶段。

同一个场景,放在不同层次上,说法也会不同。比如说“模型学会了客服消息分类”,这更接近结果侧:也就是面对新消息时,表现比以前更好。相反,说“模型用客服数据训练过”,更接近过程侧:也就是它利用带标签的例子调整过内部值。

例如,“模型学会了客户咨询分类”是一种宽说法。把它拆开会更准确:

training:利用过去的咨询和标签调整了模型参数。
learning:因此模型在新咨询上的分类表现比以前更好了。
inference:模型把调整好的参数应用到新咨询上,生成分类结果。

所以这一节题目里的“学习(learning)会改变什么”,其实是面向初学者的宽表达。只要正文进入内部值调整,我们会更准确地称它为 training 或“学习过程”。

不同学习类型,经验与信号也不同

前面的客服消息例子最接近 supervised learning:输入句子与期望输出标签会一起给出,模型会被训练成减少预测与标签之间的差距。但不是所有 AI 学习都长这样。

类型 经验数据 调整信号 入门直觉
supervised learning 输入加正确标签 预测与标签之间的差距 像拿着答案做题
unsupervised learning 没有标签的数据 数据里的结构、聚类或表征 没有答案表也要找出结构
reinforcement learning 状态、动作、奖励 动作之后得到的奖励 试动作并朝更高回报方向走

所以,“训练就是减少预测和标签的差距”这句话,只是帮助理解监督学习的最简起点。强化学习里,核心会转成动作(action)与奖励(reward);无监督学习里,重点会转成数据结构或表征本身,而不是人给的标准答案。

Deep learning 又是另一个维度。它不是和前面三类并列的“学习类型”,而是一种利用多层神经网络学习表征的建模方式,它可以和监督学习、无监督学习、自监督学习或强化学习结合。

学习类型:性能是靠什么经验和信号变好的?
deep learning:表征和参数是通过什么结构学出来的?

这里仍然先以监督学习例子建立“内部值被调整”的直觉。强化学习和深度学习的更细差别,会在 P1-8、P1-9,以及 Part 4、Part 5 再回来。

5.1 讲的是 learningtraining 的直觉,不会深入 loss functiongradient descentbackpropagationoptimizer 的公式和实现。那些内容会在 Part 4 和 Part 5 再展开。

这里也不会详细讲 inference。5.2 会单独处理它。这里仅提及足够多的部分,以便先把训练和后续使用区分开:训练时改过的值,会在后面真正运行模型时被使用。

通过训练调整内部值的基准

  • training 理解成调整模型内部值的过程。
  • 区分 learningtraining
  • 不把监督学习、无监督学习、强化学习和深度学习混成同一个类别。
  • 看见 parameterweightbias 怎样和学习连起来。
  • loss 理解成指导学习方向的信号。
  • 区分学习不是把整份数据原样存下来。
  • trainingfittinginference 的边界做准备。

training 是根据例子调整标准的过程

Google 的 Machine Learning Glossary 会把 training 解释成:找出构成模型的理想参数的过程。训练时,系统读取例子,并一点点调整参数。

继续看客服消息分类的例子:

输入句子 希望输出
“我想退款。” 退款
“配送什么时候到?” 配送
“商品寄来时是坏的。” 换货
“可以取消付款吗?” 退款

一开始,模型可能并不知道哪些线索该更强地连向哪些输出。训练就是让这些内部标准一点点往更合适的方向调过去。

例子输入
-> 模型预测
-> 与期望输出比较
-> 沿着差距变小的方向调整内部值

这个“差距”的数值化形式,就是 loss。Google 词汇表也会把监督学习里的损失解释成:模型预测离标签有多远的度量。

这里先把 loss 理解成下面这样就够了:

loss 大 = 模型输出和期望输出差很多
loss 小 = 模型输出更接近期望输出

真正变化的主要是参数

4.3 把 parameter 解释成:模型把输入变成输出时使用的、可调整的内部值。到了 5.1,可以再加一句:

training 就是改变 parameters 的过程

Google 词汇表把参数解释成模型在训练中学到的权重与偏置。尤其 weight 会控制某个值对另一个值的影响有多强,而训练就是去找到更适合任务的这些值。

把客服消息分类极度简化后,可以直观想成下面这样:

线索 学习前 学习后期望的状态
退款 和哪个输出更相关还不清楚 更强地连向退款输出
配送 和哪个输出更相关还不清楚 更强地连向配送输出
损坏 和哪个输出更相关还不清楚 更强地连向换货或补发输出
取消 可能混在退款和配送条件里 会和周围线索一起被更合适地利用

这并不是在真实展示模型内部,而是在帮助理解:学习到底在改什么。学习前,输入线索与输出之间的关联标准可能还不合适;学习后,这些内部标准会根据大量例子被重新调整。

初学者常见的误解是:听到“模型变了”,就以为整个结构都被重建了。在入门阶段,更安全的理解是:模型的大体框架不变,而框架里的值在变化。比如“接收客服句子并输出分类分数”这个模型结构可以保持不变,而 退款 线索该看多重、配送 线索该更靠近哪个输出,会通过训练被调准。也就是说,训练通常更像“在同一套结构里把内部标准调好”,而不是“每次都重新发明一种模型”。

bias 会调整默认位置

如果说权重调整的是输入线索的影响,那么 bias 可以理解成:当线索很弱或几乎没有时,输出默认站在哪个位置。

例如,如果一个服务里的大多数客服消息都和配送有关,那么即使证据不强,模型也可能稍微偏向配送。这种默认倾向也可能成为学习对象。

weight:某个线索要被看得多重?
bias:当证据不强时,输出默认从哪里开始?

这个直觉主要对线性模型和神经网络有帮助。不是所有模型都会以同样的方式显露内部结构。例如决策树或规则系统,就会有不同的内部形式。

学习不是背答案表

如果把学习理解成“把数据背下来”,就会误解机器学习。当然,大模型确实可能记住或再现训练数据的一部分,这会在后面的版权、隐私与安全部分再回来看。

但学习的主要目标并不是把训练数据原样存住,而是找出对新输入也有帮助的关系。Deep Learning 一书就强调,要把“在训练数据上拟合得很好”和“在新数据上也能泛化(generalize)”区分开。

在客服消息例子里:

方式 它怎么工作 局限
单纯记忆 只有输入和过去完全一样时才给出一样答案 一旦表述稍微变化就会很弱
人工写规则 按人写下的词与条件作答 例外与语境一多就很难维护
监督学习模型 用很多例子去调整输入与输出之间的关系 非常依赖数据质量和任务定义

例如,下面两句表达不同,但业务意图可能很接近:

我想退款。
可以取消付款吗?

学习式模型想做的,是把这种“不同表达可以通向相同输出”的关系,在训练目标允许的范围内调整出来。当然,也不能因此就说模型“像人一样理解了退款的意思”。更安全的表述是:

学到的模型,是按照训练数据和学习目标,
被调整成可以计算输入表征与输出之间关系的结构。

学习会朝减少 loss 的方向移动

任何学习过程都需要一个标准,告诉系统什么叫“更好”。loss function 就是把这个标准数值化。

比如,一个分类器可能出现下面这种情况:

输入 希望输出 模型预测 直觉上的 loss
“我想退款。” 退款 退款
“配送什么时候到?” 配送 退款
“商品寄来时是坏的。” 换货 配送

现实训练里,模型通常会使用更细的分数或概率,而不是简单的对错判断。但一旦 loss 被算出来,训练过程就会沿着让它变小的方向去改内部值。

Google 词汇表会把 gradient descent 解释成:通过反复调整权重与偏置,让损失变小的一种数学方法。

这里最重要的不是公式,而是角色:

loss:当前预测有多差的信号
training procedure:一种把内部值往“loss 更小”方向推的方式

训练不是一次完成,而是反复进行

训练通常不会只看一个例子就结束。它会在许多例子上来回重复,一点点调整内部值。

初始模型
-> 查看一批例子
-> 比较预测与标签
-> 计算 loss
-> 调整 parameters
-> 再次查看例子

如果 loss 持续下降,我们可以说模型正在越来越贴合训练数据。但“只对训练数据越来越好”并不总是好事,因为模型可能会对新数据变差,这就是过拟合(overfitting)问题。

所以,学习并不只是让训练损失变低就算结束。数据切分、验证(validation)、泛化(generalization) 与过拟合,会在 Part 4 更详细展开。这里只先留下一个关键点:学习过程中,内部值会被反复调整。

表征也可能一起变化

4.3 把 representation 解释成:把原始数据改写成模型更容易计算的形式后的结果。在较传统的机器学习里,常常是人先设计 features,然后模型在这些 features 之上学习 parameters。

到了深度学习,这条边界会更模糊。神经网络的多层(layer)会在输入流过时形成内部表征,而学习会同时调整那些生成表征所需的权重。

把客服消息例子再简化一点:

句子
-> 词或 token 表征
-> 内部向量表征
-> 消息类型输出

所以在深度学习里,学习不只是改变最后一步的输出标准,也可能改变中间表征的生成方式。正因如此,深度学习里比起“人是不是手工设计了 feature”,更常关注“模型能不能自己学出有用的 representation”。

这里先抓住 中间表征也会一起改变 这个视角。它怎样继续连到隐藏表征(hidden representation)、embedding,以及深层结构的作用,会在 P1-3.3 和 Part 5 再回来。

拟合(fitting)这个词也会一起出现

当你使用机器学习工具时,经常会同时看到 trainingfitting。scikit-learn 会把调用 fit 的行为描述为 fitting,并把 fit 之后的状态称为 fitted。一个 fitted estimator 通常会在内部属性(attributes)中保留预测所需的信息。

在这一节里,可以先这样区分:

说法 含义
training 按照数据和目标调整模型内部值的过程
fitting 在某个工具或统计流程里,把模型状态对齐到数据上的执行
fitted/trained model 已经拥有调整好内部值、可以处理新输入的模型

在实际代码里,常常会通过 model.fit(X, y) 这样的 API 来触发训练。就概念说明而言,本书会把 learning 当作更宽的外层词,把 training 作为内部值调整过程来用。

parameter 这个词的层级(level)还要再小心

正如 4.3 已经提醒过的,parameter 在不同语境里会指不同东西。Google 词汇表用它指模型在训练中学到的权重和偏置;而 scikit-learn 词汇表则也会把传给 estimator 构造器的设置值叫作 parameter,并明确说明这和统计学里的参数含义不同。

为了减少混淆,本书先按下面方式命名:

区分 例子 本书里的表达
学习中被调整的内部值 weights, biases 模型参数(model parameters)
学习过程或模型结构的设置值 learning rate, max depth 超参数(hyperparameters) 或模型设置值
生成时控制输出选择的值 temperature, top-p, max tokens 生成设置值(generation settings)
库构造器的参数 max_depth=3, random_state=42 API 参数或设置参数

所以,当 5.1 说“学习会改变参数”时,说的是第一种,也就是模型内部通过训练调整出来的值。像 LLM 的 temperature 这样的生成设置值,并不是模型通过学习得到的内部参数。

学习(learning)和模型执行(inference)不同

Traininginference 经常被并排提到,但它们不是同一个过程。Google 词汇表在解释权重时,会把 training 说成寻找合适权重的过程,把 inference 说成利用已学习权重生成预测的过程。

这里先保留下面这条边界:

区分 做什么 内部值通常会变吗?
training 根据例子调整内部值,让 loss 变小 会变
inference 使用已学习的内部值去处理新输入并生成输出 通常不变

当然,真实系统里可能还会出现在线学习、持续学习、缓存、检索或工具调用等更复杂的结构。但这条基础区分依然有用:

training 改变值 inference 使用已经改变的值

5.2 会把 inference 单独展开来看。

再用一个小例子看一遍

假设我们要做一个客服消息分类模型。

目标:根据客服句子判断消息类型
输入:客服句子
输出:退款、配送、换货、其他
训练数据:消息句子与人工标注的标签

学习前,模型可能会像下面这样出错:

输入 希望输出 学习前预测
“我想退款。” 退款 其他
“配送查询不到。” 配送 其他
“商品破损了。” 换货 配送

学习的作用,就是去调整内部值,让这些差距变小。学习后,模型可能会更像下面这样:

输入 希望输出 学习后预测
“我想退款。” 退款 退款
“配送查询不到。” 配送 配送
“商品破损了。” 换货 换货

但这还不够。我们仍然需要看:它能不能在训练数据里没见过的新句子上也表现得合理。

“我昨天收到的东西坏了,想再补寄一个。”

如果模型能把它判断得更接近换货或补发,而不是只能认出训练里见过的固定句子,那么我们才有理由说:它抓到了一定程度上更一般化的关系,而不只是死记硬背。

这种判断必须结合验证数据和评价标准来确认。

检查清单

  • 能把 training 解释成调整模型内部值的过程。
  • 能说明 parameter、weight 与 bias 怎样和学习联系起来。
  • 能说明 loss 是决定学习方向的信号。
  • 能区分学习不是把训练数据原样背下来。
  • 能说明 training 和 inference 的基本差别。
  • 能区分 parameter 这个词可能指模型内部值、超参数或 API 设置值。
  • 能说明:学习不是像往人脑里注入知识,而是按数据和目标去调整把输入表征映射成输出的内部值。
  • 能说明:在问“学到了什么”之前,应先问它从什么数据学习、目标输出是什么、通过什么损失标准、调整了哪些内部值。

出处与参考资料