活字 从规则到大模型
正在加载 3D
R1 会飞? R2 常在水里? R3 吃肉? 鸟 鱼 猛兽 草食兽 判错

这台设备或浏览器没有开启 WebGL2,这里显示同一装置的静态图;正文里的演示与文字说明照常可用。

3D 画面没能加载。

点“放球”或拉杆 · 拖动旋转 · 向下滚动,拆成事实、规则、推理引擎三层

第 01 章1943—1980s

规则与神经元

机器能靠人写的规则思考吗?

1955 年的一份提案写道:学习和智能的每个方面,原则上都能被描述得足够精确,让机器来模拟⁠[1]⁠。

动物
事实

点“放球”或拉杆 · 拖动旋转 · 向下滚动,拆成事实、规则、推理引擎三层 企鹅有羽毛、不会飞、常在水里。只有四条规则时,它会滚进“鱼”。 规则为教学自拟,示意专家系统的工作方式

写规则,还是造神经元

从 1943 年到 1980 年代,两条路几乎同时出发:一条把知识写成规则,一条模仿神经元。

  1. 1943

    人工神经元:用逻辑描述神经活动

    Warren McCulloch、Walter Pitts

    解决了什么
    神经元怎样“计算”,当时没有可以推演的数学描述。
    带来了什么变化
    把神经元简化成“输入加起来、超过阈值就输出 1”的开关单元,并说明这类单元连成网络可以实现逻辑运算⁠[2]⁠。
  2. 1950

    图灵:换一个问法

    Alan Turing

    解决了什么
    “思考”很难定义,“机器能否思考”因此无从争论。
    带来了什么变化
    提出“模仿游戏”(后称图灵测试):提问者如果分不清对面是人还是机器,就不必再纠缠定义⁠[3]⁠。
  3. 1956

    达特茅斯:“人工智能”得名

    John McCarthy、Marvin Minsky、Nathaniel Rochester、Claude Shannon

    解决了什么
    散落在数学、心理学和工程里的相关研究,没有共同的名字和目标。
    带来了什么变化
    1955 年的研究提案首次使用“人工智能”一词,次年夏天的研讨会让它成为一个独立的研究领域⁠[1]⁠。
  4. 1958

    感知机:从例子里调整权重

    Frank Rosenblatt

    解决了什么
    人工神经元之间的连接强度,要靠人手工设定。
    带来了什么变化
    感知机遇到分错的例子就自动修改权重⁠[4]⁠。约 1960 年公开演示的 Mark I 用 20×20 个光电管作输入,用电动电位器存放权重⁠[5]⁠。
  5. 1966

    ELIZA:只靠关键词的对话

    Joseph Weizenbaum

    解决了什么
    让计算机用日常语言和人一问一答。
    带来了什么变化
    靠关键词匹配和句子模板,做出像心理咨询师一样的回应。它并不理解语言,却让不少使用者觉得被理解了⁠[6]⁠。
  6. 1969—1973

    一本书和一份报告:第一次寒冬

    Minsky 与 Papert;James Lighthill

    解决了什么
    给过热的期待做了一次清算:单层感知机到底能学会什么,AI 研究兑现了多少承诺。
    带来了什么变化
    《感知机》严格证明了单层感知机的能力边界⁠[7]⁠;英国的莱特希尔报告批评 AI 未兑现承诺、难以克服“组合爆炸”,此后英国大幅削减了相关经费⁠[8]⁠。
  7. 1970s—80s

    专家系统:把专家的经验写成规则

    例:斯坦福大学的 MYCIN

    解决了什么
    通用的推理方法解决不了专业问题,机器需要领域知识。
    带来了什么变化
    MYCIN 用数百条“如果……那么……”规则诊断细菌感染、推荐抗生素⁠[9]⁠。规则系统能解释自己的每一步,但规则要人一条条写,遇到没写到的情况就会出错。
01.1

规则:把知识一条条写下来 Symbolic AI · 符号主义与专家系统

1一句话

早期 AI 的主流做法,是把人的知识写成一条条“如果……那么……”的规则,让机器按规则匹配、推理。

2打个比方

