CTC模型的训练方法和数据处理方法、装置及存储介质与流程

文档序号:21273280发布日期:2020-06-26 23:04阅读:599来源:国知局
CTC模型的训练方法和数据处理方法、装置及存储介质与流程

本说明书涉及数据处理技术领域,尤其涉及一种ctc模型的训练方法和数据处理方法、装置、电子设备以及计算机可读存储介质。



背景技术:

联结主义时间分类(connectionisttemporalclassification,ctc)是一种数据单元与标注单元不存在严格对齐信息下的时间序列分类算法,该算法目前被广泛应用于光学文字识别(ocr)和语音识别中。ctc模型的主要作用是构造出一种针对序列的损失函数,并在反向传播过程中将依据损失函数确定的梯度回传给上一层以完成ctc模型的训练。目前需要一种高效并且具有高精度的ctc模型训练方法。



技术实现要素:

有鉴于此,本说明书的实施例提出了一种ctc模型的训练方法。该方法可以包括:

获取特征序列以及与所述特征序列对应的标签序列的嵌入表示向量,其中,所述特征序列包括至少一个特征向量,所述至少一个特征向量包括:图片格式的文字或者语音信号经过特征提取网络处理后得到的对应各个时刻的特征向量;

将所述至少一个特征向量依次输入第一全连接层,并将所述第一全连接层的输出归一化后,得到空白字符对应各个时刻的先验分布;

将所述至少一个特征向量依次输入第二全连接层,并将所述第二全连接层的输出归一化后,得到所述文字或所述语音信号对应的字典集中各个元素对应各个时刻的概率;

确定所述至少一个特征向量与标签序列的联合表示向量,将所述联合表示向量输入第三全连接层,并将所述第三全连接层的输出归一化后,得到空白字符对应各个时刻的后验逼近概率;

根据所述空白字符对应各个时刻的后验逼近概率以及所述字典集中各个元素对应各个时刻的概率确定所述标签序列的似然分布;以及

根据所述标签序列的似然分布和所述空白字符先验分布确定本次训练的梯度值,并根据所述梯度值调整所述第一全连接层、第二全连接层和第三全连接层的权值。

其中,上述确定所述标签序列的似然分布可以包括:确定字典集中各个元素以及空白字符对应各个时刻的似然概率;根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定所述标签序列的似然分布;其中,所述空白字符对应各个时刻的似然概率为空白字符对应各个时刻的后验逼近概率;所述字典集中各个元素对应各个时刻的似然概率为非空白字符对应各个时刻的后验逼近概率与所述元素在对应时刻概率的乘积。

其中,上述确定所述标签序列的似然分布可以包括:根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率分别确定所述ctc模型多条输出路径的似然概率;将对应同一输出序列的多条输出路径的似然概率求和,将得到的和作为所述输出序列的似然概率;以及将所述ctc模型多个输出序列的似然概率的分布作为所述标签序列的似然分布。

其中,上述根据所述标签序列的似然分布和所述空白字符先验分布确定本次训练的梯度值可以包括:以如下表达式作为ctc模型训练的损失函数:

其中,p(ob|x)为所述空白字符先验分布;p(y|ob,x)为所述标签序列的似然分布;ob代表空白字符输出序列;以及根据所述损失函数确定本次训练的梯度值。

其中,上述根据所述标签序列的似然分布和所述空白字符先验分布确定本次训练的梯度值可以包括:以如下表达式作为ctc模型训练的损失函数:

其中,p(y|ob,x)为所述标签序列的似然分布;qψ(ob|x,y)为所述空白字符的后验逼近分布;p(ob|x)为所述空白字符先验分布;kl()为求散度运算;e()为求期望运算;以及根据所述损失函数确定本次训练的梯度值。

其中,上述标签序列的嵌入表示向量可以通过如下方式确定:将所述字典集中的各个元素分别映射至一个初始向量;对所述标签序列所包含的元素所对应的初始向量求平均,得到所述标签序列的嵌入表示向量。

其中,上述确定所述至少一个特征向量与标签序列的联合表示向量包括:求所述至少一个特征向量依次与所述标签序列的嵌入表示向量的哈达玛积。

本说明书的实施例还提供了一种基于ctc模型的数据处理方法,该方法可以包括:

获取特征序列,其中,所述特征序列包括至少一个特征向量,所述至少一个特征向量包括:待识别图片格式的文字或者语音信号经过特征提取网络处理后得到的对应不同时刻的特征向量;

将所述至少一个特征向量依次输入第一全连接层,并将所述第一全连接层的输出归一化后,得到空白字符对应各个时刻的概率;

将所述至少一个特征向量依次输入第二全连接层,并将所述第二全连接层的输出归一化后,得到所述文字或者语音信号对应的字典集中各个元素对应各个时刻的概率;

根据所述空白字符对应各个时刻的概率以及所述字典集中各个元素对应各个时刻的概率确定所述字典集中各个元素以及空白字符对应各个时刻的似然概率;以及

