()
AI芯片是模仿大脑运作的芯片,它使用模拟神经元和突触的模型来尝试再现人类智能。
大脑的工作机制
大脑中有许多神经细胞,可以通过连接传达信息,并建立记忆。具有这种作用的神经细胞被称为神经元。神经元在连接处不断发送电子信号以传输信息,而突触就位于该连接处。换句话说,大脑中的神经细胞是神经元,它们的交界处是突触。
如图1.2所示,神经元由树突、突触、核及轴突构成。单个神经元只有激活与未激活两个状态,激活条件为从其他神经元接收到的输入信号量总和达到一定阈值。神经元被激活后,电脉冲产生并沿着轴突经突触传递到其他神经元。现在我们用「感知机」的概念模拟神经元行为,需要考虑权重(突触)、偏置(阈值)及激活函数(神经元)。
图1.2脑细胞连接的构造:神经元之间通过突触连接成网络
上面讲的只是一个概念,我们有必要通过软件和硬件使计算机更容易处理神经元行为。为达到此目的,我们为神经元建立一个模型(见图1.3)。
图1.3神经元模型
图1.3中,函数f是输入和输出之间的关系,称为激活函数;w?i?是突触特征的权重,权重为正表示突触兴奋,权重为负表示突触处于抑制状态;x?i?是另一个神经元的输出;b是神经元激活(将输出传递到后续阶段)的阈值。
激活函数f(x)的部分常见形式如图1.4所示。使用激活函数的目的是引入非线性,使输入和输出脱离线性关系。
图1.4表示大脑神经元开和关的激活函数举例
a)线性函数b)符号函数c)Sigmoid函数(S形函数)d)Softmax函数
e)双曲正切S形函数f)ReLU函数g)硬双曲正切S形函数h)阶跃函数
目前用得最多的激活函数是图1.4f所示的修正线性单元(RectifiedLinearUnit,ReLU)函数。ReLU函数的表达式非常简单,就是小于0的部分全部置为0,其他保持不变。S形(Sigmoid)函数(见图1.4c)是传统的神经元模型最常使用的激活函数,它基于神经科学仿生而得出。在第二波神经网络的浪潮中,S形函数被用来模拟之前提到的神经元的激活过程,表现出了高度适用的效果。但该函数也容易带来饱和效应问题(即梯度弥散效应),会造成很长的「学习」时间。看似简单的ReLU函数解决了这个问题,因此成为深度学习算法的重大改进点之一。
模拟大脑运作的神经网络的计算
把神经元连起来,就成为一个神经网络(见图1.5)。深度学习,即深度神经网络(DNN)的特点是在输入层和输出层中间加了很多层,称为隐藏层。目前较新的DNN,已经有几百个甚至1000个以上的隐藏层。在DNN中,通过添加层的数量,可以将精度和吞吐量提高,并可以通过改变权重来响应各种功能。由于深度学习的采用,神经网络的层数显著增加,导致模型非常大。一般需要多达数千万的权重来定义神经元之间的大量连接,这些参数是在很费时间的学习过程中确定的。
AI芯片是一种高速执行神经网络输入到输出计算过程的芯片。这里重要的是如何快速计算图1.3中的函数f,其中主要是下面的计算:
如果把此式展开,可写成:
这是乘积累加(MultiplyAccumulation,MAC)运算。传统上,通过使用诸如数字信号处理器(DigitalSignalProcessing,DSP)和ARM处理器的NEON之类的单指令多数据流(SingleInstructionMultipleDataStream,SIMD)指令,可以对此进行高速计算。
式(1.1)可视为两个矢量的点积,即(x?0?,x?1?,x?2?,…,x?n?)(w?0?,w?1?,w?2?,…,w?n?)。点积是计算机中使用的最基础的线性代数运算,仅仅是两个矢量中相关元素的乘积累加。矢量的集合是矩阵(也可称为一种张量,矩阵是二阶张量)。换句话说,如果矩阵和矩阵相乘,则可以高速处理矩阵和矢量的乘法,可以同时执行许多乘积累加运算。
图1.5最简单的神经网络(左)和深度神经网络(右)
矩阵和矩阵的乘法及矩阵和矢量的乘法可以针对每个行和列并行计算,因此很适合多处理器并行处理。此外,在神经网络中,由于只有前一层的结果(神经元值)涉及特定神经元的计算,并且不依赖同一层的神经元计算,因此神经元值可以并行处理。
由此可见,AI芯片(这里指用于深度学习加速的芯片)的本质是「高速张量运算及并行处理」。神经网络处理单元主要就是由乘积累加模块、激活函数模块和汇集模块组成的。
深度学习如何进行预测
通过使用构造相对简单的深度神经网络(DNN),可以实现传统上用复杂逻辑才能实现的功能,如识别和预测等。这里举一个简单的例子,来说明深度学习如何进行预测。图1.6是一个正弦函数y=sin(Ax),参数A控制正弦波的频率。对于人类来说,一旦我们理解了正弦函数,就能知道它在任何参数A下的行为。如果我们得到一个部分正弦波,就可以弄清楚它应该是什么样的波,并且可以将波外推到无穷大。
图1.6正弦波的预测
深度学习可以预测参数A未知的正弦波。这是一个时间序列预测问题。我们希望能在训练期间模型从未见过参数A的情况下,预测其未来的值。
正弦波通常通过泰勒级数展开等方法计算。但是如果创建一个对应表,就将立即获得一系列正弦波的值,给定一些与函数sin(Ax)匹配的数据点,就可以尝试预测未来的值。简单地说,神经网络的学习只是等同于制作图1.6的对应表。
图灵奖得主、贝叶斯网络之父朱迪亚·珀尔(JudeaPearl)在近年的一篇访谈?[1]?中直言:「当前的深度学习只不过是『曲线拟合』(CurveFitting)。这听起来像是亵渎……但从数学的角度,无论你操纵数据的手段有多高明,从中读出来多少信息,你做的仍旧只是拟合一条曲线罢了。」珀尔还指出,「当前的机器学习系统几乎完全以统计学或盲模型的方式运行,不能由此做出未来的高度智能机器。」他认为突破口在于因果革命,借鉴结构性的因果推理模型,能对自动化推理做出独特贡献。
提高性能和降低功耗
人类大脑大约有1000亿个神经元。在任何给定的时刻,单个神经元可以通过突触将指令传递给数以千计的其他神经元——即传递到神经元之间的空间中,而神经递质通过这个空间交换。大脑中有超过100万亿个突触介入神经元信号传导,在剪除大量连接的同时加强一些连接,使大脑能够以闪电般的速度识别模式、记住事实并执行其他学习任务。
图1.7是根据目前世界上主流超级计算机的性能绘出的计算机性能发展与人脑计算性能对比的示意图。一般来说,由于网络带宽等限制因素,超级计算机实际达到的性能(图中红线)要比理论值(图中蓝线)低;另外,超级计算机的耗电量极大,导致运行成本非常高。如果按照图1.7中曲线展示的趋势继续发展,说不定再过几十年,超级计算机在性能上确实可以达到人脑的性能(超过1ZFLOPS,即每秒超过10?21?次浮点运算)。这说不定就是人们常说的「奇点」。
图1.7超级计算机与人脑的计算性能对比
但是,如果按照目前的技
()
术水平,超级计算机达到人脑性能需要耗费的电力将会是个天文数字,所以实际上是不可行的。在高性能芯片上工作的深度学习系统能效很低,运行功耗非常大。例如,如果为了完成计算密集型任务而并行使用多个GPU,功率很容易超过1000W。人脑则通常不会完全执行详细的计算,而只是进行估算,功耗几乎不到20W,这只是一般灯泡所需的功率。2016年,AlphaGo对战围棋九段高手李世石时,运行该AI程序的服务器功耗达1MW,将近人脑的5万倍。
因此,对于AI芯片设计来说,节能是一个亟待解决的重大课题,这里涉及半导体器件、电路甚至半导体材料本身的问题。
另外,与其他应用不同,深度学习算法对网络带宽的需求也异常高。在目前一些超级计算机架构设计中,深度学习的运行速度非常慢,其原因是并行深度学习涉及大量参数同步,需要极大的网络带宽。如果网络带宽不足,那么在某些时候,添加到系统的计算机(或处理单元)越多,深度学习就越慢。因此,针对深度学习的新架构设计非常重要。?备案号:YXX135G0eOHz3ZzrGIyaR5
请勿开启浏览器阅读模式,否则将导致章节内容缺失及无法阅读下一章。
相邻推荐:九秘神针:君临天下 古风甜饼,一生一世的赏味期限 我家院子可以去大明 邂逅「诗和远方」:打开浪漫诗人的诗词世界 2021 平板电脑推荐与选购:高效选品方法论 繁华之间:名利场上的一夜沉浮 就怕小偷有文化:金融诈骗、空中抢劫与艺术品犯罪 论文查重降重攻略:学术论文重复问题剖析 全世界都在砸钱养我 大话西方艺术史:艺术原来这么有趣 未来旅行家:跨越时空的科幻故事集 怪谈文学奖:现代都市恐怖病系列 杀死女神 忘记我姓名 白色球鞋:他爱你的一百件小事 二级建造师考试全攻略:从行业政策、备考规划到注册执业 2021 智能手机选购指南:看懂市场,做聪明的购机人 有仙气:听说有神动凡心 仙君他貌美如花 霍总,夫人的十个哥哥又来催离婚了