P1-3.3 规则方法与表征学习¶
Section ID:
P1-3.3Version:v2026.07.23
3.1 看过人直接写规则这种方式的优点与限制,3.2 看过从数据中学习模式的基本结构。这一节不再把整个学习流程再讲一遍,而是把焦点缩到一个点上:输入到底是以什么形式被系统处理的?
核心问题很简单:人直接写规则的方式,和模型从数据中学习表征的方式,究竟有什么不同?
这里不是详细解释深度学习内部,而是先固定 rule、feature、representation 和 parameter 分别在什么位置,避免把它们混在一起。
在 Part 1 中,representation、vector、activation 与 representation learning 的基准含义固定在这一节。example、label、training 与 generalization 的基本结构已经在 3.2 中建立,这里只在解释“输入在模型内部会变成什么形式”以及它与规则式方法的差异时按需要重新连接。
这一节整理以下问题:
- 规则式方法与表征学习,在处理输入方式上到底有什么不同?
feature与representation的关系,怎样理解才比较稳妥?- “学到的表征很强,但可能更难解释”这句话究竟是什么意思?
这一节先固定规则与表征所在位置的差异。输入、输出、数据、特征和参数的更系统整理,会在紧接着的 Part 1 Chapter 4 继续展开。
区分规则、特征与表征的位置¶
- 区分规则式方法与表征学习。
- 理解特征(feature) 与表征(representation) 的关系。
- 看清人设计的特征与模型学出来的表征之间的差异。
- 理解学到的表征很强,但也可能更难解释。
- 为 Part 1 Chapter 4 里要用到的输入、输出、数据、特征与参数概念做连接。
三个基准¶
这一节关注的是模型如何处理输入的形式。下面三个点是结构上的基准线。
| 基准 | 为什么重要 | 这一节需要达到的理解程度 |
|---|---|---|
规则是 写在外面的标准,表征是 模型内部使用的形式 | 这样能看见规则式方法与学习式方法所在位置的差异。 | 区分:规则是可读的,而表征是计算用的内部值。 |
| 特征可以由人设计,而模型也可能把它变成更深的表征 | 这样会自然连到传统机器学习与深度学习的差别。 | 整理清楚人造线索与模型学到的内部形式并不是同一件事。 |
学到的表征虽然强,但会让 为什么会这样看 更难读懂 | 这样会自然连到为什么需要模型解释和评价。 | 把更广的相似性处理能力与直接可解释性下降联系起来。 |
rule、feature、representation、vector、activation 和 parameter 是整节里不断重复的核心术语。首先要留下的区分是:rule 是外部标准,feature 是从输入里抽出的线索,representation 是内部形式,vector 是数字束,activation 是中间值,parameter 是通过学习得到的标准。下面正文会再把这些词绑一次。
先把同一个问题看成两种处理方式¶
继续用客户咨询分类的例子。假设进来的句子是:
如果明天还收不到配送,我就取消。
如果用规则式方法,某个人会直接写出类似这样的条件。
如果句子里有 “配送” 和 “明天”,就分类为配送咨询。
如果句子里有 “取消”,就标成取消候选。
如果两种条件同时出现,就送去人工复核。
这些规则可以被人阅读,也比较容易追踪“哪个条件导致了哪个结果”。但代价是:人必须一直继续写条件和例外。
学习式模型会走另一条路。正如 3.2 所说,模型会从过去的咨询和分类中训练出来。这一节新增的重点是:模型会先把句子变成内部值,再利用这些内部值计算哪个类别更合理。
sentence -> internal representation -> model computation -> class score
这里真正重要的是 internal representation。模型并不是把句子原样当成和人读到的一样的东西,而是先把句子变成一组可计算的值,再利用它们做预测。
flowchart TD
Text[咨询文本]
Rule[人工编写的规则]
RuleOut[规则输出]
Rep[内部表征]
Model[训练好的模型]
ModelOut[预测输出]
Text --> Rule --> RuleOut
Text --> Rep --> Model --> ModelOut
这个图只是在说明:同一个输入可以走两条处理分支。左边是人 заранее 写好的规则直接影响结果,右边则是输入先变成模型能计算的内部表征,然后才产生预测。本节的关键不是 哪一个更好,而是区分判断标准到底是 写在外面,还是 在模型内部被计算出来。
这一节的边界:这里看的是表征,不是全部学习流程¶
3.2 讲的是训练数据、标签、模型、训练和推理的基本结构。3.3 不会把那个结构再重复,而是把问题缩小成:输入在模型内部会变成什么,以及这和人写规则有什么不同。
| 区分 | 3.2 的中心 | 3.3 的中心 |
|---|---|---|
| 问题 | 从数据中学习模式是什么意思? | 把输入变成表征是什么意思? |
| 核心术语 | example, label, model, training, inference, generalization | rule, feature, representation, parameter |
| 主要风险 | 记忆、过拟合、数据质量问题 | 表征不透明、难解释 |
| 下一步连接 | 机器学习的学习结构 | 把问题转成模型可用形式的过程 |
规则在外,表征在内¶
显式规则待在模型外部。它通常以代码、配置、政策文档或知识库的形式存在,人可以直接阅读和修改。
而学到的表征待在模型内部。它们是输入经过模型时产生的中间值,或者说,是输入在已学习参数作用下被改写后的内部形式。
| 区分 | 显式规则 | 学到的表征 |
|---|---|---|
| 位置 | 代码、配置、知识库、政策文档 | 模型内部的向量、激活值、参数 |
| 形成方式 | 人直接写出条件和结果 | 通过数据与训练过程调整出来 |
| 优势 | 易读、易审阅、较易控制 | 更擅长处理复杂模式与上下文 |
| 弱点 | 例外一多就难维护 | 很难直接解释为什么做出这种判断 |
| 修改方式 | 增删规则或调整优先级 | 调整数据、标签、特征、模型或训练过程 |
当 representation、vector、activation 和 parameter 一起出现时,它们都可能听起来像某种“内部值”。所以这里先把它们固定成一次基准,后面就可以在这个区分上继续阅读。
| 术语 | 极简含义 | 本节需要记住什么 |
|---|---|---|
| representation | 让输入变得可供模型处理的内部形式 | 人读到的句子和模型计算的形式可以不同 |
| vector | 把多个数字并排放在一起的数值束 | 表征经常就被装在这种数字束里 |
| activation | 模型某一步里实际算出来的中间值 | 可以把它理解成输入在模型里变化过程中的当前值 |
| parameter | 通过学习调整出来的内部值 | 它影响模型会如何看待同一个输入 |
首先要留下的区分是:representation 是内部形式,vector 是承载这种形式的数字束,activation 是一步计算中产生的当前值,parameter 则是通过学习被调整的值。
用一个很短的比喻,vector 可以看成承载表征的数字表,而 activation 则是这张数字表在模型某一步实际算出来时的当前数值。比如一句咨询经过一层之后,得到类似 [0.2, 0.8, -0.1, ...] 这样的结果,那么这组数既是向量形式的表征,也是该层的 activation。这里要保留的差别是:vector 是形式,activation 是某个计算时刻的值。
理解了这一层差别之后,再看“AI 自己学出了规则”这种说法,就会更谨慎。模型也许确实学到了内部标准,但那并不等于它自动生成了一份人可直接阅读的规则表。
特征可以由人设计,表征也可以被模型学习出来¶
3.2 已经把 feature 解释成模型作为输入使用的值。Feature 至少可以有两种来源。
第一种,是由人直接设计出来。
| 原始输入 | 人设计的特征 |
|---|---|
| 咨询句子 | 是否出现 refund 这个词 |
| 咨询句子 | 是否出现 delivery 这个词 |
| 咨询句子 | 句子长度 |
| 咨询句子 | 是否出现否定表达 |
| 客户信息 | 最近订单数量 |
这些特征位于“写规则”和“学更深表征”之间。人决定抽什么出来,但最终判断仍然可以交给学习式模型来完成。在这一节里,这类值会被看成 人设计的输入特征,并和后面出现的 学到的表征 区分开来。
第二种,是由模型自己学习表征。尤其在深度学习里,输入会经过多层处理,在每一层都变成不同的内部形式。所以人设计的 feature 可以成为起点,但在模型内部,这些输入仍然可以被继续变成更抽象的表征。
Stanford Encyclopedia of Philosophy 的 AI 条目曾用人脸图像举例:较低层可能先对 edge 一类线索产生反应,下一层再把它们组合成眼睛、鼻子等部件,更高层则可能对这些特征的组合整体产生反应。这种解释有助于把深度学习和“人把所有特征都直接写出来”的方式区分开。
flowchart TD
Input[原始输入]
Low[低层特征]
Mid[中层表征]
High[高层表征]
Output[预测]
Input --> Low --> Mid --> High --> Output
这个图说明,输入不一定是一开始就被“理解”的。它可能经过多个阶段,逐渐变成不同层次的表征。关键点在于:低层特征 更接近较小的线索,中间表征 更接近多条线索的组合,高层表征 则更接近更抽象的意义束。真实模型内部未必会以这样整齐的名字被存下来,但 输入会逐步变成不同表征 这个结构仍然成立。
如果继续用客户咨询分类来简化,大致可以读成这样。
| 阶段 | 人容易理解的说明 |
|---|---|
| 原文 | “如果明天还收不到配送,我就取消。” |
| 低层线索 | 配送、明天、收不到、取消 |
| 中间表征 | 配送延迟、时间条件、取消可能性 |
| 高层表征 | 客户在期限条件下请求解决问题 |
| 输出 | 配送咨询或取消相关复核 |
当然,不能把这个表直接当成真实模型内部一定就是这样“人类可读”地保存下来的结构。它只是为了帮助理解。真正重要的是:输入在模型内部会被改造成可计算的表征,而这些表征会被用来做预测。
表征一变,问题难度也会变¶
Bengio、Courville 与 Vincent 关于表征学习的综述指出,机器学习算法的成功高度依赖数据是如何被表示的。即便是同一份数据,不同的表示形式也可能让重要因素变得清晰,或者反而把它们藏起来。
例如,在咨询分类里,如果只看原始字符串,下面两句话看起来很不一样。
商品寄来时是坏的。
我昨天收到的东西已经损坏,想请你们再补发一次。
但如果按意义来读,它们都和 已经收到、损坏、换货或补发可能性 有关。好的表征,会让这些共通结构更容易被模型利用。
| 表征方式 | 模型更容易看见什么 | 可能漏掉什么 |
|---|---|---|
| 原始字符串 | 完全相同的字面重复 | 同义但不同写法的表达 |
| 人造关键词 | 重要词有没有出现 | 语境、否定、条件 |
| 学到的表征 | 多个线索的组合与更广的相似性 | 人类难以直接读出的内部标准 |
所以,在机器学习里,重要的问题不只是 该用什么算法?,还包括 输入应该先被变成什么形式?
一个学习用比喻:按意义单位去重新分组¶
当人快速做判断时,人们可能会想到类似“上下文压缩”的说法。不过在这本书里,这只是一个学习用比喻,并不是标准的神经科学术语。这里的“压缩”更接近于:人会用已经理解的概念和记住的定义,把复杂情境改写成更少的意义单位。
在认知心理学里,可以把这和 chunking、recoding 之类的说法 loosely 连起来。Miller 的经典论文解释过:人会把输入组织成熟悉的单位或块,再把这些块组合成更大的束,从而提升能处理的信息量。这个引用的作用,只是支撑“人如何处理信息”的比喻,而不是证明机器学习模型在像人一样理解。
例如,句子 如果明天还收不到配送,我就取消。 可以不像逐词那样看,而是按意义单位分组。
| 输入里看得见的表达 | 被重新分出的意义单位 |
|---|---|
| 如果明天还收不到配送 | 配送延迟与期限条件 |
| 我就取消 | 取消意图或取消可能性 |
| 整句话 | 客户在期限条件下要求解决问题 |
这个比喻的重要性不在于把表征学习解释成人类式理解,而在于说明:输入里的细节如果被重组进不同单位,判断问题可能会变得更容易,也可能更难。
学到的表征没有规则那么锋利,但可以更宽地处理变化¶
显式规则很锋利。
如果句子的意思是“改地址”,就送到配送信息修改。
但真实句子往往并不锋利。
我把收件人号码写错了。
如果还没出库,可以改送到别的地方吗?
别送之前那个地址了,改送公司。
这些句子即便不使用完全相同的 地址修改 表达,也都可能和配送信息修改有关。学到的表征在这里有优势,因为模型不只是看一个词,而是能把多条线索共同出现的方式反映到内部值里。
但这种优势同时也是风险。人很难直接看出模型到底把哪条线索看得多重要,而且模型也可能跟着训练数据里的偏差或偶然重复走。因此,使用学到的表征的系统,会更依赖评价、失败案例分析与数据复核。
| 情境 | 规则更有优势时 | 学到的表征更有优势时 |
|---|---|---|
| 法律禁止条件 | 必须被明确阻断时 | 只能作为辅助检测信号 |
| 审批流程 | 必须固定谁在什么条件下审批时 | 适合推荐例外候选 |
| 句子分类 | 关键词边界清楚时 | 表达变化多且语境重要时 |
| 图像识别 | 简单颜色或尺寸条件就足够时 | 光照、姿态、背景变化很大时 |
| 运营自动化 | 程序必须原样重复时 | 适合找异常迹象候选时 |
规则和表征并不只是彼此竞争¶
如果只把规则式方法和学习式方法分成 旧方式 与 新方式,就很难理解真实系统。很多系统会把两者一起使用。
例如,一个自动客户咨询分类系统可以像下面这样搭起来。
flowchart TD
Input[客户咨询]
Policy[显式业务规则]
Model[基于学习的分类器]
Score[分类分数]
Review[人工复核]
动作[动作]
Input --> Policy
Policy --> Model
Model --> Score
Score --> 动作
Score --> Review
Review --> 动作
这个图的意思是:前端可以先用政策规则筛掉禁止条件和必选条件,然后 模型再去计算具有表达多样性的分类候选,最后 根据分数或敏感度,再决定自动处理还是转人工复核。换句话说,这个图是为了说明:规则和模型可以在同一个系统里分担不同责任。
一个简短的角色区分练习¶
看下面这些案例,先判断核心困难更接近 规则设计、表征学习,还是 两者组合。
| 案例 | 第一时间想到的问题 | 按本节标准作出的第一判断 |
|---|---|---|
必须执行类似 如果出现身份证号,就不要存储 这样的禁止条件 | 这个条件能否被人清楚写成句子? | 更接近规则设计 |
请寄到公司、我想改收货地点、请修改配送地址 这类不同表述需要被归成同一意图 | 系统是否必须把不同表面形式看成接近同义? | 更接近表征学习 |
| 客户咨询需要自动分类,但包含敏感信息的消息要送人工复核 | 是否必须同时处理政策阻断和语义分类? | 更接近两者组合 |
| 产品图像中的细小裂纹需要被找出来 | 人能否把所有有用视觉特征都直接写出来? | 表征学习的权重更高 |
| 审批规则要求按金额区间决定审批阶段 | 问题中心是不是显式标准,而不是多样表达? | 更接近规则设计 |
这个练习的重点,不是去问 规则和表征哪个更现代,而是先分清 哪些部分能由人明确写出来,哪些部分必须从数据中学习相似性。
在这个结构里,规则负责那些必须始终遵守的政策,而模型则负责处理人难以直接写出的表达多样性和相似性。
例如,可以这样分工。
| 角色 | 主要处理方式 |
|---|---|
| 含有个人信息的咨询不自动回复 | 显式规则 |
| 分类退款、配送、换货等候选意图 | 使用学到表征的模型 |
| 分数低或敏感案例交给人工 | 规则和模型分数的组合 |
| 收集重复失败案例并增强数据集 | 运营复核与再训练 |
因此,更重要的问题并不是 规则还是模型?。更好的问题是下面这些。
哪些部分必须由人显式控制?
哪些部分可以让模型从数据中学习表征?
哪些判断应当保留给人工复核?
案例与示例¶
案例 1. 意图很像,但句子表面总在变化的咨询箱¶
假设客户因为想修改配送地址而来咨询。有人写 我想改地址,有人写 应该送到公司,也有人会说 我把收件人号码写错了。
规则式方法为了捕捉这些表达,会不断增加像 地址、修改、变更、收件人、电话号码、公司 这样的词和组合规则。这种方式易于人阅读和修改,但只要表达稍微变化,就会出现漏网;一旦再叠加否定句或条件句,规则优先级也会很快变复杂。
表征学习会比单词表更宽地处理这个问题。如果不同句子都能被归到接近 delivery-information change 的内部表征里,那么即使没有完全相同的关键词,模型也可能把它们放到相近意图附近。代价是:这种内部标准不可能像规则表那样直接被人阅读。
这个案例直接展示了 3.3 的核心差异。规则是人在外面写出来的标准,而表征是模型内部计算出来的形式。真实系统往往并不是只选一个,而是让政策固定在规则里,把表达变化的聚类交给模型。
检查清单¶
- 我可以解释规则式方法与表征学习的差异。
- 我可以解释 feature 和 representation 都是在把输入变成模型更容易使用的形式。
- 我可以区分人设计的特征和模型学出来的表征。
- 我可以解释学到的表征很强,但也可能难解释。
- 我可以把规则和模型看成责任分工,而不仅仅是竞争关系。
- 我可以解释显式规则是人能直接阅读的判断标准,在解释和控制上强,但例外和表达多样性越多,维护越困难。
- 我可以解释学到的表征是模型内部把输入变成可计算形式后的结果,擅长处理复杂模式和相似性,但不是人能直接阅读的规则清单。
出处与参考资料¶
- Stanford Encyclopedia of Philosophy, Selmer Bringsjord and Naveen Sundar Govindarajulu, Artificial Intelligence, 2018-07-12, 确认日期:2026-06-22.
- Yoshua Bengio, Aaron Courville, Pascal Vincent, Representation Learning: A Review and New Perspectives, arXiv, 2012-06-24, 确认日期:2026-06-22.
- George A. Miller, The Magical Number Seven, Plus or Minus Two: Some Limits on our Capacity for Processing Information, Psychological Review, 1956, 确认日期:2026-06-22.