李宏毅2020人类语言处理—P7

前言

P6分析HMM、CTC、RNN-T如何穷举所有可能的alignment。

下面只用RNN-T作为例子

score computation

选取一条alignment , h = 𝜙 c 𝜙 𝜙 a 𝜙 t 𝜙 𝜙,我们要怎么计算给acoustic feature x1:6x_{1:6}x1:6 来产生这个这个alignment h的几率呢?
首先,先计算 𝜙 在句首的几率 P(𝜙|X),再计算在 𝜙 条件下产生 c的几率 P(c|X,𝜙),再计算已产生𝜙 c 后生成 𝜙 的几率 P(𝜙|X,𝜙 c),…,依次类推,直到计算到P(𝜙|X,𝜙,c,𝜙,𝜙,a,𝜙,t,𝜙)。最终将这些几率累乘,便是这条路径也就是一个alignment的几率。
阿芒Aris

 对于RNN-T而言,模型会先读取第一个acoustic feature h1h^1h1(经过encoder的x1),同时RNN-T另外训练了一个RNN(蓝色部分),这个RNN会把decoder产生出来的token当作输入(note that ignore ϕ\phiϕ),生成l0l^0l0去影响RNN-T接下来的predict.
  另外训练的RNN(蓝色框框)因为一开始没有token,故输入初始token <BOS>(begin of sentence),产生一个vector l0l^0l0(红色),接下来把从encoder来的h1h^1h1(代表第一个acoustic feature)和l0l^0l0输入到Decoder里面,Decoder产生一个probability distribution(用p1,0表示,第一个下标1代表由第一个acoustic feature产生,第二个下标0代表decoder产生了0个token,不含ϕ\phiϕ),则P(𝜙|X)便是p1,0p_{1,0}p1,0里面𝜙的概率。接下来我们要计算P(c|X,𝜙),在decoder 产生 𝜙 的时候:对于左上角的RNN是没有影响的,故还是RNN给decoder的还是l0l^0l0; 但对decoder而言,一旦生成 𝜙 就代表decoder要处理下一个 acoustic feature,故输入h2h^2h2,同样地,decoder产生一个probability distribution,其中c的概率便是P(c|X,𝜙),依次类推,并把这些概率累乘便得到了P(h|X)。
  总而言之,计算P(h|X)中的每一项就是按步查找按照对应的probability distribution,对本例而言,也就是 𝜙 在p1,0的几率,c在p2,0的几率,𝜙 在p2,1的几率,…,𝜙 在p6,3的几率 的累乘,就是这个alignment的几率。

图一---------------------------------------------------------------------------图二

上图表格中的每一个格都对应到一个固定的概率的distribution,如上图的蓝点代表p4,2 (p4,2中第一个下标代表由第几个acoustic feature产生,第二个下标代表decoder已经产生了几个非𝜙 token)因此 这里的p4,2指的是读到h4的acoustic feature,已经产生了2个token c和a,并已经放到了单独训练的RNN里产生l2l^2l2。因此,

关键:每个格子代表的distribution不受到如何走到这个格子所影响。

就比如我们走到p4,2这个格子有很多种走法,但一走到这个格子,这个格子代表的distribution是固定的。

解释:对于h4h^4h4它只与已经产生的𝜙的个数有关,l2l^2l2只与已经产生的token数目有关。这个单独训练的RNN是独立的,它只处理token,故无论𝜙在什么位置,对于顺序固定的token,它的输出都是一样的。

sum all alignment

αi,jα_{i,j}αi,j:the summation of the scores of all the alignments that read i-th acoustic features and output j-th tokens

在这里插入图片描述
类似动态规划

  • α4,2α_{4,2}α4,2格子,把所有读过4个acoustic feature且输出2个token的路径全部找出来,将概率累加。
  • 我们目标不是α4,2α_{4,2}α4,2,是最右下角的αi,jα_{i,j}αi,j代表所有alignments的总和。
  • 至此,我们已经能够计算在这里插入图片描述

Question3——training

已经知道怎么计算Pθ(Y∣X)P_θ(Y | X)Pθ(YX),但要先有RNN-T,即训练θ,才能计算P。

任务:假设给一段声音讯号x和人工标注的对应文字 Y^\hat{Y}Y^
,我们希望找到参数 θ\thetaθ 使得 Pθ(Y^∣X)P_{\theta}(\hat{Y}|X)Pθ(Y^X)的概率最越大越好。

优化gradient descent:求参数θ对Pθ(Y∣X)P_θ(Y | X)Pθ(YX)的偏微分。因为P由所有可能的alignment组成的,所以P由产生每个路径(产生token或者ϕ\phiϕ)的几率相乘以后相加。
在这里插入图片描述
图中两个相加项代表两条不同的路径(alignment)。

第一部分P4,1(a)P_{4,1}(a)P4,1(a)对θ的偏微分

使用BPTT,先初始化参数产生P4,1P_{4,1}P4,1,接下来Bp更新参数,和训练一般的神经网络是一样的。

第二部分:计算Pθ(Y^∣X)P_{\theta}(\hat{Y}|X)Pθ(Y^X)P4,1(a)P_{4,1}(a)P4,1(a)的偏微分。

  • step 1
    在这里插入图片描述
  • step 2 不含P4,1(a)P_{4,1}(a)P4,1(a)的路径偏微分为0,other指路径中除了P4,1(a)P_{4,1}(a)P4,1(a)的元素(component,箭头)

在这里插入图片描述

  • step 3
    在这里插入图片描述
  • step 4:计算所有有通过P4,1(a)P_{4,1}(a)P4,1(a)的alignment的分数和,上述的分子。
    引入 βi,jβ_{i,j}βi,j:the summation of the score of all the alignments staring from i-th acoustic features and j-th tokens 代表的是从i,j点到终点的alignments的概率和。

所以经过P4,1(a)P_{4,1}(a)P4,1(a)这一箭头的路径可以表示为:
先到达a4,1a_{4,1}a4,1的所有路径——a4,1a_{4,1}a4,1
然后必定产生token a——P4,1(a)P_{4,1}(a)P4,1(a)
再加上从acoustic x4x^4x4 token a 到达终点——β4,2β_{4,2}β4,2
得公式:

Question4——testing

现在模型训练好了参数,可以算出P(Y|X),接下来在语音辨识的时候,声音讯号给定了即X,要找出Y,使得P(Y|X)最大,这个使得P(Y|X)最大的Y便是语音辨识的结果。

理想上:穷举所有的Y,每个Y还有多种可能的alignment。
实际上:把 ∑P(h∣X)\sum{P(h|X)}P(hX)替换成 max⁡P(h∣X)\max{P(h|X)}maxP(hX) ,即将align(Y)范围内的概率P的求和替换成范围内使得概率P最大的h——alignment。

在这里插入图片描述

找最大的alignment

结束summary

在这里插入图片描述

看懂说明前面的知识掌握了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值