CTC学习笔记(一) 简介


背景

Connectionist temporal classification简称CTC,翻译不太清楚,可以理解为基于神经网络的时序类分类。其中classification比较好理解,表示分类问题;temporal可以理解为时序类问题,比如语音识别的一帧数据,很难给出一个label,但是几十帧数据就容易判断出对应的发音label,这个词也给出CTC最核心的意义;connectionist可以理解为神经网络中的连接。
语音识别声学模型的训练属于监督学习,需要知道每一帧对应的label才能进行有效的训练,在训练的数据准备阶段必须要对语音进行强制对齐。
CTC的引入可以放宽了这种一一对应的限制要求,只需要一个输入序列和一个输出序列即可以训练。有两点好处:不需要对数据对齐和一一标注;CTC直接输出序列预测的概率,不需要外部的后处理。
这里写图片描述
如上图,传统的Framewise训练需要进行语音和音素发音的对齐,比如“s”对应的一整段语音的标注都是s;而CTC引入了blank(该帧没有预测值),“s”对应的一整段语音中只有一个spike(尖峰)被认为是s,其他的认为是blank。对于一段语音,CTC最后的输出是spike的序列,不关心每一个音素对应的时间长度。

输出

语音识别中的DNN训练,每一帧都有相应的状态标记,比如有5帧输入x1,x2,x3,x4,x5,对应的标注分别是状态a1,a1,a1,a2,a2。
CTC的不同之处在于输出状态引入了一个blank,输出和label满足如下的等价关系:
F ( a − a b − ) = F ( − a a − − a b b ) = a a b F(a-ab-)=F(-aa--abb)=aab F(aab)=F(aaabb)=aab
多个输出序列可以映射到一个输出。

参考

《Supervised Sequence Labelling with Recurrent Neural Networks》 chapter7

后面的技术分享转移到微信公众号上面更新了,【欢迎扫码关注交流】

在这里插入图片描述

  • 8
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
CTC(Connectionist Temporal Classification)是一种用于序列标注的深度学习算法,通常应用于语音识别、手写文字识别等任务中。CTC Loss是一种损失函数,用于计算模型的预测结果与标准答案的差异,以此来训练模型,使其更准确地预测标注结果。 CTC Loss的基本思想是将长度不同的序列映射到相同长度的序列上,从而使模型能够对整个序列进行标注。在传统的序列标注任务中,通常需要对每个时间步骤上的输入进行标注。但是,在实际任务中,输入序列的长度可能会变化,这就导致了标注序列的长度也会发生变化,这给模型的训练带来了极大的困难。 CTC Loss的解决方法是引入空白符号,将输入序列中的相同字符合并起来,并用空白符号分隔它们。这样,标注序列的长度就变成了输入序列长度的一半,即使输入序列长度不同,标注序列的长度也是一致的。模型在训练过程中,需要预测出输入序列中的每个字符或空白符号,同时还需要预测出哪些字符是重复的,哪些是连续的。 CTC Loss的计算方式是将模型的输出结果与标注结果进行比较,并计算它们之间的差异。具体来说,CTC Loss会将模型的输出结果与标注结果进行对齐,并计算它们之间的距离。这个距离是通过在模型的输出结果中添加空白符号来实现的。在计算距离时,空白符号将被忽略,并且连续的相同字符也会被合并成一个字符。最后,通过反向传播算法来将误差传递回模型中,以更新模型的权重和偏置值,从而使得模型的预测结果更加准确。 总的来说,CTC Loss是一种用于序列标注的损失函数,它通过引入空白符号和合并相同字符的方法,解决了输入序列长度不同导致标注序列长度变化的问题。CTC Loss的计算方式是将模型的输出结果与标注结果进行对齐,并计算它们之间的距离。通过反向传播算法来将误差传递回模型中,以更新模型的权重和偏置值,从而使得模型的预测结果更加准确。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值