根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定与所述特征序列对应的输出序列。

其中,上述确定所述字典集中各个元素以及空白字符对应各个时刻的似然概率包括:确定所述空白字符对应各个时刻的似然概率为空白字符对应各个时刻的概率;以及确定所述字典集中各个元素对应各个时刻的似然概率为非空白字符对应各个时刻的概率与所述元素在对应时刻概率的乘积。

其中,上述根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定与所述特征序列对应的输出序列包括:

根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定所述ctc模型多条输出路径的似然概率;

分别确定所述多条输出路径对应的至少一个输出序列;

针对每一个输出序列,将对应所述输出序列的所有输出路径的似然概率相加,将其和作为所述输出序列的似然概率;

将具有最大似然概率的输出序列作为所述特征序列对应的输出序列。

其中,分别确定所述多条输出路径对应的至少一个输出序列可以包括:针对所述多条输出路径中的每一条输出路径,合并所述输出路径上空白字符之间的重复元素,并去除所述输出路径上的空白字符,得到所述输出路径对应的输出序列。

本说明书的实施例还公开了一种ctc模型训练装置,该装置可以包括:

特征向量获取模块,用于获取特征序列以及与所述特征序列对应的标签序列的嵌入表示向量,其中,所述特征序列包括至少一个特征向量,所述至少一个特征向量包括:图片格式的文字或语音信号经过特征提取网络处理后得到的对应各个时刻的特征向量;

空白字符先验分布确定模块,用于将所述至少一个特征向量依次输入第一全连接层,并将所述第一全连接层的输出归一化后,得到空白字符对应各个时刻的先验分布;

先验概率确定模块,用于将所述至少一个特征向量依次输入第二全连接层,并将所述第二全连接层的输出归一化后,得到所述文字或语音信号对应的字典集中各个元素对应各个时刻的概率;

后验逼近概率确定模块,用于确定所述至少一个特征向量与标签序列的联合表示向量,将所述联合表示向量输入第三全连接层,并将所述第三全连接层的输出归一化后,得到空白字符对应各个时刻的后验逼近概率;

似然分布确定模块,用于根据所述空白字符对应各个时刻的后验逼近概率以及所述字典集中各个元素对应各个时刻的概率确定所述标签序列的似然分布;

损失确定模块,用于根据所述标签序列的似然分布和所述空白字符先验分布确定本次训练的梯度值,并根据所述梯度值调整所述第一全连接层、第二全连接层和第三全连接层的权值。

其中,上述似然分布确定模块确定所述字典集中各个元素以及空白字符对应各个时刻的似然概率;并根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定所述标签序列的似然分布;其中,所述空白字符对应各个时刻的似然概率为空白字符对应各个时刻的后验概率;所述字典集中各个元素对应各个时刻的似然概率为非空白字符对应各个时刻的后验概率与所述元素在对应时刻概率的乘积。

其中,上述似然分布确定模块根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率分别确定所述ctc模型多条输出路径的似然概率;将对应同一输出序列的多条输出路径的似然概率求和,将得到的和作为所述输出序列的似然概率;以及将所述ctc模型多个输出序列的似然概率的分布作为所述标签序列的似然分布。

其中,上述损失确定模块以如下表达式作为ctc模型训练的损失函数:

其中,p(ob|x)为所述空白字符先验分布;p(y|ob,x)为所述标签序列的似然分布;ob代表空白字符输出序列;以及根据所述损失函数确定本次训练的梯度值。

其中,上述损失确定模块以如下表达式作为ctc模型训练的损失函数:

其中,p(y|ob,x)为所述标签序列的似然分布;qψ(ob|x,y)为所述空白字符的后验逼近分布;p(ob|x)为所述空白字符先验分布;kl()为求散度运算;e()为求期望运算;以及根据所述损失函数确定本次训练的梯度值。

本说明书的实施例还公开了一种基于ctc模型的数据处理装置,该装置可以包括:

特征向量获取模块,用于获取特征序列,其中,所述特征序列包括至少一个特征向量,所述至少一个特征向量包括:待识别图片格式文字或语音信号经过特征提取网络处理后得到的对应各个时刻的特征向量;

空白字符先验分布确定模块,用于将所述至少一个特征向量依次输入第一全连接层,并将所述第一全连接层的输出归一化后,得到空白字符对应各个时刻的概率;

先验概率确定模块,用于将所述至少一个特征向量依次输入第二全连接层,并将所述第二全连接层的输出归一化后,得到所述文字或语音信号对应的字典集中各个元素对应各个时刻的概率;

似然概率确定模块,用于根据所述空白字符对应各个时刻的概率以及所述字典集中各个元素对应各个时刻的概率确定所述字典集中各个元素以及空白字符对应各个时刻的似然概率;以及

输出模块,用于根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定与所述特征序列对应的输出序列。

