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

Listen,Attend,and Spell(LAS)

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

以下这些模型都是seq2seq模型。只是不同的类别。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第1张图片

1.Listen的做法

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

输出的h即为资料库。

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

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

特点:
1.输入与输出个数相同
2.输出的是更高级的表示
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第2张图片
Encoder的做法:(具体实现)
输入量与输出量相同
1.使用RNN
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第3张图片
2.使用1-D CNN
x1,x2,x3组成了一个filter,同样的声音特点可以生成不同的filter。不同的filter可以生成更高层的filter。如下例,b1,b2,b3生成的filter就已经遍历到了x1,x2,x3,x4.
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第4张图片
3.使用RNN+CNN(最常见的做法)
前面几层用CNN,后面几层用RNN

Self-attention Layers
参考机器学习。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第5张图片
Down Sampling:
目的:减少数据的输入量:相邻的向量,差距不大

*Pyramid RNN:*将相邻的两个合成一个。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第6张图片

Pooling over time:相邻的两个只选择一个。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第7张图片
Time-delay DNN(TDNN)
由于相邻向量相似,为了减少数据量,去掉中间两个向量。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第8张图片
Truncated Self-attention
由于数据量众多,所以我们在输出h3的时候只考虑一部分范围内的x,而不是考虑整段声音讯号。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第9张图片

2.Attention的做法

Attention的模型:(抽象)
Encoder输出的h为资料库,z0是外部定义的关键字向量,attention的目的是将h和z0通过match进行数学运算,输出一个新的向量α10
而α10代表了h和z的相似度。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第10张图片

Attention的实现(具体)
Dot-product Attention
将h和z分别进行linear transform(线性变换),生成的新的向量再通过Dot-product运算生成α。
&alpha即为h和z的相似度。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第11张图片
Additive Attention
将h和z分别进行linear transform(线性变换),生成的新的向量相加,再进行tanh变换,变换后的向量再经过linear transform输出α。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第12张图片
Context Vector:(Decoder的输入)
经过上述方法得到的α1234,经过SoftMax(即让α的加和为1),再将每一个α*对应的h加和,即为c0
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第13张图片c0在文献中叫Context Vector,它作为decoder中,RNN模型的输入。

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

3.Spell的做法

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

distribution就是所有token的概率,它的向量size为V,相当于用向量表示每个token出现的概率是多少。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第15张图片
将生成的z1与h再做Attention,会生成c1
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第16张图片
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第17张图片然后c1作为RNN的输入,而这次hidden state的输出会考虑到前一个输出的token,才生成的z2

李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第18张图片
递归调用直到输出EOS。(End of sentence)

李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第19张图片
Beam Search:
在decode中会使用beam search.

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

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

李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第20张图片
反例如下,我们先选择B,开始的概率可能低,但后来0.9的概率很高。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第21张图片
解决这种问题使用的方法是beam search.
Beam Search中一直保留B个最好的路径,如下例,B为2,一直选择概率最高的两条路径。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第22张图片

4.Training

one-hot vector:由V组成的向量,其向量值只为0或1,如字母为c,则=[0,0,1,0,0···,0]
将c和Distribution做Cross entropy,让cross entropy的值越小越好,即让distribution的值接近c。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第23张图片
Teacher forcing:
在最初训练时,不论第一个字母输出的是什么,我们都先给第二个字母出入正确的答案。因为最初模型内数据为随机值,最初的训练可能是混乱的,所以为了节约时间,都给到正确的输入,防止训练产生错误结果。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第24张图片

5.Back to Attention

3种Attention的方式:
1.将生成的ct作为下一轮的输入
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第25张图片
2.将生成的ct作为这一轮的输入
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第26张图片
3.将生成的ct既作为这一轮的输入,又作为下一轮的输入。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第27张图片
Location-aware attention
目的:使在生成结果的时候更多的从左向右考虑,而减少来回跳动考虑。

即在上一轮中,选定一部分α放在process history中,也作为match输入的一部分。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第28张图片
LAS的问题:
没办法一边听一边做语音辨识。
李宏毅《深度学习人类语言处理》P3 Speech Recognition-Listen,Attend,Spell笔记_第29张图片

你可能感兴趣的:(深度学习与人类语言处理)