CTC Loss反向传播

作者: ChongmingLiu | 来源:发表于2018-08-06 13:17 被阅读16次

    单个样本的Loss定义:

    训练集上CTC Loss定义:

    将所有样本的loss求和:

    CTC目标函数

    给定语音序列 x,标签序列 z,对于所有满足能映射到序列z的解码路径,可用 前向-后向 算法求解:

    α(t, u)·β(t, u)含义
    对t时刻,输出标签‘u’的所有路径π的概率求和(s.t. 但是路径π必须满足映射后为z)。

    formula 1
    先计算单条路径的概率,然后对满足的所有路径概率求和
    formula 2

    P( z | x )
    因此对所有输出字符u进行遍历,即为给定x输出z的概率。

    因此得到单个样本的Loss:

    CTC反向传播

    对单个样本来说:

    1. 对网络输出y的偏导:

    因为我们要考虑 t时刻 输出 标签k 的所有路径,因此要引入前向-后向算法【见 formula 2】,于是有:


    同时,因为标签k在序列z'中可能会出现多次因此定义B(z, k)={ u: z'u = k }那么就得到了p( z | x )对输出y的偏导:【实际上就是对所有输出标签k的位置计算损失,为了进行对齐】

    最终单个样本对于网络输出y的偏导为:
    2. 对输出层的偏导:

    其中k’为遍历所有输出单元,网络输出y是输出层通过softmax得到的,即:


    对Softmax求偏导,如下:【注意softmax要对 k = k'k ≠ k 分别讨论】
    将两种情况进行综合,于是上式的δkk'就是下式:

    因此,得到网络输出y对输出层a的偏导,最终传到输出层的梯度为:


    相关文章

      网友评论

        本文标题:CTC Loss反向传播

        本文链接:https://www.haomeiwen.com/subject/kjiwvftx.html