APP下载

浅析人工智能芯片原理与发展

2019-03-25杨泽申

中国科技纵横 2019年2期
关键词:芯片神经网络人工智能

杨泽申

摘 要:芯片是20世紀最伟大的工程产品之一,随着科技的不断发展,人类对芯片的要求也越来越高。进入21世纪以来,人工智能飞速发展,“人工智能芯片”也引起了越来越多的人的兴趣。本文比较系统地介绍了人工智能芯片,并向笔者简要介绍了人工智能的原理。

关键词:人工智能;芯片;神经网络

中图分类号:TP18 文献标识码:A 文章编号:1671-2064(2019)02-0019-02

芯片,又称集成电路,是现代计算机、嵌入式设备的核心。随着人工智能浪潮的兴起,“人工智能芯片”这一概念一经提出就吸引了无数人的注目。那么人工智能到底是什么,其与芯片的结合点又在哪里,本文将对其作详细介绍。人工智能包括学习任何知识的能力、推理能力,语言能力和形成自己的观点的能力。计算机如今已具备了在有限范围内解决问题的能力了。用人工智能解决问题执行困难,但原理却实则一般。

1 人工智能原理

人工智能的发展在不同的历史阶段有过不同的指导思想和发展方向,而今天主流的人工智能发展道路被公认为是神经网络为主,而实际上,从当前的应用角度而言,神经网络也是应用最广、预测准确率最好的机器学习方式。

众所周知,现代计算机技术的发展是以芯片为依托的。在计算机刚刚被发明的时候,其体积巨大、运算效率低下,完全不具备进行大量计算的性能。而随着集成电路等技术的进步,以晶体管为基础的芯片技术也日渐成熟,也正因此,依托于海量运算的神经网络技术也得到了飞速发展。接下来,笔者将简要介绍神经网络的基本原理与其在芯片上的应用。

1.1 神经网络——“智能”的由来

从简化的角度上讲,神经网路的核心功能在于分类[1]:将大量数据进行相关处理、提取特征并投影到特征空间,并通过激活函数引入非线性,进而对特征空间进行切割,将“目标特征”提取出来,进行分类。由于逻辑问题往往可以建模为若干个分类问题的叠加,因此神经网络在解决逻辑性较强的问题时往往有着出色表现。

具体而言,神经网络引入“目标函数”这一优化概念,通过反向传播算法使得目标函数不断下降,同时在隐藏层中使用激活函数以赋予目标函数“非线性”(例如,我们可以将sigmoid函数看作是一种阶梯函数或者分段函数,其作用是对数据空间进行分割),在一个具体的隐藏层中,不同的平面对空间进行了不同的分割,但这些分割之间是没有逻辑关系的,我们可以在下一个隐藏层中对这些分割进行逻辑运算以实现更加复杂的分割。因此,只要不断增加隐藏节点和隐藏层数,理论上而言就可以实现对空间上任意区域的分割或特征提取。

具体到某一次训练上,当数据流入神经网络,乘以相关权重并通过激活函数,得到相应的预测值/分类结果,我们将计算结果与实际进行比较,将差值反馈给网络,使其根据反馈继续进行梯度下降(梯度可以理解为多元函数的导数,沿该方向函数的上升速度最快,因而沿反方向下降速度最快),使得我们的目标函数值也得以不断减小,最终达到我们希望的精度。

通过以上的过程,我们就构建出了一种分类器,该分类器既可以是多元的、也可以是简单的二分类问题。因此,只要我们能够对显示过程中的具体场景进行建模(例如发言预测),理论上而言就可以实现预测功能,也就是所谓的“人工智能”。

1.2 芯片技术——怎样的芯片才能叫做人工智能芯片