其中,上述似然概率确定模块确定所述空白字符对应各个时刻的似然概率为空白字符对应各个时刻的概率;以及确定所述字典集中各个元素对应各个时刻的似然概率为非空白字符对应各个时刻的概率与所述元素在对应时刻概率的乘积。

其中,上述输出模块根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定所述ctc模型多条输出路径的似然概率;分别确定所述多条输出路径对应的至少一个输出序列;针对每一个输出序列,将对应所述输出序列的所有输出路径的似然概率相加,将其和作为所述输出序列的似然概率;将具有最大似然概率的输出序列作为所述特征序列对应的输出序列。

本说明书的实施例还公开了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现上述方法。

本说明书的实施例还公开了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述方法。

由此可以看出,通过上述ctc模型的训练方法以及ctc模型,通过变分推理的方法将ctc算法中的空白字符和标签字符的统一分布修改为先判别是空白字符还是标签字符的第一层分布以及后判别具体输出哪个标签字符的第二层分布,从而解决ctc算法中由于空白字符和非空白字符分布不均衡导致的非空白字符欠学习的问题。同时,最小化空白字符的后验概率与先验概率可以起到正则化的作用,在标签序列未知的模型推理时,可以得到更精确的空边字符输出分布。采用上述变分方法之后,ctc模型的输出与输入数据的对齐更加充分,输出置信度分数的区分能力可以得到大幅提升,从而提高ctc模型的精度以及召回水平,进而提高ocr或语音识别的精度及召回水平。

附图说明

为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本说明书实施例所述的ctc模型训练方法流程示意图;

图2显示了本说明书实施例所述的将一个图像文字通过特征提取网络处理后得到多个特征序列的一个示例;

图3为本说明书实施例所述的ctc模型的内部结构示意图;

图4为本说明书实施例所述的ctc模型训练装置内部结构示意图;

图5为本说明书实施例所述的基于ctc模型的数据处理方法流程示意图;

图6为本说明书实施例所述的根据字典集中各个元素以及空白字符在各个时刻的似然概率确定与特征序列对应的输出序列的方法流程示意图;

图7为本说明书实施例所述的用于数据处理的ctc模型的内部结构示意图;以及

图8为本说明书实施例所述的数据处理装置的内部结构示意图。

具体实施方式

为使本说明书的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本说明书进一步详细说明。

需要说明的是,除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。

如前所述,ctc算法目前被广泛应用于光学文字识别(ocr)和语音识别中。ctc算法通过向标签序列中加入空白字符,实现标签字符同数据序列的自动对齐,进而完成整个序列的识别。但是,ctc算法的所有输出路径所包含的字符中,绝大部分时刻均是空白字符,而非空白字符通常以尖峰的形式得到输出。通过观察和分析发现,目前非空白标签字符与数据序列的对齐并不充分,非空白标签字符并未得到充分学习,导致ctc模型的精度或召回水平降低,从而影响ocr或者语音识别的精度或召回水平。

为此,本说明书的实施例给出了一种ctc模型的训练方法,该方法通过变分推理的方法将ctc算法中的空白字符和标签字符的统一分布修改为先判别是空白字符还是标签字符的第一层网络以及后判别具体输出哪个标签字符的第二层网络,从而解决ctc算法中由于空白字符和非空白字符分布不均衡导致的非空白字符欠学习的问题,从而提高ctc模型的精度以及召回水平,进而提高ocr或语音识别的精度及召回水平。

图1显示了本说明书实施例所述的ctc模型训练方法的流程。如图1所示,该方法可以包括:

在步骤102,获取特征序列以及与上述特征序列对应的标签序列的嵌入表示向量。

在本说明书的实施例中,上述特征序列可以包括至少一个特征向量。其中,上述至少一个特征向量可以是图片格式的文字经过特征提取网络处理后的得到的对应不同时刻的特征向量或者语音信号经过特征提取网络处理后的得到的对应不同时刻的特征向量等等。

图2显示了本说明书实施例所述的将一个图片格式的文字通过特征提取网络处理后得到的特征序列的示例。如图2所示,一个包含字符“board!”的图片经过特征提取网络进行特征提取后可以得到包含n个特征向量的特征序列。其中,为了实现上述图片中文字的识别,n通常需要大于图片中所包含的字符数,例如,在图2中,n通常需要大于5。需要说明的是,上述特征提取网络可以通过循环神经网络(rnn)卷积神经网络(cnn)等多种特征提取模型实现。

在本说明书的实施例中,上述与上述特征序列对应的标签序列即为与特征序列对应的应当被识别出的正确的文字,也即经过ocr或者语音识别得到的与图像文字或语音信号对应的正确的文字。例如,在图2所示的示例中,对应该图像文字的标签序列应当为“board!”。

为了对ctc模型进行训练,标签序列通常需要以嵌入表示向量的形式加入到ctc模型的训练过程中。

具体地,在本说明书的实施例中,首先,可以预先将与上述文字或语音信号对应的字典集中的各个元素分别映射至一个初始向量,用这些初始向量作为字典集中所有元素的嵌入表示向量。在本说明书的实施例中,上述初始向量可以是随机设置的。

