一种深度神经网络压缩方法和装置制造方法及图纸

技术编号:21772937 阅读:27 留言:0更新日期:2019-08-03 21:54
提出了一种深度神经网络压缩方法和装置。神经网络的神经元之间的连接关系通常由多个矩阵来表示。根据本发明专利技术的神经网络压缩方法(900)包括:将所述多个矩阵的所有行进行跨矩阵重排(S910),其中,重排后的矩阵行按序分块为多个子矩阵;对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率(S920);按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络(S930)。本发明专利技术可以保证并行计算处理单元负载均衡,从而达到释放储存资源、加快计算速度、降低功耗的效果。

A Deep Neural Network Compression Method and Device

【技术实现步骤摘要】
一种深度神经网络压缩方法和装置
本专利技术涉及人工神经网络,更具体涉及一种深度神经网络压缩方法和装置。
技术介绍
人工神经网络(ArtificialNeuralNetworks,ANN),也简称神经网络(NNs),是一种模仿动物神经网络的行为特征,进行分布式并行信息处理的数学计算模型。近年来,神经网络发展很快,被广泛应用于诸多领域,如图像识别、语音识别、自然语言处理、天气预报、基因表达、内容推送等等。神经网络中,有大量彼此连接的节点(也称“神经元”),并且具备两个特性:1)每个神经元,通过某种特定的输出函数(也叫激活函数,activationfunction),计算处理来自其它相邻神经元的加权输入值;2)神经元之间的信息传递强度,用所谓权值来定义,算法会不断自我学习,调整这个加权值。早期的神经网络只有输入和输出层两层,无法处理复杂的逻辑,限制了其实用性。而深度神经网络(DeepNeuralNetwork,DNN)通过在输入和输出层之间添加隐藏的中间层,革命性地改变了这一点。图1示出了一种深度神经网络的模型。语音识别(SpeechRecognition),是将语音的模拟信号顺序映射到一个具体的单词集合上。近年来,人工神经网络的方法在语音识别领域取得的效果已经远远超出了所有传统方法,正在成为全行业的主流。其中,深度神经网络有着极为广泛的应用。循环神经网络(RecurrentNeuralNetworks,RNN)是一种常用的深度神经网络模型,不同于传统前向神经网络(Feed-forwardNeuralNetwork)的是,循环神经网络引入了定向循环,能够处理那些输入之间前后关联的问题。在语音识别中,信号的前后关联很强,例如识别句子中的单词,和该单词前面的单词序列关系十分紧密。因此,循环神经网络在语音识别领域有着非常广泛的应用。为了解决对长期信息的记忆问题,Hochreiter和Schmidhuber于1997年提出了长短时记忆(LongShort-TermMemory,LSTM)模型。LSTM神经网络是RNN的一种,将普通RNN当中简单的重复神经网络模块改变为复杂的连接交互关系。LSTM神经网络在语音识别中也取得了非常好的应用效果。图2示出了一种应用于语音识别领域的LSTM网络模型。然而,通过近几年的迅速发展,神经网络的规模不断增长,已公开的比较先进的神经网络可达数百层、数亿个连接,属于计算和访存密集型应用。在神经网络逐渐变大的情况下,模型压缩就变得极为重要。深度神经网络中,神经元的连接关系在数学上可以表示为一系列矩阵。经过训练后的网络虽然预测准确,效果奇佳,但其矩阵都是稠密的,即“矩阵中充满了非零元素”,从而导致大量的存储和计算资源被消耗,不但降低速度,而且增加成本,这样一来,在移动端的推广就面临着巨大的困难,极大的制约了神经网络的应用空间。近年来,广泛的研究表明,通过训练得到的神经网络模型矩阵中,仅有部分权值较大的元素代表着重要连接,而其他权值较小的元素可以被移除(置为零),与此同时对应的神经元也被剪枝(pruning)。剪枝后的网络精度会下降,但是可以通过重训(finetune),对仍然保留在模型矩阵中权值的大小进行调整,从而减小精度损失。剪枝可以将神经网络中的稠密矩阵稀疏化,能够有效的降低存储量、减少计算量,在保持网络预测精度的同时实现加速。图3示出了利用剪枝、重训来压缩神经网络的示意图。图4示出了剪枝前后的神经网络的示意图。由于缺少专门针对稀疏矩阵的计算逻辑设计,CPU与GPU无法充分享受到模型稀疏化带来的好处,取得的加速有限。相比而言,剪枝对于专用的稀疏神经网络加速器而言显得极为重要。基于现场可编程门阵列(Field-ProgrammableGateArray,FPGA)这一高性能硬件载体实现的稀疏神经网络加速器,相比于主流的CPU和GPU,具有一个数量级以上的能效比优势。然而,现有的LSTM深度神经网络中,通过传统的剪枝、重训的方式来压缩神经网络,导致计算量大、压缩率下降、压缩效果不理想,特别是不能够充分发挥FPGA的效能。
技术实现思路
本专利技术实施例提供一种深度神经网络压缩方法和装置,用以解决现有技术中有关神经网络的计算量大、压缩率下降、压缩效果不理想等缺陷,实现并行计算处理单元负载均衡,从而达到释放储存资源、加快计算速度、降低功耗的效果,使得充分发挥FPGA等硬件实现结构的效能。为实现本专利技术目的,根据本专利技术的第一方面,提供一种神经网络压缩方法。所述神经网络的神经元之间的连接关系由多个矩阵来表示。所述方法可以包括:将所述多个矩阵的所有矩阵行进行跨矩阵重排,其中,重排后的矩阵行按序分块为多个子矩阵;对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率;按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络。优选地,所述方法可以进一步包括对所述压缩后的神经网络进行重训的步骤。优选地,所述的将所述多个矩阵的所有矩阵行进行跨矩阵重排的步骤可以进一步包括:将所述多个矩阵在矩阵行的方向上顺次堆叠,形成大矩阵;通过从大矩阵中每隔N行抽取一行,从而形成按序分块的N个大小相同的子矩阵。这里,所述N根据用于实现所述神经网络的计算单元的个数而确定,且这些计算单元能够以并行方式进行计算。优选地,所述的对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率的步骤可以进一步包括:获得压缩前的各个子矩阵所组成的神经网络的错误率;分别对多个子矩阵按照相同的压缩率进行压缩,获得压缩后的各个子矩阵所组成的神经网络的错误率;通过尝试不同的压缩率,找到错误率差值在阈值水平内的最大压缩率,找到的这个压缩率被确定为神经网络的初始压缩率。优选地,所述的按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络的步骤可以进一步包括:将各个子矩阵中的元素按绝对值排序,从小到大对子矩阵中的非零元素进行置零,直到达到指定的压缩率。为实现本专利技术目的,根据本专利技术的第二方面,提供一种神经网络压缩装置。所述神经网络的神经元之间的连接关系由多个矩阵来表示。所述装置可以包括:重排分块单元,用于将所述多个矩阵的所有矩阵行进行跨矩阵重排,其中,重排后的矩阵行按序分块为多个子矩阵;敏感度分析单元,用于对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率;压缩单元,用于按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络。优选地,所述装置可以进一步包括重训单元,用于对所述压缩后的神经网络进行重训。优选地,所述重排分块单元可以进一步包括:堆叠子单元,用于将所述多个矩阵在矩阵行的方向上顺次堆叠,形成大矩阵;抽取分块子单元,用于通过从大矩阵中每隔N行抽取一行,从而形成按序分块的N个大小相同的子矩阵。这里,所述N根据用于实现所述神经网络的计算单元的个数而确定,且这些计算单元能够以并行方式进行计算。优选地,所述敏感度分析单元可以进一步包括:压缩前错误率获得子单元,用于获得压缩前的各个子矩阵所组成的神经网络的错误率;压缩后错误率获得子单元,用于分别对多个子矩阵按照相同的压缩率进行压缩,获得压缩后的各个子矩阵所组成的神经网络的错误率;初始压缩率确定子单元,用于通过尝试不同的压缩率,找到压缩前后的错误率差值在阈值水平内的最大本文档来自技高网
...