像一本厚厚的办事手册:遇到情况 A 翻到第 12 页照做,遇到情况 B 翻到第 30 页。手册写得越细,能处理的情况越多。

可手册永远写不完。遇到没写到的情况,照章办事的人只能硬套最接近的那一条,哪怕结果明显不对。首屏的企鹅就是这样被分进了“鱼”。

3动手试

ELIZA:一张关键词表,能聊多久 中文剧本为本站仿写,关键词匹配与模板替换在浏览器里真实运行
  1. ELIZA

    你好。最近有什么心事吗?

或者点一句:

这一句回答是怎么来的

  1. ①
    找关键词

    等你说第一句。

  2. ②
    按模式拆句

    —

  3. ③
    “我”和“你”对调

    —

  4. ④
    填进回答模板

    —

剧本:关键词表(12 条,优先级从高到低)
  • 6 机器 · 电脑 · 计算机 · 程序 · 人工智能 机器让你担心吗?
  • 5 妈妈 · 爸爸 · 母亲 · 父亲 · 父母 · 家里 多跟我说说你的{2}。
  • 4 不开心 · 难过 · 伤心 · 累 · 烦 · 孤独 · 孤单 · 焦虑 · 害怕 你为什么觉得{2}?
  • 4 梦 那个梦对你意味着什么?
  • 3 我觉得 · 我认为 · 我感觉 你真的觉得{3}吗?
  • 3 我想 · 我希望 · 我要 你为什么想{3}?
  • 2 我的 你的{2}?
  • 2 总是 · 一直 · 每次 能举一个具体的例子吗?
  • 2 因为 这就是真正的原因吗?
  • 1 你 我们在谈的是你,不是我。
  • 0 不是 · 没有 · 不 你为什么说“{2}”?
  • — 没有关键词 请继续说。 / 嗯,然后呢?

4怎么做到的

1966 年的 ELIZA 是规则方法最有名的演示之一。它的“剧本”是一张关键词表:每个关键词有优先级,配有分解规则(把句子按关键词拆成几段)和重组规则(把拆出的片段填进回答模板),并把“我”和“你”对调⁠[6]⁠。论文里的剧本模仿一位只追问、不评判的心理治疗师,所以哪怕程序什么也不懂,对话读起来也像在倾听。

1970 年代的专家系统把这种做法搬进专业领域。MYCIN 把感染科医生的经验写成数百条规则,每条带一个表示把握程度的“确定性因子”;推理引擎从“该用什么药”这个目标出发,倒推着逐条寻找能支持结论的规则⁠[9]⁠。

规则系统的长处是每一步都能追溯:为什么得出这个结论,可以把用到的规则一条条列出来。难处在于,知识必须由专家说出来、由工程师写下来,而人能说清楚的知识,只是他们会的一小部分。

做不到什么

  • 知识要靠人手工整理:专家说不清自己的直觉,规则只能一条条写。
  • 规则一多就会互相冲突,改一条可能牵动一片。
  • 遇到规则没写到的情况,它不会说“不知道”,而是硬套最接近的规则,给出错误答案。
01.3

人工神经元与感知机 Perceptron · 感知机

1一句话

另一条路不写规则:让许多简单的“神经元”把输入加权求和,超过门槛就输出 1,再让权重从例子里自己调整。

2打个比方

像一位按打分表办事的评委:每一项乘上它的权重,加起来超过及格线就“通过”。

感知机的学习,像这位评委不断被纠正:判错一个例子,就把相关项的权重往正确的方向挪一点;判对了就不动。

3动手试

感知机:找一条把两类点分开的直线 真实的感知机学习规则,学习率 η = 0.2;初始权重为任意设定

AND:两个输入都是 1,才输出 1。

输出 1 0 0 0 1 0011 x₁ → x₂
应输出 1应输出 0分错了
0 0 w₁ w₂ b 下一个要检查的样本 Σ 0 z = 0
-0.60
0.40
0.30

4怎么做到的

1943 年,麦卡洛克和皮茨把神经元简化成阈值单元:输入是 0 或 1,加起来超过阈值就输出 1。他们说明这类单元组合起来能实现“与”“或”“非”等逻辑运算⁠[2]⁠,但每个连接都要人来设计。