这里,上述字典集通常是指ocr或者语音识别结果中可能包含的所有字符组成的集合,是ocr或者语音识别的元素库。例如,对于ocr识别,上述字典集即为字符库,例如包含汉字集的汉字字库或者包含英文字母集的字母字库等。又例如,对于语音识别,上述字典集就是发音字典的意思,本质上可以是音素的集合。对于中文,就是拼音与汉字的对应;对于英文,就是音标与单词的对应。其目的是根据声学模型识别出来的音素,来找到对应的汉字(词)或者单词,用来在声学模型和语言模型建立桥梁,将两者联系起来。

在得到了字典集中所有元素的嵌入表示向量后,对于上述与特征序列对应的标签序列,可以对该标签序列所包含的所有元素所对应的初始向量求平均,得到一个平均向量,并将该平均向量作为上述标签序列的嵌入表示向量。该标签序列的嵌入表示向量将被应用于ctc模型的训练过程,作为一个目标值用于确定ctc模型输出的预测值和目标值之间的偏差。

在步骤104,将上述至少一个特征向量依次输入第一全连接层。

在本说明书的实施中,上述第一全连接层可以包括至少2个输出神经元。

在上述第一全连接层中,每个神经元的输出可以参考下面的表达式(1):

zj=wp×xt+bp(1)

其中,上述xt为对应t时刻的特征向量;wp和bp为第一全连接层的权值。在上述第一全连接层中神经元的数量等于2时,j的取值可以是1或2。

在步骤106,将上述第一全连接层的输出归一化,得到空白字符对应各个时刻的概率,并依此确定空白字符先验分布。

在本说明书的实施例中,上述归一化可以通过第一softmax逻辑回归层或者第一sigmoid层实现,从而得到空白字符对应各个时刻的概率,并依此确定空白字符先验分布。

在本说明书的实施例中,上述第一softmax逻辑回归层的输出可以参考下面的表达式(2):

其中,为空白字符对应t时刻的概率;为非空白字符对应t时刻的概率。

上述第一sigmoid层可以利用sigmoid函数对上述第一全连接层的输出进行归一化。

进而,在本说明书的实施例中,假设序列各时刻之间相互独立,每个时刻的分布定义为伯努利分布,则可以根据空白字符以及非空白字符在各个时刻的概率确定空白字符的先验分布p(ob|x)。

在步骤114,将上述至少一个特征向量依次输入第二全连接层。

在本说明书的实施中,上述第二全连接层可以至少包括k个输出神经元,其中,k为ctc的字典集中所包含元素的数量。

在上述第二全连接层中,每个神经元的输出可以参考下面的表达式(3):

zi=wc×xt+bc(3)

其中,上述xt为对应t时刻的特征向量;wc和bc为第二全连接层的权值。在上述第二全连接层中神经元的数量等于字典集中所包含元素的数量时,i的取值可以是1至字典集中所包含元素的数量k。

在步骤116,将上述第二全连接层的输出归一化,得到上述字典集中各个元素对应各个时刻的概率。

在本说明书的实施例中,上述归一化可以通过第二softmax逻辑回归层实现,从而得到上述字典集中各个元素对应各个时刻的概率。

在本说明书的实施例中,上述第二softmax逻辑回归层的输出可以参考下面的表达式(4):

p(at|xt)=softmax(zi)(4)

其中,p(at|xt)为字典集中的元素at对应t时刻的概率。

在步骤122,确定上述至少一个特征向量与标签序列的联合表示向量。

在本说明书的实施例中,在本说明书的实施例中,可以将上述至少一个特征向量与上述标签序列的嵌入表示向量进行点积,得到上述至少一个特征向量与标签序列的联合表示向量。具体地,上述点积可以是哈达玛积或者将上述第三全连接层的输出与标签序列的嵌入表示向量进行级联等。

在本说明书的实施例中,为了使得上述至少一个特征向量与上述标签序列的嵌入表示向量的维数一致,在执行上述步骤122之前,还可以先将上述至少一个特征向量依次输入一个全连接层(称为第四全连接层)。

在本说明书的实施例中,上述第四全连接层可以包括至少m个神经元,其中,m为上述标签序列的嵌入表示向量的维数。使用上述第四全连接层的目的是将特征向量的维度转换成与上述标签序列的嵌入表示向量的维度一致。

在步骤124,将上述至少一个特征向量与标签序列的联合表示向量输入第三全连接层。

在本说明书的实施中,上述第三全连接层可以包括至少2个输出神经元。

在上述第三全连接层中,每个神经元的输出可以参考下面的表达式(5):

其中,上述xt为对应t时刻的特征向量;wa和ba为第四全连接层的权值。在上述第一全连接层中神经元的数量等于2时,m的取值可以是1或2。f()代表上述第三全连接层的维度转换运算;°代表哈达玛积运算。

