基于改进LSTM的语音识别模型剪枝方法
- 国知局
- 2024-06-21 11:28:16
本发明属于语音数据处理领域,涉及一种基于改进lstm的语音识别模型剪枝方法。
背景技术:
1、循环神经网络(recurrentneuralnetworks,rnn)是一种节点定向连接成环的神经网络,它具有展示动态时序行为的能力,是深度学习中的重要组成部分之一。循环神经网络由输入层、隐藏层和输出层组成,其中循环神经网络的隐藏层是用来存储和传递序列数据的信息的层。隐藏层的节点之间通过周期性的连接,可以捕捉到序列数据中的动态信息。这意味着隐藏层可以通过记住之前的输入来影响后续的输出,从而利用序列数据的上下文信息。通过隐藏层的处理,循环神经网络可以更好地处理序列数据,例如自然语言处理、语音识别、机器翻译等任务,可以通过学习序列数据中的模式和关系来进行预测和生成。通过引入记忆单元和门控方案,一些rnn变体,如长短期记忆(long shorttermmemory,lstm)、门控循环单元(gate recurrent unit,gru)、双向长短时记忆(bi-directional long short-term memory,bi-lstm),能够捕获更长距离的依赖关系。因此,它们可以达到更高的精度,并得到更广泛的应用。精度的提高是以更大的模型尺寸为代价的,其中bi-lstm模型的计算涉及大量数据,这些数据不能全部存储在芯片上有限的静态随机存取存储器(staticrandom-access memory,sram)中,bi-lstm的计算需要低成本、高容量的外部存储器动态随机存取存储器(dynamicrandomaccessmemory,dram)。但是,随机存取存储器不能很好地缓解bi-lstm架构设计中的dram带宽瓶颈。为了解决这一问题,科研人员做出了各种努力,包括权值的量化和激活,网络稀疏性,条件计算,张量分解等。对于网络稀疏性,模型大小的减小通常是通过修剪网络中的冗余连接实现的,然后存储具有特殊压缩格式的稀疏权重矩阵,还可以通过跳过权重为零的操作来降低计算复杂度。为了提高bi-lstm网络的速度,需要精心设计一种模型压缩算法,并结合良好的内存访问模式。
技术实现思路
1、有鉴于此,本发明的目的在于提供一种基于改进lstm的语音识别模型剪枝方法,可以大大减少语音识别的模型大小和矩阵运算次数,同时让精度损失降到最低。双向长短时记忆(bi-lstm)已广泛应用于语音识别等序列学习任务。虽然使用bi-lstm模型可以实现显著的精度提高,但是该模型具有较大的内存需求和较高的计算复杂度,这需要耗费大量的时间和能量。现实世界应用程序的低延迟和能效要求使得bi-lstm的模型压缩和硬件加速成为迫切需要。在考虑剪枝rnn模型的硬件加速器设计时,网络权值的非结构化稀疏模式在并行处理过程中会导致工作负载不平衡,这被称为负载不平衡问题。所以本方法的设计,可以在硬件高效的网络压缩方案上,使用了结构化top-k剪枝方案,该方案可以结构化稀疏权重,能够避免负载不平衡问题。在top-k剪枝方案中采用了明智的分组方法来保持网络的准确性。最后,采用混合量化方案,其中大部分乘法都可以用移位操作代替,从而让模型大小减小。
2、为达到上述目的,本发明提供如下技术方案:
3、基于改进lstm的语音识别模型剪枝方法,该方法包括以下步骤:
4、s1:初始化基于改进lstm的语音识别模型;
5、s2:对语音识别模型进行训练;对输入语音数据进行mfcc特征提取,得到一个13维的mfcc特征数据,即语音数据每帧包含13维mfcc特征数据,该语音数据的mfcc特征数据的张量大小为[290,13];将该语音数据的mfcc数据传入神经网络中,经过模型第一层的bi-lstm,提取语音特征,将该语音数据的mfcc特征数据序列作为bi-lstm各个时间步的输入,再将正向lstm输出的隐状态序列[290,512]和反向lstm输出的隐状态序列[290,512]在各个位置输出的隐状态按位置拼接起来,得到完整的隐状态序列,即该语音数据的mfcc数据传入第一层bi-lstm输出得到拼接后的张量大小为[290,1024];将第一层输出的数据张量经过模型第二层的bi-lstm,同样对语音特征进行提取,即该语音数据经过该层后得到的数据张量为[290,1024];之后接入一个线性层,将隐状态张量从1024维映射到63维,63是标签集的标签个数,映射后张量利用softmax得到归一化的概率,模型使用ctcloss解决输入输出对齐问题,最后解码得到该语音数据的文字序列,得到训练好的参数;
6、s3:将训练好的参数进行top-k剪枝。
7、可选的,对于结构化稀疏权重的top-k剪枝,首先将网络权重按每组c个值分组,然后,根据一定的启发式对每个组中的权重进行修剪,在一个组中最多留下k个非零值;使用top-k剪枝迭代剪枝训练模型3次,权重稀疏度逐渐增加,对模型进行迭代top-k剪枝;对于两个bi-lstm层,使用对数量化分别量化权重矩阵:首先将迭代剪枝完成的模型的bi-lstmlayer1权重进行对数量化,将量化后的bi-lstm layer1权重与迭代剪枝完成的模型的bi-lstm layer2、fc权重进行拼接得到新的模型权重,接着将新的模型权重重训练得到新的模型权重;对模型bi-lstm layer2、fc迭代进行量化和重训练操作;通过顺序存储所有组剪枝量化后的权重矩阵。
8、可选的,所述所有组中只存储非零值和相应的索引。
9、本发明的有益效果在于:本发明的方法引入了一种面向硬件的压缩算法,该算法包括结构化的top-k剪枝、无乘法量化,在确保精度的情况下可以大大减少语音识别的模型大小。
10、本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
技术特征:1.基于改进lstm的语音识别模型剪枝方法,其特征在于:该方法包括以下步骤:
2.根据权利要求1所述的基于改进lstm的语音识别模型剪枝方法,其特征在于:所述s3具体为:对于结构化稀疏权重的top-k剪枝,首先将网络权重按每组c个值分组,然后,根据一定的启发式对每个组中的权重进行修剪,在一个组中最多留下k个非零值;使用top-k剪枝迭代剪枝训练模型3次,权重稀疏度逐渐增加,对模型进行迭代top-k剪枝;对于两个bi-lstm层,使用对数量化分别量化权重矩阵:首先将迭代剪枝完成的模型的bi-lstm layer1权重进行对数量化,将量化后的bi-lstm layer1权重与迭代剪枝完成的模型的bi-lstmlayer2、fc权重进行拼接得到新的模型权重,接着将新的模型权重重训练得到新的模型权重;对模型bi-lstm layer2、fc迭代进行量化和重训练操作;通过顺序存储所有组剪枝量化后的权重矩阵。
3.根据权利要求2所述的基于改进lstm的语音识别模型剪枝方法,其特征在于:所述所有组中只存储非零值和相应的索引。
技术总结本发明涉及一种基于改进LSTM的语音识别模型剪枝方法,属于语音数据处理领域。S1:初始化基于改进LSTM的语音识别模型;S2:对语音识别模型进行训练;S3:将训练好的参数进行Top‑k剪枝。本发明的方法引入了一种面向硬件的压缩算法,该算法包括结构化的Top‑k剪枝、无乘法量化,在确保精度的情况下可以大大减少语音识别的模型大小。技术研发人员:印鑫,张红升,刘挺,成卓立,黄奎,张宇轩受保护的技术使用者:重庆邮电大学技术研发日:技术公布日:2024/2/19本文地址:https://www.jishuxx.com/zhuanli/20240618/21703.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表