CTC Loss反向传播

单个样本的Loss定义:

训练集上CTC Loss定义:

利用极大似然定义整体的损失,取log后,转化为将所有样本的loss求和qu'dui'shu:

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的偏导,最终传到输出层的梯度为:


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 3月份,石头公司有两个核心员工辞职,一个外贸跟单岗,一个财务岗,对于外贸公司来说,这两个岗位非常重要。 这个信息很...
    清心倾心阅读 4,560评论 14 11