首先,二者都是解决时序类问题的
CTC(一种损失函数): 传统对于传统语音识别声学模型的训练,每一帧所对应的标签都必须要确定,只有这样才可以对模型进行训练,所以传统方法在训练模型之前必须对数据进行预处理,也就是做语音对齐。但是为了确保对齐更准确,语音对齐的过程需要进行多次反复的迭代,这是一个非常耗费时间耗费人力的工作。
【神经网络|对CTC、RNA、RNN-T的理解】而CTC的方法是关注一个输入序列到一个输出序列的结果,所以它只会考虑预测输出的序列是否和真实的序列接近或相同,而不会考虑预测输出序列中的各个结果在时间点上是否和输入的序列正好对齐。
CTC非常适合应用在语音识别,它可以让RNN直接对序列数据进行学习,而无需事先标注好训练数据中输入序列和输出序列的映射关系,打破了RNN应用于语音识别、手写字识别等领域的数据依赖约束,使得RNN模型在序列学习任务中取得更好的应用效果。
例如一段音频会自动生成文字。比如说输入一段音频(你好我是学生),通过CTC后会输出生成文字的分布(即概率分布)。此时,我们可以看出概率最大的结果(假如输出为“ni hao wo shi xue sheng”的概率最大),也可以看出有55%的概率输出“ni gao wo si xie seng”。
CTC有自己的损失函数的定义:给定样本后输出正确label的概率的乘积(即,CTC模型会有好几个output,这些概率相乘后取对数),后续可以用梯度下降,Adam求解了。
所以啊,CTC只是一个神经网络后续的一个loss。也就是说例如RNN进行训练的时候,最后到达CTC这个loss,而CTC有它自己的特性,这个特性就是:正常的loss是 预测 和 label 之间的关系,而CTC的loss是给出 一堆预测 及 预测与label对应正确概率 的关系。因此,经过公式算出loss后再进行Adam优化啊等等。
????????????????????
文章图片
RNA
文章图片
RNN-T
文章图片
(2条消息) Chapter1-3_Speech_Recognition(CTC, RNN-T and more)_zjuPeco的博客-CSDN博客
推荐阅读
- CVPaper|计算机视觉论文-2021-09-09
- pytorch|pytorch学习笔记(六)——pytorch中搭建神经网络
- 算法|YOLOv6(又快又准的目标检测框架开源啦)
- python|YOLOv5系列学习之指标
- python|基于Python的决策树判断是否降雪
- 机器学习入门
- 算法|【AI简报20210910期】联想发布LA2智能嵌入式控制器、单目摄像头实时感知车辆形状...
- 【技术杂文】系列|嵌入式端的神经网络算法部署和实现综合
- 机器学习|机器学习--BP神经网络的C++实现