感知机的承诺:让数据来改判断依据
建议用时:25 分钟(含练习)
学习目标
能够解释感知机改参数与人类写规则的差别,并用四格真值表说清单个阈值单元为什么解不了异或。
本节产出
一张学习对编程对照卡
核心知识:让数据改参数,和让人写规则,是两件事
判断一个系统是不是在"学习",看的不是它有没有参数,也不是它有没有越用越准,而是那条判断依据由谁产生。
感知机的形状只有一层:每个输入配一个权重,把输入乘上权重再相加,结果过了阈值就输出"是",没过就输出"否"。它的学习规则也只有一句:拿这份输入的真实答案和机器的答案比一次,答错了,就把推向错误方向的那些权重往反方向挪一点点。挪完再看下一份。一轮轮下来,那条分界线自己挪了位置。
这件事在 1958 年之所以是新东西,不在算法复杂,在于判断依据的来源换了。此前做识别,是人把"什么样的算一类"翻译成规则写进去;感知机之后,人只提供样例和答案,边界形状由误差在样例上推着走。今天所有大模型训练都还站在这个换法上,只是权重从几百个变成几千亿个,阈值判断变成一层层的复合函数。
- 人写规则:标准在人脑里,代码只是把它抄一遍;出错说明人没写全
- 数据改参数:标准没人写过,它只存在于这组数字里;出错说明数字该挪
它卡在哪一格:一条直线切不开异或
单个阈值单元只能做一件事:在输入空间里画一条直线(特征更多时是一个平面),线这边算"是",那边算"否"。所以它能表达的关系叫线性可分。异或不行,而且不是"训练不够久"的不行,是几何上不可能。
把四格真值表写开,约定"加权和 ≥ 阈值 t 就输出 1":
| 输入 (x1, x2) | 应为 | 需要满足什么 |
|---|---|---|
| (0, 0) | 0 | 加权和 0 不过线 |
| (1, 0) | 1 | w1 单独就过线 |
| (0, 1) | 1 | w2 单独就过线 |
| (1, 1) | 0 | w1 与 w2 之和不过线 |
从 (0, 0) 那行得阈值必须是正数,否则零输入也会过线。再看 (1, 0) 与 (0, 1) 两行:w1 与 w2 都不小于这个正阈值,两式相加,它们的和至少是阈值的两倍,必然超过阈值。可 (1, 1) 那行却要求这个和不超过阈值。同一个和既要超过又不超过,无解。
结论要说得准:不是感知机"笨",是它的表达能力正好等于一条直线。多加几层就能把直线折起来,这在一九五几年就已经是已知方向;真正的缺口是没有能训练多层网络的办法。这个缺口怎么补、补上之后又误了谁,是第二节的内容。
最容易混的一处
"参数变了"不等于"在学习"。工程师每次看错邮件就手动改一遍关键词表的权重,数字也在动,也越用越准,但每一次改动的原因在人的脑子里,不在样例的误差上。可用的判据有三条,缺一条就要怀疑:改动是否由误差直接触发;这套改动能否在没人看过的数据上继续发生;改动本身能否被机器复述成规则。三条都过,才叫它在学。
图里那条从"比较答案"回到"权重"的箭头是本节的全部重点。去掉这条箭头,剩下的就是一台按人写死的规则做加法的机器;加上这条箭头,边界位置才第一次不由人决定。
案例:两套系统,哪一套在学习
设想两套虚构的垃圾邮件分类器,特征完全一样(发件域、是否含链接、词频),训练用的邮件也完全一样。
| 维度 | 系统甲 | 系统乙 |
|---|---|---|
| 参数来源 | 工程师按误判手工调权重表 | 程序按误判自动调权重 |
| 每次改动 | 人看完错例后决定改哪一格 | 误差给出方向,步长固定 |
| 新邮件 | 只有人工补过的那一类表现变好 | 未看过的邮件上误差也稳定下降 |
| 停止条件 | 人有空就改 | 验证集误差不再下降 |
两套都在变准,但只有乙满足前面那三条判据:改动由误差触发、能在没见过的数据上继续起作用、改动过程可以整段复述成一段程序而不是几十条口头规则。甲的增长实际来自工程师的人力,参数只是他把判断抄了一遍。
这个区分在历史上不是学术洁癖。围绕 1958 年那次演示的公开叙述里,长期流传着"机器将能说话、走路、有自我意识"一类预期。本课不引用这些说法,因为本轮检索只回到二手转述,够不上"回到原文核过"这条门槛。这恰好是本课的第一次示范:一条听起来很像真的历史说法,出处不够硬,就只能标成未证,不能因为它流行就当事实讲。
动手练习
- 判定四个系统。输入:四段系统描述(一段人写死规则、一段按误差自动调权、一段人工整理词表但每次改动都记录在案、一段自动调权但只在人工挑的十份样例上验证过)。任务:各写一行"在学习 / 不在学习"和依据。预期输出:四条判定,每条点明三格判据里过了哪几格。验收条件:至少两条判定给出两格以上依据,且不许用"更聪明""更先进"当理由。
- 手推异或。给定三组赋值 (w1, w2, t) = (0.6, 0.6, 0.5)、(0.4, 0.4, 0.5)、(0.8, -0.3, 0.5),任务:对每组把四格真值表算完,指出它错在哪一格。预期输出:三张算完的表,其中第三组必须说明它靠负权重解决了哪一格、又在哪一格失败。验收条件:至少一组能指出"改权重只能挪直线,不能弯直线"。
- 交一张"学习 vs 编程"对照卡,四行:判断依据由谁写、改动由什么触发、遇到没人预料的样例会怎样、失败时修的是哪一层。验收条件:右列不许出现"训练数据很大"这类只谈规模的说法。
参考答案与推演
完成检查
- 不用"训练"这个词,也能把感知机的权重改动讲清:谁给出误差、误差推向哪一边、挪完之后谁变好了。
- 能自己走完异或那四格表,指出矛盾出在同一个和既要大于阈值又要小于阈值,而不是回答"书上都说不行"。
- 对照卡右列不含"数据多""算力大",四条差异都落在判断依据的来源上。
参考与来源
- d2l 中文:4. 多层感知机:本节"一条直线"与线性可分的现代写法,分章号已于 2026-10-23 回本页核过。
- Rosenblatt 1958 原文书目记录:DOI 实测可解析(经 doi.org 逐跳到 APA PsycNet)。本轮只核到书目信息,未取得正文,因此本节没有引用它里面的任何原话。
感知机的承诺:让数据来改判断依据
3 道题 · 及格分 60 分