从马文到AlphaGo AI走过了怎样的70年?-程序员宅基地

技术标签: 人工智能  数据结构与算法  大数据  

(原标题:从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?)

【编者按】从19世纪中叶人工智能的萌芽时期,到现今人工智能的重生,从马文·明斯基到AlphaGo,历史上发生了哪些激动人心的故事?本文以此铺展人工智能发展近70年来背后发生的故事。作者@沐阳浸月,中科院自动化所复杂系统国家重点实验室研究生,主攻机器人与人工智能。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

前不久,在人工智能领域发生了两件大事,一个就是是伟大的人工智能先驱马文·明斯基教授逝世,一个是谷歌AlphaGo击败欧洲围棋冠军,职业围棋二段樊麾。

马文·明斯基教授是几乎见证了从人工智能作为一门学科的兴起直至今日成就的所有大风大浪的人,或者可以说何教授本人就是这些大风浪的弄潮儿,他对人工智能的发展的影响意义十分深远。而谷歌AlphaGo此次取得的成就,也可以算是人工智能领域一次里程碑式的创举,它的成功标志着人工智能领域又进入了一个新高度。这篇文章,我们将从马文·明斯基还是哈佛大学本科生的时候讲起,一直到今日AlphaGo的胜利,梳理一下人工智能是怎样从初见萌芽一步一步走到今日的辉煌成就的。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

要是从宏观的角度来讲,人工智能的历史按照所使用的方法,可以分为两个阶段,分水岭大概在1986年神经网络的回归——

前半段历史中,我们主要使用的方法和思路是基于规则的方法,也就是我们试图找到人类认知事物的方法,模仿人类智能和思维方法,找到一套方法,模拟出人类思维的过程,解决人工智能的问题。

后半段的历史,也就是我们现在所处的这个时期,我们主要采取的方法是基于统计的方法,也就是我们现在发现,有的时候我们不需要把人类的思维过程模拟出一套规则来教给计算机,我们可以在一个大的数量集里面来训练计算机,让它自己找到规律从而完成人工智能遇到的问题。

这个转化也可以用一个形象的例子来描述,就像我们想造出飞机,就观察鸟是怎么样飞的,然后模仿鸟的动作就行,不需要什么空气动力学什么的,这种思想在人类历史上也被称为“鸟飞派”。但是我们都知道,怀特兄弟造出飞机靠的是空气动力学,而不是仿生学。不过我们不能就因为这一点就笑话人工智能前半段各位研究人员和前辈的努力和心血,因为这是人类认知事物的普遍规律,其实现在也有不少人会认为,计算机可以读懂文字、看懂图片靠的是依靠和我们人类一样的认知过程。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

在研究基于规则的探索中,人工智能经历了三个主要阶段——兴起、繁盛和萧条。会有这样的过程,一个重要原因是基于规则方法的局限性。好了,那我们就先扒一扒这段历史。

一、萌芽阶段

人工智能的萌芽时期大概出现在19世纪中叶,第一位需要介绍的人物便是马文·明斯基。明斯基于1946年进入哈佛大学主修物理专业,但他选修的课程相当广泛,从电气工程、数学,到遗传学、心理学等涉及多个学科专业,后来他放弃物理改修数学。

1950年,也就是明斯基本科的最后一年,他和他的同学Dean Edmonds建造了世界上第一台神经网络计算机,并命名其为SNARC(Stochastic Neural Analog Reinforcement Calculator)。这台计算机是由3000个真空管和B-24轰炸机上一个多余的自动指示装置来模拟40个神经元组成的网络的。后来,明斯基又到普林斯顿大学攻读数学博士学位,并以“神经网络和脑模型问题”为题完成博士论文,但是当时的评审委员会并不认为这可以看做是数学。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(马文·明斯基)

明斯基的这些成果虽然可以被称作人工智能的早期工作,但是鉴于当时的明斯基还是一个青涩的毛头小子,所做的博士论文都不能得到相应的认可,所以影响力有限。

接着上场的第二位人物影响力就大很多,那就是计算机科学之父阿兰·图灵,他是被认为最早提出机器智能设想的人。图灵在1950年的时候(也就是明斯基还在读本科的时候)在杂志《思想》(Mind)发表了一篇名为“计算机器与智能”的文章,在文章中,图灵并没有提出什么具体的研究方法,但是文章中提到的好多概念,诸如图灵测试、机器学习、遗传算法和强化学习等,至今都是人工智能领域十分重要的分支。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(图灵在1950年的时候在杂志《思想》(Mind)发表的名为“计算机器与智能”的文章)

