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)的名字命名的,他对现代思想的持久贡献——现在被称为“贝叶斯定理”
9.1.2. 贝叶斯定理的现代形式以一种非常简单的方式描述了先验概率
9.1.3. 一个人对一组可能性假设的初始可信度,是如何由于观察到一些证据而变成后验概率的
9.1.4. 随着更多新证据的到来,后验成为新的先验,贝叶斯定理中更新的过程无限重复
9.2. 贝叶斯网络
9.2.1. 朱迪亚·珀尔引入的贝叶斯网络语言
9.2.2. 贝叶斯网络是命题逻辑的概率学表亲
9.2.3. 一阶逻辑也有概率学表亲,包括贝叶斯逻辑和各种各样的概率编程语言
9.3. 贝叶斯理性
9.3.1. 它假设一个理性的智能体可以获得一个后验概率分布,这一后验概率分布是基于当前世界可能的状态以及基于过去所有经验的关于未来的假设
9.4. 运筹学、控制理论和人工智能领域的研究人员也开发了各种各样的算法,用于在不确定的情况下做出决策,其中一些算法可以追溯到20世纪50年代
9.4.1. “动态规划算法”是前向搜索和规划的概率学表亲,可以为金融、物流、交通等各种实际问题提供最优或接近最优的行动计划
9.5. 与动态规划算法一样,输入强化学习算法中的目标是奖励函数,而且强化学习算法会总结出一种状态值(有时是动作值)的估算器
9.5.1. 该估算器可以与时间跨度相对较短的前向搜索相结合,产生高水平的行为
10. 强化学习系统
10.1. 第一个成功的强化学习系统是阿瑟·塞缪尔的西洋跳棋程序,1956年,该程序在电视上播出时引起了轰动
10.1.1. 这个程序基本上是从零开始学习的,方法是自我对弈和观察赢棋的奖励与输棋的惩罚
10.2. 1992年,格里·泰索罗(Gerry Tesauro)将同样的想法应用到西洋双陆棋中,该程序在经过150万盘的对弈后达到了世界冠军的水平
10.3. 从2016年开始,DeepMind的AlphaGo及其后续程序使用强化学习和自我对弈,战胜了围棋、国际象棋和日本将棋中最优秀的人类棋手
10.4. 强化学习算法还可以学习如何基于原始感知输入选择动作
10.4.1. DeepMind的DQN系统完全从零开始学习玩49种不同的雅达利电子游戏,包括《乒乓球》《高速公路》《太空入侵者》等
10.4.2. 它只使用屏幕像素作为输入,游戏分数作为奖励信号
10.4.3. 像围棋和《Dota 2》这样的游戏是强化学习方法的一个很好的试验场,因为奖励函数是伴随着游戏规则的
10.5. 所有这些任务都比现实世界简单得多:它们是完全可观察的,它们涉及的时间跨度很短,并且它们具有相对较小的状态空间和简单的、可预测的规则
10.5.1. 如果我们放宽这些条件中的任何一个,都意味着标准方法将失效
10.6. 在现实世界中就不那么方便了,已经有几十个例子说明对奖励错误的定义会导致奇怪且出乎意料的行为
10.6.1. 有些行为是无害的,比如模拟进化系统,它本应进化出快速移动的生物,实际上却产生了个头很高的生物,通过跌跟头快速移动
10.6.2. 其他行为就没那么无害了,比如社交媒体的点击优化器,它把我们的世界搞得一团糟
11. 反射型智能体
11.1. 是最简单的,它就是将感知与行动直接联系起来的程序,不需要任何中间的思考或推理
11.2. 反射指的是人类和动物表现出的低级神经反射,这种反射不受思想的调节
11.3. 眨眼反射并不“知道自己在做什么”
11.4. 反射动作也在更常规的任务中发挥作用
11.5. 反射型智能体虽然实现了设计者的目标,但它们不知道目标是什么,也不知道为什么要以某种方式行动
11.5.1. 意味着它们不能真正为自己做决定,而其他人,通常是人类设计者或生物进化过程,必须事先决定一切
11.6. 反射型智能体也非常不灵活,当环境表明反射型智能体执行的策略不再合适时,它们也无法改变自己的行为
12. 深度学习
12.1. 当前机器翻译领域最优秀的学习算法是所谓的深度学习的一种形式,它以人工神经网络的形式产生一个规则,这个人工神经网络有数百个层次和数百万个参数
12.2. 机器翻译、语音识别和基于机器视觉的物体识别是人工智能中三个最重要的子领域
12.3. 在人工智能的标准模型中,算法优化了固定的目标
12.4. 对深度学习或者任何监督学习算法来说,“把目的输入机器”通常是为了最大化预测精度,或者最小化误差(二者是等效的)
12.4.1. 取决于习得的规则在整个系统中所扮演的角色
12.4.2. 第一个角色是纯粹的感知角色:人工神经网络处理感官输入,并以概率估计的形式将感知到的信息提供给系统的其余部分
12.4.3. 从纯粹的感知角色转变为决策角色(第二个角色)
12.4.3.1. 经过训练的用于识别物体的网络可能会自动为网站或社交媒体账号上的图片生成标签。
12.4.3.2. 贴这些标签是有后果的行为
12.4.3.3. 谷歌的机器学习算法旨在最小化一个固定的、确定的损失函数,而且这个损失函数为所有错误分配了相等的代价
12.4.3.3.1. 它假设将一个人错误归类为大猩猩的代价与将诺福克?犬误归类为诺威奇?犬的代价等同起来
12.4.3.4. 正确的做法是承认错误分类代价的不确定性,并设计一种对代价和代价不确定性适当敏感的学习和分类算法