APP下载

模拟神经网络传输的职业教育视频资源开发∗

2018-07-31梁建胜袁从贵

计算机与数字工程 2018年7期
关键词:乘法神经元神经网络

梁建胜 袁从贵

(1.东莞职业技术学院信息与教育技术中心 东莞 523808)(2.东莞职业技术学院电子系 东莞 523808)

1 引言

职业教育视频作为现代流媒体资源的一种常见形式,已经广泛应用于现实教学过程中[1]。近年来随着深度学习领域的发展,全连接深度神经网络(DNN)被应用于图像分类,人脸识别,数字视频传输,语音识别等领域[2]。其通过层级连接方式对输入数据进行非线性运算,以实现对原始数据的表示建模。职业教育视频资源在传输过程中,类似全连接深度神经网络且网络传输发生的每一层都存在大量并行分布的节点,使用CPU计算会耗费大量时间,所以硬件加速和实现也成为视频传输的主要研究方向之一[3]。矩阵计算是科学计算的重要组成部分,具有表述简洁、功能全面和适合计算机处理的特点,在信号处理、图像处理以及无线通信等领域都起到了关键性作用[4]。而在探究职业教育视频资源传输,可以模拟神经网络中涉及到大量的运算,且部分是可以通过矩阵方法实现的。

鉴于目前有较多关于在硬件上实现特定职业教育视频资源优化的研究,本文将利用DNN功能和硬件加速器设计模拟视频资源传输优化,利用矩阵乘法与全连接层的计算转换为矩阵乘法计算,从而实现计算加速,结合不同神经网络结构对视频传输硬件资源消耗程度进行研究,该研究有助于解决在硬件资源固定的情况下,能够实现的模拟神经网络的视频资源规模、实现特定网络结构所需硬件资源数量等问题。

2 相关工作

2.1 矩阵乘法在视频资源平台的可行性

矩阵乘法是矩阵运算的最基本运算之一,目前研究者对其的研究主要有两个方向:一是研究矩阵乘法的计算复杂度,包括时间复杂度[5]和空间复杂度[6];二是研究矩阵乘法在不同处理器结构下的计算效率[7],将经典的矩阵乘法在不同的平台实现并优化。目前,矩阵运算效率的研究已取得丰富成果,如Intel的MKL库,NVIDIA基于CUDA计算平台开发的CUBLAS库等,都可以高效地实现矩阵乘法。杨娟[8]等多核处理器与GPU平台基础上提出视频快速检测的多种单精度浮点矩阵乘法的实现方法,分别是在多核处理器上实现视频解码以及GPU上实现图像检测的矩阵乘法。实验发现在实现同样维度矩阵乘法时,GPU普遍相比PC架构的视频检测性能提升了10倍以上。其中原因主要是GPU在计算图像编码过程中结合矩阵乘法具有并行计算的能力。而随着视频资源技术的发展,其在并行计算能力基础上的可编程可重构的特点,让一些研究者开始在视频资源传输平台上实现矩阵乘法的加速运算。姜宏旭等[9]利用视频资源传输内嵌的DCM模块和嵌入式乘法器模块,优化了矩阵乘法的硬件资源消耗。

综上所述,矩阵乘法在视频资源传输上的实现是可行的,虽然在计算性能上不及同等级GPU优化图像,但是其灵活性与低功耗使得视频资源实现矩阵乘法在实际应用中会更有优势,因此,本文使用职业教育视频资源库作为实现相关矩阵运算的硬件实现平台。

2.2 全连接深度神经网络的前向传播过程

本文的应用场景是利用全连接深度神经网络前向传播过程模拟视频资源传输。全连接深度神经网络模型即具有多个隐含层的全连接的多层感知机模型,全连接即每一个下层神经元和所有的上层神经元之间都存在连接[10]。其示意图如图1所示。

图1 全连接深度神经网络示意图

全连接深度神经网络的训练过程分为前向传播过程、误差计算过程和反向传播过程[11]。本文中只对全连接深度神经网络的前向传播过程在视频资源库硬件平台上的实现进行研究。前向传播指的是数据从输入层节点输入,通过与层与层之间的连接权值进行加权运算,将结果通过传递函数(也称激活函数)处理,得到该层的输出,并将其作为下一层节点的输入,重复上述过程,最后在输出节点得到输出数据,从而得到网络的输出结果。

设全连接深度神经网络有m个输入,第一个隐含层有n个神经元,传递函数为 f(x),第i个输入与第一个隐含层第 j个神经元的连接权值为ωij,阈值为θj,则第一个隐含层的第 j个神经元输出 βj为

将βj作为下一层网络的输入,带入上述公式,重复计算步骤直至得到输出层的数值,表示网络完成了一次前向传播。