在步骤126,将上述第三全连接层的输出归一化,得到空白字符对应各个时刻的后验逼近概率。

在本说明书的实施例中,上述第三softmax逻辑回归层的输出可以参考下面的表达式(6):

其中,为空白字符在t时刻的后验逼近概率;为非空白字符在t时刻的后验逼近概率。

进一步,在本说明书的实施例中,还可以根据上述空白字符和非空白字符在各个时刻的后验逼近概率得到空白字符的后验逼近分布qψ(ob|x,y)。

在步骤130,根据上述空白字符对应各个时刻的后验逼近概率以及上述字典集中各个元素对应各个时刻的概率确定上述标签序列的似然分布。

在本说明书的实施例中,可以先根据上述空白字符对应各个时刻的后验逼近概率以及上述字典集中各个元素对应各个时刻的概率确定上述字典集中各个元素以及空白字符对应各个时刻的似然概率;然后,再根据上述似然概率确定上述标签序列的似然分布。

下面将分别详细说明书确定上述字典集中各个元素以及空白字符对应各个时刻的似然概率的具体方法,以及根据上述似然概率确定上述标签序列的似然分布的具体方法。

在本说明书的实施中,可以通过下面的方法确定上述字典集中各个元素以及空白字符对应各个时刻的似然概率:

一方面,对于空白字符,可以确定上述空白字符在各个时刻的似然概率为空白字符在各个时刻的后验逼近概率,也即,可以利用下面的表达式(7)确定空白字符在各个时刻的似然概率:

其中,为字典集中元素或者空白字符lk在时刻t的似然概率;lb代表空白字符;为空白字符在时刻t的后验逼近概率。

另一方面,对于非空白字符,可以确定上述字典集中各个元素在各个时刻的似然概率为非空白字符在各个时刻的后验逼近概率与上述元素在对应时刻概率的乘积,也即,可以利用下面的表达式(8)确定字典集中各个元素在各个时刻的似然概率:

其中,为字典集中元素或者空白字符lk在时刻t的似然概率;为非空白字符在时刻t的后验逼近概率;p(at=lk|xt)为字典集中元素lk在时刻t的概率。

在本说明书的实施例中,可以将ctc模型在每个时刻可能预测输出的字符所组成的序列称为ctc模型的输出路径。上述输出路径包含对应于不同时刻的多个字符,这些字符可以是空白字符或字典集中的元素。由于输出路径上包含空白字符或者重复的字符,因此,需要对输出路径包含的字符进行处理,合并其中重复的字符以及删除其中的空白字符后,才能得到ctc模型的输出序列。也就是说,输出路径上包括的字符数通常大于输出序列的长度,且会有多条输出路径对应同一个输出序列。通常,输出路径至输出序列的映射可以通过方程f()完成。f()可以实现以下两个目标:

1)将连续重复的字符合并为一个;

2)删除输出路径中的空白字符“-”。

例如,对于输出序列y=ab,假设输入特征序列长度为6,则上述f()可将以下多个输出路径映射至上述输出序列ab:

在这种情况下,上述标签序列的似然分布可以通过下面的过程确定:

首先,根据上述字典集中各个元素以及空白字符在各个时刻的似然概率分别确定所述ctc模型多条输出路径的似然概率。

可以理解,在本说明书的实施例中,一条输出路径的似然概率为该条输出路径上各个字符(可以为字典集中的元素或者空白字符)在其对应时刻的似然概率的乘积。具体可以利用下面的表达式(9)确定一条输出路径π的似然概率:

其中,p(π|ob,x)为输出路径π的似然概率;t为输出路径所包含的字符数;ob代表空白字符输出序列。

然后,将对应同一输出序列的多条输出路径的似然概率求和,将得到的和作为上述输出序列的似然概率。

如前所述,在本说明书的实施例中,多条输出路径可能对应于同一个输出序列,则在本步骤中,则可以通过上述f()确定各个输出路径对应的输出序列。

在本说明书的实施例中,可以利用下面的表达式(10)确定上述ctc模型多个输出序列的似然概率:

最后,将ctc模型多个输出序列的似然概率的分布作为上述标签序列的似然分布。可以看出,标签序列的似然分布是对应所有输出序列的,它由各个时刻的输出共同决定。

在步骤132,根据上述标签序列的似然分布和上述空白字符先验分布确定本次训练的梯度值,并根据上述梯度值调整上述第一全连接层、第二全连接层和第三全连接层的权值,从而完成一次训练。

在本说明书的一些实施例中,可以利用下面的表达式(11)确定ctc模型训练的损失函数,也即ctc模型训练的学习目标函数:

上述损失函数代表上述标签序列的后验分布,也即对应于的空白字符输出序列的margin分布。

在本说明书的另一些实施例中,可以根据空白字符和非空白字符在各个时刻的后验概率对空白字符的输出进行二值化采样,当空白字符的输出确定之后,标签序列和图像对应的输出路径就会固定下来。因此,上述ctc模型训练的损失函数进一步可以简化为下述表达式(12),该损失函数是上述表达式(11)所示损失函数的下界。也即,在本说明书的实施例中,可以利用下面的表达式(12)确定ctc模型训练的损失函数,也即ctc模型训练的学习目标函数:

