你如果生活在这个地球上,这几天就一定听说过围棋的人机大战。如果你关注,应该也会在各种报道分析文章中看到过“神经网络”、”深度学习“这样的词汇。神经网络是一项重要的计算机技术,要理解人工智能,需要从神经网络谈起。
理性的困难
自从两千多年前欧几里得发表了公理体系,逻辑推理和科学计算就成为一切科技的基础,也就是所谓的“理性”。计算机技术也在遵循这样的原则。计算机程序基本上都是:如果输入等于A,就进行如下计算,如果结果等于B,就执行指令C,否则执行指令D…..,这样的陈述。如果我们做一个打乒乓球的机器人,它应该这样工作:
测量来球的速度和旋转
根据空气动力学计算它未来的轨迹
计算球在桌面弹起后的轨迹和旋转
制定最佳的回球策略
计算机器手的每个关节需要做多少运动和转动才能实现以上策略
给控制每个关节的电动机相应的输出实现以上转动
直到大约10年前,大多数计算机行业的人仍然认为人工智能也要遵循理性原则,机器人要按照上面那样的方法去设计。
但是,直到今天,也没有人用这样的方法造一个机器人去挑战张继科。这不是机器的过错,逻辑思维和科学计算毕竟不是人脑先天就具备的能力,这样的一个系统,设计起来太复杂了。人体的工作方式是这样的:
在训练过程中产生肌肉记忆
眼睛观察来球,接收到的信号直接唤起肌肉记忆
肌肉记忆调动全身几十条肌肉协同运动,实现手眼配合,挥动球拍
这套跟着感觉走的机制,在现代科技面前显得很高效。随着计算机应用的发展,人们越来越意识到,解决这个复杂世界中的很多问题时,”理性“的,解析的方法,或者低效,或者完全不可能。
再举一个例子:
怎样判断一张数码图片是不是林志玲?按理性的思路,要判断就要求有定义,能导出一系列判据的定义才是有用的定义。动手写程序之前,我们就卡在这里了。也不是完全没有希望,经过很多科技工作者多年的努力,发现可以用人脸上几个关键点,如眼角、嘴角的坐标鉴定人的身份。但这个方法不可靠,人脸的角度、表情都会影响到鉴定结果,带上墨镜就完全不灵了。这又是一个理性完败于感性的例子,她的一颦一笑,我们看一眼就能认出来。
人脑的启示
既然理性在很多实际应用中输给了感性,可不可以用理性的方法,去研究、去模仿感性呢?人们通常认为精神、意识是和物质不是在一个层面上的东西,部分人认为人类智慧和机器之间有不可跨越的鸿沟。然而人的智慧是由人脑实现的,人脑是物质的,遵循物质世界的规律。探寻智能的本质,应该从研究人脑开始。
人脑虽然复杂,它的组成单元却是相对简单的。人的智能是由大脑皮层实现的,大脑皮层以及人的整个神经系统,是由神经元细胞组成的。神经元,是一个积累了足够的输入,就产生一次输出(兴奋)的相对简单的装置。
神经元示意图,连在细胞膜上的分叉结构叫树突,是输入。那根长长的“尾巴”叫轴突,是输出。神经元输出的有电信号和化学信号。最主要的是沿着轴突细胞膜表面传播的一个电脉冲,如下图。
树突和轴突都有大量的分支。轴突的末端通常连接到其他细胞的树突上,连接点上是一个叫“突触”的结构。一个神经元的输出通过突触传递给成千上万个下游的神经元。神经元可以调整突触的结合强度,并且,有的突触是促进下游细胞的兴奋,有的是则是抑制。一个神经元有成千上万个上游神经元,积累它们的输入,产生输出。
神经元和大脑结构的一张比较浪漫的想象图。神经元之间的连接实际上比这复杂得多。
人们估计人脑有1000亿个神经元,1000万亿个突触。我们所有记忆、知识和智慧,是储存在这些突触里的,但人脑是怎么编码、存储这些信息的,我们完全“摸不到头脑”。我们对外部信息的处理、以及直觉、回忆、思考等大脑活动,都是由这些神经元完成的。神经元的运行速度大约是100Hz,现代的CPU芯片要快几千万倍,但现代计算机的连通性、大规模并行计算的能力,要远远弱于人脑。所以,现在的世界是人脑和计算机各有所长的局面。
神经网络算法
既然神经元是一个功能相对简单的装置,模拟人脑应该从模拟神经元开始。人们提出用下面这个简单函数来模拟神经元:
这个函数可以有很多输入’X‘,模拟树突;对应于每一个输入有一个权重’W‘,模拟突触;输出是每一个输入乘以权重在加起来’SUM‘,模拟神经元积累输入产生输出的机制;输出再按照一条给定的曲线映射到0到1(或者是-1到1)之间的一个数,模拟人脑判断时的在’是‘和’否‘之间的模糊逻辑。
用这样的“神经元”(Neuron)组成的神经网络(Neural networks)可以解决实际问题。上面这个网络是用来识别手写的数字‘0’、‘1’、….‘9’的。识别手写字用传统方法编程非常困难。这张网络被分成三层,神经网络一般都会被划分成很多层,这也是受到了人脑的启示,大脑皮层有6层神经元细胞,人脑处理视频信息也是分好几个层次由不同的区域去处理。
这个算法把一张图分成28×28=784个点,每一个点对应一个第一层(Input Layer)神经元,输入‘1’和‘0’表示黑和白;中间是个隐藏层(Hidden layer);第三层是输出层有10个神经元,分别对应着10个数字。这个网络是有大量简单函数(神经元)拼接出的复杂函数,输入一张图,产生10个输出。我们希望输入一个手写的‘9’的图片时,对应于‘9’的输出神经元输出一个‘1’表示肯定,其他的输出‘0’表示否定;对其余9个数字也是一样。我们能做到吗?
当然可以,因为这个函数有一万多权重作为参数可以调整。学过高等数学的朋友都知道,我们可以用一组简单函数去逼近一个复杂函数(比如1,x, x^2, x^3, …),无论它有多复杂,只要我们使用足够多的参数就可以逼近它。一万多个参数需要大量的数据点才能确定。于是需要提供几万张手写数字的图片,调整这些参数使这些数据点产生最好的吻合,这在数学上是个优化问题,有现成的计算方法。使用大量数据进行网络优化,就是神经网络的“训练”或“学习”过程。
经过几万张图片的训练后,这个程序工作得相当不错。这个算法像人脑,因为它成功地模拟了人脑的一种能力:直觉。
直觉就是不经过逻辑推理和计算,凭借经验快速取得结论的能力。神经网络虽然训练起来费时费事,一旦训练完成,计算起来还是比较快的。有了这样的算法,我们再也不用费工夫给计算机去定义什么是‘0’、什么是‘1’等等。我们只需要像教小孩子一样,拿几张图告诉他这就是‘0’和‘1’,他以后自己就认识了。
但这个算法也不像人脑。教一个小孩子识字,只教他两三遍,他以后就可以在不同的背景,不同的书写方式下认识这个字。计算机却需要几万、甚至几百万张图片去训练。人脑有着非常高效的接收知识的方法,这是至今科学界没能破解的奥秘。相对而言,计算机是使用蛮力在学习。用几万个数据点去优化一万多个的参数,是一个海量的计算。这还仅仅是一个最最简单的问题,也需要几十万亿次的乘法和加法。神经网络的算法,上世纪40-60年代就被提出和研究过,当时没有取得成功,很大一个原因是,学习过程中的海量计算,当时的计算机根本无法胜任。
围棋与神经网络的成功
在取得这次划时代的围棋胜利之前,神经网络已经在各行各业得到了很大应用了,从语音、图像识别到信用审查甚至炒股。它被包装成了“深度学习”,所谓的“深度”,是指网络有很多层,这套算法的基本原理,仍然和上面讲的一样。
深度学习的成功,得益于算法本身的改进,克服了一些具体的技术困难,主要的学问在于网络的设计。更重要的,得益于两个外部条件–
第一:半导体技术的进步,特别是CPU以外GPU的发明,更快的芯片加大规模平行计算解决了神经网络训练时的海量计算问题。
第二:互联网和大数据时代的来临,使得获得训练神经网络所需要的大量数据的成本急剧降低。倒退20年,要去找几百万个数据点,还不如坐下来用解析算法写一个程序。今天,在很多应用领域,这个成本对比逆转了。
围棋是人工智能的终极检验,因为它太复杂基本无法可靠地去计算。二十年前,IBM的深蓝计算机击败国际象棋世界冠军,用的是传统的理性算法。直至去年底,没有任何一个围棋软件击败过任何一位职业棋手。围棋,被认为是只有人才玩得好的。所以,尽管西方没有围棋传统,几个顶级的人工智能公司都投入巨资开发围棋软件。
阿尔法狗的算法,有大量文章介绍,不在这里详述。之前有一个用于下棋的”Monte Carlo Tree Search“的搜索算法,基本原理是既然无法逐一计算所有的可能性,就按统计规律随机挑选走棋方法去计算,保证以比较高的概率提供比较好的走法。阿尔法狗使用了两张神经网络,给出的直觉判断,使得搜索算法变得有的放矢。就像人类棋手下棋一样,大部分的选择凭直觉根本不去计算的。引进神经网络的结果是棋艺的本质性提高。
几个团队都在把神经网络引进到围棋软件中,如果谷歌不成功,别的团队的成功也是迟早的事情。谷歌之所以走在前面,一方面是因为钱多,花2-3百万美金的年薪雇了20多个深度学习的顶级专家;另一方面是因为资源多,他们可以把世界上所有的棋谱都扒过来,可以调动基本上是世界上最好的服务器网络进行计算。
李世石输得不冤,对手有人类所有高手的经验积累,外加三千万盘左右互博的经历。
阿尔法狗胜利的意义是什么?我觉得这场胜利证明,人类跟直觉相关的智能,没有什么神秘的。无非是棋手们经过训练,大脑里的突触得到的调整优化。天资高的人,大脑的调整能力强;勤奋的人,积累的数据多。而阿尔法狗的学习方法虽然可以说很笨拙、用蛮力,但学到的东西却是货真价实的。形势感,什么时候求稳什么时候冒险;大局观,取势取地;都跟人类顶尖棋手没有差别;还有让聂卫平表示要脱帽致敬的妙招。
神经网络的改进
对神经网络算法的改进也正在被研究。比如说有人指出,这个神经元不像人脑的神经元,人脑的神经元是积累了足够多的输入后才向外输出一个脉冲。这样,一个事件的输入可能只引起千分之一的神经元的活动,绝大部分不需要关注的细胞不会浪费营养。而神经网络算法把神经元模拟成一个函数,任何一个微小的输入都会让整个网络进行计算,可能99.9%的计算都是浪费时间浪费电。
于是就有了更认真地模仿人脑的脉冲神经网络(Spiking Neural Networks)。IBM设计了这种神经网络的专用芯片TrueNorth,在演示中证明了巨大的省电优势。国内几个单位也在设计这种类脑芯片。
不过笨法子有它的好处,就是简单。脉冲神经网络目前为止远没有取得深度学习那样多的成果。
至于像人类那样更聪明的学习方法,没有什么进展。
中国会落后吗?
看到西方人用现代科技在我们东方人的传统游戏上取得了胜利,中国人不免紧张。是不是谷歌的科技把中国甩开了?
这一点,我不担心。读者可以看到,人工智能的黑科技,说明白了其实很简单。谷歌阿尔法狗的胜利,本身不是核心技术的创新,而是一项卓越的工程实践。深度学习的专家,现在可以拿到天文数字的高薪,是由于人才紧缺。诚然,任何一门手艺学好学精都不容易,但这绝不是只有少数人才能掌握的手艺。我敢保证,次数此刻,一定有500个旅美的中国留学生,5000个中国的博士和硕士,在钻研深度学习。
像阿尔法狗这样的程序,中国人可能一年就可以山寨出来。当然,谷歌很清楚这一点,他们刚刚把阿尔法狗开源了。
中国在这个领域追赶,反而比造一台好的航空发动机容易。
值得注意的是,人工智能如果这样发展下去,拥有大量数据的组织会取得很大优势。这是社会层面,不是技术层面的问题。
人工智能的未来
现在,计算机已经在围棋领域打败了人类,还有什么事情是只有人能做,而计算机不能做的?
回答这个问题,我们需要认真思考,避免想当然。比如你可能认为只有人才有想象力。其实想象力就是构建虚拟现实的能力,计算机的虚拟现实,现在是一个热门行业。再比如你可能认为只有人才能做逻辑思维,但这样说并不合适,计算机从被制造出的那一天起就是运行逻辑的,人却是需要经过后天训练才懂逻辑。
另一个问题是:人工智能是否一定要模仿人脑?有人认为不需要。我们想要一个代替自己走路的工具,这个工具发明出来后并没有腿,只有轮子。用腿走路的工具,在车轮发明7000年后的今天,还没有完全造好(谷歌被美国军方退货了)。我们希望像鸟一样飞翔,我们向鸟学了一些东西:比如要有翅膀,但我们的飞机却采用了完全不同的固定翼飞行方式。
另外的人则指出,你看看人脑的信息处理方式,比计算机效率何止高万倍!破解了人脑的奥秘,一定会给人工智能带来巨大的帮助。有人悲观地认为,人类的智慧不足以认识人类自身的智慧。对此,我持相反的态度。人脑不是上帝设计出来的,是长期进化出来的。对外界刺激怎么相应,如何调整,一定是遵循一套简单的规则。只是我们还没有悟到。
当然,即使靠蛮力,人工智能也可以取得相当大的成就。
第三个问题是:计算机将来是否会有自由意志?这一点,我们有充足的理由(虽然没有绝对的把握),认为机器和人之间有不可跨越的鸿沟。
自由意志是自我设定目标的能力,机器都是由人来设定目标的。人之所以有自由意志,是因为人是一个有机体,食色性等外部刺激都会勾起我们的欲望。这样的感觉,基于电信号的计算机肯定不会有。计算机见到林志玲的照片不会有想法,计算机不会去占领地球上的资源。想到这里,人类或许可以放心些。
智能是另一个层面的问题,只涉及完成目标的能力。我认为,人工智能如果想全面超越人类智能,还需要两个方面的突破。
理解
也许有人会问:你说计算机懂逻辑,那它为什么不能自己编程?阿尔法狗的程序是人类编写的。
计算机不能自我编程,首先是因为它不懂人类的语言。编程首先就是把人类的需求翻译成计算机语言。
那么,什么叫做“懂”呢?
两个黄鹂鸣翠柳
一行白鹭上青天
这两句诗,一共需要32byte的存储。一个硬盘,可以把人类历史上所有的诗都存进去。但我们不认为计算机会背诗就是懂诗。我们懂诗,是因为我们能吟诵它的韵律,是因为我们仿佛能看见春光中柳树上漂亮的鸟儿,听见它们悦耳的叫声,仿佛抬头看见天的蓝,白鹭飞行的优雅姿态。而
正是江南好风景
落花时节有逢君
没见过人世间悲欢离合的人,不会体会到这两句诗有感觉。
于是,我们懂“懂”了:
理解一段信息,是指把这段信息,和已有的相关信息关联起来,并在未来接收新的相关信息时,把它和这段信息相关联起来的能力。建立的关联越多,就表示理解得越好。
如果计算机能够在我们输入几行唐诗后,在网上搜到一些符合该诗意境的图片,我们就可以认为它懂诗了。以今天的技术,这并不是遥不可及的。至于我们读诗会愉悦、会流泪,那是人类生理层面的事情,不涉及智慧。
在信息之间建立连接,对程序员来讲只是增加一个指针。关键在于首先要有自身的信息积累,一个人如果没有足够的准备知识,是不能读懂一篇文章,吸收其中的信息的。今天这个时代,一个程序可以在互联网上搜索知识。能和人类对话的机器人,有几家公司已经有了初步的产品。人工智能在这个方向上取得重大的成功,同样不是遥不可及的。
解决问题
既要能够和人类沟通,还要有解决问题的能力,计算机才可以自己写程序。解决问题,甚至在这个过程中自主创新,是最高级的智能。目前的技术离这一目标相差很远。
但也许,这最高级的智能,并没有想象得那么神秘。人类解决问题时用的方法:类比、推导、想象、比较,无一不能在计算机上进行。我相信,这个难关总有一天会被突破。
解题和创新一旦被突破,才真正是“奇点”的来临。人类有理由感到恐惧,因为你不知道人类的道德伦理和社会制度将会受到怎样的颠覆。
但无论你喜欢与否,这一天终将会来到。并且,很可能比想象得早。
镜像链接:谷歌镜像 | 亚马逊镜像
相关日志
- 2016/03/16 -- 阑夕:几点看法–关于AlphaGo和人工智能 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/16 -- 練乙錚:大陸高鐵犯台.AlphaGo黃士傑.強國的屁股 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/14 -- 田渊栋:第四局AlphaGo败招的分析 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/13 -- 陈经:分析AlphaGo算法巨大的优势与可能的缺陷 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/13 -- 知乎:谷歌人工智能团队第一作者推特解释第四局比赛李世乭反杀AlphaGo ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/13 -- 学会拥抱新事物和新思维:怎样对待AlphaGo ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/12 -- BBC:人工智能AlphaGo三局完胜围棋冠军李世石 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/12 -- AI觉醒 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/12 -- 王小川:人类棋手被吊打而不自知 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
- 2016/03/11 -- 李喆:这两盘没人比小李好 ( 镜像链接: 亚马逊镜像 | 谷歌镜像 )
from 墙外楼 http://www.letscorp.net/archives/103310