没有合适的资源?快使用搜索试试~ 我知道了~
⃝⃝可在www.sciencedirect.com上在线ScienceDirectICT Express 4(2018)75www.elsevier.com/locate/icteFPGA上改进神经网络学习的微松弛丢弃算法Sota Sawaguchi,Hiroaki Nishi庆应义塾大学系统设计工程系,地址:日本神奈川县横滨市东北区日吉3-14-1,邮编:223-8522接收日期:2018年2月14日;接受日期:2018年在线提供2018年摘要神经网络学习(NNL)是计算密集型的。它通常涉及一种dropout技术,可以有效地正则化网络以避免过度拟合。因此,已经提出了用于丢弃NNL的硬件加速器;然而,现有方法遇到硬件和软件之间的巨大传输成本。本文提出了一种新的确定性丢弃技术--轻微松弛丢弃(SS-Dropout),以解决传输成本问题,同时加速传输过程。实验结果表明,我们的SS-Dropout技术改善了通常和dropoutNNL加速器,即,1.55倍的速度和三个数量级的传输成本,分别。c2018 韩 国 通 信 与 信 息 科 学 研 究 所 ( KICS ) 。 Elsevier B. V. 的 出 版 服 务 。 这 是 CC BY-NC-ND 许 可 证 下 的 开 放 获 取 文 章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。关键词:丢弃技术;小批量SGD算法;神经网络; SoC FPGA1. 介绍近年来,神经网络在机器学习中的应用日益普及。它们的使用范围不仅限于云和网络边缘,还包括网关甚至移动设备。对于NN的实际使用,神经网络学习(NNL)是必不可少的;然而,除了前馈操作,NNL还需要反向传播,这就是为什么它是计算密集型的。如今,基于小批量的随机梯度下降(SGD)算法通常用于反向传播阶段。然而,过拟合问题在神经网络中经常出现。防止过拟合发生的简单有效的正则化方法之一是dropout技术[1],该技术随机丢弃一些神经元并在每次权重更新(epoch)时训练稀疏网络。这两种方法在NNL中被广泛使用。当涉及到加速丢弃NNL时,已经发明了确定性丢弃技术,以成功地将丢弃的元素放在一边并加速该过程,同时*通讯作者。电子邮件地址:sawaguchi@west.sd.keio.ac.jp(S.Sawaguchi),west@west.sd.keio.jp(H. Nishi)。同行评审由韩国通信和信息科学研究所(KICS)负责https://doi.org/10.1016/j.icte.2018.04.006保持分类精度和过拟合威慑。考虑到电源效率和设计/制造成本,现场可编程门阵列(FPGA)是进一步加速丢弃NNL的一个很好的选择。事实上,一个现有的研究苏等人。[2]在SoC FPGA上部署了原有的随机dropout为了克服这个问题,我们结合了确定性的丢弃技术与SoC FPGA的想法。我们在本文中所做的主要贡献是:提出并实现了一种新的确定性丢弃技术--轻微松弛丢弃(SS-Dropout),以改善Xilinx Zynq-7020上基于小批量SGD算法的NNL硬件加速器的计算延迟和数据传输开销。在硬件设计上,采用了交错存储系统和存储器跨距存取技术,消除了文献[2]中所提出的传输代价问题,并利用乘法累加(MAC)单元的全部运算来加速NNL。在节省16%的硬件资源的情况下,我们提出的硬件系统比传统的硬件系统提高了1.55倍的速度。2405-9595/c2018韩国通信和信息科学研究所(KICS)。出版社:Elsevier B.V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。··76S. 泽口,H.Nishi/ICT Express 4(2018)75K====∼∼1414∼用普通的NNL加速器没有SS-Dropout。此外,我们确认三个数量级的传输成本降低相比,现有的辍学NNL加速器。我们验证了SS-Dropout实验结果表明,分类精度可能会下降约5%,并且随着隐藏层中神经元数量的增加,可以更有效地阻止过拟合。2. 相关工作作为一种简单而有效的正则化方法,dropout技术已经在许多工作中得到了利用。Good-fellow等人。[3]使用多层感知器用于他们的生成对抗网络,并使用反向传播和dropout算法训练它们。[4]将dropout应用于卷积神经网络(CNN)模型的最后一个全连接层进行人脸识别,以实现可比的验证精度,同时与最先进的技术相比需要更少的数据[5]。由于随机丢弃NNL计算量大、耗时长,因此提出了一些确定性的方法来加速其计算。Wang和Manning [6]提出了快速丢弃,从高斯近似中对神经网络的加权和进行采样,而不是实际采样3. 系统模型和方法3.1. 系统概述我们提出的系统是在Xilinx Zynq上设计的,如图1所示。假设训练数据存储在外部DDR存储器中,则随机选择小批量大小的数据,SS丢弃,并在每个时期通过AXICDMA传输到片上BRAM。在该过程中,生成SS-丢弃控制信息并将其写入神经中央控制器(NCC),该SS-丢弃控制信息有助于跨越读/写访问或筛选出硬件内的交织权重参数。该策略能够降低传输成本。一旦准备好所有必要的数据并触发硬件系统,数据交换模块将数据分离并交换到彼此并行放置的16个神经处理元件(NPE)的正确端口。注意,图1示出了单个NPE,其由4个乘法和累加(MAC)单元、加法器树和其他算法组成,以支持前馈和反向传播状态。由于本文的重点是分类问题,S型交叉熵方程。(1)被用作损失函数,具有S形激活函数的近似[8]请注意,网络输出和相应的标签向量分别表示为x和y,n表示批量大小。此外,16位固定的数据精度采用随机舍入模式提出的Gupta等人。[9]。E= −1∑ynlogxn+(1−yn)log(1−xn)(1)神经元和训练多个模型,可以提供n在训练时间上有一个数量级的加速。快速ndropout也可以产生类似的分类精度比原来的辍学生更好由Ko等人提出的受控丢弃。[7]以列或行方式丢弃矩阵中的单元,使得可以消除矩阵计算中的冗余零元素乘法。他们的方法成功地提高了训练速度,并在epoch数量增加时表现出相当的正则化能力和在这种情况下,确定性dropout可以提高性能并保持dropout据我们所知,只有Su等人的一篇研究论文[2]讨论了FPGA上的辍学技术。通过利用数量的减少在dropout网络中的神经元,NNL过程进一步3.2. 剥削主义NN的小批量SGD学习主要提供三种并行性:数据级、向量级和连接级并行性。 在本节中,f n(n 1,. . . ,Nbk 1,. . . .,Nl)表示到层的传入数据,其中Nb和Nl分别代表该层中的批大小和神经元的数量,并且wij是从该层的第i个神经元到下一层的第j个神经元的权重系数。数据级并行性被定义为在一个周期中可以处理多少个输入由于四个MAC驻留在我们的NPE中,因此单个训练数据向量中的四个元素f1≠f1加速,而硬件和软件之间的权重参数的传输成本增加。这是因为在每个时期在软件中执行dropout算法,以选择要传输到硬件/从硬件传输的权重参数,在硬件中更新权重参数。理想的情况是,一次性小批量大小的训练数据在软件中被丢弃,而相应的权重数据在硬件中被识别。尽管如此,原始丢弃中的随机性对“固定”硬件造成了损失,并降低了传输成本。因此,考虑到确定性方法的可比性能,我们为FPGA设计了一种新的确定性丢弃技术,以减少上述传输成本,同时保持加速。可以并行处理第二,独立性任何训练数据向量都支持向量级并行;换句话说,另外四个元素f2f2可以由另一个NPE处理。最后,像输入神经元一样,输出侧的对应物彼此独立因此,除了w11w41,另一对权重参数 W12W42使连接级并行性加倍。从存储器中的数据结构方面来看,由于四个MAC包括一个NPE,因此64位宽的存储器实现了数据级并行;另一个四倍的宽度,即,256-位宽可以容纳四个数据向量在一个单一的行,以支持其他两种并行与16个NPE,这是在这项工作中实现的。·S. 泽口,H.Nishi/ICT Express 4(2018)7577========−= −−==+==3.3. SS-Dropout算法Fig. 1. 系统架构。表1本文中使用的每个辍学率的值集。我们的基本思想是将四个后续神经元中的每一个作为一个神经元组(NG),为每个NG分配一定的丢弃率,并将原始丢弃率近似为所有NG中使用的丢弃率的平均值因此,我们设计的方程是:概率NC1NC2NC3NC4ρ= 0。9 8 1 0 0ρ = 0。5 1 1 1 1ρNρ=1。0+0。5 ·Nρ=0。5Np= 1。0 +Np= 0。5 + Nρ= 0。0(二)注意,组合C1-因为辍学率的最佳值其中Np=1。0,Np=0。5,且Np=0。0是丢失率为ρ 1的NG数。0、0.5和0.0。为了清楚起见,用N1-N4表示NG中的每个神经元,(N1,N3)表示例如仅第一和第三神经元由于丢弃而在NG中存活。所提出的算法遵循以下四个约束:1. 分配给每个NG的丢弃率ρ只能是1.0、0.0和0.5。2. 当前NG保留时,ρ 0。5,基于当ρ 0时四个神经元中的两个最有可能被选择,仅四个模式(诸如(N1,N3)、(N1,N4)、(N2,N3)和(N2,N4))可以用2比特(NG Info)被选择。5,并且所有六个模式不能用3比特有效地选择。3. 当前NG保留时,ρ 0。5,下一个也必须带ρ 0。5,使得可以实现MAC单元的100%操作。4. 当前NG保留时,ρ 0。0,则下一个必须赋值为ρ0。5或1.0,以便简化存储器访问调度和完整的MAC操作。最重要的是,假设ρl代表第l个NG的丢失率,则对于一个、两个或三个NG的丢失率分配采用四种组合之一:(ρl,ρl+1,ρl+2)(0. 五,零。5,),(1. 0,,),(0. 0,0。五,零。5),或(0. 0,1。0),为了下面的解释,每个都标记为C1令NC1NC4分别表示C1-C4的频率(2)也可以表示为:经验证明,输入层和隐层的ρ分别为1.0和0.5左右[1],本文采用ρ 0。9和0.5,对于每个层,通过遵循表1中的每个组合的频率随机生成NC Info。因此,SS-Dropout算法生成两种2位控制信息:NC和NG Info。在软件端的每个时期为每个层创建一系列NC和NG信息,以支持硬件中的SS-Dropout功能。3.4. SS-Dropout机制的架构在SS-Dropout算法中,最简单的情况是当层l和l 1处的NG都被保留时。0.发出一个地址足以获取数据以执行两个NG之间的另一方面,最密集的情况是两层的两个NG都带有ρ 0。5中,其中通常需要四个地址来获得四个数据向量;换句话说,存储器系统需要是四端口的或交错成四个存储体。由于采用了Xilinx双端口BRAM IP以便于实现,因此引入了存储器交错系统。这种采用还可以利用这样一个事实,即所有必要的数据向量都可以通过单个共享地址获取,这降低了硬件成本。为了覆盖最极端的情况,如图2(a)中的情况,重量数据必须在四个存储体中交错,如图2(b)中所示在通常的情况下,权重向量w[n](n= 1)可以是:ρNC1+NC2+NC3+NC42NC1+NC2+ 3NC3+ 2NC4(三)一,二,. . )以利用三个并行性的方式存储。 图 2(b),每个向量首先被分成两个78S. 泽口,H.Nishi/ICT Express 4(2018)75+====++×- -(a) ρ= 0。对于层1和1+1处的两个NG,为5(b) 记忆体交错与跨步读取存取器。图二. 交错存储器和存储器跨距访问的示例。基于“向量内的数据”是前一个数据分组为we[n],后一个数据分组为wo[n]。通过基于“向量”是存储在偶数行还是奇数行来进一步将两个组分成两个,库0-3存储w e [8 n k ]、w o [8 nk]、we [8 nK4],wo [8 nK4](k 1,2,3,4 n 0,1,. . . ),分别。图2(a)呈现了层1和11的第一和第二NG被给予2比特NG信息,诸如cf sel:2'b11、cs sel:2'b01、nf sel:2'b10和ns sel:2'b11。在图2(b)中利用交错存储器和存储器读取步幅存取器的架构来描绘如何进行图2(a)中的情况的读取存取中的数据选择。它的子模块和乘法器由NG信息和内部计数器控制,该计数器指示来自哪个银行的哪些数据应落入较低有效字节区域。相比之下,存储器步幅写访问器在产生字节写使能信号时做的正好相反。4. 成果和评价该网络在60,000个训练数据上进行训练,并在MNIST数据集的10,000个测试数据上进行测试,这是一个标准28 28(784像素)手写数字灰度图像数据集(10类)。因此,输入和输出神经元的数量分别为784和10。注意,对于整个实验,学习率设置为0.5。我们提出的系统是在Xilinx zynq-7020 SoC FPGA上实现的,运行在100 MHz下。由于硬件资源有限除非另有说明,否则以下所有硬件评估均采用上述最佳可能比例此外,如3.3节所述,本文中输入层和隐藏层的SS-丢弃率分别为0.9和0.5。4.1. 硬件资源利用具有SS-Dropout机制的NNL加速器的主要硬件模块的资源利用率在Xilinx Vivado 2017.2中获得,并在表2中列出。至于BRAM,所有可用的140个都被利用了。恰恰相反,其他资源最终消耗了近一半的可用的,这表明SS-辍学是一个内存占用S. 泽口,H.Nishi/ICT Express 4(2018)7579===- -- -法“Overhead” in the table includes memory stride read/write表2我们建议的系统的资源利用率。“额外”添加到NPE和NCC中模块LUT(53,200)登记册(106 400)数字信号处理器(220)SS-丢弃功能。从这个意义上说,亲-整体35 026人(66%)49 784人(47%)112人(51%)被认为是16%左右。NPE x1611,65715,079112NCC2,7142,46804.2. NNL加速度开销5 281人(15%)7,895人(16%)0在本文中,我们将处理时间定义为训练后从第一次数据传输到片上BRAM到最后一次数据传输到DDR的时间,即,epoch times的训练时间在1000个epoch的情况下,对NNL启用和禁用SS-Dropout的硬件加速器进行了比较前者产生5.72秒,后者产生3.68换句话说,以我们确定性的方式利用dropout算法成功地实现了大约1.55倍的加速。4.3. 转移成本如上所述,由于权重参数在软件和硬件历元时间之间传输,所以丢弃技术的现有硬件设计不能不遭受传输成本的指数增加。的重要的是,NC/NG信息是每个时期的一次性信息,这就是为什么只观察到写访问。实验系统和建议系统传输的数据总量分别为184,000n和(64n +408,000)字节。假设n为1000,64位宽的AXICDMA在100 MHz频率下的理想吞吐量为800 MB/s,则现有设计和建议设计的传输成本可分别计算如下:184,000× 1,0000 23 S800× 10664× 1,000 + 408,0000. 59毫秒800× 106此外,当n接近无穷大时,这些成本之比的极限变为:SS-Dropout技术是专门为外部设计的Lim184,000n=2,875成本的结果。为此,需要传递NC/NG信息。因此,下面使用时期的数量n来比较原始丢弃和SS-Dropout技术的硬件实现之间的预期传输成本。考虑到输入层和隐藏层的丢失率分别为0.9和0.5,在[2]中的现有设计中要传输的权重参数的预期数据大小为:(784 × 0. 9× 128 × 0。5+ 128 × 0。5× 10)× 2× 2n184,000n字节注意,每个epoch都有写和读访问。相比之下,所提出的系统期望两种数据被传输:重量和NC/NG信息。权重的数量等于:(784× 128+ 128× 10)× 2字节×2× 408, 000字节注意,在所提出的设计中,重量数据的传输只发生两次:在NNL开始之前的写访问和在NNL结束之后的读访问。至于控制信息,2位NC Info被分配给一个、两个或三个NG,而2位NG Info只有在其丢失率为0.5时才总是分配给两个NG。考虑到表1,脱落率为1.0和0.5时保留的NG的预期数量为在输入层分别为156.8和19.6。关于隐藏层,每个组合C1-C4出现的预期次数是四次。因此,每个时期要传送的控制信息的总量是:[{(156. 八加十九。6)+( 4× 4)}× 2位+{19. 6+( 4+ 4)}× 4位]×n< 64n字节n→∞64n+ 408,000因此,所提出的SS-Dropout机制可以将传输成本降低三个数量级。4.4. 分类精度由于我们提出的确定性方法消除了原始dropout算法中的一些随机性,因此评估了分类精度和正则化性能的退化程度。在本文中,在何种程度上防止过度拟合被假定为类似于SS-丢弃技术的分类准确性如何遵循原始丢弃。图 3显示了四种不同类型的三层网络的测试精度,不同之处在于神经元的数量在隐藏层是64或128,和dropout模式是原始的(在软件中测试)或我们提出的SS- Dropout(在硬件中测试)。SS-Dropout和原始dropout的准确性请注意,1.0测试精度意味着每个测试数据都被正确分类。首先,SSD-64在整个训练过程中大部分时间都在OD-64以下不稳定地波动,在Epoch 5000、80,000和100,000时退化最严重,在784 128 10净,虽然大多数 SSD-128和OD-128的最差降解(4%-5%)和峰值(分别约为93%和95.5%)等结果看起来与784 64 10 net几乎相同,除了平均准确度之外,SSD- 64中看到的还有,过拟合预防的能力似乎更有可能80S. 泽口,H.Nishi/ICT Express 4(2018)75图三. 测试四种不同网络类型的准确性。随着隐藏的神经元数量的增加,这些神经元被保留下来这可能与更多的函数可以用更多的神经元和层很好地近似的事实有关。因此,当需要更快地训练神经网络时,我们所提出的算法可以是有用的,并且与原始dropout算法相比,分类精度下降约5%是可以容忍的。5. 结论为了提高NNL加速器的性能,提出了一种新的确定性丢弃算法SS-Dropout,降低转移成本,在现有工作的基础上,通过删除dropout算法中的冗余操作,对NNL进行了加速。与没有SS-Dropout机制的硬件加速器相比,我们在Zynq上的SS-Dropout硬件加速器在1000个epoch的情况下产生了1.55倍的加速,大约16%的资源开销此外,传输成本可以减少三个数量级相比,现有的辍学NNL加速器。这些好处可以在分类精度降低约5%的代价下获得。尽管如此,由于现有的确定性丢弃方法在较大的网络中观察到了相当的精度[6,7],因此我们的方法也可能适用于这种情况。致谢这项工作得到了MEXT/JSPS KAK-ENHI资助(B)编号JP16 H 04455和JP 17 H 01739的部分支持,通过日本总务省SECOM科学技术基金会的研发项目利益冲突作者声明,本文中不存在利益冲突引用[1] N.斯利瓦斯塔瓦湾,巴西-地辛顿,A.克里热夫斯基岛苏茨克韦尔河Salakhutdinov,Dropout:一种防止神经网络过拟合的简单方法,J.Mach。学习. Res.(2014)1929-1958。[2] J. Su,D.B.托马斯,P.Y. Cheung,Increasing network size and trainingthroughput of FPGA restricted Boltzmann machines using Dropout,in:Proceedings of 2016 IEEE 24th Annual International Symposium onField-Programmable Custom Computing Machines , FCCM , 2016 ,pp.48比51[3] I. Goodfellow,J.Pouget-Abadie,M.Mirza,D.沃德-法利,S。奥泽尔,A. Courville,Y. Bengio,Generative Adversarial Nets,Adv. NeuralInform。 过程(2014)2672-2680。[4] O.M. Parkhi,A.Vedaldi,A.Zisserman,Deep Face Recognition,i:nProceedings of the British Machine Vision,2015。[5] 诉范,T。布鲁什角Kermorvant,J.Louradour,Dropout改进了用于手写识别的递归神经网络,在:2014年第14届手写识别前沿国际会议的会议记录,2014年,第14页。285-290。[6] S.I. Wang,C.D.Manning,Fast dropout training,in:Proceedings ofthe 30th International Conference on Machine Learning,2013,pp.118比126[7] B. Ko,H.- G.金,H.- J. Choi,Controlled dropout:A different dropoutfor improving training speed on deep neural network,in:Proceedingsof 2017 IEEE International Conference on Systems , Man , andCybernetics,SMC,2017,pp. 972-977[8] A. Tisan,J. Chin,基于FPGA的前馈人工神经网络设计和快速原型设计的最终用户平台,带片上反向传播学习,IEEE Trans. 印第安纳INF. 12(3)(2016)1124[9] S. 古 普 塔 A 。 Agrawal , K. Gopalakrishnan , P. Narayanan , Deeplearning with limited numerical precision,第32届机器学习国际会议论文集,2015年,第101737-1746年。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功