BLSTM的训练算法、解码算法以及模型的改进
摘要
BLSTM解码时,解码器需要等待整个音频到达后才开始解码,因为时间反方向的前向传播需要末尾的历史信息。BLSTM这一延时问题使其不适用与实时语音识别。context-sensitive-chunk BLSTM(CSC-LSTM)和latency-controlled BLSTM(LC-BLSTM,延时控制-双向LSTM)都将整句切分为数个chunks。通过在每个chunk中添加左右上下文帧,并以chunk为单位进行前向计算,BLSTM的延迟可以控制为一个chunk左右的时长,并且与传统BLSTM相比,可以保持原有准确率基本不变。文本提出了两种LC-BLSTM。通过使用不同类型的神经网络拓扑以初始化BLSTM的cell状态;通过上下文帧和快速在线识别以降低计算开销。320h Swbd实验显示本文的解码速度能加速24%至61%而无识别率的损失。
在LSTM声学模型(包括其变形,比如highway LSTM网络)中,双向LSTM的识别率远远优于单向LSTM。然而双向LSTM模型的延迟极高,不适用于在线语音识别。为了克服这一限制,文献[1]、文献[2]、文献[10]和文献[11]研究了基于Chunk的训练与解码。
Chunk BPTT
文献[5]提出了Chunk BPTT。
加速BPTT训练
- 将特征序列切分为固定长度的chunks
- 将多个chunks组合为更大的batches
对Chunk大小的调优
使用一块NVIDIA GTX680 GPU对IAM手写数据集的训练时间如下:
能取得FER与训练时间之间的平衡。
epochwise BPTT
GPU的内存大小限制了一个mini-batch中的序列数(对于很长的序列来说),这会导致加速效果较差。
CSC BPTT
文献[6]提出CSC(Context-Sensitive-Chunk) BPTT训练方法以及基于CSCs的解码方法,并应用于手写识别中。
epochwise BPTT可表示为0-Full+0,由于此处的chunk即完整的帧序列
BPTT在BLSTM-HMM中的应用,以及提出了基于CSCs的解码方法
文献[7]将CSC-BPTT应用于语音识别中。
受到语音语句中协同发音的影响,每个音素的语音帧基本上只受之前和之后几帧影响。那么,就没有必要用BLSTM对整句话进行建模。因此,只需对一个较小的chunk建模即可。
帧或850毫秒。
基于CSC的解码
对于使用CSC-BPTT训练的BLSTM,待识别的语句也要使用与训练时相同的配置切分为多个CSCs。
若需要考虑到计算复杂度,那么解码时CSCs之间可以没有重叠;否则,CSCs之间可以有若干帧的重叠,以取得更高的识别率。比如:
LC-BLSTM
CSC-BLSTM未利用历史chunk的记忆状态信息,这带来了额外的计算。文献[8]提出了延时控制-BLSTM(LC-BLSTM)。在时间反向计算中,LC-BLSTM只使用修剪过的下文信息用作cell状态的初始化。
LC-BLSTM的改进
由于LC-BLSTM的时间反向计算中需要额外对右下文进行计算,这大大增加了计算量。为此,文献[9]提出了LC-BLSTM-FA、LC-BLSTM-FABDI与LC-BLSTM-FABSR
LC-BLSTM Without Forward approximation
LC-BLSTM-FA(With Forward approximation)
LC-BLSTM-FA去除了上述无用的计算
本节介绍两种效率改进的LC-BLSTM,用于快速实时在线语音识别
LC-BLSTM-FABDI(Forward Approximation and Backward DNN Initialization)
每个BLSTM层的前向计算步可以分解为:
时间正向:
时间反向:
LC-BLSTM-FABSR(Forward Approximation and Backward Simple RNN)
第二种结构被称为"forward approximation and back-
SRNN的训练需要处理长程依赖,因此容易发生梯度爆炸。为此在LC-BLSTM-FABSR的训练中,需要使用更为严格的梯度修剪以促进收敛。
实验表明,LC-BLSTM-FA的WER优于LC-BLSTM-FABDI、LC-BLSTM-FABSR,但LC-BLSTM-FABDI和LC-BLSTM-FABSR的解码速度比前者快。
参考文献
- A. Zeyer, R. Schluter, and H. Ney, "Towards online-recognition with deep bidirectional LSTM acoustic models," Proceedings of Interspeech, vol. 08-12-Sept, pp. 3424–3428, 2016.
- P. Doetsch, M. Kozielski, and H. Ney, "Fast and Robust Training of Recurrent Neural Networks for Offline Handwriting Recognition," Proceedings of International Conference on Frontiers in Handwriting Recognition, ICFHR, vol. 2014-Decem, pp. 279–284, 2014.
- K. Chen, Z.-J. Yan, and Q. Huo, "Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT Approach," in Proceedings of the Interspeech, 2015.
- A.-r. Mohamed, F. Seide, D. Yu, J. Droppo, A. Stoicke, G. Zweig, and G. Penn, "Deep bi-directional recurrent networks over spectral windows," in Automatic Speech Recognition and Understanding (ASRU), 2015 IEEE Workshop on. IEEE, 2015, pp. 78–83.
- P. Doetsch, M. Kozielski, and H. Ney, "Fast and Robust Training of Recurrent Neural Networks for Offline Handwriting Recognition," Proceedings of International Conference on Frontiers in Handwriting Recognition, ICFHR, vol. 2014-Decem, pp. 279–284, 2014.
- K. Chen, Z.-J. Yan, and Q. Huo, "A context-sensitive-chunk BPTT approach to training deep LSTM/BLSTM recurrent neural networks for offline handwriting recognition," Proc. ICDAR-2015.
- K. Chen, Z.-J. Yan, and Q. Huo, "Training Deep Bidirectional LSTM Acoustic Model for LVCSR by a Context-Sensitive-Chunk BPTT Approach," in Proceedings of the Interspeech, 2015.
- Yu Zhang, Guoguo Chen, Dong Yu, and Kaisheng Yao, "High- way long short-term memory RNNs for distant speech recog- nition," in IEEE International Conference of Acoustics,Speech and Signal Processing (ICASSP), 2016, pp. 5755–5759.
- IMPROVING LATENCY-CONTROLLED BLSTM ACOUSTIC MODELS FOR ONLINE SPEECH RECOGNITION. Shaofei Xue, Zhijie Yan, Alibaba Inc, China
BLSTM的训练算法、解码算法以及模型的改进的更多相关文章
- 条件随机场CRF(三) 模型学习与维特比算法解码
条件随机场CRF(一)从随机场到线性链条件随机场 条件随机场CRF(二) 前向后向算法评估标记序列概率 条件随机场CRF(三) 模型学习与维特比算法解码 在CRF系列的前两篇,我们总结了CRF的模型基 ...
- 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态序列
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数 隐马尔科夫模型HMM(四)维特比算法解码隐藏状态 ...
- 程序员训练机器学习 SVM算法分享
http://www.csdn.net/article/2012-12-28/2813275-Support-Vector-Machine 摘要:支持向量机(SVM)已经成为一种非常受欢迎的算法.本文 ...
- h.264并行解码算法3D-Wave实现(基于多核共享内存系统)
3D-Wave算法是2D-Wave的扩展.3D-Wave相对于只在帧内并行的2D-Wave来说,多了帧间并行,不用等待前一帧完成解码后才开始下一帧的解码,而是只要宏块的帧间参考部分以及帧内依赖宏块解码 ...
- h.264并行解码算法2D-Wave实现(基于多核共享内存系统)
cache-coherent shared-memory system 我们最平常使用的很多x86.arm芯片都属于多核共享内存系统,这种系统表现为多个核心能直接对同一内存进行读写访问.尽管内存的存取 ...
- h.264并行解码算法2D-Wave实现(基于多核非共享内存系统)
在<Scalable Parallel Programming Applied to H.264/AVC Decoding>书中,作者基于双芯片18核的Cell BE系统实现了2D-Wav ...
- Base64编码和解码算法
Base64么新鲜的算法了.只是假设你没从事过页面开发(或者说动态页面开发.尤其是邮箱服务),你都不怎么了解过,仅仅是听起来非常熟悉. 对于黑客来说,Base64与MD5算法有着相同的位置.由于电子邮 ...
- 记录:EM 算法估计混合高斯模型参数
当概率模型依赖于无法观测的隐性变量时,使用普通的极大似然估计法无法估计出概率模型中参数.此时需要利用优化的极大似然估计:EM算法. 在这里我只是想要使用这个EM算法估计混合高斯模型中的参数.由于直观原 ...
- Linux同步互斥(Peterson算法,生产者消费者模型)
同步 两个或两个以上随时间变化的量在变化过程中保持一定的相对关系. 互斥 对一组并发进程,一次只有一个进程能够访问一个给定的资源或执行一个给定的功能. 互斥技术可以用于解决诸如资源争用之类的冲突,还可 ...
随机推荐
- 【Shell基础】循环:for、while、until
1.for循环 ..};do echo "for loop" done 2.while循环 be_s= en_s= while [ "$be_s" -le &q ...
- 数据库【mongodb篇】基本命令学习笔记
MongoDB基本命令用 MongoDB基本命令用 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs ...
- Docker(4):Docker集中化web界面管理平台—Shipyard部署
//关闭防火墙 并禁止自启 [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable fir ...
- Even Parity UVA - 11464 (枚举)
从来没有觉得枚举有多费脑子的.但是这道题还是很香的. 思路:就是非常简单的枚举啦. 从一般的枚举开始考虑.一般的做法就是在所有的格子中有两种状态1, 0. 而一共有225个格子,所有一共要枚举的情 ...
- rank() partition by 排名次
rank()排名 partition by分组与group by相比各有优势,在这里就省略100字.... 以下为案例: create table student -- 学生表(sid integer ...
- selenium跳过webdriver检测并爬取淘宝我已购买的宝贝数据
简介 上一个博文已经讲述了如何使用selenium跳过webdriver检测并爬取天猫商品数据,所以在此不再详细讲,有需要思路的可以查看另外一篇博文. 源代码 # -*- coding: utf-8 ...
- C++中endl和cout语句
cout是什么?它是一个对象,它代表着计算器的显示器屏幕. 在c++里,信息的输出显示可以通过使用cout和左向‘流’操作符(<<)来完成 这个操作符表面了从一个值到控制台的数据流向! c ...
- Ubuntu本地文件上传至HDFS文件系统出现的乱码问题及解决方案
1.问题来源及原因 用shell命令上传到HDFS中之后出现中文乱码,在shell命令窗口查看如图: 在eclipse中的文件HDFS查看工具查看如图: 原因:上传至HDFS文件系统的文本文件(这里是 ...
- python面对对象(不全解)
面对对象:以人类为例,人类通用功能:吃喝拉撒,就可以封装成一个类,不同功能:嫖赌毒,就是对象的不同功能.继承,多态… 上码 class Person(object): def __init__(sel ...
- cordova的常用命令
常用命令 npm install -g cordova // 加载cordovecordova create MyApp //创建一个新的文件夹cd MyApp //找到当前目录cordova pla ...