其中,kl()为求散度运算;e()为求期望运算。

在本说明书的实施例中,在确定了ctc模型训练的损失函数之后,可以进一步确定本次训练的损失值,并通过求导数运算确定本次训练的梯度值。

然后,将确定的梯度值通过反向传播的方式传递给ctc模型中的第一全连接层、第二全连接层、第三全连接层和第四全连接层,以梯度下降方式调节各个全连接层的权值。

在本轮训练结束后,可以重新返回上述步骤102,开始下一轮训练,直至由上述损失函数的确定的损失值达到最低。

图3显示了本说明书一些实施例所述的ctc模型的结构。在本说明书的实施例中。如图3所示,上述用于数据训练的ctc模型包括:

第一全连接层302,包括至少2个输出神经元,用于将特征向量作为输入,并根据自身权值确定至少2个输出。

第一归一化层304,用于根据上述第一全连接层的输出得到空白字符在各个时刻的概率。

如前所述,上述第一归一化层304可以使用第一softmax逻辑回归层或者第一sigmoid层实现。

第二全连接层306,包括至少k个输出神经元,用于将特征向量作为输入,并根据自身权值确定至少k个输出;其中,k为ctc的字典集中所包含元素的数量。

第二归一化层308,用于根据上述第二全连接层的输出得到上述字典集中各个元素在各个时刻的概率。

如前所述,上述第二归一化层308可以使用第二softmax逻辑回归层实现。

点积层312,用于将上述特征向量与上述标签序列的嵌入表示向量进行点积,得到至少一个特征向量与标签序列的联合表示向量。

第三全连接层314,包括至少2个输出神经元,用于将上述特征向量与标签序列的联合表示向量作为输入,并根据自身权值确定至少2个输出。

第三归一化层316,用于根据上述第三全连接层的输出得到空白字符在各个时刻的后验概率。

如前所述,上述第三归一化层316可以使用第三softmax逻辑回归层或者第三sigmoid层实现。

ctc损失层318,用于根据上述空白字符在各个时刻的后验逼近概率以及上述字典集中各个元素在各个时刻的概率确定上述标签序列的似然分布;并根据上述标签序列的似然分布和空白字符先验分布确定本次训练的梯度值,并根据上述梯度值调整上述第一全连接层、第二全连接层和第三全连接层的权值。

在本说明书的实施例中,上述用于数据训练的ctc模型还可以进一步包括:第四全连接层310,包括至少m个输出神经元,用于将特征向量作为输入,并根据自身权值确定至少m个输出;其中,m为标签序列嵌入表示向量的维度。

上述ctc模型中各组成模块的具体实现方法可以参考上述图1所示的技术方案,在此不再赘述。

对应上述ctc模型的训练方法以及ctc模型,本说明书的实施例给出了一种ctc模型的训练装置,该装置的内部结构如图4所示,包括:

特征向量获取模块402,用于获取特征序列以及与所述特征序列对应的标签序列的嵌入表示向量,其中,所述特征序列包括至少一个特征向量,所述至少一个特征向量包括:图片格式的文字或者语音信号经过特征提取网络处理后得到的对应各个时刻的特征向量;

空白字符先验分布确定模块404,用于将所述至少一个特征向量依次输入第一全连接层,并将所述第一全连接层的输出归一化后,得到空白字符对应各个时刻的先验分布;

先验概率确定模块406,用于将所述至少一个特征向量依次输入第二全连接层,并将所述第二全连接层的输出归一化后,得到所述文字或语音信号对应的字典集中各个元素对应各个时刻的概率;

后验逼近概率确定模块408,用于确定上述至少一个特征向量与标签序列的联合表示向量,将所述联合表示向量输入第三全连接层,并将所述第三全连接层的输出归一化后,得到空白字符对应各个时刻的后验逼近概率;

似然分布确定模块410,用于根据所述空白字符对应各个时刻的后验逼近概率以及所述字典集中各个元素对应各个时刻的概率确定上述标签序列的似然分布;以及

损失确定模块412,用于根据所述标签序列的似然分布和所述空白字符先验分布确定本次训练的梯度值,并根据所述梯度值调整所述第一全连接层、第二全连接层和第三全连接层的权值。

可以看出,上述空白字符先验分布确定模块404可以包括上述第一全连接层302和第一归一化层304。上述先验概率确定模块406可以包括上述第二全连接层306和第二归一化层308。上述后验逼近概率确定模块408可以包括点积层312、第三全连接层314以及第三归一化层316;还可以进一步包括第四全连接层310。

