火热的人工智能,会引导机器走向奇点吗?
版权声明:本文内容来自BRIAN BAILEY,如您觉得不合适,请与我们联系,谢谢。
1993年,计算机科学家兼科幻小说作家Vernor Vinge创造出了一个叫做“奇点”的术语,根据他的介绍,人类致力于发展的机器智能如果在某一天超过了人类的智能,那么超过的那个时刻就被称之为“奇点”。
自从提出了这个概念以来,科学家、工程师和未来学家都在期待这一刻的到来。
Vernor Vinge
来到2006年,Ray Kurzweil出版了一本名为《The Singularity is Near》(奇点逼近)的书。在书中他表示,artificial intelligence (AI,人工智能)在进入自我改进周期之后,会陷入一种失控反应。
他认为随着学习加速,机器最终会出现超智现象,这样其“智慧”就会超越所有人类的智慧。按照他的观点,这会在2040年的某一天到来。但是根据Elon Musk的描述,他认为在五年之后,AI就会变得很危险。
当然这都是作者描述的世界。从现在的应用和研究看来,我们也不确定AI的发展是否最终会走到Vinge所说的“奇点”。但可预见的是在五年之后,我们的技术会更进一步。从摩尔定律看,我们集成在芯片上的集体管数量会有数倍的增长。届时晶体管上的热量会被控制好,并能应用到各种领域。
如果将其应用到AI,真的会导致奇点的产生吗?
计算的“核心”
乘法是一个很普遍的算数运算,它在很多基本运算(如滤波、卷积、变换和加权)中充当一个很重要的角色。Cognite Ventures的首席执行官Chris Rowen表示。但是另外也有很多重要的趋势不能忽视,Rowen补充说。
例如无线通讯和DSP的崛起,它能提供单循环的乘法运算,而在此之前,这只能在固定功能的硬件上运行。而无线通信在过往一直被看做难以计算的典型。Candence IP部门的资深架构师Samer Hijazi对记者说。根据他的观点,无线通信在未来也会是一个难以计算的问题,这是一个NP-complete (nondeterministic polynomial-complete)难题。
DSP给你提供一个乘法阵列,中间有多少bit是你相信的和使用的?就像人们有选择性地学习其所需要的。
随着应用变得越来越复杂,他们开始使用越来越多的的算术。
“计算经常使用混合位精度(8b, 16b, 32b或者其它位)和数据格式(整数、浮点数)”,Rowen解析说。
这就意味着一次执行需要足够的灵活性,才能满足多样的算术运算。当中有位精度和数据格式,而不是仅仅使用乘法。也只有这样做,才能满足运算的精度需求。
人工智能的诞生
人工智能在以前通常是出现在科幻小说或者电影里面。和其他技术一样,这些“幻想”对于推动技术的发展有了促进作用。
在人工智能领域,现在有一个算法东山再起,让整个业界为之疯狂,那就是CNN(卷积神经网络)。但CNN的一个问题是,它只是一个3D滤波器。它通过执行一个应用在整个场景的重复滤波,然后去探索周围环境中实物的共性,寻找出一个特定的规律。
简单说来,CNN就是用好几层使用非线性激活函数(如,ReLu,tanh)的卷积得到答案的神经网络。
在传统的前馈神经网络中,我们将每一层的输出和下一层的输入相互连接,这也被称为完全连接层或仿射层。但是CNN中并不是这样。相反,我们使用卷积在输入层中计算输出。这就导致了局部连接,一个输出值连接到部分的输入(译者:利用层间局部空间相关性将相邻每一层的神经元节点只与和它相近的上层神经元节点连接)。
每一层都需要不同的过滤器,通常是成千上万的,就类似上文提到的那样,然后将它们的结果合并起来。那还有一个叫做池(pooling layer)或者二次抽样层(subsampling layers)的东西,下次再说吧。
在训练阶段中,CNN能够依赖训练集自动改善它过滤器中的值。举个例子,在图像分类问题中,CNN能够在第一层时,用原始像素中识别出边界,然后在第二层用边缘去检测简单的形状,然后再用这些形状来识别高级的图像,如更高层的人脸形状。最后一层就是用高级的图像来进行分类。
在计算方面有两个值得注意的东西:局部不变性(Location Invariance)和组合性(Compositionality)。
假设你要分别图像上有木有大象。
1、因为你的过滤器将扫描整个图像,所以并不用太在意大象到底在哪儿。在现实中,pooling也使得你的图像在平移、旋转、缩放的时候保持不变(后者更多)。
2、组合性(局部组合性),每个过滤器获取了低层次的图片的一部分,组合起来成了高层次图片。
这就是为什么CNN在计算机视觉上表现地如此给力。在从像素建边,从边到确立形状,从形状建立更加复杂的物体过程中,CNN会给人一个直观的感受。
CNN最早是有Yann LeCun开发的。最初的被应用在识别信上的邮政编码。在过去CNN之所以没有成为主流,那是因为当时还没有足够的运算能力。只有大规模的GPU才能发挥出这个算法的优势。
技术方向
虽然乘法器很重要,但它也只是系统的一部分。
假设我们打造一个高端视觉处理器,它在每一个循环能执行数百次乘法运算,但是这个运算在芯片上所占用的硅空间其实不到10%,其它的部分被分配去操作寄存器、累加器、取指令、解码、其它算术运算、操作数选择、分配和内存接口。
谈到具体的硬件方案时,主要分为以下几个方面:
首先是GPU;
这是最常被用来执行CNN的一种方案。他们的大量内存子系统使其成为CNN的重要选择。其大量的分层的内存子系统能让数据从一层转移到另一层,这样就可以将屏幕上的像素平滑的转移,这对于图像处理很重要,但在人工智能上的需求并没有那么高。
多GPU 上,神经网络难以进行有效的并行化,对普通的密集神经网络加速效果也很一般。小型神经网络可以并行并且有效地利用数据并行性,但对于大一点的神经网络,几乎没有加速效果。
对比 32 位的方法,开发带有模型并行性的新型的 8 位压缩技术,该技术能更有效地并行处理密集或全连接的神经网络层。(注:模型并行是把一个模型拆分成部分,通信开销大,但适用于单机内存无法容纳全部数据的情况)
但这需要非常了解硬件及其与深度学习算法交互的方式,这样一开始就能衡量是否可以受益于并行化。
很多框架支持这种并行性;大多数框架来说(比如 TensorFlow、Caffe、Theano 和 Torch),使用 4 个 GPU通常会加速约 2.5-3 倍;对于优化过的研究代码,约有 3.6-3.8 倍的加速。
一个GPU对所有任务来说就足够了,但多个对于加速深度学习模型来说很重要。如果想快速学习深度学习,多个廉价GPU也好。
其次是FPGA。
FPGA有很多有很多定点乘法器阵列,其中的大部分是24bit的,其数量通常是深度学习所需的三到四倍。其DSP被结合到内存的层次结构,能够优化FPGA的构造,从而让数据转移变得更便捷。值得一提的是,FPGA的功耗较之CPU有很大的优势。
由于FPGA加速器能高效地计算卷积层的前向传播。 所以 CNN 加速器应该能够接受一个输入图像,并连续处理多个卷积层。
在研发中,设计应包括几个因素。 因为系统必须要处理多个层次,系统的引擎必须是可配置的以便支持这些层。 内存管理是至关重要的,所以设计中必须包含有效的数据缓冲方案和片上再分配网络。
最后,设计中必须能够包含一个可轻松按比例增加至成千上万个单元的处理元素的空间分布数组。
这样就使得 CNN 加速器可接受一个输入图像,然后连续执行众多卷积层的分析工作。 系统处理卷积层的方法严重依赖所使用的硬件。 在追求更高处理效率的战斗中,FPGA 已经成为了明智之选
从单体来说,FPGA 单元的性能略逊于 GPU。
CNN 加速器设计中使用的 FPGA 是 Altera Arria 10 FPGA。 在 ImageNet 1K 上使用单个 Altera Arria 10 FPGA,每秒可处理 233 个图像而消耗的功率为 25W 左右。 同等情况下,NVIDIA Tesla K40 GPU 每秒可处理 500 至 824 个图像。
但是,NVIDIA Tesla K40 GPU 以此速度处理图像所消耗的功率为 235W。 所以,该 FPGA 可能处理速度比较慢,但是它大大减少了消耗的功率。 FPGA 的优势在于它是可堆栈的。 只需连接三个 FPGA 即可达到与 Tesla K40 一样的处理能力,但是功率输出却减少了约 30%。
但也许GPU和FPGA并不是人工智能的最好选择。有可能只有四位乘法是必须的。因此节约成本的一个途径就是去削减乘法器的数量,因为乘法器很贵。
另外,Intel通过收购Nervana,在人工智能领域也有了一席之地。
Intel通过构建于业界领先的基于英特尔架构的涵盖至强处理器、至强融核处理器、Nervana平台和FPGA、Omni-Path网络、3D XPoint存储等技术的硬件平台,结合英特尔针对深度学习/机器学习而优化的英特尔数学函数库(Intel® MKL)、英特尔数据分析加速库Intel® DAAL)等,和致力于为多节点架构提供卓越性能的开源软件框架如Spark、Caffe、Theano以及Neon等,及可推动前后端协同人工智能发展布局的Saffron、TAP、Nervana 系统、Movidius等工具和平台,以上这些产品组合将最终帮助广泛的行业和企业更方便地获取、开发和部署人工智能应用,将人工智能潜能在各个领域中充分释放,如智能工厂、无人驾驶汽车、体育、欺诈检测、生命科学等等。
而根据Imagination Technologies公司的技术通信主管 Jen Bernier的预测,2017年将会有一些专门针对AI开发的芯片面世。对于这些芯片开发商,他认为他们需要关注在本地的数据处理能力,和将数据传递到云端的能力,然后执行后续处理和数据聚合。
真实的情况又如何?
那么我们现在究竟离奇点还有多远?
我们现在使用的算法是上世纪九十年代发明的,现在已经被媒体广泛宣传。但这些都是起源于一个算法,且在一个领域拥有领先的优势,那就是机器视觉。AI并没有像媒体报道那样突飞猛进。坦白讲,一个算法智能解决一个问题。
现在厂商也在探索新方法,将这个算法应用在不同领域。如谷歌将其应用在Go上面。另一些应用范例就是语音识别。虚拟助手在未来将变得无处不在。
未来语音识别将被集成到数量庞大的物联网设备中,届时那些能听懂人说话的语音识别设备将随处可见。
但这些是否会将我们带到奇点?AI是否会给我们创造出一个算法或者硬件架构,将我们带到奇点么?
从目前来看,人工智能只是会优化我们所拥有的的东西,这并不会出现奇点。至于未来是否会出现,有待我们继续观望。
R
eading
推荐阅读(点击文章标题,直接阅读)
【关于转载】:转载仅限全文转载并完整保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“半导体行业观察icbank”微信公众号。谢谢合作!
点击阅读原文加入摩尔精英