1. 困难问题
1.1. 管理政府或教授分子生物学之类的问题要困难得多
1.2. 这些环境很复杂,大部分是不可观察的(一个国家的状态,一个学生的思想状态),还有更多的对象和对象类型,对动作没有明确定义,规则大多是未知的,有大量的不确定性,以及非常长的时间跨度
1.3. 当我们设计出针对给定类型的较困难问题的有效方法,或者设计出需要较少和较弱假设的方法,以便适用于更多问题时,通用性的进展就出现了
1.3.1. 通用人工智能将是一种适用于所有问题类型的方法,并且在做出很少假设的情况下,它能有效地处理大而难的实例
1.4. 在实现通用人工智能方面取得的许多进步,都来自与构建可怕的通用人工智能系统无关的研究
1.4.1. 来自对“工具人工智能”或“狭义人工智能”的研究,即为特定问题设计的完美、安全、乏味的人工智能系统
1.4.1.1. 下围棋或识别手写数字
1.5. 关于机器能力的清晰界限意味着,当人们谈论“机器智商”迅速增长并有可能超过人类智商时,他们是在胡说八道
1.5.1. 智商的概念在应用于人类时是有意义的,因为人类的能力往往在广泛的认知活动中相互关联
1.5.2. 马跑得快,跳得高,但它们在撑竿跳高和掷铁饼项目中会碰到很多麻烦
2. 人工智能研究的终极目标
2.1. 一个不需要针对具体问题的工程学系统,人们可以简单地要求它去管理政府或教授分子生物学
2.2. 它会从所有可用的资源中学习它需要学习的东西,在必要时提出问题,并开始制订和执行有效的计划
3. 工具人工智能
3.1. 对工具人工智能的研究能够而且常常会在实现通用人工智能方面取得进展,特别是当它由别具慧眼的研究人员攻克了当前的通用方法所不能解决的问题的时候
3.2. 解决方案所采用的路径不仅仅是对一个聪明人在某种情况下会如何行动的临时编码,而是试图使机器具备自己找出解决方案的能力
3.3. 谷歌DeepMind的AlphaGo团队没有设计只适用于围棋的决策程序
3.3.1. 对两种非常通用的技术进行了改进
3.3.2. 一是用前向搜索(lookahead search)来做决策
3.3.3. 二是用强化学习来学习如何评估棋局
3.4. AlphaGo的一个叫AlphaZero(阿尔法元)的版本学会了在围棋中打败AlphaGo,还打败了Stockfish(世界上最好的国际象棋程序,水平远远高于任何人类)和Elmo(世界上最好的日本将棋程序,水平同样远远高于任何人类)
3.4.1. AlphaZero在一天内完成了这一切
3.4.2. AlphaZero有严格的限制:它只适用于独立的、可观察的、具有已知规则的双人游戏
3.4.2.1. 这种方法根本不适用于驾驶、教学、管理政府或接管世界
3.5. 20世纪90年代,在识别手写数字的研究方面
3.5.1. AT&T(美国电话电报公司)实验室的杨立昆(Yann LeCun)团队并没有使用搜索曲线和回环的方法
3.5.2. 改进了现有的神经网络学习算法来生成卷积神经网络(convolutional neural network)
3.5.3. 用标记的样本对这些网络进行适当训练后,网络就展现出有效的识别字符的能力
3.5.4. 在深度学习的课题下,他们革新了语音识别和基于机器视觉的物体识别
3.5.4.1. 这些也是AlphaZero以及当前大多数无人驾驶汽车项目的关键组成部分之一
3.6. 在解决具体任务的狭义人工智能项目中,出现朝向通用人工智能的进展其实不足为奇,这些任务为人工智能研究人员提供了一些研究思路
4. 目标和标准模型
4.1. 如果从外部看一个智能体,重要的是看它从接收的输入流中生成的动作流
4.2. 如果从内部看,动作必须由智能体程序选择
4.3. 人类天生就有一个智能体程序,这个程序随着时间的推移学会了在大量任务中合理、成功地行动
4.4. 传达目标最简单的方式是以“终点”的形式
4.5. 在人工智能研究的古典主义时期,即在20世纪80年代,不确定性成为一个主要问题之前,大多数人工智能研究都假设世界是完全可观察的和确定的,终点作为一种明确目标是有意义的
4.6. 前向搜索
4.6.1. “在心中模拟”可能行动的效果
4.6.2. 前向搜索算法起源于20世纪60年代,它通过前向搜索许多可能的动作序列来找到最优路径
4.6.3. 这些算法构成了现代基础设施中无处不在的一部分,它们不仅提供行车路线,还提供航空旅行解决方案、机器人装配、建筑规划和物流配送
4.6.4. 前向搜索的概念同样适用于井字游戏、国际象棋和围棋等游戏,这些游戏的目标是根据游戏对胜利的特定定义来努力取胜,只不过人们还需要对算法做一些修改来处理对手的赖皮行为
4.6.5. 前向搜索算法对于具体的任务非常有效,但不是很灵活
4.7. 在逻辑、概率和学习系统中,人们在开发标准模型的各种实例化方面已经做了大量出色的工作,由此产生的许多系统都非常有用
4.8. 我们不能继续依赖惯常的做法,即通过反复试验来消除目标函数中的主要错误:智能日益提高、全球影响力日益增强的机器不会允许我们享受这种奢侈
5. AlphaGo
5.1. “了解”围棋的规则
5.2. “了解”只是建立在它有两个用C++等传统编程语言编写的子程序的意义上
5.2.1. 一个子程序生成所有可能的合规走法
5.2.2. 另一个子程序对目标进行编码,确定给定的局面是赢还是输
5.3. 为了让AlphaGo玩不同的游戏,必须有人重写所有这些C++代码
5.4. AlphaGo的知识基本上被锁在一个黑盒里
5.5. 没有任何围棋着法可以让你到达系外行星
6. 基于知识的系统
6.1. 约翰·麦卡锡提出了一种更通用的方法
6.2. 编写通用的推理程序。这个程序可以吸收一切主题的知识,并能回答一切可以回答的问题
6.3. 使用形式逻辑作为知识和推理的基础
7. 逻辑
7.1. 命题逻辑
7.1.1. 布尔逻辑
7.1.2. 古希腊人以及古代中国和印度的哲学家都知道它
7.1.3. 与构成计算机芯片电路的与门、非门等逻辑门相同
7.1.4. 现代CPU(中央处理器)就是用命题逻辑语言编写的一个非常庞大的数学表达式,长达数亿页
7.2. 一阶逻辑
7.2.1. 麦卡锡提议用于人工智能的逻辑
7.2.2. 一阶逻辑语言远比命题逻辑语言更有表现力,这意味着有些东西用一阶逻辑可以很容易地表达出来,但用命题逻辑很难表达
7.2.3. 围棋规则在一阶逻辑中的表达只需要一页
7.2.3.1. 在命题逻辑中则长达数百万页
7.2.4. 可以很容易地表达关于国际象棋、英国公民身份、税法、买卖、搬家、绘画、烹饪,以及我们的常识世界中许多其他方面的知识
7.2.5. 从原则上讲,使用一阶逻辑推理的能力让我们朝着实现通用智能的目标迈出了一大步
7.3. 加州斯坦福研究所的Shakey项目是世界上第一个大型移动机器人项目,它就是基于逻辑推理的
7.3.1. Shakey如今证明了亚里士多德对人类认知和行为的分析至少部分是正确的
7.3.2. 亚里士多德(和麦卡锡)的分析离完全正确还有很长的路要走
7.3.2.1. 主要的问题是无知
7.3.2.1.1. 是所有人类和机器无知,无论是现在还是未来的人类和机器都是无知的
7.3.2.1.2. 在我们的知识中,只有很少一部分是绝对确定的
7.3.2.1.3. 我们对未来知之甚少
7.3.2.1.4. 对一个纯粹的逻辑系统而言,无知是一个无法克服的问题
7.4. 一个人永远不可能绝对肯定任何经验性问题,除非他已经知道答案
7.4.1. 确定性对行动来说是完全不必要的:我们只需要知道哪个行动是最好的,而不是哪个行动肯定会成功
7.4.2. 不确定性意味着“输入机器的目标”通常是一个无法精确描述的目标,所以我们不能让机器不惜一切代价去实现它
7.4.2.1. 任何动作序列都会产生多种可能的结果,其中一些不会实现目标
7.4.2.2. 寻找用最大的可能性实现目标的计划,依然无法拯救目标
7.4.2.3. 人们不可避免地需要考虑不同结果的相对可取性以及它们发生的可能性
7.4.2.4. 我们可以用效用函数,而不是用目标,来描述不同结果或状态序列的可取性
8. 完全性定理
8.1. 1930年,才华横溢的奥地利逻辑学家库尔特·哥德尔(Kurt Gödel)发表了他著名的“完全性定理”
8.1.1. 哥德尔实际上并没有提供算法,他只是证明了算法的存在
8.2. 对于一阶逻辑可表达的任何知识集合与任何问题,如果答案存在,那么算法将告诉我们问题的答案
8.2.1. 我们可以告诉系统围棋的规则,它会告诉我们(如果我们等待足够长的时间)是否存在必胜的开局着法
8.2.2. 我们可以告诉系统当地的地理情况,它会告诉我们去机场的路
8.2.3. 我们可以告诉系统关于几何学、运动和餐具的知识,它会告诉机器人如何摆好餐桌
8.3. 只要我们给定任意可实现的目标和关于其行动所产生的影响的充分知识,智能体就可以使用该算法制订一个计划,它可以执行这个计划来实现目标
9. 不确定性
9.1. 贝叶斯定理
9.1.1. 贝叶斯网络和贝叶斯逻辑是以英国牧师托马斯·贝叶斯(Thomas
Bayes)的名字命名的,他对现代思想的持久贡献——现在被称为“贝叶斯定理”