全连接深度神经网络因其实际需求不同,其规模和内部结构会有很大的差异,主要体现在隐含层层数的不同与每个隐含层神经元个数的不同[12]。同时由于目前较多使用定制硬件电路来实现深度神经网络前向传播过程,而定制电路因其电路结构已经固定,无法适应网络的变化和更新。因此,使用视频资源优化的优势很明显:视频资源的并行分布式计算方式可以提高运算速度,增强实时性,且视频资源的可重构可编程特性可以根据需求不断调整神经网络的结构,节约了开发成本与时间。同时,前向传播过程的主要计算可以通过一维乘二维的矩阵乘法实现,不仅简化了硬件结构设计,而且节约了硬件资源占用。

3 主要研究内容

3.1 前向传播计算过程矩阵化

由计算公式(1)可以得到,输入数据从某一层传递到下一层的某一神经元节点时,完成的主要运算即对输入值加权求和。该运算的计算顺序为先将输入与对应权值相乘,再将结果相加,可以表示为两个一维向量相乘。设输入向量A=[A1,A2,…,Am] ,某 一 神 经 元 的 权 值 向 量B=[B1,B2,…,Bm]T,则 该 神 经 元 输 出 结 果。考虑到每一个神经元都需要重复上述计算过程,在保持一维输入向量的维数不变的条件下,将每一个神经元的一维权值矩阵扩展为该层所有神经元的二维权值矩阵,使得每两层之间的传输转化为一维输入矩阵和二维权值矩阵的乘法运算,即有[13]:

输入向量 A=[a1,a2,…,am],ai为实数,m 为输入个数;

权值矩阵 B=[B1,B2,…,Bn],其中 Bi=[b1,b2,…,bm]T,为下层第i个神经元与输入对应的权值向量,n为下层神经元个数;

则有向量:

其中,Ci为实数,表示下层第i个神经元的输出。

以此类推,将向量C作为下一次计算的输入,一直计算到最终的输出层,则可以完成全连接深度神经网络的前向传播过程。

3.2 Xilinx IP Core简介

IP Core,即知识产权核(Intellectual Property Core)[14],是指由Xilinx以及其合作单位提供的可重用逻辑功能块,针对Xilinx不同的芯片进行了优化、封装并且预留端口供开发者使用,能够很大程度上缩短开发周期,并且能够使设计更加统一。

结合全连接深度神经网络前向传播过程模拟视频资源传输的内容,可以得到DNN前向传播计算过程的主要计算方式为乘法和加法,因此设计方案主要使用了乘累加器IP核与乘加器IP核。两种IP核的接口属性分别如表1、表2所示。

表1 乘累加器IP核接口属性

表2 乘加器IP核接口属性

3.3 方案设计

本文分别使用上述两种IP核设计了两种实现矩阵乘法的方案:

方案一:使用乘累加器IP核实现矩阵乘法,其电路结构如图2所示。乘累加器IP核基于DSP实现,在A和B端口接收两个操作数,经过乘法器相乘后得到乘积并缓存,并与以前得到的结果进行加运算[15],在S端口得到输出。计算时,将矩阵 A的m个值按顺序输入到每个乘累加器的A端口,将矩阵B的第i列的m个值按顺序输入到第i个乘累加器的B端口,在时钟信号的控制下,每一个时钟周期计算出一个乘积并和之前的结果进行累加,最终在n个乘累加器的输出端得到n个输出,构成了C矩阵,完成了矩阵乘法计算。

为便于在多层隐含层情况下计算,将该层的n个输出数据输入并行转串行模块,每一个时钟周期得到1个输出数据,将上一层并行输出的n个数转换为串行输出,作为下一层矩阵乘法计算的输入。多层计算示意图如图3所示。示。

图2 基于乘累加器IP核的矩阵乘法方案

图4 基于乘加器IP核的矩阵乘法方案

图3 基于乘累加器IP核实现全连接DNN前向传播

方案二:使用乘加器IP核实现矩阵乘法,其电路结构如图4所示。乘加器IP核基于DSP实现,接收三个操作数A、B和C,实现两个操作数的乘法并将结果与第三个操作数进行加运算,并在输出端和级联输出端得到输出结果[16]。当多个乘加器级联时,需要将前一乘加器的PCOUT端连接到后一乘加器的PCIN端,作为加法的操作数,同时不对C端口进行连接,从而达到连续计算的目的。经过m次累加,计算出C矩阵中的第n个元素,完成了矩阵乘法计算。由于本方案从输入到输出只能计算出C矩阵中的一个元素,设计多条线路并行处理又会增加大量的硬件资源消耗,所以采用流水线的设计思路,在第一组操作数进入第二个乘加器时,第二组操作数进入第一个乘加器进行计算,以此类推,在输出端得到第一个计算结果后,其余结果会在m个时钟周期内依次输出,最终得到完整的C矩阵。

与乘累加器方案相似,为便于在多层隐含层情况下计算,将输出端的数据作为输入,通过串行转并行模块,将原本串行输出的n个数转换为并行输出,从而进入下一层的计算。计算示意图如图5所