正如前文所说,当前人工智能的主要发展方向为以深度学习为代表的机器学习,而神经网络也依靠着其在数据挖掘、分类问题上表现出来的优异性能成为了最为热门的“工具”。因此,就目前甚至未来十年的市场而言,所谓的人工智能芯片与神经网络是不可割离的。因此,在当前这个阶段,人工智能芯片可以概括为构建神经网络服务或者搭载神经网络及其相关功能的芯片[2-3]。

更加具体而言,人工智能芯片的功能主要有两个:训练(training)和推断(inference)。

训练:如前文所说,要想构建一个比较精确的神经网络,我们需要大量的样本数据并不断地梯度下降,这就要求我们的处理设备有着强大的计算能力。如果我们想要对一个100*100的图片进行人脸识别,比如1代表有人脸,0代表没有人脸(实际情况远远比笔者描述的要复杂的多,例如在当今社会你很难找到一个大小仅有100*100像素的图片),即便只有一个隐藏层,我们也需要完成对100*100*n(n代表隐藏层节点数)个权重的训练。对于常规的中央处理器(CPU)而言,这种计算量过于“恐怖”,需要大量的时间来完成。因此,就需要我们制造出更加适合计算甚至是适合神经网络计算的芯片作为新的“CPU”。

推断:神经网络归根结底是一种工具,其目的在于帮助人类进行预测(例如人脸识别、语音识别、辅助决策),在网络完成训练后,我们只需要将数据正向地流过网络一遍就可以得到分类结果(与训练过程相比较而言,预测过程所需要的计算量要小得多,但实现该过程所需要的矩阵运算仍是CPU所不擅长的),考虑到绝大多数神经网络都有着相似的结构(例如都有着神经元、隐藏层等基本单元),因此如果能够开发出适合神经网络正向传递计算的芯片的话,将有助于提升神经网络的推断速度,这也是许多人工智能芯片被称之为“神经网络加速器”的原因。

2 人工智能芯片分类及发展现状

从结构和功能综合而言,我们可以将人工智能芯片分为三大类,分别是:图形处理单元(Graphic Processing Unit,GPU)、现场可编辑门阵列(Field Programmable Gate Array,FPGA)、应用导向集成电路(Application Specific Integrated Circuit,ASIC)[4]。

为了更好地解释这三种芯片,我们首先简要介绍传统CPU的结构。

传统CPU遵循的是冯诺依曼计算机架构:存储程序、顺序执行。一般来说,CPU由逻辑计算单元(ALU)、控制单元(CU)、存储单元(包括高速缓存器和寄存器)组成。在具体的计算中,控制单元指挥电脑从具体的硬盘地址中取出我们需要的指令和数据输送到CPU的存储单元中,并交由逻辑计算单元进行运算。由于CPU的应用场景广泛,任务类型多样,CPU的控制单元和存储单元更加“发达”,相比较而言逻辑计算单元比较“弱小”,这也是为什么CPU的计算能力在神经网络面前显得“势单力薄”的根本原因。

2.1 GPU

如前文所言,CPU在面对重复计算的挑战面前表现往往不佳,而图像处理恰恰需要这种能力,在这种背景下GPU诞生了。从结构上而言,GPU具有更多的ALU和更少的高速缓存器。这是因为GPU是专门面向大量数据运算而准备的,不需要具备过于复杂的逻辑功能,因此GPU分配更多的芯片面积给ALU。同时值得注意的是,GPU不仅仅是依靠ALU的数量,更加重要的是其并行运算的能力。我们可以这样理解:传统的CPU就像一个老教授,其能力很强,但做事一板一眼,在完成一道绝对难度不大但计算量很大的数学题时,该教授只能一个数一个数的运算;GPU就像一群小学生,虽然其无法完成思维难度较大的任务(也就是逻辑、指令更加复杂的任务),但可以在同一时刻分别进行一组数据的运算,这样从绝对的时间上来看,这群小学生完成运算的时间可能远远小于教授完成的时间。

