目录
Small-Footprint Keyword Spotting with Multi-Scale Temporal Convolution
说明
本文是一些论文的简要,想了解具体内容可以下载原文进行阅读,若是读者对下面文章进行参考,请进行规范引用。
Small-Footprint Keyword Spotting with Multi-Scale Temporal Convolution
Li, Ximin et al. “Small-Footprint Keyword Spotting with Multi-Scale Temporal Convolution.” ArXiv abs/2010.09960 (2020): n. pag.
Abstract
(1) the trade-off between small footprint and high accuracy for KWS(关键词定位) task.
(2) 我们提出了一个多分支时间卷积模块(MTConv),训练阶段替换标准的时间卷积层,性能更好。有多个size不同的时间卷积滤波器,丰富了时间特征空间。
(3) 模型在时间和深度上的利用,可以在KWS系统成为一个时间高效的神将网络(TENet)。
(4) MTConv在inference阶段,可以等价地转换为基本卷积结构,这样比起base model,我们不会增加额外的参数和训练成本。
(5) 性能在谷歌语音命令数据集上准确率96.8%,且参数只有100K.
Introduction
(1) 关键字定位(KWS)是一项旨在检测音频流中预先训练好的单词的任务。其中一个应用就是唤醒词检测。
(2) 唤醒词检测:用来启动与移动设备的语音助手的交互,设备资源有限,但是要实现持续监听特征词,所有高精度、低延迟以及低占用空间仍然具有挑战性。
(3) DNNs已经被证明能够为KWS提供有效的small-footprint solutions。尤其一些先进的架构,如CNNs,准确性不错under limited memory footprint as well as computational resource scenarios(有限内存占用和有限的计算资源)。
(4) 第一个问题:基于2D-CNN的方法,网络浅时很难捕获低高频之间的依赖性。为解决该问题,在一些工作中,[8,9]利用一维时间卷积来提取高级频率特征。尽管它们取得了成功,但由于固定的核大小(即二维卷积为3×3,9×1为1维卷积),因此没有考虑到聚合短期和长期时间信息特征的能力。事实上,捕获不同尺度的时间信息是很重要的,因为关键字的特征在时间尺度上通常是不同的。
(5) 本文方法
- 时间特真丰富,
- MTConv可以等价地转换为具有增强核的原始时间卷积层,使得输出与标准时间卷积的输出一样。
- 占用内存与准确度之间有个比较好的平衡,我们提出的TENet,由1×1 convolution, 9×1 depthwise convolution and 1 × 1 convolution构成的倒置瓶颈块。
(6) 贡献
- 我们提出了一种基于深度时间卷积的时间高效神经网络
- 进一步提出多分支的时间卷积模块MTConv,以获得多尺度时间特征,它在inference阶段可以转化成标准的时间卷积。(训练阶段是MTConv,推理阶段转化为标准时间卷积STConv)
- 我们的base TENet inference获得96.6%的准确性,
- 换成MTConv训练,inference时的kernel fusion mechanism,使得性能提高到96.8%。
Method
(1)数据处理:
- 先带通滤波器去噪,然后40维的MFCC(30ms的window size and 10ms frame shift),最后将MFCC作为输入数据送入神经网络。维度:(T,F)帧数*40
(2) TENet【8】:
1) 首先将输入的MFCC特征视为时间序列,维度[T,1,F],因此模型中的所有卷积都沿时间维度。
2) 模型结构受[11]启发,TENet的主要模块IBB(倒置瓶颈块),带残差的瓶颈时间去分离卷积。(顶和底瓶颈,中间膨胀层,两者之间的channel size比值为1:3)
- Conv1x1:通过扩大信道数,将输入嵌入高维子空间,
- 深度Conv9x1:将tensor重新转化为低位紧的子空间,用于信道间的信息传输。它是时间卷积的重要模块,每个信道一个卷积滤波器来执行实现轻量级滤波,伴随着非线性变换。
- Conv1x1:当输入和输出的大小不匹配时,利用1×1卷积来匹配维度。
3) 通过叠加IBB层,可以很容易地构建时间高效的神经网络。
(3) Multi-Scale Temporal Convolution:
1) 在训练阶段,将深度卷积替换为MTConvs进行训练,在推理阶段,MTConv训练的TENet可以等价地转换为基础TENet,这节省了模型参数和计算成本。
2) MTConvs是具有不同的核大小和批归一化
3) 具体地说,MTConv中每个分支的内核大小彼此不同,从而帮助该分支从自己的时间粒度中学习独特的模式。膨胀区新增两个分支,增强了捕获短期时间特征的能力。
4) Relu的输入并不是concat每个分支的输出,而是以元素的方式将每个分支的输出相加。 (多尺度核 融合 一个增强核)
5) 标准卷积训练的核 VS. 增强核:后者包含更丰富的时间信息,从而产生更好的性能。
(4) Kernel Fusion of MTConv(核融合)
1) 输入M:[T,1,C], C个滤波器的concatenation F:[D,1,C],(kernel size of D × 1 and C filters)
输出O:[T,1,C]
M F
所以第j个滤波器输出的第t个元素,再通过batch normalization后为:
K = (D-1)/2,且D为基数,如9,5,3,则对应k=4,2,1
2) 再变成多分支,为了方便融合,所以三个F按照最大的k(即4)来补零。
根据方程(2),我们对小内核做零填充,这样所有的内核都具有相同的大小,
成为多尺度增强核。
这也应证了上文说的MTConv等价于是带有ˆF核和βˆ偏差的,且去掉标准化的卷积。
Experiment
(1) 谷歌的数据是:上千人关于30中不同的关键词的一秒长的发音文件,总共有65k个文件。80%训练。验证集测试集各10%。
(2) 训练数据中随机80%增加了一些服从非均匀分布(0,0.1)的噪声,作为背景噪声,还增加了随机时移:(-100,100)ms之间的值
(3) 初始30K学习率为0.01,每10k衰减0.1.,batchsize=100,标准权重衰减设置为0.00004.
(4) 我们分别用MTConv和标准卷积来训练TENet的所有四个实现,每个实现都经过20次的平均性能训练。 TENet6,TENet12,TENet6-narrow,TENet12-narrow,四种
(5) 默认的MTConv由四个分支组成,分别包含3×1、5×1、7×1和9×1卷积核。
(6) 性能指标:accuracy、模型的参数数量以及multiply操作
(7) 结果:
- 不加MTConv时的TENet,比起别人的方法[7]、[8],我们的性能不错,且模型参数少,multiply数也少。
- 加入MTConv:四种配置的TENet都有性能提升了0.15% ~0.32%。
- 分支越多,性能越好。
Conclusion
(1) 轻量级、高效的、占用内存小的KWS,
(2) 为了同时聚合短期和长期的时间信息特征,我们引入了一个具有不同核大小的多分支时间卷积模块,丰富了时间特征空间,以获得更好的性能。
(3) 我们的基本模型(TENet)性能接近目前最先进的模型,且我们只用了他们1/3的参数量,乘法操作也少。
(4) 引入了MTConv, 但由于核融合机制,没有增加额外的参数或计算成本。
笔者发言
- 关于关键词检测任务,读者想了解更多文章可以去 关键词检测任务调研(Keyword Spotting)(1)https://blog.csdn.net/LJJ_12/article/details/120079279 中一览,
- 然后可以去 https://www.semanticscholar.org/ 根据关键词进行文章搜索,完成自己的探索
- 我只是分享自己的一点学习成果,这只是KWS任务的冰山一角,还有很多有效的方法等待你去挖掘
- 相关代码(谷歌的):https://github.com/hyperconnect/TC-ResNet