介绍完以上两大人物,接下来标志着人工智能作为一个独立领域而诞生的盛会——达特茅斯研讨会就要粉墨登场了。

不过在介绍达特茅斯研讨会之前,我们不得不介绍这第三位重量级的人物,那就是约翰·麦卡锡,因为他正是这次研讨会的发起人。约翰·麦卡锡于1948年获得加州理工学院数学学士学位,1951年获得普林斯顿大学数学博士学位。然后又在那里作为老师工作了两年,接着短暂地为斯坦福大学供职后到了达特茅斯大学,正是这个时期,它组织了达特茅斯研讨会。在这次大会上,麦卡锡的术语人工智能第一次被正式使用,所以麦卡锡也被称作人工智能之父。其实麦卡锡在达特茅斯会议前后,他的主要研究方向正是计算机下棋。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(约翰·麦卡锡)

下棋程序的关键之一是如何减少计算机需要考虑的棋步。麦卡锡经过艰苦探索,终于发明了著名的 - 搜索法,使搜索能有效进行。 - 搜索法说核心就是,算法在采取最佳招数的情况下允许忽略一些未来不会发生的事情。说的有点抽象,我们来举个十分简单的例子。

假如你面前有两个口袋和一个你的敌人,每个口袋放着面值不等的人民币,你来选择口袋,你的敌人决定给你这个口袋里哪张面值的钱。假设你一次只能找一只口袋,在找口袋时一次只能从里面摸出一次。当然你希望面值越大越好,你的敌人自然希望面值越小越好。假如你选择了第一个口袋。现在我们从第一个口袋开始,看每一张面值,并对口袋作出评价。比方说口袋里有一张5元的和一张10元的。如果你挑了这只口袋敌人自然会给你5元的,10元的就是无关紧要的了。

现在你开始翻第二个口袋,你每次看一张面值,都会跟你能得到的最好的那张面值(5元)去比较。所以此时你肯定就去找这个口袋里面面值最小的,因为只要最少的要比5元好,那么你就可以挑这个口袋。假如你在第二个口袋摸出一张1元的,那么你就不用考虑这个口袋了,因为如果你挑了这个口袋,敌人肯定会给你1元面值的,那当然要选择最小面值的5元的那个口袋啦。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(基于 - 剪枝算法的智能五子棋)

虽然有点绕,不过我觉得你应该大概已经理解了这个思路。这就是 - 搜索法,因为这种算法在低于或者超过我们搜索中的 或者 值时就不再搜索,所以这种算法也称为 - 剪枝算法。这种算法至今仍是解决人工智能问题中一种常用的高效方法。当年IBM的深蓝国际象棋程序,因为打败世界冠军卡斯帕罗夫而闻名世界,它靠的正是在30个IBM RS/6000处理器的并行计算机上运行的 - 搜索法。

但是需要注意的是,前不久的谷歌AlphaGo,由于棋盘是19x19的,几乎所有的交叉点都可以走子,初始的分支因子为361,这对于常规的 - 搜索来说太令人生畏了,所以别看名字里面带了一个 (Alpha,有可能这个名字是为了纪念麦卡锡的 - 搜索算法),AlphaGo采用的是却是蒙特卡洛搜索树(MCTS),它是一种随机采样的搜索树算法,它解决了在有限时间内要遍历十分宽的树而牺牲深度的问题。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

后来麦卡锡有从达特茅斯搬到了MIT,在那里他又做出了三项十分重要的贡献。第一个是他定义了高级语言Lisp语言,从此Lisp语言长期以来垄断着人工智能领域的应用,而且人们也有了可以拿来用的得力工具了,但是稀少而且昂贵的计算资源仍是问题。于是麦卡锡和他的同事又发明了分时技术。然后,麦卡锡发表了题为“有常识的程序”的文章,文中他描述了一种系统,取名为意见接收者,任务是使用知识来搜索问题的解,这个假想也被看成是第一个完整的人工智能系统。

同年,明斯基也搬到了MIT,他们共同创建了世界上第一座人工智能实验室——MIT AI Lab实验室。尽管后来麦卡锡和明斯基在某些观点上产生了分歧导致他们的合作并没有继续,但这是后话。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(MIT AI Lab实验室)

二、人工智能的诞生

好了,前期的一些大人物介绍完了,让我们一起回到1956年那个意义非凡的夏天。

