专栏名称: 兴业计算机团队
兴业证券计算机团队:力求勤勉、专注、深入、严谨 —— 成员:袁煜明/蒋佳霖/徐聪/雷雳/陈冠呈/洪依真
目录
相关文章推荐
Linux就该这么学  ·  AI攻击AI:威胁Linux ... ·  昨天  
数据中心运维管理  ·  施耐德电气PowerLogic™ ... ·  2 天前  
数据中心运维管理  ·  6月1日起实施!我国首部绿色数据中心评价国标 ... ·  2 天前  
数据中心运维管理  ·  应急预案和应急演练到底怎么做? ·  2 天前  
Linux就该这么学  ·  苹果要给系统重命名?从 iOS 18 ... ·  2 天前  
51好读  ›  专栏  ›  兴业计算机团队

【兴业计算机袁煜明团队】AI芯片深度报告:AI芯片助中国“芯”弯道超车,由浅入 “深”度学习

兴业计算机团队  · 公众号  ·  · 2017-09-25 18:54

正文

请到「今天看啥」查看全文


2.1、人工神经网络与深度学习简介及其对算力的要求

人工神经网络的算力要求在于并行计算和矩阵计算能力,以及简单指令下的重复计算。 人工神经网络是人工智能和机器学习领域关注度很高的模型,其源于对人脑神经网络的抽象近似模拟,是由大量简单处理节点(神经元)相互联结构成的运算模型。人工神经网络算法目的是在网络的输入和输出之间建立某种映射关系,常用于分类和预测。结构上,前馈型人工神经网络分为输入层、隐藏层和输出层,每一层都可以有多个神经元,与后一层的神经元相互连接, 连接的强度称为权值。图1就是一个包含2层隐藏层的人工神经网络,输入层包含6个节点,输入6个初始值后,网络经过两个隐藏计算层的计算得出1个输出值。

当输入初始值时,层与层之间的信息传递通过权值矩阵与各节点输出的加权求和计算实现的。最后的输出值则受到两个因素的影响,一个是之前加权计算出的值(激励值);另一个则是激励函数,也可以理解为一个判断函数,代入激励值会产出一个值,代表着某种现实判断。可以看到,神经网络向前传递的整个过程对于并行计算和矩阵计算的能力要求较高,尤其当层数增加时,计算量的放大是非常明显的。但同时,这个流程在指令上却非常的简单,只需要重复“输入—输出”这个过程即可。

神经网络通过训练和预测过程实现应用。 事实上,我们很早就已经接触过简单的机器学习方法了,比如常用的线性回归拟合。我们通过样本期的数据回归得出一个线性方程,并将新的自变量值放入方程从而产生未来的预测值。神经网络其实也是通过类似的训练和预测过程实现应用的,但是线性拟合通过最小化离差平方和获得一个矩阵方程的解,并得出一条直线;神经网络(尤其是深度神经网络)则通过每一层的权重调整几乎可以实现任何形式的函数拟合,在数据量和计算上的要求都是天文数字级别的差异。

训练环节对性能要求高,预测环节对简单指令重复计算和低延迟度要求高。 用一个具体例子进行演示,我们的目标是让神经网络能够自动判断一张黑白图片上是否显示了6这个数字。首先,我们输入的数据为图中像素点是否为黑,黑则为1,白则为0。一系列的0与1经过层层加权和计算到达输出层,将得到的激励值代入到激励值函数中,如果认为图像是6(比如激励值超过1)则输出1,反之为0,。当输出结果不满足我们预期的时候,算法就会对网络神经元之间的权重进行调整,从而更好地贴近真实情况(比如,让真实图像为6的网络输出趋近于1)。

反复进行这样的反馈调整过程数万次后(通常需要输入各种各样的数字“6”),我们发现网络的权重基本稳定了,认为网络能够对各种形态的数字“6”形成判断。此后,我们再将需要判断的图片流水输入,网络不再需要反馈和调整,而是不断重复向前传递输出0或1的判断过程,实现图像识别。这样就完成了一个简单的学习到推测的过程。可以发现训练环节不仅需要向前传递,还需要根据结果对权重进行调整,对性能要求较高;预测判断阶段,权重确定,过程更多是简单的计算到输出,对于效率的要求更高。

