CTC Loss 数学原理讲解:Connectionist Temporal Classification

这篇具有很好参考价值的文章主要介绍了CTC Loss 数学原理讲解:Connectionist Temporal Classification。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

CTC Loss 是一种不需要数据对齐的,广泛用于图像文本识别和语音识别任务的损失函数。

论文:《Connectionist Temporal Classification: Labelling Unsegmented Sequence Data with Recurrent Neural Networks》
《连续形式的时序数据分类:用递归神经网络标记非分段序列数据》

论文发表时间:ICML 2006

注:这篇博客来源于本人组会汇报时的文档,因此很多内容是直接从文档中截图的。

1、CTC Loss 出现的背景

到目前为止,还不可能将RNN直接应用于序列数据的标记。问题在于标准神经网络的目标函数是为训练序列中的每个点分别定义的,因此RNN只能训练一系列独立的标签分类。这意味着训练的序列数据必须被预分段并标记。

标记未分割序列数据是现实世界序列学习中普遍存在的问题。这在感知任务中尤其常见,如图像文本识别(OCR)、姿势识别、语音识别(ASR)。

在这些领域中,所面临的一个问题是神经网络的输出与ground truth的长度不一致,导致loss难以计算。

例1:用于图像文本识别的CRNN网络

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
考虑一种非常简单的方法,通过将图片划分为几个竖直方向的图像,分别识别每列小图片中的文字,从而实现整体文本的识别。则每一列输出都需要对应一个字符元素。用 - 表示blank(空白),预测值(-s-t-aatt-e-)和ground truth(state)的长度不一致,采用常规的损失函数(cross entropy、MSE等)计算时需要先进行对齐才能计算损失。

进行对齐就需要在训练之前的数据标注阶段在训练集图片中标记出每个字符的真实文本和在图片中的位置。但在实际情况中,标记这种对齐样本非常困难,其工作量非常大。并且由于每张样本的字符数量不同,字体样式不同,字体大小不同,导致每列输出并不一定能与每个字符一一对应。

例2:语音识别

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
上图中的语音是HELLO。有人说话快,有人说话慢。那么如何进行语音帧对齐一直是困扰语音识别领域的巨大难题。

除了数据标注的困难导致难以对齐外,就算对齐了也存在many to one的问题。那么什么是many to one的问题呢?解码器的规则是将连续的相同字符合并,以及去掉blank。那么-HEEE-LL-LL-OOOOOOOO-(Mr.Slow)和-HE-L-LOO-(Mr.Fast)都可以解码为HELLO,与ground truth一致。也就是说就算我们将Mr.Slow的label标注为-HE-L-LOO------------,尽管这个label显然是错误的,但通过网络训练,Mr.Slow的网络预测值会非常接近label,如预测值是-H–EE-L-LOO----------。尽管该预测值与ground truth差异非常大,但是该预测值依然可以解码为HELLO。显然这个情况是我们不希望看到的,也非常不利于网络的训练。

由于连续序列数据的对齐难题,学者提出了一种对不需要对齐的Loss计算方法:CTC Loss。

CTC Loss被广泛应用于文本识别和语音识别中,接下来根据语音识别的例子介绍CTC Loss。

2、CTC Loss 的总体思想

首先要明确CTC Loss的计算对象是神经网络经过softmax归一化之后的输出矩阵和ground truth。

CTC Loss 不要求输出矩阵和ground truth的大小相同。输出矩阵的维度为N×T,其中N是类别数(在英文的语音识别中N=27,即26个英文字母和blank),T是语音长度(T个语音帧)。

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测

3、Forward-Backward 算法

3.1 合法路径的约束条件

以l=apple为例,按照时间序列(T=8)展开。B(–ap-ple)=aab对应的路径为:

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
为了让所有的路径在图中都有唯一、合法的表示,节点转换有如下约束:

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测

这些约束规则导致合法路径的数量大大减少。根据以上约束规则,所有映射为l=apple的合法路径为:

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测

3.2 Forward-Backward 算法的数学推导

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
前向和反向过程的计算示意图如下:

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
示例:

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测

有论文证明,尽管可以通过并不复杂的递归运算得到p(l│x),但这种运算无法避免数值下溢的问题。因此需要考虑其他方法进行计算。

4、CTC 的训练(目标函数求导)

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
公式(13)是forward-backward算法的关键,以T=6,l=ab为例解释(13):

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
以单层LSTM作为RNN网络,RNN-CTC模型的总体结构为:

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测

5、解码算法

connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测
connectionist temporal classification: labelling unsegmented sequence data w,# OCR 图片文字识别,深度学习,人工智能,语音识别,目标检测

6、CTC Loss 的优缺点

CTC最大的优点是不需要数据对齐。

CTC的缺点来源于三个假设或约束:

(1)条件独立:假设每个时间片都是相互独立的,但在OCR或者语音识别中,相邻几个时间片中往往包含着高度相关的语义信息,它们并非相互独立的。