1958 年,罗森布拉特的感知机加上了学习⁠[4]⁠。按今天教科书里的简化写法:如果 w₁x₁ + w₂x₂ + b 大于 0,输出 1,否则输出 0;每遇到一个分错的例子,就让“权重 += 学习率 × 误差 × 输入”。只要两类点能被一条直线分开,这个过程一定会在有限步内停下,这叫感知机收敛定理。

两个输入时,w₁x₁ + w₂x₂ + b = 0 正好是平面上的一条直线。感知机学习,就是在找一条把两类点分开的直线。

做不到什么

  • 一个感知机只能画一条直线,分不开需要弯曲边界的数据(见下一节)。
  • 输入要先被人整理成合适的数字特征;原始像素直接输入,效果有限。
  • 它学到的是一组权重,不是概念:它并不“知道”自己在分什么。
01.4

一条直线分不开:XOR 与第一次寒冬 XOR · 异或问题

1一句话

“异或”要求两个输入不同时输出 1、相同时输出 0。这四个点无法用一条直线分开,单个感知机永远学不会。

2打个比方

棋盘上对角的两格是黑,另两格是白。只许画一条直线,怎么画都会把一黑一白分到同一边。

如果允许先画两条线,再把两条线的结果合起来看,问题就解决了:落在两条线之间那条“带子”里的,就是 1。

3动手试

异或(XOR):一条直线永远分不开 单层部分为真实的感知机训练;隐藏层权重为手工设定
原始输入:x₁, x₂
0 1 1 0 0011 x₁ → x₂

单个感知机:每一轮分错几个

0.40
-0.20
0.10
x₁ x₂ y x₁ x₂ h₁ h₂ y

一个感知机 = 一条直线

y = 阶跃(w₁x₁ + w₂x₂ + b)

感知机的学习规则只能调这一层的三个数。

h₁ = 阶跃(x₁ + x₂ − 0.5)“或”

h₂ = 阶跃(−x₁ − x₂ + 1.5)“与非”

y  = 阶跃(h₁ + h₂ − 1.5)两个都成立

实线是正权重,朱色虚线是负权重。

4怎么做到的

1969 年,明斯基和派珀特在《感知机》一书里用数学证明了单层感知机的边界:判断奇偶、判断图形是否连通这类需要综合全局信息的问题,它做不到,异或是其中最简单的例子⁠[7]⁠。这本书常被认为加速了神经网络研究的降温。

其实多加一层就够了:第一层的两个神经元各画一条线,第二层把它们的结果组合起来。演示里打开“加一层隐藏层”,用的是手工设定的权重。真正的难题在于:有了隐藏层,权重怎样自动学出来?感知机的学习规则只能用在最后一层,因为隐藏层没有“正确答案”可以对照。

这个问题要等到 1986 年反向传播被广泛采用才得到解决⁠[13]⁠,那是第 02 章的起点。

做不到什么

  • 手工设定隐藏层的权重,只能解决极小的问题。
  • 有了隐藏层,原来的感知机学习规则就不管用了:没人知道中间层“应该”输出什么。
  • 当时的计算机算力和数据都远远不够,就算有方法,也训练不了大网络。

这一章留下的问题

  1. 01

    规则写不完,例外永远比规则多。能不能不写规则,而是给机器看大量例子,让它自己总结出规律?

  2. 02

    多层网络能画出弯曲的边界,可隐藏层的权重该怎么学?需要一种把误差一层层传回去的方法。

  3. 03

    从例子里学习需要大量数据和算力,1970 年代的计算机远远不够。这两样东西什么时候才会到位?

