李宏毅《DLHLP》学习笔记2 - LAS

最近在学习语音识别的知识,发现李宏毅老师今年也出了相应的视频,相应的课件可以从下面的位置获取:http://speech.ee.ntu.edu.tw/~tlkagk/courses_DLHLP20.html

Youtube视频:
https://youtu.be/AIKu43goh-8
https://youtu.be/BdUeBa6NbXA
https://youtu.be/CGuLuBaLIeI
课件:
http://speech.ee.ntu.edu.tw/~tlkagk/courses/DLHLP20/ASR%20%28v12%29.pdf

Listen, Attend, and Spell (LAS)

在这里插入图片描述

1. Framework

1.1 Listen

在这里插入图片描述
Encoder的目标是从语音的声音特征中,识别出语音的内容信息,将不同的说话人音色的差异和外部的噪声过滤掉。

1.1.1 Encoder的实现方式
a. Encoder的实现方式一:RNN

单向、双向 RNN都可以
在这里插入图片描述

b. Encoder的实现方式二:CNN

在这里插入图片描述
也有将CNN和RNN混合使用的,即下面几层使用CNN,上面几层使用RNN的。

c. Encoder的实现方式三:Self-attention

在这里插入图片描述
Self-attention的介绍:https://www.youtube.com/watch?v=ugWDIIOHtPA

1.1.2 如何提升训练效率?

Down Sampling有助提升训练的效率,节省计算量。原因是语音向量的数量太大,并且向量之间相似性和重复性高,可以适当地做下采样。下面会介绍几种常见的down sampling的方法。

a. Pyramid RNN和Pooling over time

Pyramid RNN的思路是在做RNN的时候,第二层会同时使用第一层的两个节点输出作为输入。
Pooling over time的思路类似,只使用第二个阶段的输出作为下一层的输入。
在这里插入图片描述

b. CNN和self-attention的down sampling

TDNN的思路是使用CNN做卷积处理的时候,中间省略多个向量。
Truncated self-attention的思路是通过控制attention的宽带来实现,只考虑前后受限宽度的输入。
在这里插入图片描述

1.2 Attention

Attention的工作类似seq2seq,输入是Encoder的输出和关键词 z z z,通过函数match进行处理,得到输出。下图的右侧是常用的match function,也就是dot-product attention。其中,下图右侧是dot-product attention的示意图, W W W是transform函数。
dot-product attention的作用就是判断向量 h h h和向量 z z z之间的相似度。
在这里插入图片描述
另一种match function是additive attention,见下图右侧。
在这里插入图片描述
经过上面的处理以后,我们得到了一系列的 α 0 1 , α 0 2 , α 0 3 , . . . \alpha_0^1,\alpha_0^2,\alpha_0^3,... α01,α02,α03,...,然后,做softmax处理,得到 α ^ 0 1 , α ^ 0 2 , α ^ 0 3 , . . . \hat{\alpha}_0^1,\hat{\alpha}_0^2,\hat{\alpha}_0^3,... α^01,α^02,α^03,...,使得他们的和为1。再将其与 h i h^i hi做dot-production,即 c 0 = ∑ α ^ 0 i h i c^{0}=\sum \hat{\alpha}_{0}^{i} h^{i} c0=α^0ihi
在这里插入图片描述
其中,产生的 c 0 c^{0} c0将会用于后续decoder的输入,也被称为Context Vector

1.3 Spell

有了 c 0 c^0 c0以后,就可以通过self-attention,生成 z 1 z^1 z1,再做transform+softmax,生成token的distribution,其中,最大的就是预测的结果 c c c
在这里插入图片描述
有了 z 1 z^1 z1以后,可以重复上面的 z 0 z^0 z0过程,生成 α 1 1 , α 1 2 , α 1 3 , . . . \alpha_1^1,\alpha_1^2,\alpha_1^3,... α11,α12,α13,...
在这里插入图片描述
进一步计算出 c 1 c^1 c1,有了 c 1 c^1 c1以后,配合之前预测的c,生成 z 1 z^1 z1,然后,预测出新的输出a。
在这里插入图片描述
一直到最后的
在这里插入图片描述
当然,上面所说的步骤,都是建立在decoder的参数是已经确定下来的基础上,并且,在过程中,会使用到beam search的技术,这个可以参见下面一篇文章的介绍。

接下来,我们就来介绍训练过程

2. Train

2.1 训练过程

token表示为one-hot vector,训练的目标就是将cross entropy loss越小越好。
在这里插入图片描述
训练过程中,与使用过程中有一个不一样的地方:后续的预测使用真实的结果(ground truth),而不是预测的结果。这个过程叫teacher forcing
在这里插入图片描述

2.2 为什么使用Teacher Forcing?

因为在训练Decoder的时候,是从随机参数开始训练, z 0 z^0 z0输出的结果大概率都是错误的,如果使用这种错误的输出作为后续的输入,会导致后续节点的参数训练错误。这样就带来一个问题,针对前置错误的输出 x x x,后续 z 1 z^1 z1可以给出正确的预测结果,但是,对于原本正确的输出 c c c,却无法给出正确的预测结果。
在这里插入图片描述
所以,最好的办法就是在训练过程中,不要考虑前面的输出,直接使用正确的ground truth。这种方法就是teacher forcing
在这里插入图片描述

2.3 Decoder中是如何使用attention的呢?

常见的方式有下面两种:
第一种是 z t z^t zt,做attention以后的输出 c t c^t ct,是用于下一个decode。
第二种是 z t z^t zt,做attention以后的输出 c t c^t ct,是用于当前的decode。
在这里插入图片描述
在第一篇使用LAS的文章中,上面的两种方法合并在一起使用,如下:
在这里插入图片描述

Location-aware Attention

在语音识别这个场景中,使用attention机制存在一个问题:在某个时刻做语音识别,应该是与当前时刻之前的一些语音内容有关系,或者是前后一定时间内的语音内容有关,而与更远的其他时间的语音内容没有关系。
在这里插入图片描述
原始论文中增加了location-aware attention,用于解决上述的问题。
在这里插入图片描述

3. LAS的局限

最后,再说一下LAS的局限:LAS做语音识别是需要听完一整段语音,才能生成相应的文字内容,没有办法做到一遍听语音内容,一遍生成相应的文字内容。
在这里插入图片描述
后面我们会再介绍其他的模型,用于解决这个问题。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值