在本说明书的实施例中,上述似然分布确定模块可以首先确定上述字典集中各个元素以及空白字符对应各个时刻的似然概率,然后根据确定的似然概率确定上述标签序列的似然分布。其中,上述空白字符对应各个时刻的似然概率为空白字符对应各个时刻的后验逼近概率;上述字典集中各个元素对应各个时刻的似然概率为非空白字符对应各个时刻的后验逼近概率与所述元素在对应时刻概率的乘积。

在本说明书的实施例中,上述似然分布确定模块根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率分别确定所述ctc模型多条输出路径的似然概率;将对应同一输出序列的多条输出路径的似然概率求和,得到所述输出序列的似然概率;以及将所述ctc模型多个输出序列的似然概率的分布作为所述标签序列的似然分布。

在本说明书的实施例中,上述损失确定模块可以以上述表达式(11)和(12)作为ctc模型训练的损失函数,并根据上述损失函数确定一次训练的梯度值。

可以看出,上述ctc模型的训练方法、ctc模型以及ctc模型训练装置,通过变分推理的方法将ctc算法中的空白字符和标签字符的统一分布修改为先判别是空白字符还是标签字符的第一层网络以及后判别具体输出哪个标签字符的第二层网络,从而解决ctc算法中由于空白字符和非空白字符分布不均衡导致的非空白字符欠学习的问题。在非空白字符得到充分学习之后,ctc模型的输出与输入数据的对齐更加充分,输出置信度分数的区分能力得到大幅提升,从而提高ctc模型的精度以及召回水平,进而提高ocr或语音识别的精度及召回水平。

本说明书的实施例还给出了基于上述ctc模型的数据处理方法,该方法可以用于光学文字识别或语音识别中。本发明实施例所述的数据处理过程可以参考图5,可以包括:

在步骤502,获取特征序列。

在本说明书的实施例中,上述特征序列包括至少一个特征向量,其中,上述至少一个特征向量包括:待识别图片格式的文字或语音信号经过特征提取网络处理后得到的对应不同时刻的特征向量。

在步骤504,将上述至少一个特征向量依次输入第一全连接层。

在本说明书的实施例中,上述第一全连接层中神经元的数量可以等于2。

在步骤506,将上述第一全连接层的输出归一化,得到空白字符在各个时刻的概率。

在本说明书的实施例中,上述归一化可以通过第一softmax逻辑回归层或者第一sigmoid层实现。

在步骤514,将上述至少一个特征向量依次输入第二全连接层。

在本说明书的实施例中,上述第二全连接层中神经元的数量可以等于字典集中所包含元素的数量。

在步骤516,将上述第二全连接层的输出归一化,得到上述字典集中各个元素在各个时刻的概率。

在本说明书的实施例中,上述归一化可以通过第二softmax逻辑回归层实现。

上述步骤504-506以及步骤414-416的具体实现方法可以参考上述步骤104-106以及步骤114-116,在此不再赘述。

在步骤518,根据上述空白字符在各个时刻的概率以及上述字典集中各个元素在各个时刻的概率确定上述字典集中各个元素以及空白字符在各个时刻的似然概率。

在本说明书的实施例中,上述确定所述字典集中各个元素以及空白字符在各个时刻的似然概率可以包括如下两个方面:

一个方面,确定所述空白字符在各个时刻的似然概率为空白字符在各个时刻的概率。

另一个方面,确定所述字典集中各个元素在各个时刻的似然概率为非空白字符在各个时刻的概率与所述元素在对应时刻概率的乘积。

在步骤520,根据上述字典集中各个元素以及空白字符在各个时刻的似然概率确定与上述特征序列对应的输出序列。

在本说明书的实施例中,上述根据上述字典集中各个元素以及空白字符在各个时刻的似然概率确定与上述特征序列对应的输出序列的具体方法可以参考图6,具体可以包括:

在步骤602,根据上述字典集中各个元素以及空白字符在各个时刻的似然概率确定至少一条输出路径的似然概率。

其中,在本说明书的实施例中,上述输出路径由对应各个时刻的至少一个元素组成,其中,上述至少一个元素分别为上述字典集中的元素或空白字符。此外,上述输出路径的似然概率为上述至少一个元素在其对应时刻的似然概率的乘积。

在步骤604,分别确定上述至少一条输出路径对应的至少一个输出序列。

在本说明书的实施例中,针对所述至少一条输出路径中的每一条输出路径,可以先合并所述输出路径上空白字符之间的重复元素;然后,去除所述输出路径上的空白字符,即可得到该输出路径对应的输出序列。

在步骤606,针对每一个输出序列,将对应所述输出序列的所有输出路径的似然概率相加,将其和作为所述输出序列的似然概率。

在步骤608,将其中具有最大似然概率的输出序列作为所述特征序列对应的输出序列。

对应上述处理方法,本说明书的实施例还给出了进行数据处理的ctc模型,亦称为基于ctc模型的数据处理装置,其结构如图7所示,可以包括:

第一全连接层702,包括至少2个输出神经元,用于将特征向量作为输入,并根据自身权值确定至少2个输出。

第一归一化层704,用于根据上述第一全连接层的输出得到空白字符在各个时刻的概率。