那年,28岁的约翰·麦卡锡,同龄的马文·明斯基,37岁的罗切斯特和40岁的香农一共四个人,提议在麦卡锡工作的达特茅斯学院开一个头脑风暴式的研讨会,他们称之为“达特茅斯夏季人工智能研究会议”。参加会议的除了以上这四位,还有6位年轻的科学家,其中包括40岁的赫伯特·西蒙和28岁的艾伦·纽维尔。在这次研讨会上,大家讨论了当时计算机科学领域尚未解决的问题,包括人工智能、自然语言处理和神经网络等。人工智能这个提法便是这次会议上提出的,上文也有提到。在这个具有历史意义的会议上,明斯基的SNARC,麦卡锡的 - 搜索法,以及西蒙和纽维尔的“逻辑理论家”是会议的三个亮点。前面已经对明斯基的SNARC,麦卡锡的 - 搜索法有所介绍,下面我们再来看一下西蒙和纽维尔的“逻辑理论家”又是什么。

西蒙和纽维尔均是来自卡内基梅隆大学(当时还叫卡内基技术学院)的研究者,他们的研究成果在这次盛会上十分引人注意。“逻辑理论家”是西蒙和纽维尔研究出来的一个推理程序,他们声称这个程序可以进行非数值的思考。然后在这次研讨会之后不久,他们的程序就能证明罗素和怀特海德的《数学原理》第二章的大部分定理。但是历史往往对新鲜事物总是反应迟缓,他们将一篇与逻辑理论家合著的论文提交到《符号逻辑杂志》的时候,编辑们拒绝了他们。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

我们现在来看看这个研讨会的成果,或者说叫意义。遗憾的是,由于历史的局限,这个世界上最聪明的头脑一个月的火花碰撞,并没有产生任何新的突破,他们对自然语言处理的理解,合在一起甚至不如今天一位世界上一流大学的博士毕业生。但是这次研讨会却让人工智能领域主要的人物基本上全部登场。在随后的20年,人工智能领域就被这些人以及他们在MIT、CMU、斯坦福和IBM的学生和同事们支配了。

我们看看这10个人,除了香农,当时其实大多数都没什么名气,但是不久之后便一个个开始崭露头角,其中包括四位图灵奖的获得者(麦卡锡,明斯基,西蒙和纽维尔),这四位也是我上文主要介绍的四个人。当然,香农也不用得图灵奖,作为信息论的发明人,他在科学史上的地位也图灵也差不多了。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(香农) 

三、短暂的繁荣与困境

从这次会议之后,人工智能迎来了它的一个春天,因为鉴于计算机一直被认为是只能进行数值计算的机器,所以,它稍微做一点看起来有智能的事情,人们都惊讶不已。

因为鉴于当时简单的计算机与编程工具,研究者们主要着眼于一些比较特定的问题。例如Herbert Gelernter建造了一个几何定理证明器,可以证明一些学生会感到棘手的几何定理;阿瑟·萨缪尔编写了西洋跳棋程序,水平能达到业余高手;James Slagle的SAINT程序能求解大学一年级的闭合式微积分问题;还有就是结合了多项技术的积木世界问题,它可以使用一只每次能拿起一块积木的机器手按照某种方式调整这些木块。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(马文·明斯基与他的积木机器人)

虽然这些早期的人工智能项目看起来拥有着巨大的热情和期望,但是由于方法的局限性,人工智能领域的研究者越来越意识到他们所遇到的瓶颈和困难,再加上没有真正令人振奋人心的项目出来而导致资助的停止,人工智能陷入了一个低潮。

产生这些现实困难的原因主要有三点。

第一点是大部分早期程序对要完成的任务的主题一无所知。就拿机器翻译来说,给程序一个句子,会用的方法只是进行句法分割然后对分割后的成分进行词典翻译,那这样就很容易产生歧义。例如I went to the bank,bank既有银行也有河岸的意思,如果只是单纯的分割加单词翻译,这句话根本没法解释。

第二点是问题的难解性。上面我已经提到,早期的人工智能程序主要解决特定的问题,因为特定的问题对象少,复杂度低啊,但是一旦问题的维度上来了,程序立马就捉襟见肘了。

第三点就是程序本身的结构就有问题。例如明斯基在1969年证明了两输入的感知机连何时输入是相同的都判断不了。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(感知机模型)

综上,由于种种困难,再加上资助的减少,人工智能步入了寒冬。这便是人工智能历史的上半段。

四、人工智能的重生

上个世纪80年代中期,当初于1969年由Bryson和Ho建立的反传学习算法被重新发明,然后统计学在人工智能领域的使用以及良好的效果也让科学界为之一振。于是在新的结构和新的方法下,人工智能又重获新生。