深度学习需要提取学习更复杂的特征,对数据量和并行计算能力的需求指数级上升。 深度学习通常是训练含有多个隐藏层的人工神经网络,丰富的层次结构算法具有更优异的特征学习能力,可以学习更复杂的内容,学习得到的特征对数据有更本质的刻画。以一幅油画的识别分类为例,当隐藏层为1层时,我们能掌握的可能是像素点的颜色分布信息(比如在某些地方组成某些线条、块状、明暗等);而加上1层隐藏层后,我们可以获得这些线条和明暗组合的一些特征,随着层数的加深,油画中的物体、布局甚至是画派风格的特征都可以进行表示。通过输入大量鲁本斯在17世纪初期创作的巴洛克风格油画进行训练,网络最终可以对某一幅油画是否是鲁本斯在17世纪初期所作的巴洛克风格油画做出判断。

现实应用场景动态且复杂,在算力方面根据应用场景和过程的区别,对实时性、响应速度、准确率提出了更高要求。 现实场景的应用比静态图像识别复杂许多,比如开发出AlphaGo的人工智能公司DeepMind公开了训练中的会“漂移”的机器人,可以自行收集复杂多变的环境信息,学习人类的运动行为从而实现障碍跑、跳舞等行为。Amazon Go通过传感器与视频监控获得线下消费者的身份和购买动作,实现用户动作行为识别和人脸识别,相匹配后产生海量有价值的消费者行为信息。因此,按照训练、预测的过程以及应用场景的不同,AI计算对于底层算力的要求也是不同的,提供算力的处理器也因此在功耗、效率和可编辑性等多方面走出了不同的道路。

2.2、大数据、场景和算力需求相互促进,推动上游的AI芯片发展

大数据获取能力、算力和对多层次神经网络的训练方法的不足,使得深度学习应用的繁荣延迟至今。 其实人工智能以及深度学习的很多基础算法在20世纪60年代就已经比较成熟了,包括现在被广泛应用的反向传播算法(BP)在80年代就已经达到了算法的繁荣期,之所以在当初没有像现在这样站上风口,一方面源于当时算力不足、用于训练的数据量不够以及训练方法的缺失,另一方面也因为AI在当时有一定的应用,但迫切性和现在还无法比拟。

算力方面, 即使是2000年Intel推出的第一款Pentium 4 CPU芯片,也只是主频1.3-1.4GHZ的单核处理器,集成了4200万个晶体管,而现在很多CPU主频已经超过了4GHz,普遍为四核、八核,晶体管数量达到几十亿的水平,更不用说Nvidia最新发布的GPU系列,集成的晶体管数量已经超过200亿个。

训练方法方面, 2006年,机器学习领域泰斗Geoffrey Hinton在《科学》上发表了一篇文章,开启了深度学习在学术界和工业界的浪潮。这篇文章提出,通过无监督学习实现“逐层初始化”来训练多层次的神经网络,可以克服深度神经网络在训练上的困难。

数据方面, 深度学习往往一项训练任务就需要数亿级别的样本,以往数据收集终端和场景缺失,缺少易于处理的结构化数据,使得数据样本非常稀缺,达不到有效的训练目的,而现在智能手机、可穿戴设备、智能汽车等智能终端的快速发展使得数据易于存储和提取。

场景方面, 人工智能早期应用和生活场景的结合比较少,比较成功的应用包括搜索广告系统(比如Google的AdWords)、网页搜索排序(例如Yahoo!和微软的搜索引擎)、垃圾邮件过滤系统、部分语音机器人等。而在如今,智能无处不在,场景的纵深相比之前有了很大扩充,一方面源于产品和场景的丰富、人类需求的升级提供了智能应用的场景,另一方面也源于生产效率已经走向一个瓶颈,依靠人力成本投入等方式增加产出的方式越来越不效率,倒逼生产力向智能化改造。