图5 基于乘加器IP核实现全连接DNN前向传播

4 方案对比与分析

初步分析两种设计方案,可以得出使用乘累加器IP实现矩阵乘法并行度高,IP核之间的计算互不影响,计算结果同时进入并串转换模块,运算速度快,逻辑资源占用与输出神经元个数相关;使用乘加器IP实现矩阵乘法串行度高,IP核之间采用级联方式,模块之间互相影响,计算结果在输出端逐一进入串并转换模块,运算速度较慢,逻辑资源占用与输入神经元个数相关。

为了进一步量化分析两种设计方案的差别,实验分别在两种方案下设定不同网络节点个数,通过ISE开发环境进行综合与仿真,对查找表(LUTs)、寄存器(Regs)、数字信号处理单元(DSP)、视频资源逻辑单元的基本组成部分(Slices)等资源占用情况进行了测定。

实验首先分别分析两种方案的各项资源占用情况,总结两种方案各自特点,得出初步结论;然后对两种方案进行各项资源的对比,得出进一步结论,并分析假设导致这一结果的原因;最后对原因进行分析,验证假设,得到最终结论。

为突出不同矩阵乘法方案在前向传播中表现出的性能差异,实验中做出了如下处理:考虑到每一层网络的计算过程是相同的,多隐含层网络只是在重复计算相同的步骤,因此只对单层计算消耗的硬件资源和计算时间进行测定;考虑到传递函数的多样性,且在两种方案设计中的传递函数模块均为单输入单输出、实现特定传递函数消耗固定数量的资源,不会对时序和资源占用分析产生影响,因此在实验中没有加入传递函数模块。

4.1 计算单元资源占用情况

基于乘累加器IP的单层网络计算单元的资源占用情况如图6所示。

图6 基于乘累加器IP核的计算资源占用

通过观察和分析,可得:

1)在该方案中,硬件资源的占用主要与隐含层节点数有关,而与输入层节点数无关,与乘累加器IP核的并行结构设计符合;

2)DSP的使用数量和隐含层节点数成正比,LUT以及Slice的使用数量趋势为随着隐含层节点数的增加而增加,但不是完全线性关系,Reg的使用数量为阶段函数,当隐含层节点数为2的指数幂时,Reg的使用数量会增加。

基于乘加器IP的单层网络计算单元的资源占用情况如图7所示。

图7 基于乘加器IP核的计算资源占用

通过观察和分析,可得:

1)在该方案中,硬件资源的占用主要与输入层节点数有关,而与隐含层节点数无关,与乘加器IP核的串行结构设计符合;

2)DSP的使用数量和隐含层节点数成正比,LUT、Reg以及Slice的使用数量趋势为随着隐含层节点数的增加而增加,但不是完全线性关系。

4.2 方案对比

将两种方案的数据进行简要的分析之后,可以验证,乘累加器方案的硬件资源占用主要与隐含层节点有关,乘加器方案则主要与输入层节点有关,因此为将两种方案横向对比,采用将输入层和隐含层的节点数设为相等的方法来控制变量,对比结果如图8所示。

图8 节点数与LUTs的关系

图9 节点数与Regs的关系

图10 输入层节点数与DSPs的关系

图11 节点数与Slices的关系

从图8~图11可以得出,在硬件资源占用上,两种方案的DSP资源的使用情况是相同的,而LUT与Reg则出现了较大差异,进而导致了Slice单元使用数量的增加。并且,乘加方案的资源占用高于乘累加方案,且随着网络规模的增大,资源占用的差值也越来越大。

5 结语

本文通过对全连接深度神经网络的结构与计算方式模拟了职业教育视频资源传输状态,将DNN前向传播的计算过程矩阵化,并结合Xilinx的乘累加器与乘加器IP核,设计了两种计算结构,对两种结构在实现不同节点数的DNN的前向传播计算过程进行了说明,并测定了相应的硬件资源消耗和计算时间,随后通过横向对比,分析了两种方案在实现同样DNN前向传播计算中的硬件资源消耗与计算时间上的差异,并对此进行分析,最后得出结论乘累加器计算方案在硬件资源使用上要优于乘加器方案,主要原因在于计算单元之间的端口占用较多资源。对两种方案的计算单元之间的端口优化设计以及结合两种方案特点进而提出新的计算方案将会成为今后研究的重点。

猜你喜欢

乘法神经元神经网络
算乘法
基于递归模糊神经网络的风电平滑控制策略
我们一起来学习“乘法的初步认识”
AI讲座:神经网络的空间对应
《整式的乘法与因式分解》巩固练习
神经网络抑制无线通信干扰探究
把加法变成乘法
基于神经网络的中小学生情感分析
仿生芯片可再现生物神经元行为
这个神经元负责改变我们的习惯