具体到神经网络上,在前文中我们介绍过神经网络不管是前向传播还是反向传播都是一种矩阵运算,或者说一种并行运算,在这种情况下使用CPU效率低、时间长,而使用GPU我们就可以同时把大量数据输入,分别运算并求和。因此,GPU比起CPU而言更加适合神经网络的相关运算。

2.2 FPGA

众所周知,芯片,或者叫集成电路,其基本组成单元是晶体管,而在实际应用中实现功能的基本单元则是“与门”、“或门”这样的基本逻辑计算单元。因此,设计集成电路的过程也就是配置逻辑阵列的过程,通过对不同逻辑基本单元的连线,我们可以实现不同的逻辑电路,完成不同的计算任务。

不管是CPU还是GPU,由于其基本運算单元的一致性,它们在底层结构上是相通的。我们可以想象这些底层单元就像是一块块积木,我们通过拼接它们实现了不同的结构,以应对不同的任务。而FPGA就像是装载着这些积木的玩具箱,我们可以临时取出一部分玩具来进行组装,任务完成后再拆解并放回箱中。

上文中我们提到,神经网络的基本结构是相似的,但相似不代表相同,显然如果我们在每次计算前都能够修改逻辑阵列,使得运算模块更加符合某一个具体任务,这样就能够更加快速、灵活地面对神经网络的相关问题。

FPGA是一种集成大量基本门电路及存储器的芯片,可以通过FPGA配置文件来定义这些门电路及存储器间的连线,进而实现特定功能。而其内容是可配置的,通过配置特定的文件可以将FPGA转变为不同处理器,FPGA可灵活的支持各类深度学习的计算任务。

2.3 ASIC

如果说FPGA是乐高积木,可以组合为各种各样的功能电路来应对不同任务,那么ASIC就是从源头上就开始面向具体的任务的专用芯片。ASIC完全不考虑多用途,它就是为了某个具体的任务而被设计出来的。众所周知,芯片功能一旦经过流片就无法更改,因此ASIC作为不可配置的高度定制专用芯片,自然需要大量的研发投入。同时,若其出货量不能保证,其单颗成本就难以下降。因此若市场上深度学习的方向一经改变,ASIC在前期的投入将无法回收。因此,ASIC具有较大的市场风险。

但ASIC的优势也是显而易见的,由于它是专门设计的,因此他在某一个具体任务上的性能(例如训练某一种网络)一定是三者中最好的;尽管它的研发成本比较高,但如果能够大量出货,其单颗成本将远纸低于FPGA。其典型代表就是财大气粗的谷歌所研制的专门用于神经网络训练的“TPU”[4]。

3 结语

纵贯人工智能的发展历史,我们不难发现,掣肘该技术发展的一大因素就是硬件的计算能力。在很长的一段时间内,芯片产业的发展将长久影响着人工智能技术的进步。如何提升硬件性能,不仅是中国所面临的问题,也是整个世界所面临的问题。在面对该问题时,不同公司也给出了不同的解决方法,从中国的“寒武纪”到谷歌的TPU,这些凝聚着工程师智慧的工业产品让我们看到了不同的发展思路。也许在不远的未来,不仅仅是芯片,传统的冯诺依曼结构也会被更新的系统所代替。

参考文献

[1] 盛仲飙.BP神经网络原理及MATLAB仿真[J].渭南师范学院学报,2008,23(05):65-67.

[2] 施羽暇.人工智能芯片技术研究[J].电信网技术,2016(12):11-13.

[3] 张蔚敏,蒋阿芳,纪学毅.人工智能芯片产业现状[J].电信网技术,2018(02).

[4] 人工智能腾讯科技宇行.人工智能芯片军备竞赛开启,谷歌等硅谷巨头加入[J].信息与电脑(理论版),2017(08):17-18.

猜你喜欢

芯片神经网络人工智能
神经网络抑制无线通信干扰探究
人工智能与就业
芯片测试
基于神经网络的拉矫机控制模型建立
多通道采样芯片ADS8556在光伏并网中的应用
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定
74HC164芯片的应用