规则与神经元
机器能靠人写的规则思考吗?
1955 年的一份提案写道:学习和智能的每个方面,原则上都能被描述得足够精确,让机器来模拟[1]。
写规则,还是造神经元
从 1943 年到 1980 年代,两条路几乎同时出发:一条把知识写成规则,一条模仿神经元。
- 1943
人工神经元:用逻辑描述神经活动
Warren McCulloch、Walter Pitts
- 解决了什么
- 神经元怎样“计算”,当时没有可以推演的数学描述。
- 带来了什么变化
- 把神经元简化成“输入加起来、超过阈值就输出 1”的开关单元,并说明这类单元连成网络可以实现逻辑运算[2]。
- 1950
图灵:换一个问法
Alan Turing
- 解决了什么
- “思考”很难定义,“机器能否思考”因此无从争论。
- 带来了什么变化
- 提出“模仿游戏”(后称图灵测试):提问者如果分不清对面是人还是机器,就不必再纠缠定义[3]。
- 1956
达特茅斯:“人工智能”得名
John McCarthy、Marvin Minsky、Nathaniel Rochester、Claude Shannon
- 解决了什么
- 散落在数学、心理学和工程里的相关研究,没有共同的名字和目标。
- 带来了什么变化
- 1955 年的研究提案首次使用“人工智能”一词,次年夏天的研讨会让它成为一个独立的研究领域[1]。
- 1958
- 1966
ELIZA:只靠关键词的对话
Joseph Weizenbaum
- 解决了什么
- 让计算机用日常语言和人一问一答。
- 带来了什么变化
- 靠关键词匹配和句子模板,做出像心理咨询师一样的回应。它并不理解语言,却让不少使用者觉得被理解了[6]。
- 1969—1973
- 1970s—80s
专家系统:把专家的经验写成规则
例:斯坦福大学的 MYCIN
- 解决了什么
- 通用的推理方法解决不了专业问题,机器需要领域知识。
- 带来了什么变化
- MYCIN 用数百条“如果……那么……”规则诊断细菌感染、推荐抗生素[9]。规则系统能解释自己的每一步,但规则要人一条条写,遇到没写到的情况就会出错。
规则:把知识一条条写下来 Symbolic AI · 符号主义与专家系统
1一句话
早期 AI 的主流做法,是把人的知识写成一条条“如果……那么……”的规则,让机器按规则匹配、推理。
2打个比方
像一本厚厚的办事手册:遇到情况 A 翻到第 12 页照做,遇到情况 B 翻到第 30 页。手册写得越细,能处理的情况越多。
可手册永远写不完。遇到没写到的情况,照章办事的人只能硬套最接近的那一条,哪怕结果明显不对。首屏的企鹅就是这样被分进了“鱼”。
3动手试
- ELIZA
你好。最近有什么心事吗?
或者点一句:
这一句回答是怎么来的
- ①找关键词
等你说第一句。
- ②按模式拆句
—
- ③“我”和“你”对调
—
- ④填进回答模板
—
剧本:关键词表(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]。
规则系统的长处是每一步都能追溯:为什么得出这个结论,可以把用到的规则一条条列出来。难处在于,知识必须由专家说出来、由工程师写下来,而人能说清楚的知识,只是他们会的一小部分。
做不到什么
- 知识要靠人手工整理:专家说不清自己的直觉,规则只能一条条写。
- 规则一多就会互相冲突,改一条可能牵动一片。
- 遇到规则没写到的情况,它不会说“不知道”,而是硬套最接近的规则,给出错误答案。
搜索:把每一种走法都算一遍 Search · 博弈树搜索
1一句话
下棋这类问题,可以把接下来所有可能的走法列成一棵树,逐个推演、打分,再选出最好的一步。
2打个比方
像下棋时在脑子里推演:我走这里,对方可能走那里,我再走……把每条路都推下去,看哪条路最后对自己最有利。
麻烦在于可能性涨得太快。每多看一步,要考虑的局面就要再乘上一次“每步有几种走法”。
3动手试
轮到你(×)。
- 程序上一步看了
- — 个局面
- 加上 α-β 剪枝
- — 个局面
两种搜索选出的走法一样好,剪枝只是跳过了不可能改变结论的分支。
换成更大的棋盘:可能性有多快爆炸
个局面
4怎么做到的
井字棋小到可以把整棵树搜完:轮到自己时选得分最高的走法,轮到对手时假设他选对自己最不利的走法,这叫极小化极大搜索。α-β 剪枝会跳过不可能改变结论的分支:选出的走法一样好,要看的局面却少得多。演示里的局面数,是真实搜索时一个个数出来的。
国际象棋的树大到无法搜完,只能往前看若干步,再用人写的评估函数给局面打分。1997 年 5 月,IBM 的深蓝以 3.5 比 2.5 击败世界冠军卡斯帕罗夫,靠的是专用象棋芯片和大规模并行搜索[10]:它每秒能评估 2 亿个局面[11]。
深蓝是“规则 + 搜索”路线的高峰,但它的本事几乎无法搬到别处:评估函数是为国际象棋专门写的。早在 1973 年,莱特希尔报告就把“组合爆炸”列为核心难题:问题稍一变大,要搜索的可能性就多到算不完[8]。
做不到什么
- 只适合规则明确、局面完全可见的问题,现实世界很少这样。
- 评估函数要人来写。围棋的局面难以打分,搜索程序长期赢不了职业棋手,直到 2015 年 AlphaGo 换了做法[12]。
- 算得快不等于“会”别的:深蓝只能下国际象棋。
人工神经元与感知机 Perceptron · 感知机
1一句话
另一条路不写规则:让许多简单的“神经元”把输入加权求和,超过门槛就输出 1,再让权重从例子里自己调整。
2打个比方
像一位按打分表办事的评委:每一项乘上它的权重,加起来超过及格线就“通过”。
感知机的学习,像这位评委不断被纠正:判错一个例子,就把相关项的权重往正确的方向挪一点;判对了就不动。
3动手试
AND:两个输入都是 1,才输出 1。
4怎么做到的
1943 年,麦卡洛克和皮茨把神经元简化成阈值单元:输入是 0 或 1,加起来超过阈值就输出 1。他们说明这类单元组合起来能实现“与”“或”“非”等逻辑运算[2],但每个连接都要人来设计。
1958 年,罗森布拉特的感知机加上了学习[4]。按今天教科书里的简化写法:如果 w₁x₁ + w₂x₂ + b 大于 0,输出 1,否则输出 0;每遇到一个分错的例子,就让“权重 += 学习率 × 误差 × 输入”。只要两类点能被一条直线分开,这个过程一定会在有限步内停下,这叫感知机收敛定理。
两个输入时,w₁x₁ + w₂x₂ + b = 0 正好是平面上的一条直线。感知机学习,就是在找一条把两类点分开的直线。
做不到什么
- 一个感知机只能画一条直线,分不开需要弯曲边界的数据(见下一节)。
- 输入要先被人整理成合适的数字特征;原始像素直接输入,效果有限。
- 它学到的是一组权重,不是概念:它并不“知道”自己在分什么。
一条直线分不开:XOR 与第一次寒冬 XOR · 异或问题
1一句话
“异或”要求两个输入不同时输出 1、相同时输出 0。这四个点无法用一条直线分开,单个感知机永远学不会。
2打个比方
棋盘上对角的两格是黑,另两格是白。只许画一条直线,怎么画都会把一黑一白分到同一边。
如果允许先画两条线,再把两条线的结果合起来看,问题就解决了:落在两条线之间那条“带子”里的,就是 1。
3动手试
单个感知机:每一轮分错几个
一个感知机 = 一条直线
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 章的起点。
做不到什么
- 手工设定隐藏层的权重,只能解决极小的问题。
- 有了隐藏层,原来的感知机学习规则就不管用了:没人知道中间层“应该”输出什么。
- 当时的计算机算力和数据都远远不够,就算有方法,也训练不了大网络。
这一章留下的问题
- 01
规则写不完,例外永远比规则多。能不能不写规则,而是给机器看大量例子,让它自己总结出规律?
- 02
多层网络能画出弯曲的边界,可隐藏层的权重该怎么学?需要一种把误差一层层传回去的方法。
- 03
从例子里学习需要大量数据和算力,1970 年代的计算机远远不够。这两样东西什么时候才会到位?
本章参考文献
- [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] 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] A. M. Turing. Computing Machinery and Intelligence. Mind, 59(236): 433–460 (Oct 1950).提出用“模仿游戏”(后称图灵测试)替代难以定义的“机器能否思考”问题,并逐条回应了对机器智能的各种反对意见。
- [4] F. Rosenblatt. The perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review, 65(6): 386–408.提出感知机模型,即一种能通过调整连接权重从样例中学习分类的神经网络,是最早可以“学习”的神经网络模型之一。
- [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] 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] Marvin Minsky, Seymour Papert. Perceptrons: An Introduction to Computational Geometry. MIT Press (1st ed. 1969; expanded ed. 1988; reissue 2017).用数学方法严格分析了单层感知机的能力边界(例如无法计算奇偶性、连通性等需要全局信息的谓词,异或是其最简单的情形),常被认为加剧了1970年代神经网络研究的低潮。
- [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] 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] Murray Campbell, A. Joseph Hoane Jr., Feng-hsiung Hsu. Deep Blue. Artificial Intelligence, 134(1–2): 57–83 (Jan 2002).由深蓝开发者撰写的技术论文,介绍了其专用国际象棋芯片、大规模并行搜索和评估函数等系统设计。
- [11] IBM. Deep Blue. IBM Heritage (web page).1997年5月IBM深蓝在六局制比赛中以3.5比2.5击败国际象棋世界冠军卡斯帕罗夫,是计算机首次在标准比赛时限下的对局赛中战胜现任世界冠军,其棋力主要来自专用硬件上的大规模搜索。
- [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] David E. Rumelhart, Geoffrey E. Hinton, Ronald J. Williams. Learning representations by back-propagating errors. Nature, 323(6088): 533–536.展示了用反向传播算法训练多层神经网络,使隐藏层能学到有用的内部表示,推动了1980年代神经网络研究的复兴(反向传播的数学思想此前已有人提出)。
全部文献、素材与许可见 来源与许可。