李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记

Listen,Attend,and Spell(LAS)

Listen是Encoder,Spell是Decoder
在这里插入图片描述

以下这些模型都是seq2seq模型。只是不同的类别。
在这里插入图片描述

1.Listen的做法

Listen是讲输入源acoustic feature x转为h(向量)的过程。

输出的h即为资料库。

Listen的模型:(Encoder)(抽象)
功能:

  1. 抽出有关内容的信息
  2. 消除杂声

特点:
1.输入与输出个数相同
2.输出的是更高级的表示
在这里插入图片描述
Encoder的做法:(具体实现)
输入量与输出量相同
1.使用RNN
在这里插入图片描述
2.使用1-D CNN
x1,x2,x3组成了一个filter,同样的声音特点可以生成不同的filter。不同的filter可以生成更高层的filter。如下例,b1,b2,b3生成的filter就已经遍历到了x1,x2,x3,x4.
在这里插入图片描述
3.使用RNN+CNN(最常见的做法)
前面几层用CNN,后面几层用RNN

Self-attention Layers
参考机器学习。
在这里插入图片描述
Down Sampling:
目的:减少数据的输入量:相邻的向量,差距不大

*Pyramid RNN:*将相邻的两个合成一个。
在这里插入图片描述

Pooling over time:相邻的两个只选择一个。
在这里插入图片描述
Time-delay DNN(TDNN)
由于相邻向量相似,为了减少数据量,去掉中间两个向量。
在这里插入图片描述
Truncated Self-attention
由于数据量众多,所以我们在输出h3的时候只考虑一部分范围内的x,而不是考虑整段声音讯号。
在这里插入图片描述

2.Attention的做法

Attention的模型:(抽象)
Encoder输出的h为资料库,z0是外部定义的关键字向量,attention的目的是将h和z0通过match进行数学运算,输出一个新的向量α10
而α10代表了h和z的相似度。
在这里插入图片描述

Attention的实现(具体)
Dot-product Attention
将h和z分别进行linear transform(线性变换),生成的新的向量再通过Dot-product运算生成α。
&alpha即为h和z的相似度。
在这里插入图片描述
Additive Attention
将h和z分别进行linear transform(线性变换),生成的新的向量相加,再进行tanh变换,变换后的向量再经过linear transform输出α。
在这里插入图片描述
Context Vector:(Decoder的输入)
经过上述方法得到的α1234,经过SoftMax(即让α的加和为1),再将每一个α*对应的h加和,即为c0
在这里插入图片描述c0在文献中叫Context Vector,它作为decoder中,RNN模型的输入。

在这里插入图片描述

3.Spell的做法

得到的c0作为RNN的输入,z1是它的hidden state output,z1再乘以一个transform就得到了distribution。

distribution就是所有token的概率,它的向量size为V,相当于用向量表示每个token出现的概率是多少。
在这里插入图片描述
将生成的z1与h再做Attention,会生成c1
在这里插入图片描述
在这里插入图片描述然后c1作为RNN的输入,而这次hidden state的输出会考虑到前一个输出的token,才生成的z2

在这里插入图片描述
递归调用直到输出EOS。(End of sentence)

在这里插入图片描述
Beam Search:
在decode中会使用beam search.

假设V=2,只有A,B两个字母。在decode时一直选择概率最大的字母,叫做Greedy Decoding。

问题:Greedy decoding不一定能够找到几率最大的输出。

在这里插入图片描述
反例如下,我们先选择B,开始的概率可能低,但后来0.9的概率很高。
在这里插入图片描述
解决这种问题使用的方法是beam search.
Beam Search中一直保留B个最好的路径,如下例,B为2,一直选择概率最高的两条路径。
在这里插入图片描述

4.Training

one-hot vector:由V组成的向量,其向量值只为0或1,如字母为c,则=[0,0,1,0,0···,0]
将c和Distribution做Cross entropy,让cross entropy的值越小越好,即让distribution的值接近c。
在这里插入图片描述
Teacher forcing:
在最初训练时,不论第一个字母输出的是什么,我们都先给第二个字母出入正确的答案。因为最初模型内数据为随机值,最初的训练可能是混乱的,所以为了节约时间,都给到正确的输入,防止训练产生错误结果。
在这里插入图片描述

5.Back to Attention

3种Attention的方式:
1.将生成的ct作为下一轮的输入
在这里插入图片描述
2.将生成的ct作为这一轮的输入
在这里插入图片描述
3.将生成的ct既作为这一轮的输入,又作为下一轮的输入。
在这里插入图片描述
Location-aware attention
目的:使在生成结果的时候更多的从左向右考虑,而减少来回跳动考虑。

即在上一轮中,选定一部分α放在process history中,也作为match输入的一部分。
在这里插入图片描述
LAS的问题:
没办法一边听一边做语音辨识。
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值