首先兴起的是语音识别领域,在这个方面的成就一个重要的原因是隐马尔可夫模型的方法开始主导这个领域。隐马尔可夫模型包含“隐含”和“马尔可夫链”两个概念,马尔可夫链是具有这样一种特性的链条,就是现在的状态只和前一个状态有关,而和再往前的状态没有关系。所以我们遇到这样一个链条的时候,我们可以随机选择一个状态作为初始状态,然后按照上述规则随机选择后续状态。“隐含”的意思则是在这个马尔可夫链上再加一个限制就是,任意时刻的状态我们是不可知的,但是这个状态会输出一个结果,这个结果只和这个状态相关,所以这个也称为独立输出假设。

通过这么一解释我们就能看出,隐马尔可夫模型是基于严格的数学理论基础,这允许语音研究者以其他领域中发展数十年的数学成果为依据。其次这个模型的这种随机性可以通过大量的真实语音进行训练,这就保证了性能的鲁棒性。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(隐马尔可夫模型简图)

在马尔可夫链的基础上还诞生了一个以对不确定性知识进行有效表示和严格推理的形式化方法——贝叶斯网络。贝叶斯网络是一个加权的有向图,是马尔可夫链的拓展。马尔可夫链保证了网络中的每一个状态只跟与其直接相连的状态有关,而跟与它间接相连的状态没有关系,那么这就是贝叶斯网络。在这个网络中,每个节点的概率,都可以用贝叶斯公式来计算,贝叶斯网络因此得名。

贝叶斯网络极大地克服了20世纪60年代和70年代概率推理系统的很多问题,它目前主导着不确定推理和专家系统中的人工智能研究。而且这种方法允许根据经验进行学习,并且结合了经典人工智能和神经网络最好的部分。所以极大的推动的人工智能领域走向现在我们正处的这个巅峰时代。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(一个简单的贝叶斯网络。雨水影响洒水器是否有动作,且雨水及洒水器二者均可影响草是否湿润)

除了这种算法上的革新,还有两个重要推动因素就是互谅网的兴起以及极大数据集的可用性。就像我们用Siri的时候必须联网一样,人工智能系统基于Web的应用变得越来越普遍;我之前在文章《2015年,机器人界发生了哪些神奇疯狂的故事?(下)》中介绍的HitchBOT,它可以拍照、自动识别路人的语言,并将回答显示在屏幕上,这个能力也是通过在网络上搜索相应的答案而实现的。

由于我们现在采用的方法已经基本上变为是基于概率的方法,所以我们便需要有大量的数据集对我们的系统进行训练,以完成监督学习。而现在的互联网环境让这种极大数据集的获得变得越来越方便和容易。就如我们所熟知的ImageNet,ImageNet是一个带有标记信息的图片库,里面的图片均已经由人对图片内容进行了标记。它就好比是一个用于测试计算机视觉系统识别能力的“题库”,包含超过百万道“题目”。 题目由图像和对应的单词(80%为名词)组成,考察的方式是计算机视觉系统能否识别图像中的物体并返回正确的单词。ImageNet使用训练题对计算机视觉系统进行“培训”,然后用测试题测试其识别能力。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

(ImageNet数据集)

又如AlphaGo,在DeepMind的主页里,AlphaGo是这样被介绍的:它是一种计算机玩围棋的新方法,这种方法运用了基于深度神经网络的蒙特卡洛搜索树,而这个深度神经网络一方面是通过运用人类专家级围棋棋局进行监督学习来训练,另一方面还通过程序通过电脑自己与自己博弈的增强学习来进行训练,可见AlphaGo的成果也离不开通过学习人类专家级棋谱进行监督学习的这个大量数据集的使用。

从马文·明斯基到AlphaGo,人工智能走过了怎样的70年?

 

(DeepMind的主页里AlphaGo的页面)

今天这篇文章,我们从人工智能的萌芽一直到今天AlphaGo打败击败欧洲冠军樊麾职业二段这个里程碑式的事件截止,介绍了人工智能能走到今天这个成就的一路的艰难险阻与大风大浪。我相信,随着计算机运算能力以及更加优化的算法,以及大数据集和数据挖掘等技术的帮助,人工智能的路一定会继续高歌猛进。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33878457/article/details/86217137

智能推荐

while循环&CPU占用率高问题深入分析与解决方案_main函数使用while(1)循环cpu占用99-程序员宅基地