在本说明书的实施例中,上述第一归一化层704可以通过第一softmax逻辑回归层或者第一sigmoid层实现。

第二全连接层706,包括至少k个输出神经元,用于将特征向量作为输入,并根据自身权值确定至少k个输出;其中,k为ctc的字典集中所包含元素的数量。

第二归一化层708,用于根据上述第二全连接层的输出得到上述字典集中各个元素在各个时刻的概率。

在本说明书的实施例中,上述第二归一化层708可以通过第二softmax逻辑回归层实现。

ctc输出层710,根据上述空白字符在各个时刻的概率以及上述字典集中各个元素在各个时刻的概率确定上述字典集中各个元素以及空白字符在各个时刻的似然概率;以及根据上述字典集中各个元素以及空白字符在各个时刻的似然概率确定与上述特征序列对应的输出序列。

上述ctc模型中各组成模块的具体实现方法可以参考上述图5和6所示的技术方案,在此不再赘述。

对应上述数据处理方法以及ctc模型,本说明书的实施例给出了一种数据处理装置,该装置的内部结构如图8所示,包括:

第二特征向量获取模块802,用于获取特征序列,其中,所述特征序列包括至少一个特征向量,所述至少一个特征向量包括:待识别图片格式的文字或语音信号经过特征提取网络处理后得到的对应各个时刻的特征向量;

空白字符先验分布确定模块804,用于将所述至少一个特征向量依次输入第一全连接层,并将所述第一全连接层的输出归一化后,得到空白字符对应各个时刻的概率;

先验概率确定模块806,用于将所述至少一个特征向量依次输入第二全连接层,并将所述第二全连接层的输出归一化后,得到上述字典集中各个元素对应各个时刻的概率;

似然概率确定模块808,用于根据所述空白字符各个时刻的概率以及所述字典集中各个元素对应各个时刻的概率定所述字典集中各个元素以及空白字符对应各个时刻的似然概率;以及

输出模块810,用于根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定与所述特征序列对应的输出序列。

在本说明书的实施例中,上述似然概率确定模块808确定所述空白字符对应各个时刻的似然概率为空白字符对应各个时刻的概率;以及确定所述字典集中各个元素对应各个时刻的似然概率为非空白字符对应各个时刻的概率与所述元素在对应时刻概率的乘积。

在本说明书的实施例中,上述输出模块810根据所述字典集中各个元素以及空白字符对应各个时刻的似然概率确定所述ctc模型多条输出路径的似然概率;分别确定所述多条输出路径对应的至少一个输出序列;针对每一个输出序列,将对应所述输出序列的所有输出路径的似然概率相加,将其和作为所述输出序列的似然概率;以及将具有最大似然概率的输出序列作为所述特征序列对应的输出序列。

可以看出,上述基于该ctc模型的数据处理方法以及数据处理方法,将ctc算法中的空白字符和标签字符的统一分布修改为先判别是空白字符还是标签字符的第一层分布以及后判别具体输出哪个标签字符的第二层分布,从而解决ctc算法在训练过程中由于空白字符和非空白字符分布不均衡导致的非空白字符欠学习的问题。在非空白字符得到充分学习之后,其与输入数据的对齐可以更加充分,因而,在利用该ctc模型进行数据处理时可以提升输出置信度分数的区分能力,从而提高ctc模型的精度以及召回水平,进而提高ocr或语音识别的精度及召回水平。

此外,在本说明书的实施例中,上述ctc模型还可以被视为一个电子设备,因此,上述ctc模型可以包括:存储器、处理器、输入/输出接口、通信接口和总线。其中,处理器、存储器、输入/输出接口和通信接口通过总线实现彼此之间在设备内部的通信连接。

存储器可以采用rom(readonlymemory,只读存储器)、ram(randomaccessmemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器可以存储操作系统和其他应用程序,还可以存储本说明书实施例提供的服务器的各个模块,例如上述第一全连接层302、602,第一softmax逻辑回归层304、604,第二全连接层306、606,第二softmax逻辑回归层308、608,第三全连接层310,求积层312,第四全连接层314,第三softmax逻辑回归层316,ctc损失层318,以及ctc输出层610等等,通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器中,并由处理器来调用执行。

处理器可以采用通用的cpu(centralprocessingunit,中央处理器)、微处理器、应用专用集成电路(applicationspecificintegratedcircuit,asic)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

输入/输出接口用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中,通信模块可以通过有线方式(例如usb、网线等)实现通信,也可以通过无线方式(例如移动网络、wifi、蓝牙等)实现通信。

总线包括一通路,在设备的各个组件(例如处理器、存储器、输入/输出接口和通信接口)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器、存储器、输入/输出接口、通信接口以及总线,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例以及计算机存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本说明书的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本说明书的不同方面的许多其它变化,为了简明它们没有在细节中提供。

尽管已经结合了本说明书的具体实施例对本说明书进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。

上述对本说明书特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1