本章参考文献

  1. [1] John McCarthy, Marvin L. Minsky, Nathaniel Rochester, Claude E. Shannon. A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence. Research proposal (typescript, dated Aug 31, 1955); reprinted in AI Magazine 27(4), Winter 2006.这份提案首次使用“人工智能”(artificial intelligence)一词,并促成了1956年夏天的达特茅斯研讨会,通常被视为AI成为独立研究领域的起点。
  2. [2] Warren S. McCulloch, Walter Pitts. A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5(4): 115–133 (Dec 1943).首次用数理逻辑描述一种简化的阈值神经元模型,并说明由这类单元组成的网络可以实现逻辑运算,是人工神经网络的理论起点之一。
  3. [3] A. M. Turing. Computing Machinery and Intelligence. Mind, 59(236): 433–460 (Oct 1950).提出用“模仿游戏”(后称图灵测试)替代难以定义的“机器能否思考”问题,并逐条回应了对机器智能的各种反对意见。
  4. [4] F. Rosenblatt. The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6): 386–408.提出感知机模型,即一种能通过调整连接权重从样例中学习分类的神经网络,是最早可以“学习”的神经网络模型之一。
  5. [5] Smithsonian National Museum of American History (object record). Electronic Neural Network, Mark I Perceptron. Smithsonian National Museum of American History, object nmah_334414.罗森布拉特团队在康奈尔航空实验室建造的感知机硬件(约1959年组装测试、1960年公开演示,不同来源年份略有出入),以20×20光电管阵列为输入、电动电位器存储权重,现藏于史密森尼美国国家历史博物馆。
  6. [6] Joseph Weizenbaum. ELIZA—A Computer Program for the Study of Natural Language Communication Between Man and Machine. Communications of the ACM, 9(1): 36–45 (Jan 1966).介绍了基于关键词匹配和模板替换的对话程序ELIZA;它并不理解语言,却让不少用户产生了被理解的感觉,这种现象后来被称为“ELIZA效应”。
  7. [7] Marvin Minsky, Seymour Papert. Perceptrons: An Introduction to Computational Geometry. MIT Press (1st ed. 1969; expanded ed. 1988; reissue 2017).用数学方法严格分析了单层感知机的能力边界(例如无法计算奇偶性、连通性等需要全局信息的谓词,异或是其最简单的情形),常被认为加剧了1970年代神经网络研究的低潮。
  8. [8] James Lighthill. Artificial Intelligence: A General Survey. In “Artificial Intelligence: a paper symposium”, Science Research Council (UK), 1973 (survey text dated July 1972).受英国科学研究委员会委托评估AI研究现状,认为基础研究未兑现早期承诺并强调“组合爆炸”难题;报告发表后英国大幅缩减了AI研究经费,被视为第一次“AI寒冬”的标志事件之一。
  9. [9] Bruce G. Buchanan, Edward H. Shortliffe (eds.). Rule-Based Expert Systems: The MYCIN Experiments of the Stanford Heuristic Programming Project. Addison-Wesley (full text hosted by E. H. Shortliffe).系统总结了1970年代斯坦福大学开发的MYCIN专家系统,它用数百条“如果-那么”规则和确定性因子诊断细菌感染并推荐抗生素(Shortliffe于1976年出版的专著《Computer-Based Medical Consultations: MYCIN》最早完整描述了该系统)。
  10. [10] Murray Campbell, A. Joseph Hoane Jr., Feng-hsiung Hsu. Deep Blue. Artificial Intelligence, 134(1–2): 57–83 (Jan 2002).由深蓝开发者撰写的技术论文,介绍了其专用国际象棋芯片、大规模并行搜索和评估函数等系统设计。
  11. [11] IBM. Deep Blue. IBM Heritage (web page).1997年5月IBM深蓝在六局制比赛中以3.5比2.5击败国际象棋世界冠军卡斯帕罗夫,是计算机首次在标准比赛时限下的对局赛中战胜现任世界冠军,其棋力主要来自专用硬件上的大规模搜索。
  12. [12] David Silver et al.. Mastering the game of Go with deep neural networks and tree search. Nature, 529(7587): 484–489.介绍结合策略网络、价值网络与蒙特卡洛树搜索的围棋程序AlphaGo,它于2015年10月以5:0击败欧洲冠军樊麾,是计算机程序首次在全尺寸棋盘、不让子的条件下战胜职业棋手;2016年3月又以4:1战胜李世石。
  13. [13] David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams. Learning representations by back-propagating errors. Nature, 323(6088): 533–536.展示了用反向传播算法训练多层神经网络,使隐藏层能学到有用的内部表示,推动了1980年代神经网络研究的复兴(反向传播的数学思想此前已有人提出)。

全部文献、素材与许可见 来源与许可。