CTC原理介绍

1. 引言

    现实生活当中,序列标注任务随手可见,比如语音识别、图像文本识别、手势识别等,这些任务有一个共同的特点,就是输出是变长的,如果利用传统的RNN来进行预测,那么会遇到一个问题,就是需要将RNN的输出与真实标签进行一一对齐,这样一来,就会导致数据集的构造特别麻烦,需要耗费大量的人力和时间,因此,CTC方法的提出就是为了解决这个问题,该方法可以不用要求对输出的标签进行对齐,直接利用RNN的输出进行预测并训练。原始论文链接如下:

    下面将对该方法进行展开具体介绍。 

2. CTC方法原理

2.1 CTC方法介绍

    记S是从一个固定分布\mathcal { D } _ { \mathcal { X } \times \mathcal { Z } }抽样出来的训练集,\mathcal { X } = \left( \mathbb { R } ^ { m } \right) ^ { * }为所有输入序列的向量表示,每个输入序列的维度为m,\mathcal { Z } = L ^ { * }表示所有输出字符类别的集合,在S中的每一个样本都包含一对配对的序列( \mathbf { x } , \mathbf { z } ),其中,目标序列\mathbf { z } = \left( z _ { 1 } , z _ { 2 } , \dots , z _ { U } \right)的长度不能超过输入序列\mathbf { x } = \left( x _ { 1 } , x _ { 2 } , \dots , x _ { T } \right)的长度,即U \leq T。因此,序列标注任务的目的其实就是利用S训练一个时序分类器h : \mathcal { X } \mapsto \mathcal { Z },使得其错误率尽可能低。那么,如何评估h的错误率呢,作者介绍了一个LER(label error rate)的评估指标,其计算公式如下:

                                                     L E R \left( h , S ^ { \prime } \right) = \frac { 1 } { \left| S ^ { \prime } \right| } \sum _ { ( \mathbf { x } , \mathbf { z } ) \in S ^ { \prime } } \frac { E D ( h ( \mathbf { x } ) , \mathbf { z } ) } { | \mathbf { z } | }

其中,E D ( \mathbf { p } , \mathbf { q } )表示两个序列p和q之间的编辑距离,即p转换成q需要的插入、替换、移除字符的操作次数,

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值