你驻足于春色中,于那独一无二的春色之中.
希望论文能审过~
##0x01 网络结构对比##
就语音分类问题对比多种神经网络的结构。语音分类问题是典型的段分类问题。这一类问题测试了算法对于语音信号进行分割和识别能力,它需要使用到上下文信息,是连续语音识别的第一步。
上下文语境在语音识别中显得尤为重要,因为诸如协同发音等现象,这种现象是指人的发音系统会将相邻的声音混淆在一起,以便快速而流畅地产生语音。在许多情况下,如果不知道音素前后的元素很难识别一个特定的音素。
实验数据来自于TIMIT语料库。其中包含多种美国方言。
这里使用5种神经网络构架在做对比。
隐藏层的大小选择是为了保证每一个算法的权重大致相同。但是,在多层感知器中,随着时间窗的尺寸变化,权重也会增加。所有的网络包含一个26维的输入层和一个61维的输出层。输入层连接到隐藏层,再到输出层。对于递归神经网络,隐藏层也全部与它自身相连接。
对于所有的网络而言,计算复杂度由前馈和反馈的复杂度O(W)主导,这意味着双向结构并不会显著增加计算的复杂度。
只有双向网络能够获取到被分类结构的完整上下文。对于多层感知器而言,上下文的范围取决于时间窗的大小。没有时间窗的多层感知器只具有没有上下文信息的基本能力。但是,在预处理器中的一些结构隐含着上下文信息。
对于输出层,我们使用交叉熵误差函数和softmax激活函数。softmax确保了网络输出在0到1之间,每一个步长的总和都是1。这意味着它们可以被视为给定范围内音素的后验概率。我们有许多误差函数可以使用,但是根据当前音位的持续时间来测量误差,确保短音素和长音素一样重要,对连续语音识别的改进有积极的意义。
对于所有网络,我们使用BPTT来计算每一段话的全误差梯度,使用在线最速下降来训练权重。所有实验使用同样的训练参数。
对于不同时间窗或目标延迟的实验,我们迭代地重新训练网络,而不是从头开始。为了找到最好的神经网络,我们在每个迭代中重新训练了LSTM网络5个周期,10轮RNN和20轮多层感知器。当然,更长的再训练时间将有可能带来更好的效果。对于多层感知器的再训练,需要加入额外的输入层权重,这是因为输入大小随着时间窗而变化。
虽然迭代训练是为了节省时间,但是我们发现迭代训练提升了最终的效果。这有可能是因为逃离了梯度下降算法容易进入的那些局部极小值。
神经网络从这种迭代训练中获益的能力涉及到神经网络和普通机器学习文献中广泛研究的不同任务之间的知识转移问题。
不同算法之间最明显的区别是训练轮数的不同。其中BRNN的收敛时间开销是BLSTM的8倍以上,尽管每个步长上的速度不是那么均匀。同样的收敛规律也表现在单向的LSTM和RNN上,多层感知器的速度仍然较慢。一种合理的解释是多层感知器和RNN需要对权重进行更多的微调才能访问到较远的上下文信息。
除了速度更快之外,LSTM也稍微准确一些。当然,BLSTM和BRNN之间的准确率差距相当小。差异不大的原因可能是这个训练任务还没有很明显的长程依赖关系。
有趣的是LSTM比RNN更容易过拟合,对于LSTM而言。15到20轮训练后,验证集和测试集的性能将开始下降,而训练集性能继续上升。而RNN并没有观察到测试集性能的大幅下降。这也可能由于数据集的特征使得LSTM比RNN更好的识别了一些长程的规律。如果真实这样,希望LSTM在其他数据集上不会表现出这种劣势。
一般来说,神经网络由于训练细节、训练数据的不同,很难与前人在同一问题上的研究作比较。
从实验中可以看出访问更大范围的上下文往往具有更好的结果。因此,双向网络会比单向网络要有普遍更好的表现;对于单向网络,LSTM比RNN从更长的时延中获益更多。这可能由于LSTM的记忆性,可以利用额外的上下文而不必在整个时延中存储以前的输入。
对于多层感知器,性能会随着时间窗的增加而增加,然而,更大的时间窗一味着更多权重的输入,这使得训练将会非常缓慢。
实验采用加权误差函数,会对BLSTM的帧性能带来影响,但是,误差加权是为了提升对整体音素的识别,而不是帧分类。