原文出处:Introduction to AI 原作者:Microsoft · 许可证:MIT License 中文译本由诸葛AI学院整理,仅供学习参考,版权归原作者与微软所有。
人工智能导论
原文此处有一张课程概览手绘图(sketchnote),由 Tomomi Imura 绘制,把本课的知识脉络画成了一页图解。
课前小测
人工智能(Artificial Intelligence)是一门令人兴奋的学科,研究如何让计算机表现出智能行为,去做那些人类擅长的事。
计算机最初由 Charles Babbage 发明,用来按一套定义明确的步骤(也就是算法)对数字做运算。现代计算机虽然比 19 世纪提出的原始模型先进得多,遵循的仍是同一套受控计算的思路。因此,只要我们清楚达成目标需要哪些确切的步骤顺序,就能把这件事编成程序,让计算机去做。
原文此处有一张人物照片(摄影:Vickie Soshnikova)。
从照片判断一个人的年龄,是一项没办法显式编程的任务,因为我们并不知道自己脑子里那个数字是怎么得出来的。
可确实有一些任务,我们并不知道自己是怎么明确解决的。从照片判断人的年龄就是这样。我们莫名其妙就学会了这件事,因为我们见过大量不同年龄的人,但要我们讲清具体是怎么做到的,讲不出来,也没法把这套过程写成程序交给计算机。这正是人工智能(简称 AI)感兴趣的那类任务。
想一想:有哪些任务适合交给计算机,又需要 AI 才做得好?金融、医疗、艺术这些领域,今天是怎么用上 AI 的?
弱人工智能与强人工智能
| 弱人工智能(Weak AI) | 强人工智能(Strong AI) |
|---|---|
| 弱 AI 指针对特定任务或一小类任务设计并训练出来的 AI 系统。 | 强 AI,即通用人工智能(Artificial General Intelligence,AGI),指具备人类水平智能与理解力的 AI 系统。 |
| 这类系统不具备通用智能;它们擅长完成预设任务,但缺乏真正的理解或意识。 | 这类系统能完成人类能做的任何智力任务,能适应不同领域,并拥有某种形式的意识或自我意识。 |
| 弱 AI 的例子包括 Siri、Alexa 这类虚拟助手,流媒体服务用的推荐算法,以及为特定客服任务设计的聊天机器人。 | 实现强 AI 是 AI 研究的长期目标,需要开发出能在大量任务和情境中推理、学习、理解、适应的 AI 系统。 |
| 弱 AI 高度专业化,超出它狭窄的领域,便没有类人的认知能力或通用问题求解能力。 | 强 AI 目前还是一个理论概念,没有任何 AI 系统达到这种通用智能水平。 |
更多资料可参考 Artificial General Intelligence(通用人工智能)词条。
智能的定义与图灵测试
处理"智能"(Intelligence)这个词时的一个麻烦在于,它没有一个清晰的定义。你可以说智能与抽象思维有关,也可以说它与自我意识有关,但就是无法给出一个站得住的定义。
原文此处有一张猫的照片(Amber Kipp 摄于 Unsplash)。
想体会"智能"一词有多含糊,不妨回答这个问题:"猫算智能吗?"不同的人往往给出不同的答案,因为没有任何公认的测试能证明这个判断是对是错。如果你认为有,那就试试拿智商测试去考考你家的猫……
想一想:花一分钟想想你怎么定义智能。一只乌鸦能走出迷宫拿到食物,算智能吗?一个孩子算智能吗?
谈 AGI,我们总得有个办法判断:是否造出了真正智能的系统。Alan Turing(艾伦·图灵)提出的办法叫图灵测试(Turing Test),它同时充当了智能的定义。测试把被考察的系统与天生智能的存在,也就是真人,作比较;又因为任何自动比对都能被计算机程序绕过,裁判也得由人来当。结论就是:如果在基于文字的对话中,人分辨不出对面是真人还是计算机系统,这个系统就被认为是有智能的。
名为 Eugene Goostman 的聊天机器人开发于圣彼得堡,2014 年靠一个聪明的人设技巧险些通过图灵测试。它开场就声明自己是个 13 岁的乌克兰男孩,以此解释自己知识面的欠缺和文字里的种种出入。5 分钟对话结束后,30% 的评委相信它是人,这正是图灵设想机器到 2000 年应能达到的指标。不过要明白:这不表示我们造出了智能系统,也不算计算机系统骗过了人类评委。没骗人的是系统,骗人的其实是造机器人的那帮人。
想一想:你有没有被聊天机器人骗过,以为对面是真人?它是怎么让你相信的?
实现 AI 的不同路线
如果要让计算机表现得像人,就得想办法在我们的思维上建模,让计算机复刻人的思考方式。为此,我们得先弄明白人到底因何而智能。
想把智能写进机器,先要理解自己做决定的过程。稍微内省一下就会发现:有些过程在潜意识里完成,比如不假思索就能分清猫和狗;另一些过程则涉及推理。
解决这个问题有两条基本路线:
| 自顶向下方法(符号推理) | 自底向上方法(神经网络) |
|---|---|
| 自顶向下方法模拟人解决问题时的推理过程。它要求把知识从人那里提取出来,表示成计算机可读的形式,还要开发出在计算机里对推理建模的办法。 | 自底向上方法模拟人脑的结构。人脑由数量庞大的简单单元构成,这些单元叫神经元(neuron)。每个神经元的动作类似对输入做加权平均,只要提供训练数据(training data),就能训练一张神经元网络去解决有用的问题。 |
除此之外,还有一些通往智能的可能路线:
-
涌现式(Emergent)、协同式(Synergetic)或多智能体(multi-agent)路线基于这样一个事实:大量简单智能体相互作用,就能产生复杂的智能行为。按进化控制论的说法,在元系统过渡的过程中,智能能从更简单、更反应式的行为中涌现出来。
-
进化式路线(evolutionary approach),即遗传算法(genetic algorithm),是一种基于进化原理的优化过程。
后面课程里会讲到这些路线,眼下先聚焦两个主要方向:自顶向下和自底向上。
自顶向下方法
自顶向下方法尝试给我们的推理过程建模。推理时我们能跟得上自己的想法,所以可以把这个过程形式化,写进计算机变成程序。这就是符号推理(symbolic reasoning)。
人的脑子里往往有一套指导决策的规则。比如医生诊断病人,发现病人在发烧,就推断体内可能有炎症。把大量规则套用到一个具体问题上,医生就能得出最终诊断。
这条路线高度依赖知识表示(knowledge representation)和推理。从人类专家那里提取知识可能是最难的环节:医生很多时候并不清楚自己为什么下某个诊断,答案常常没有经过明确思考就直接浮现在脑子里。有些任务,比如从照片判断人的年龄,根本没法归结为对知识的操作。
自底向上方法
换一种思路,我们可以给大脑里最简单的元素,也就是神经元,建模。在计算机里搭建一个所谓的人工神经网络(artificial neural network),然后拿例子教它解决问题。这个过程和新生儿通过观察来认识周围环境类似。
想一想:去查一查婴儿是怎么学习的。婴儿大脑的基本元素是什么?
机器学习(Machine Learning)是怎么回事?人工智能中,有一部分让计算机基于数据学习来解决问题,这部分叫机器学习。本课程不涉及经典机器学习,请参考独立课程 Machine Learning for Beginners。
人工智能简史
人工智能作为一门学科起步于 20 世纪中叶。早期占上风的是符号推理,它带来过一批重要成果,典型如专家系统,即在有限问题领域内能充当专家的计算机程序。但人们很快发现这条路线扩展性不好:从专家那里提取知识、在计算机里表示出来、再让知识库保持准确,是一件非常复杂的事,多数情况下成本高到无法落地。这导致了 1970 年代所谓的 AI 寒冬(AI Winter)。
原文此处有一张图,标题为 Brief History of AI(人工智能简史),由 Dmitry Soshnikov 绘制,按时间轴画出各条技术路线的兴衰更替。
随着时间推移,算力越来越便宜,可获取的数据越来越多,神经网络路线开始在计算机视觉、语音理解等诸多领域展现出可与人类抗衡的表现。过去十年里,人工智能这个词基本被当作神经网络的同义词使用,因为我们听到的 AI 成果大多建立在其之上。
以编写下国际象棋的计算机程序为例,可以看到路线是怎么变的:
- 早期象棋程序基于搜索:程序显式地推算对手在接下来若干步里的可能走法,选出能在几步之内达成最优局面的着法。由此发展出了所谓的 alpha-beta 剪枝(alpha-beta pruning)搜索算法。
- 搜索策略在残局阶段很好用,因为可选走法少,搜索空间有限。开局时搜索空间巨大,算法可以借鉴人类棋手已有对局来改进。后续实验采用了所谓的基于案例的推理(case-based reasoning):程序在知识库里检索与当前局面非常相似的案例。
- 如今能战胜人类棋手的程序基于神经网络与强化学习(reinforcement learning):程序全靠长时间自我对弈、从自己的错误中学习,这和人类学下棋的方式很像。只是计算机能在远少于人类的时间里下多得多的棋,所以学得快得多。
想一想:查一查还有哪些游戏被 AI 挑战过。
同样的,"会说话的程序"(也就是可能通过图灵测试的程序)的路线也在演变:
- 早期这类程序如 Eliza,基于非常简单的语法规则,把输入的句子改写成一个问题。
- Cortana、Siri、Google Assistant 这些现代助手都是混合系统:用神经网络把语音转成文字、识别我们的意图,再用某种推理或明确的算法执行所需动作。
- 未来可能出现完全基于神经网络的模型独立处理对话。近年的 GPT 与 Turing-NLG 系列神经网络在这方面已经表现出很大的成功。
原文此处有一张图,主题是图灵测试类程序的演进(图:Dmitry Soshnikov,配图摄影:Marina Abrosimova,来自 Unsplash)。
近年的 AI 研究
神经网络研究近年的爆发始于 2010 年前后,大型公开数据集那时开始普及。名为 ImageNet 的巨幅图像集收录了约 1400 万张带标注的图片,直接催生了 ImageNet 大规模视觉识别挑战赛。
原文此处有一张动图,展示 ILSVRC 历届参赛模型分类准确率的持续上升(图:Dmitry Soshnikov)。
2012 年,卷积神经网络(Convolutional Neural Network)首次用于图像分类,分类错误率大幅下降,从接近 30% 降到 16.4%。2015 年,微软研究院的 ResNet 架构达到了人类水平的准确率。
此后,神经网络在众多任务上表现出色:
| 年份 | 达到人类水平的任务 |
|---|---|
| 2015 | 图像分类 |
| 2016 | 对话语音识别 |
| 2018 | 自动机器翻译(中译英) |
| 2020 | 图像描述 |
过去几年,BERT、GPT-3 这类大语言模型(large language model)取得了巨大成功。原因主要是通用文本数据足够多,让我们能训练模型捕捉文本的结构与含义,先在通用语料上预训练,再把模型专门化到更具体的任务上。本课程后文会展开讲自然语言处理(Natural Language Processing,NLP)。
挑战任务
上网逛一圈,判断你眼里 AI 用得最有效的地方在哪里:是地图应用,是某个语音转文字服务,还是某款电子游戏?去查一查那套系统是怎么构建的。
课后小测
复习与自学
想回顾 AI 与 ML 的历史,可以读这门课:History of ML。从本课或那节课开头的手绘图里挑一个元素,深入查一查,理解影响它演进的文化背景。
课后作业:Game Jam(游戏开发马拉松)