发布时间:2018-05-06 09:34:41 文章来源:互联网
微博 微信 QQ空间

AlphaGo大战李世石,以机器4:1大胜人类告终。之后,人工智能受到的关注到了前所未有的程度。每个人都在讲人工智能将怎样改变人们的出行方式,人工智能会如何如何地取代人类的简单工作,未来将产生怎样翻天覆地的变化。但是很少有人去讲现有的人工智能是如何运作的,他们所需要的大量计算是如何被满足的?今天这篇就带大家来扒一扒人工智能的那些巨量运算是如何实现的——分布式计算。

拿AlphaGo为例,它的主要工作原理就是机器的“深度学习”。AlphaGo通过落子选择器(Move Picker)和棋局评估器(Position Evaluator)两个大脑的高速计算,它们从多层启发式二维过滤器开始,去处理围棋棋盘的定位,经过过滤,13个完全连接的神经网络层产生对它们看到的局面进行判断,分别给出权重,得出一个最后的落子决定。总结一句,下围棋过程中,每落一子,AlphaGo都要经过大量的计算。

那这个AlphaGo计算能力有多强呢?搜狗CEO王小川表示,根据AlphaGo的团队在《nature》杂志上发表的论文数据推算,它的计算力是当年IBM深蓝计算机的3万倍。

深蓝是美国IBM公司生产的一台超级国际象棋电脑,重1270公斤,有32个微处理器,每秒钟可以计算2亿步,计算能力11.38 GFLOPS,输入了一百多年来优秀棋手的对局两百多万局。它曾在97年战胜了当时的国际象棋世界冠军卡斯帕罗夫。

想象一下深蓝计算机,一个重达1270公斤的奇葩,通上电,有32个大脑同步运作计算,它每秒可以做113亿次的浮点运算。而现在有个能力是深蓝3万倍的怪兽(AlphaGo),每秒能做339万亿次浮点运算的怪兽,它该是什么形体呢?

实质上它并不像大家看到的是一台小电脑,其背后连接是一个巨大的计算机网络系统,用到的是一种叫分布式计算的能力。

分布式计算是将本来需要超级计算机通过长时间的工作才能完成的巨量运算,通过分解成许多小的任务,分配给多台计算机进行处理的计算方法。这样可以节约整体计算时间,大大提高计算效率。

举个例子,你现在要计算365*365的结果,你会用365*5+365*60+365*300的方式进行计算。而分布式计算,当计算机拿到一个365*365的运算任务的时候,由服务器端将这个等式拆分成三个相对简单的乘法运算A(365*5)、B(365*60)、C(360*300),然后分配给计算机网络中相对空闲的不同计算机(客户端)进行运算,各个客户端计算完后反馈结果至服务器端,而服务器端只要对A、B、C的运算结果作简单相加运算即可,从而大大减少了单个计算机的计算压力,极大缩短了整体的运算时间,因为A、B、C客户端的乘法运算是可以同步进行的,并且不会相互影响。AlphaGo就是通过这种将大任务来分解成各个小任务并解决的方式来完成它的巨量运算。

分布式计算最早是用来解决一些本需要超级计算机才能进行计算并研究的人类科研难题,例如寻找最大的梅森素数。但是超级计算机的运行成本和维护费用是相当的高昂,一般的科研院所根本负担不起,所以分布式计算就应运而生,充分利用互联网上的计算机的中央处理器的闲置处理能力,来共同解决大型的计算问题。

另一视角

换一换