(2)单调对齐:CTC要求输入与输出之间的对齐是单向的,在OCR和语音识别中,这种约束是成立的。但是在一些场景中(如机器翻译),这个约束并不成立。

(3)CTC要求是输入序列的长度不小于标签数据的长度,反之便无法使用。文章来源地址https://www.toymoban.com/news/detail-768287.html

到了这里,关于CTC Loss 数学原理讲解:Connectionist Temporal Classification的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Hive数学函数讲解

    Hive 是一个基于 Hadoop 的数据仓库工具,它支持类似于 SQL 的查询语言 HiveQL,并且提供了许多内建的数学函数来处理数值数据。下面我将逐一讲解您提到的这些数学函数,并提供一些使用案例和注意事项。 ROUND() 功能 :四舍五入到指定的小数位数。 语法 : ROUND(number, decimal_

    2024年01月18日
    浏览(42)
  • 【数学建模】《实战数学建模:例题与讲解》第六讲-假设检验(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 假设检验是一种统计决策过程,用于判断样本数据是否支持某个特定的假设。主要有两类假设: 零假设(Null Hypothesis):通常表示为没有效应或差异的假设。 备择假设(Alternative Hypothesis):表示有效应或差异的假设。 假设检验的

    2024年02月03日
    浏览(61)
  • 【数学建模】《实战数学建模:例题与讲解》第七讲-Bootstrap方法(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ Bootstrap方法是一种统计技术,用于估计一个样本统计量的分布(例如均值、中位数或标准偏差)。它通过从原始数据集中重复抽取样本(通常是带替换的)来工作,允许评估统计量的变异性和不确定性。这种方法特别有用于小样本

    2024年01月22日
    浏览(53)
  • 【数学建模】《实战数学建模:例题与讲解》第二讲-线性规划(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 线性规划(Linear Programming,LP)是一种在数学规划领域中应用广泛的最优化问题解决方法。其基本思想是在一系列约束条件下,通过建立线性数学模型来描述目标函数,以求得使目标函数最大或最小的决策变量值。线性规划在运筹学

    2024年02月04日
    浏览(53)
  • 【数学建模】《实战数学建模:例题与讲解》第四讲-插值与拟合(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 在实际问题中,对于给定的函数 y = f(x) ,通常通过实验观测在某个区间 [a, b] 上一系列点 x_i 上的函数值 y_i = f(x_i) 得到。当需要在这些观测点 x_0, x_1, ..., x_n 之间的某些点 x 上估计函数值时,插值法和拟合是两种常用的数学方法。

    2024年02月05日
    浏览(55)
  • 【数学建模】《实战数学建模:例题与讲解》第十讲-时间序列预测(含Matlab代码)

    本系列侧重于例题实战与讲解,希望能够在例题中理解相应技巧。文章开头相关基础知识只是进行简单回顾,读者可以搭配课本或其他博客了解相应章节,然后进入本文例题实战,效果更佳。 如果这篇文章对你有帮助,欢迎点赞与收藏~ 时间序列预测是一种预测方法,它通过

    2024年02月03日
    浏览(53)
  • 【数学建模】《实战数学建模:例题与讲解》第五讲-微分方程建模(含Matlab代码)

    如果这篇文章对你有帮助,欢迎点赞与收藏~ 微分方程建模是数学建模中一种极其重要的方法,它在解决众多实际问题时发挥着关键作用。这些实际问题的数学表述通常会导致求解特定的微分方程。将各种实际问题转换为微分方程的定解问题主要包括以下几个步骤: 确定研究

    2024年03月18日
    浏览(76)
  • 【数学建模】《实战数学建模:例题与讲解》第十四讲-模拟退火、遗传算法(含Matlab代码)

    本系列侧重于例题实战与讲解,希望能够在例题中理解相应技巧。文章开头相关基础知识只是进行简单回顾,读者可以搭配课本或其他博客了解相应章节,然后进入本文正文例题实战,效果更佳。 如果这篇文章对你有帮助,欢迎点赞与收藏~ 现代优化算法,自20世纪80年代初开

    2024年02月04日
    浏览(55)
  • 【数学建模】《实战数学建模:例题与讲解》第十二讲-因子分析、判别分析(含Matlab代码)

    本系列侧重于例题实战与讲解,希望能够在例题中理解相应技巧。文章开头相关基础知识只是进行简单回顾,读者可以搭配课本或其他博客了解相应章节,然后进入本文正文例题实战,效果更佳。 如果这篇文章对你有帮助,欢迎点赞与收藏~ 判别分析是一种统计方法,它根据

    2024年02月04日
    浏览(73)
  • 数学建模超细致讲解,从建立模型到论文写作

    目录 奖状证书 赛事介绍 题型概况 获奖比例 比赛时间 官方网站 赛前准备 团队分工 建模 编程 写作 软件准备 知识体系 学习要点 资源推荐 bilibili 书籍 算法储备 赛事相关  比赛策略  评委解读 结语 我们团队在数学建模领域浸淫多年,积累了无数宝贵经验,这篇文章是我们

    2024年02月13日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包