电脑赢了世界冠军,为什么还认不出一只猫?
人工智能(AI)的基本概念与发展历程(上)
1950 年,数学家图灵问:机器能思考吗?他把难题换成一个打字聊天的游戏,还预言大约 50 年后,不少人会分不清对面是人还是电脑。要走到那一天,人想出两种办法:一种把判断一条条写成规则教给电脑,它赢过国际象棋世界冠军;另一种让电脑从成千上万的例子里,自己找出规律。
艾伦·图灵(Alan M. Turing)是英国数学家,更被誉为“计算机科学之父”和“人工智能先驱”。1950 年,他在一篇论文里问:“机器能思考吗?”
图灵在这里说的机器,指的是电脑。可是,怎样才算“思考”?有人看重会不会推理,有人看重能不能理解语言。连意思都没有说定,怎样判断电脑做到了没有?
图灵换了一个可以实际检验的问题。他设计了一个游戏:让一个人只靠打字,同时和一台电脑、一个真人聊天,再判断哪一边是电脑。提问的人可以根据对方的回答继续问;隔着屏幕,看不到长相,也听不到声音,只能从文字里找线索。
今天人们说的图灵测试,就来自这个想法。它把判断落到了一件具体的事上:经过文字交谈,人能不能认出电脑? 至于认不出来是否就说明电脑会思考,我们先把这个问题留下。
图灵还写下了一个预言:大约 50 年后,电脑会很擅长这个游戏。到那时,普通人和它聊 5 分钟,10 次里至少会有 3 次,把它当成真人。他预言的,是 2000 年前后。
他说对了吗?有了检验的办法,还得真的做出能跟人聊天的电脑。这样的本领,要从哪里来?
一些研究者有一个大胆的设想:人怎样学习、怎样推理、怎样使用语言,如果能把这些过程描述得足够清楚,就有可能让电脑也做出来。
1955 年,美国的约翰·麦卡锡等研究者提出了一份计划:召集一批科学家,争取用一个夏天,在让电脑使用语言、解决难题等问题上取得突破。他们为这项研究取名 Artificial Intelligence,中文叫人工智能,简称 AI。
第二年夏天,研究者们在美国达特茅斯学院聚到一起,交流让电脑解题、下棋的办法。这就是著名的达特茅斯会议,通常被看作 AI 作为独立研究领域诞生的标志。
下棋要判断走哪一步,识别照片要分辨里面是什么,聊天要处理别人说的话。事情各不相同,却有一个共同的问题:人拥有的这些本领,能不能让电脑也拥有?研究怎样让电脑具有识别、推理、使用语言等本领,就是人工智能研究。
因此,AI 是一个研究领域的名字。下棋的程序、识别照片的系统、聊天产品,都可以是这个领域的成果。日常说“这个 AI 会聊天”,是在用 AI 称呼具体的系统;聊得像人,是其中一种本领。
研究方向有了,具体怎么办?先来看一种办法:人把判断和处理问题的规则写给电脑。
一种办法:人把规则写给电脑
你想让电脑识别照片里的猫。它该看哪里?耳朵、胡子,还是毛的颜色?假设你想出一条判断办法:“有尖耳朵和长胡子的,就是猫。”接着,人要把怎样找耳朵、怎样看胡子、满足什么条件就判作猫,写成电脑能执行的指令。这组指令,就叫程序。
和孩子们聊这件事时,毕糯蚺在屏幕上画了一张猫脸。我请毕糯蚺去掉 1 只耳朵。画改了,我仍然认得出是一只猫。
可如果程序只认“有 2 只尖耳朵和长胡子”这条规则,少了 1 只耳朵,就不符合条件了。是这张画不再像猫,还是这条规则漏掉了一种情况?
人可以继续补规则。可换成照片,有的猫耳朵折了下来,有的只拍到半张脸,又会遇到没考虑过的情况。你还能看出哪些线索?要把这些线索怎样配合、什么时候管用,也一条条写清,就难多了。
用人设计的规则实现 AI,需要人先把判断办法说清,再写进程序。 难处恰恰在这里:有些本领,你自己一眼就会,却说不清每一次究竟怎样判断。
识别猫的例子,让我们看见了“把人的本领说清楚”有多难。从达特茅斯提案算起,十几年过去了,早年一些乐观的预计仍没有实现。继续探索需要钱,支持研究的机构也需要了解:已经做成了什么,哪些研究值得继续支持?
在英国,负责资助科研的科学研究委员会,委托数学家詹姆斯·莱特希尔评估 AI 研究,帮助它作出资助决定。1973 年发表的报告,对让电脑使用语言等研究提出了尖锐批评,认为成果没有达到早先许诺的程度。
报告引起了很大争议。前面写达特茅斯提案的麦卡锡就写文章反驳,认为 AI 已有的进展被低估了。但在英国,许多人对 AI 研究的信心已经动摇,给研究的钱也大大减少。后来,人们把这种信心下降、研究经费减少的时期,叫作 AI 寒冬。
从盼望一个夏天取得重大进展,到十几年后连研究是否值得支持都受到质疑,让电脑拥有这些本领,比早先一些人预计的难得多。不过,研究并没有停下来。人写规则的办法,后来就在国际象棋上做出了很亮眼的成绩。
说到下棋,我还被孩子纠正了一回:讲中国象棋时,我把蹩马腿说成了别马眼。孩子提醒后,我改了口,也道了谢。一句熟悉的口诀,大人也可能说错。真要让电脑下棋,哪些走法允许、哪些不允许,都得在程序里交代清楚。
不过,知道哪一步可以走,还不等于知道哪一步走得好。换到国际象棋,电脑怎样从许多合规的走法里选出有利的一步?
1996 年,IBM 公司的电脑深蓝挑战国际象棋世界冠军卡斯帕罗夫。首局,深蓝赢了。可卡斯帕罗夫随后扳回,赢下了那场 6 局比赛。
IBM 团队继续改进深蓝,第二年再次挑战。1997 年,双方又下了 6 局,这一次深蓝赢下了整场比赛。
深蓝在国际象棋棋盘上,战胜了世界冠军。
人怎样把下棋的判断交给深蓝?研究者把哪些棋子更重要、什么样的局面更有利等判断标准,写进程序。遇到一个棋局,深蓝会把许多种走法往后推算:这一步下完,对手可能怎样应对,后面又会出现什么局面?再按那些标准比较。
这里,人提供判断标准和推算的程序,电脑根据眼前的棋局计算、选择。人不用事先写好每一盘棋的每一步。深蓝凭借这样的配合,赢了世界冠军。
人设计的判断标准,配合电脑的大量推算,能做成复杂的事。 但识别猫留下的困难还在:如果人很难把规则写全,能不能换一种教法?
另一种办法:机器学习,让电脑从例子里学
规则难写全,能不能给电脑看许多例子,让它自己找规律?这个想法很早就有人尝试,与人写规则的研究同时进行。图灵在 1950 年那篇论文里就提过:与其直接做一个模仿大人头脑的程序,不如做一个模仿孩子头脑的程序,再去教它。
怎样从例子里学?用一件小事比一比。你想从一堆邮件里找到朋友发来的出游邀请,可里面混着不少垃圾广告。
先写一条规则:“写着‘中奖’的邮件,就是垃圾广告。”可朋友也可能写:“我中奖了,周末一起去庆祝吧!”只凭这 2 个字,朋友的邮件也被拦住了。改了这条规则,以后遇到新的说法,还可能漏掉、拦错。
这次,人换一种东西交给电脑:许多已经分好类的邮件。每封邮件旁边,都写着它是“正常邮件”还是“垃圾广告”。下面编几封作例子,真正训练时用的邮件会多得多。
| 邮件里写着什么 | 人事先分好的类别 |
|---|---|
| 周六一起去野餐,早上在公园门口见。 | 正常邮件 |
| 你上次要的公园照片,我发给你了。 | 正常邮件 |
| 恭喜中奖!点击领取大奖! | 垃圾广告 |
人还要编写一个能从例子中找规律的程序。例如,它可以比较词语在两类邮件里出现的情况:“恭喜中奖”“点击领取”在广告里常不常见?“周六”“公园”“朋友”又怎样?这些线索与类别的联系,要从许多邮件中计算出来。
让程序利用这些例子学出规律的过程,叫训练。训练得到的、用来判断邮件类别的模型,叫分类模型。
接下来,一封没见过的新邮件到了。人不再事先告诉它类别,程序要使用训练好的模型,判断这封邮件更像哪一类。模型可能把朋友的邀请判断对,也可能仍被“中奖”两个字误导。要用没见过的邮件试,才知道它学得怎样。
回头比较:第一次,人交给电脑的是“出现‘中奖’就拦下”这条规则;第二次,人交给电脑的是分好类的例子,以及从例子中学习的程序。后一种办法里,具体怎样判断,是从例子中学出来的。
这就是机器学习,英文 Machine Learning,简称 ML:让电脑通过程序,从资料或经验中学出规律。人仍要准备资料、安排训练;“自己学”说的是判断规律的来处。
再回到毕糯蚺的猫脸。用从例子里学习的办法,可以给程序准备许多不同的猫和其他动物的图片,标明每张是什么,再安排训练。训练好的模型能不能认出少了 1 只耳朵的猫,还得拿没见过的图片去试。看过很多例子,也不保证每次都认得出来。
早在 1950 年代,IBM 的阿瑟·塞缪尔就写了一个下跳棋的程序,让它记下棋局、用这些经验改进判断。它自己跟自己下了几千盘,越下越好。塞缪尔在 1959 年的论文里,就用了“机器学习”这个说法。
不过,有了这个想法,还需要足够多的例子、足够强的计算能力,才能把许多难题做好。早年这两样都不够,进展也受到限制。
到了 2012 年,从照片里识别东西这件事有了明显进展。那一年有一场比赛,让程序识别照片里的东西,一共 1,000 类,从各种小狗到各种汽车。获胜的程序用到了一个从大量照片里训练出来的模型,识别错的比第二名少了很多。
前面说,识别照片里的东西,人很难把规则写全。现在,研究者用大量照片训练模型,做出了更好的判断。有些难以一条条写出的本领,可以从例子里学出来。
总结与回顾
从图灵的问题出发,我们认识了人工智能这个研究领域,也看清了让电脑拥有本领的两种办法。它们各自在回答不同的问题:
| 概念或方法 | 它在回答什么? |
|---|---|
| 人工智能(AI) | 研究什么? 怎样让电脑具有识别、推理、使用语言等本领。名称来自 1955 年的提案,达特茅斯会议是这一研究领域的重要起点。 |
| 图灵测试 | 怎样检验聊得像不像人? 只靠文字交谈,看人能否分辨电脑。图灵预言了 2000 年前后的结果,说没说对,后面的文章揭晓。 |
| 人设计规则 | 怎样实现本领? 人写出判断方法,电脑据此执行、推算。深蓝靠它赢了国际象棋世界冠军;可认猫这样的本领,规则很难写全。 |
| 机器学习(ML) | 还能怎样实现? 人安排训练,让程序从例子或经验中学出规律。分邮件、识别照片,都用这个办法。 |
两种办法都站上过棋盘。下一篇,同样赢了顶尖棋手的 AlphaGo 和深蓝要放在一起比一比:判断的本领,到底是人事先写进去的,还是从棋局里学出来的?再往下,电脑还要从棋盘走进聊天框,去回应图灵 70 多年前留下的预言。