联结主义时间分类(Connectionist temporal classification)的论文笔记

前言:

{

最近在github上更新了一些代码,但没在这里更新文章,这次就在这写一篇论文的阅读笔记。

论文是《Connectionist temporal classification: Labelling unsegmented sequence data with recurrent neural 'networks》(Alex Graves, Santiago Fernández,Faustino J. Gomez, Jürgen Schmidhuber,https://www.researchgate.net/publication/221346365_Connectionist_temporal_classification_Labelling_unsegmented_sequence_data_with_recurrent_neural_%27networks),主题是序列识别的方法。

}

 

正文:

{

首先,论文的第一节Introduction提到了之前方法的问题:

  1. they usually require a significant amount of task specific knowledge, e.g. to design the state models for HMMs, or choose the input features for CRFs; (2)they require explicit (and often questionable) dependency assumptions to make inference tractable, e.g. the assumption that observations are independent for HMMs; (3) for standard HMMs, training is generative, even though sequence labelling is discriminative.

    (1)通常这些方法需要很多任务专属的知识,比如说需要为HMMs设计状态模型,或为CRFs选择输入特征;(2)需要为这些方法做明显的依赖假设(经常存在问题),以使得推断可解,比如说需要为HMMs做观测独立的假设;(3)虽然序列标记是判别式的,但对于标准的HMMs,训练是生成式的。

 

    接下来又说到循环神经网络(RNN)。用RNN需要分段,而最有效的方法还是结合HMMs(the most effective use of RNNs for sequence labelling is to combine them with HMMs ... The HMM component is able to automatically segment the sequence during training)。

 

 

    在第二节中,主要给出了一种误差:

   

    其中,x代表输入序列,z代表标准标签,h代表本论文的模型,ED(A,B)代表由A变换到B所需要的修改的数量(添加和删除等都算是一次修改),S代表测试集。

 

    第三节介绍了模型的大致过程,我理解的数据流如下:

    声波序列x ------(通过循环神经网络)------> 各个标签(包括空白标签)在各个时段下的概率y -------(通过式(2),(3),(4))-------> 最终的标签输出h(x)

   

   

    (4)

    其中,L‘T代表所有长度为T的标签序列的集合。π为标签序列(可能包括空白),B为一种多对一的映射(例如B(a−ab−) = B(−aa−−abb) = aab,其中a和b为标签,−为空白标签。论文中说此映射是删除空白与重复标签)。

 

    第四节中提到了模型的训练方法。

    计算式(2),(3),(4)会很耗时(需要考虑所有的π和l),所以论文中就提出了一种递归的算法:

   

   

    式(5)中定义的αt(s)指的是在x给出并且πt=ls的情况下,π的前t部分经B的映射后为I的前s部分的概率。

    一通推导之后得出了式(8)。

   

    又介绍了反向递归:

   

    所以递归过程被分成了两部分。在πt=ls的情况下,两个概率部分相乘之后再除以ls的概率便可得到式(3),因此,对于所有的t和s,可得式(14)。

   

       

   

    训练的目标函数如下:

   

    所以每个网络的误差为目标函数(12)对每个网络每次输出的微分,即式(16)。

   

   

   

    式中u为网络输出(我认为就是y),α和β都被归一化了。

    第五节描述了实验结果。

    按照我的理解,输入为每个时刻的被量化的声波幅值(量化为26种)。在TIMIT数据集上的结果对比如表1:

   

    可以看到,相比于Weighted error BLSTM/HMM,CTC的效果没有明显优势,Weighted error是指根据输出的长短缩放误差信号(the error signal was scaled to give equal weight to long and short phonemes (Robinson, 1991))。

    另外,论文中也提到CTC更适合噪音等级比较高的场景(a higher level of noise was found to be optimal for CTC)。

}

 

结语:

{

    这边论文涉及的还是数学或统计学方法,在循环神经网络后加了一个统计学模型,并没有涉及新的网络结构。光公式就琢磨了很久,可能是我的数学熟练度不够吧。

}

猜你喜欢

转载自blog.csdn.net/fish_like_apple/article/details/82558728