CTC(Connectionist Temporal Classification)论文笔记

CTC(Connectionist Temporal Classification)是一种让RNN直接处理未分割序列的损失函数,解决了序列预测的问题。CTC通过引入"blank"标签,允许RNN在任意时刻输出标签,无需预先分割序列。时序分类器的关键步骤是从网络输出转换为连续标签的概率,并通过最佳路径解码或前缀解码找到最可能的标签序列。网络训练中,CTC的损失函数基于最大似然原则,通过动态规划进行前向和反向传播计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 思想

序列学习任务需要从未分割的输入数据中预测序列的结果。HMM模型与CRF模型是序列标签任务中主要使用的框架,这些方法对于许多问题已经获得了较好的效果,但是它们也有缺点:
(1)需要大量任务相关的知识,例如,HMM中的状态模型,CRF中的输入特征选择;
(2)需要有独立性假设作为支撑;
(3)对于标准的HMM模型,它是生成式的,但是序列标签时判别式的。

RNN网络除了出入与输出的表达方式需要选择之外不需要任何数据的先验。它可以进行判别训练,它的内部状态为构建时间序列提供了强大的通用机制。此外,其对时间和空间噪声具有很强的鲁棒性。

但是对于RNN呢,它是不能拿来做序列预测的,这是因为RNN只能去预测一些独立标签的分类,因而就需要进行序列预分割。要解决该问题,那么将RNN与HMM结合起来被称之为hybrid approach。在该方法中使用HMM为长序列结构数据建立模型,神经网络就提供局部分类。加入HMM之后可以使得在训练中自动分割序列,并且将原本的网络分类转换到标签序列。然而,它并没有避免上诉内容中HMM使用缺点。

这篇文章提出了CTC( Connectionist Temporal Classification),可以解决前面提到的两点局限,直接使用序列进行训练。CTC引入了一个新的损失函数,可以使得RNN网络可以直接使用未切分的序列记性训练。为了使用这个损失函数,为RNN引入其可以输出的“blank”标签。RNN的输出是所有标签的概率。

RNN可以输出“blank”的好处:
(1)RNN可以选择任意时刻给出一个标签,例如在没有信息输入的音频空白时间给“blank”标签,其它则出处对应的标签;
(2)“blank”标签可以在某一时刻对一个正确的标签给一个很高的概率,在之前我们是查看此时所有标签的概率分布。
在这里插入图片描述

2. Temporal Classification

这里将Temporal Classification定义为hhh,训练数据集合SSS中数据是成对存在的(x,z)(x, z)(x,z),其中xxx是训练的时序数据,zzz是标签数据。目标就是找到一个时序分类器hhh使得SSS中的xxx被分类到zzz。训练这个分类器,就需要一个错误度量,这里就借鉴了ED距离度量,而引入了label error rate(LER)。在这里还对其进行了归一化,从而得到了如下的形式:
LER(h,S,)=1Z∑(x,z)∈S′ED(h(x))−−−−−−(1)LER(h,S^{,})=\frac{1}{Z} \sum_{(x,z) \in S^{'}}ED(h(x))------(1)LER(h,S,)=Z1(x,z)SED(h(x))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值