【技术保护点】
1.一种神经网络压缩方法,所述神经网络的神经元之间的连接关系由多个矩阵来表示,其特征在于,所述方法包括:将所述多个矩阵的所有矩阵行进行跨矩阵重排,其中,重排后的矩阵行按序分块为多个子矩阵;对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率;按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络。

【技术特征摘要】
1.一种神经网络压缩方法,所述神经网络的神经元之间的连接关系由多个矩阵来表示,其特征在于,所述方法包括:将所述多个矩阵的所有矩阵行进行跨矩阵重排,其中,重排后的矩阵行按序分块为多个子矩阵;对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率;按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络。2.如权利要求1所述的方法,其特征在于,所述方法进一步包括对所述压缩后的神经网络进行重训的步骤。3.如权利要求1所述的方法,其特征在于,所述的将所述多个矩阵的所有矩阵行进行跨矩阵重排的步骤进一步包括:将所述多个矩阵在矩阵行的方向上顺次堆叠,形成大矩阵;通过从大矩阵中每隔N行抽取一行,从而形成按序分块的N个大小相同的子矩阵,其中,所述N根据用于实现所述神经网络的计算单元的个数而确定,且这些计算单元能够以并行方式进行计算。4.如权利要求1所述的方法,其特征在于,所述的对多个子矩阵进行敏感度分析,以确定神经网络的初始压缩率的步骤进一步包括:获得压缩前的各个子矩阵所组成的神经网络的错误率;分别对多个子矩阵按照相同的压缩率进行压缩,获得压缩后的各个子矩阵所组成的神经网络的错误率;通过尝试不同的压缩率,找到压缩前后的错误率差值在阈值水平内的最大压缩率,找到的这个压缩率被确定为神经网络的初始压缩率。5.如权利要求1所述的方法,其特征在于,所述的按照所确定的初始压缩率对所述多个子矩阵进行压缩,以获得压缩后的神经网络的步骤进一步包括:将各个子矩阵中的元素按绝对值排序,从小到大对子矩阵中的非零元素进行置零,直到达到指定的压缩率。6.一种神经网络压缩装置,所述神经网络的神经元之间的连接关系由多个矩阵来表示,其特征在于,所述装置包括:重排分块单元,用于将所述多个矩阵的所有矩阵行进行跨矩阵重排,其中,重排后的矩阵行按序分...

【专利技术属性】
技术研发人员:李鑫孟通江帆韩松单羿
申请(专利权)人:北京深鉴智能科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1