文章浏览阅读3.8k次,点赞9次,收藏28次。直接上一个工作中碰到的问题,另外一个系统开启多线程调用我这边的接口,然后我这边会开启多线程批量查询第三方接口并且返回给调用方。使用的是两三年前别人遗留下来的方法,放到线上后发现确实是可以正常取到结果,但是一旦调用,CPU占用就直接100%(部署环境是win server服务器)。因此查看了下相关的老代码并使用JProfiler查看发现是在某个while循环的时候有问题。具体项目代码就不贴了,类似于下面这段代码。​​​​​​while(flag) {//your code;}这里的flag._main函数使用while(1)循环cpu占用99

【无标题】jetbrains idea shift f6不生效_idea shift +f6快捷键不生效-程序员宅基地

文章浏览阅读347次。idea shift f6 快捷键无效_idea shift +f6快捷键不生效

node.js学习笔记之Node中的核心模块_node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是-程序员宅基地

文章浏览阅读135次。Ecmacript 中没有DOM 和 BOM核心模块Node为JavaScript提供了很多服务器级别,这些API绝大多数都被包装到了一个具名和核心模块中了,例如文件操作的 fs 核心模块 ,http服务构建的http 模块 path 路径操作模块 os 操作系统信息模块// 用来获取机器信息的var os = require('os')// 用来操作路径的var path = require('path')// 获取当前机器的 CPU 信息console.log(os.cpus._node模块中有很多核心模块,以下不属于核心模块,使用时需下载的是

数学建模【SPSS 下载-安装、方差分析与回归分析的SPSS实现(软件概述、方差分析、回归分析)】_化工数学模型数据回归软件-程序员宅基地

文章浏览阅读10w+次,点赞435次,收藏3.4k次。SPSS 22 下载安装过程7.6 方差分析与回归分析的SPSS实现7.6.1 SPSS软件概述1 SPSS版本与安装2 SPSS界面3 SPSS特点4 SPSS数据7.6.2 SPSS与方差分析1 单因素方差分析2 双因素方差分析7.6.3 SPSS与回归分析SPSS回归分析过程牙膏价格问题的回归分析_化工数学模型数据回归软件

利用hutool实现邮件发送功能_hutool发送邮件-程序员宅基地

文章浏览阅读7.5k次。如何利用hutool工具包实现邮件发送功能呢?1、首先引入hutool依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.19</version></dependency>2、编写邮件发送工具类package com.pc.c..._hutool发送邮件

docker安装elasticsearch,elasticsearch-head,kibana,ik分词器_docker安装kibana连接elasticsearch并且elasticsearch有密码-程序员宅基地

文章浏览阅读867次,点赞2次,收藏2次。docker安装elasticsearch,elasticsearch-head,kibana,ik分词器安装方式基本有两种,一种是pull的方式,一种是Dockerfile的方式,由于pull的方式pull下来后还需配置许多东西且不便于复用,个人比较喜欢使用Dockerfile的方式所有docker支持的镜像基本都在https://hub.docker.com/docker的官网上能找到合..._docker安装kibana连接elasticsearch并且elasticsearch有密码

随便推点

Python 攻克移动开发失败!_beeware-程序员宅基地

文章浏览阅读1.3w次,点赞57次,收藏92次。整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)近年来,随着机器学习的兴起,有一门编程语言逐渐变得火热——Python。得益于其针对机器学习提供了大量开源框架和第三方模块,内置..._beeware

Swift4.0_Timer 的基本使用_swift timer 暂停-程序员宅基地

文章浏览阅读7.9k次。//// ViewController.swift// Day_10_Timer//// Created by dongqiangfei on 2018/10/15.// Copyright 2018年 飞飞. All rights reserved.//import UIKitclass ViewController: UIViewController { ..._swift timer 暂停

元素三大等待-程序员宅基地

文章浏览阅读986次,点赞2次,收藏2次。1.硬性等待让当前线程暂停执行,应用场景:代码执行速度太快了,但是UI元素没有立马加载出来,造成两者不同步,这时候就可以让代码等待一下,再去执行找元素的动作线程休眠,强制等待 Thread.sleep(long mills)package com.example.demo;import org.junit.jupiter.api.Test;import org.openqa.selenium.By;import org.openqa.selenium.firefox.Firefox.._元素三大等待

Java软件工程师职位分析_java岗位分析-程序员宅基地

文章浏览阅读3k次,点赞4次,收藏14次。Java软件工程师职位分析_java岗位分析

Java:Unreachable code的解决方法_java unreachable code-程序员宅基地

文章浏览阅读2k次。Java:Unreachable code的解决方法_java unreachable code

标签data-*自定义属性值和根据data属性值查找对应标签_如何根据data-*属性获取对应的标签对象-程序员宅基地

文章浏览阅读1w次。1、html中设置标签data-*的值 标题 11111 222222、点击获取当前标签的data-url的值$('dd').on('click', function() { var urlVal = $(this).data('ur_如何根据data-*属性获取对应的标签对象

推荐文章

热门文章

相关标签