Python程序设计:人工智能案例实践
上QQ阅读APP看书,第一时间看更新

1.9 数据科学入门:人工智能—计算机科学与数据科学的交叉学科

当婴儿第一次睁开眼睛时,他会“看到”父母的脸吗?他是否理解任何面部的概念,甚至任何简单的形状呢?婴儿必须“学习”周围的世界。这就是人工智能(AI)今天所做的事情。它正在研究大量数据并从中学习。AI被用来玩游戏、实现各种计算机视觉应用、实现汽车的自动驾驶、使机器人能够学习如何执行新任务、诊断医疗状况、近乎实时地将语音翻译成其他语言、创建可以使用大量的知识数据库来回应任何问题的聊天机器人,等等。几年前,谁曾想到,人工智能自动驾驶汽车将被允许在道路上行驶呢?然而,现在这已然成为一个竞争激烈的领域。所有这些学习的最终目标是实现通用人工智能,一种能像人类一样执行智能任务的人工智能。对许多人来说,这可能是一个可怕的想法。

人工智能的里程碑

人工智能的一些里程碑式的成果吸引了人们的注意力和想象力,让普通大众开始认识到人工智能是真实的,让企业开始考虑将人工智能商业化:

  • 1997年IBM的DeepBlue计算机系统与国际象棋大师Gary Kasparov进行了一场比赛并取得了胜利,DeepBlue成为第一台在实战条件下击败卫冕世界象棋冠军的计算机[1]。IBM为DeepBlue加载了成千上万个大师级的国际象棋棋谱[2],而DeepBlue能够使用蛮力每秒计算高达2亿步[3]!这其实就是大数据。IBM获得了卡内基-梅隆大学弗雷德金奖,该奖项于1980年提出将向第一台击败世界象棋冠军的计算机的开发人员提供10万美元奖金[4]
  • 2011年,IBM的Watson在100万美元比赛中击败了最优秀的两个人类—“Jeopardy!”玩家。Watson同时使用数百种语言分析技术在2亿页内容(包括所有的维基百科页面)中找到需要4TB存储空间的正确答案[5]。Watson接受了机器学习强化学习技术的训练。[6]本书将在第13章讨论IBM Watson,在第14章讨论机器学习。
  • 围棋,这一数千年前在中国创造出来的对弈游戏[7]被公认为是有史以来最复杂的游戏之一,有10170种可能的棋盘配置[8],比国际象棋复杂得多。这个数字有多大呢?在已知的宇宙中被确认的原子仅有1078~1087[9]!2015年,由Google的DeepMind小组使用两个神经网络深度学习技术开发的AlphaGo击败了欧洲围棋冠军范辉。本书将在第15章讨论神经网络和深度学习。
  • 最近,Google将AlphaGo AI进行扩展创建了AlphaZero,这是一款对弈AI,可以自学其他棋类的玩法。2017年12月,AlphaZero利用强化学习,在不到4小时的时间内自学象棋规则,击败了象棋世界冠军程序Stockfish 8,在100场比赛中未曾失败。在学习围棋仅仅8个小时之后,AlphaZero就能够与前辈AlphaGo对弈,并赢得了100场比赛中的60场[10]

个人趣事

本书的作者之一Harvey Deitel在20世纪60年代中期成为麻省理工学院的本科生时,参加了人工智能(AI)创始人之一Marvin Minsky(仅以本书向他致敬)的研究生级人工智能课程。Harvey说:

Minsky教授在课堂上布置了一个学期项目,他让我们思考什么是智能,如何让计算机做一些智能的事情。我们这门课程的成绩也几乎完全取决于这个项目。这对我来说毫无压力!

在研究了学校用来评估学生智力水平的标准化IQ测试后,内心住着一个“数学家”的我决定解决一个流行的IQ测试问题,即在一系列任意长度和复杂度的数字序列中预测下一个数字。我在早期的Digital Equipment Corporation PDP-1上运行了交互式Lisp,并且能够在一些非常复杂的事物上运行我的序列预测器,处理的挑战远远超出我在IQ测试中看到的那些。Lisp递归操作任意长列表的能力正是我满足项目要求所需要的。Python提供了递归和通用列表的处理(第5章)。

