CTC LOSS

https://distill.pub/2017/ctc/

https://gist.github.com/awni/56369a90d03953e370f3964c826ed4b0

ctc loss为了解决输入和输出对齐问题

2.2 空格的作用
  在最开始的CTC设定中是没有空格的,FF 只是简单的移除了连续的相同字母。但是这样会产生两个问题:

1、无法预测出连续两个相同的字母的单词了,比如说hello这个单词,在CTC中会删除掉连续相同的字母,因此CTC最后预测出的label应该是helo;
2、无法预测出一句完整的话,而只能预测单个的单词。因为缺乏空格,CTC无法表示出单词与单词之间停顿的部分,因此只能预测出单个单词,或者将一句话中的单词全部连接起来了;
因此,空格在CTC中的作用还是十分重要的。
 

 

 

 

 

 beam search 遍历所有当前可能结果,保留topK

修改版的beam search,保存前缀计算对应概率,然后再取topK

CTC结合语言模型能够提高模型准确性,主要CTC假设当前输出与之前输出独立无关

 The language model scores are only included when a prefix is extended by a character (or word) and not at every step of the algorithm.This causes the search to favor shorter prefixes, as measured by L(Y) since they don’t include as many language model updates. The word insertion bonus helps with this. The parameters α and β are usually set by cross-validation.

CTC(1)_kczhan-CSDN博客

优点

1、不需要强制对齐,单调多对一对齐,即不允许交叉,当输出长度 > 输入长度时会出现问题
2、有大量blank存在,解码时可跳帧操作,加速解码

缺点

1、强调不同帧之间的条件独立假设,没有考虑依赖关系,强调单调连续,语音识别任务可能效果好,文本可能效果差
2、额外的语言模型作为辅助,没有语言模型效果很差
3、解码时使用Prefix_Beam_Search,直接贪心效果不好

4、只能many to one,不能one to many

CTC的特征

  1. 条件独立:CTC的一个非常不合理的假设是其假设每个时间片都是相互独立的,这是一个非常不好的假设。在OCR或者语音识别中,各个时间片之间是含有一些语义信息的,所以如果能够在CTC中加入语言模型的话效果应该会有提升。
  2. 单调对齐:CTC的另外一个约束是输入X 与输出Y之间的单调对齐,在OCR和语音识别中,这种约束是成立的。但是在一些场景中例如机器翻译,这个约束便无效了。
  3. 多对一映射:CTC的又一个约束是输入序列 X 的长度大于标签数据 Y的长度,但是对于 Y 的长度大于 X的长度的场景,CTC便失效了。


 语音识别:深入理解CTC Loss原理_左左左左想-CSDN博客_ctcloss的原理

CTC Loss原理 - 知乎

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值