赞
踩
原创: Lebhoryi@rt-thread.com
时间: 2020/04/11
为了用户能够自定义他们自己的关键词而不用retrain
整个model
之前的训练的model
需要提前知道关键词和固定的关键词训练集
之前的模型的损失方式有三种:
- 交叉熵
- CTC
- a max-pooling loss
量化LSTM的方法
设计了CTC训练结果的置信度
提出了一个更快的解码方式,除了pruning,比跳帧还快
和不同的方式做一个结果比较
第二节介绍了网络架构和量化训练的方式
第三节介绍了关键词检测机制,置信度和优化器设置
第四节介绍了实验相关
第五节介绍了实验的结果
第一部分:多层LSTM
输入五帧连续的MFCC特征,每三帧比较一次
第二部分:量化
量化的灵感来源:
权重在训练之后被量化,量化范围为最大值或者最小值的2的n次幂
激活函数在训练期间被量化,固定的范围
因为LSTM通常包含了饱和的激活函数,范围在(-1,1),输入也是固定,设为(-4,4)
Using the same fixed range for all activation
function inputs and outputs allows to have a single lookup
table at inference for the sigmoid and the tanh functions,
making the model faster to execute.
LSTM 包含了很多的额外项,量化参数相同更方便量化操作
内部状态 $ c_t $无界,没经过一个step自动加1。如果使用最大最小化量化,将会丢失较大的精度
第三部分:CTC loss 和不同超参下的model测评
CTC loss 是端到端的,所以不需要对齐数据(对齐啥?此处存疑)
对于长度不一的输入和音素序列,作者是这样处理的
第二部分:两个策略发现更好的关键词序列
a greedy approach
发现就归类,始终保持分数最高的置信度,去除重复的
缺点:不能保证输出是最好的关键词,比如launch my playlist
,关键词是play和playlist,会被检测为play
a full search
所有的序列都会被考虑到,并选择具有最大累积置信度的不重叠关键字的序列
第三部分:更高的置信度设计
CTC 自带的置信度
缺点:只做了局部的预测
长度归一化
the length of the segment is to normalize it by the segment length
No-blank normalization
blank的影响较大
似然比
关键词和模型预测的序列之间的似然比,1为对应,0为不同
Normalization and ratio
没搞清楚,说是长度和空白对模型有影响,好像是将上面的长度归一化和似然比结合了一下,顺便末尾作者提到了No-blank虽然得到了较低的置信度,但是还是几个方法中最可靠的
第四部分:更快的解码
Boundaries subsampling
好像是将三帧一次边界检测改成了两次,仅对后处理有一定的影响
Maximum segment length
限定长度而不是最大长度
Pruning
丢弃平均负似然对数超过2.5的序列
忽略空白帧
第五部分:在线关键词检测
偏向于语言理解系统 spoken language understanding (SLU) systems
keyword-filler 框架
filler model 的提出是为了解决长度不一样的问题
同时有一个background model
用来计算关键词和其他词之间的似然比
特点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。