因此,从场景引发需求,智能终端的普及构建了大数据的环境,技术的进步提供了算力的可能,而算法难点的攻克打通了理论到应用的通道,四者相互增强,引导AI产业的上游——芯片产业快速发展。

3、AI计算芯片—前世今生

3.1、CPU难堪大任,AI芯片站上舞台

CPU的串行结构适合复杂指令,但难以应对AI计算的简单指令下并行算力的要求。 CPU通常包括控制器(Control),存储器(Cache、DRAM)和运算器(ALU),因为CPU内部大部分的晶体管用来构建存储器和控制器,其计算能力其实受到了很大制约。另外,无论是PC领域使用的X86架构还是在移动端覆盖率最大的ARM架构,均是通过串行的方式执行指令,一般过程为从存储器中提取指令,进行解码,并利用运算器执行指令,逻辑遵从顺序结构,适应复杂逻辑。

CPU类似流水线,而AI技术更需要割麦机,前者适合复杂指令,后者适合大量数据并行处理。 CPU处理数据的过程类似于工厂的流水线操作,流水线可以对单线程上每个产品做出不同处理,通用性强,适合处理复杂指令,擅长逻辑控制。但是前文提到的神经网络算法则是发出简单指令,而要求快速高效的并行计算能力,需要的数据处理过程更类似与割麦机收割麦子。我们可以想象如果使用流水线收割小麦并处理将会浪费多少的时间,因此使用CPU进行深度学习的效率比较低。此外,CPU主频速度受到功耗的影响提升空间有限,架构设计更新的周期也较长,无论从性能还是匹配度方面都不能满足AI计算的算力要求。在这种环境下,并行计算能力更强、适应于AI计算的AI芯片应运而生。

3.2、AI芯片的业态简述和对比

用于AI计算的芯片按照是否为冯诺依曼架构以及是否为类脑芯片,可以分成多个类别。 其中传统的CPU和GPU均属于冯诺依曼架构下的非类脑芯片,而ASIC、FPGA和部分新一代GPU(如Nvidia的Tesla系列)则属于非冯架构下的非类脑芯片。类脑芯片与非类脑芯片的差异在于其不只是从功能上去模仿大脑而是从神经拟态架构层面去拟合大脑,如IBM的相变神经元架构就包括输入端、神经薄膜、信号发生器与输出端四个层面,与传统芯片设计理念差距较大。

GPU因良好的矩阵计算能力和并行计算优势最早被用于AI计算,在数据中心中获得大量应用。 GPU最早作为深度学习算法的芯片被引入人工智能领域,因其良好的浮点计算能力适用于矩阵计算,且相比CPU具有明显的数据吞吐量和并行计算优势。2011年谷歌大脑率先应用GPU芯片,当时12颗英伟达的GPU可以提供约等于2000颗CPU的深度学习性能,展示了其惊人的运算能力。目前GPU已经成为人工智能领域最普遍最成熟的智能芯片,应用于数据中心加速和部分智能终端领域,在深度学习的训练阶段其性能更是无所匹敌。

FPGA因其在灵活性和效率上的优势,适用于虚拟化云平台和预测阶段,在2015年后异军突起。 2015年Intel收购FPGA市场第二大企业Altera,开始了FPGA在人工智能领域的应用热潮。因为FPGA灵活性较好、处理简单指令重复计算比较强,用在云计算架构形成CPU+FPGA的混合异构中相比GPU更加的低功效和高性能,适用于高密度计算,在深度学习的预测阶段有着更高的效率和更低的成本,使得全球科技巨头纷纷布局云端FPGA生态。国外包括亚马逊、微软都推出了基于FPGA的云计算服务,而国内包括腾讯云、阿里云均在2017年推出了基于FPGA的服务,百度大脑也使用了FPGA芯片。







请到「今天看啥」查看全文