我对许多麻省理工学院的同学试了我的序列预测器。他们组成数字序列并将其输入我的预测器。PDP-1会“思考”一段时间,这段时间通常很长,但几乎总能找到正确的答案。

但随后我遇到了一个麻烦。我的一个同学输入了一个序列14、23、34和42。预测器开始研究它,但很长时间之后还是没有预测出下一个数字。我也做不到。这个同学给了我一夜的时间来思考,他会在第二天公布答案,并声称这是一个简单的序列。我的努力无济于事。

第二天他告诉我下一个数字是57。我不明白为什么是这个数字,于是他让我再思考一夜,第三天他说下一个数字是125。这个答案对我没有一点帮助,这令我很难过。他告诉我,序列是曼哈顿双向交叉街道的数量。我哭了,这是“犯规”,但他说这个序列符合我在数字序列中预测下一个数字的标准。我的世界观是数学,而他的却更加宽泛。

多年来,我多次让我的朋友、亲戚和专业同事尝试这个序列。其中有一些在曼哈顿生活过一段时间的人答对了这个问题。要处理这样的问题,我的序列预测器仅有数学知识是不够的,它还需要很多(可能是巨大的)其他的知识

Watson和大数据开辟了新的可能性

当Paul和我开始写这本Python主题的书时,我们立刻被IBM的Watson所吸引,因为它使用大数据和人工智能技术,如自然语言处理和机器学习,击败了世界上最好的两个人类“Jeopardy!”玩家。我们意识到Watson可能能够处理序列预测器这样的问题,因为它装载了全世界所有街道的地图和更多的其他信息。这激发了我们深入研究大数据和人工智能技术的欲望,并据此完成了本书的第11~16章。

需要提醒读者注意的是,第11~16章中所有关于数据科学的应用案例研究都根植于人工智能技术或大数据硬件和软件基础设施,这些技术使计算机科学家和数据科学家能够有效地实施先进的基于AI的解决方案。

AI:一个有问题但没有解决方案的领域

几十年来,人工智能被视为一个有问题但没有解决方案的领域。这是因为一旦某个特定问题得到解决,人们会说:“嗯,这不是智能,它只是一个计算机程序,告诉计算机到底要做什么。”但是,利用机器学习(第14章)和深度学习(第15章),我们不为特定问题预先编程设定解决方案。相反,我们让计算机通过从数据中学习来解决问题,这个数据量通常是很大的。

许多最有意思和最具挑战性的问题都是通过深度学习来解决的。仅谷歌就有数以千计的深度学习项目正在进行中,而且这个数字还在快速增长[11] [12]。在学习本书的过程中,我们将介绍许多处在实践前沿的人工智能、大数据和云技术。


[1] https://en.wikipedia.org/wiki/Deep_Blue_versus_Garry_Kasparov.

[2] https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer).

[3] https://en.wikipedia.org/wiki/Deep_Blue_(chess_computer).

[4] https://articles.latimes.com/1997/jul/30/news/mn-17696.

[5] https://www.techrepublic.com/article/ibm-watson-the-inside-story-of-how-the-jeopardy-winning-supercomputer-was-born-and-what-it-wants-to-do-next/.

[6] https://www.aaai.org/Magazine/Watson/watson.php, AI Magazine, Fall 2010.

[7] http://www.usgo.org/brief-history-go.

[8] https://www.pbs.org/newshour/science/google-artificial-intelligence-beats-champion-at-worlds-most-complicated-board-game.

[9] https://www.universetoday.com/36302/atoms-in-the-universe/.

[10] https://www.theguardian.com/technology/2017/dec/07/alphazero-google-deepmind-ai-beats-champion-program-teaching-itself-to-play-four-hours.

[11] http://theweek.com/speedreads/654463/google-more-than-1000-artificial-intelligence-projects-works.

[12] https://www.zdnet.com/article/google-says-exponential-growth-of-ai-is-changing-nature-of-compute/.