zoukankan      html  css  js  c++  java
  • A Deep Neural Network Integrated with FilterBank Learning for Speech Recognition

    本文主要对该论文中的关键点进行总结和梳理,不完全翻译整篇文章。

    摘要

    DNN的主要优势就是不需要人工提取语音信号当中的特征。因此,我们在DNN的底部(输入部分)加上了一个pseudo-filterbank层,并且通过联合训练,对该层的参数和网络其他层的参数进行训练。在现有的其他基于DNN的网络当中,一般取预先定义的Mel尺度filterbanks作为声学特征作为网络的输入。

    在本文的实验当中,我们使用Gaussian函数代替三角Mel尺度的filterbanks。这一技术使得filterbank层能够保持频域光滑性(This technique en- ables a filterbank layer to maintain the functionality of fre- quency domain smoothing.)
    Experimental results show that the frame-level transformation of filterbank layer constrains flexibility and promotes learning efficiency in acoustic modeling.

    • 在本文中,其filterbank不是预先从语音当中提取出来的,而是通过联合训练,得到一组滤波器组,然后对输入信号进行处理得到的。

    介绍

    DNNs已经应用到语音识别当中(DNN-HMM),并且表现出比传统GMM方法优异的结果。在参考文献【2,3】当中,研究了使用深度学习的方法来进行前端(front-end)学习,如语音增强和filterbank学习。这些工作都表现出了比手动提取特征的方法优异的效果。

    在参考文献【4,5】当中,分析和评价了hand-crafted filterbanks和learned filterbanks之间的差异。这些分析表明,在Mel尺度的filterbanks和learned filterbanks之间的中心频率具有一定相似性。 这一结果表明,基于Mel尺度的learned filterbanks的中心频率初始化是有根据的和合理的,具体需要进行学习的只有filter的形状参数。 )但是,在中心频率的学习问题上,两个文献具有不一致的观点。那些实验结果表明,filterbanks形状的学习取决于当前任务,尤其是背景噪声的存在与否(因为背景噪声如果存在的话,则需要对噪声所在的频率区域进行抑制,形成一个陷波器)

    文献【6】当中,联合learned filterbanks和classifier(DNN)进行训练,其中,filterbank是由Gaussian函数进行参数化的模型。( 高斯参数化模型与当前文章有什么不同,在本文当中也使用Gaussian函数进行filterbank的参数化)把filterbank和分类器进行联合训练,能够提升分类的准确性。

    文献【7】也进行了联合训练,其中filterbank的限制条件是:通过引入权值的指数(exp(W)),使filterbank中的元素保持为正。这种弱限制(weak restriction)没有给出一个清晰的函数解释,为什么人们要手工设置三角形状的filterbank。也就是说,pseudo-filterbanks的参数对所给定的数据来说是过拟合的,pseudo-filterbanks的形状导致了multiple peaks。( 我的理解是:因为指数函数不像三角或者Gaussian函数那样,中间高两边低,但是训练之后的参数却形成了这种类三角的形状,而不是和指数函数的单调形式类似,并且形成了多峰形状,从而可以推断出filterbank参数对于所给定的数据发生了过拟合,从而导致了这种情况的发生。 )这样的pseudo-filterbanks没有频域中的平滑能力(多峰导致)。

    文献【9】中为了进一步减少网络的参数,在CNN 中使用(Gabor)滤波器作为卷积层,其中网络的输入为归一化功率谱(Power-Normalized Spectrum)。( (Gabor)函数具有什么属性,能够使得网络的参数继续降低。

    在本文中,我们参考文献【6】当中,使用Gaussian函数对网络中的filterbank进行参数化,Gaussian函数对其进行参数具有自由参数方面的优势,并且pseudo-filters能够快速自适应调节。(The Gaussian function has an advantage over a convolutional layer in the number of free parameters and in the fast adaptation of pseudo-filter.)实验当中,使用联合训练对网络进行训练。

    Filterbank learning的相关工作

    虽然DNN-HMM方法比GMM-HMM方法性能优异,但是当测试集和训练集存在不匹配时,前者的性能也会随之下降。学习filterbanks能够使用一些自适应方法来近似,虽然这些方法有不同的表示和约束。

    自适应方法大致可以分为两类:特征空间自适应和模型自适应(在一般的分类当中,还有一个分数自适应)。文献【12】的在DNN的前面加上了一个线性变换层(input=Wx+b),文献【11】在DNN前面加上了一个单独训练的能够跨帧连接的线性层,文献【13】在前面加上一个(块对角)block-diagonal矩阵,并且能够通过忽略与其他帧的连接,相同的方法也用在单独帧数据当中。能够看到,【11】中的方法是【12】中方法的一种特殊形式。

    (这里介绍的是两种补偿方法的例子,且基本都是在神经网络的输入层进行改进。)

    判别训练(Discriminative training)Gaussian Filterbanks

    Gaussian filterbanks

    一般的,我们可以使用HTK工具来进行Mel尺度filterbank特征提取(也可以使用Kaldi语音识别工具包,比HTK更全面,但是参考和学习文档没有HTK完整、系统)。然而,一个三角滤波器不是可微的(实际上,只是在一个点不可微,不明白此处作者这样分析是否有问题),不能融合到BP算法当中对其进行训练另外,因为每一次的前向传递,都需要沿着所有的频率带(frequency bins)进行计算累加,所以滤波器函数应该是计算有效的函数。也就是说,能够用来设计filter的函数应该是可微的和计算高效的(简单的)

    在实验当中,pseudo-filterbanks由下式进行建模(参数化):

    [ heta_n(f)=varphi_n exp{-eta_n(p(gamma_n)-p(f))}^2 ]

    其中,( heta_n(f))是第(n)个滤波器在频率(f)处的值,(varphi_n)是增益参数,(eta_n)是带宽参数,(gamma_n)是中心频率。线性频率(f)由函数(p(f))映射到Mel尺度中。

    在上述filter的参数化模型中,可训练的参数有:(varphi_n)(gain)、(eta_n)(bandwith)、(gamma_n)(center frequency)。传统的三角滤波器和高斯滤波器都能够保持频域的光滑性(Both a traditional triangular filter and a Gaussian filter maintain the functionality of frequency domain smoothing) ** 滤波器之间主要的不同是包含频率带的范围(滤波器的带宽)**Gaussian滤波器作用于整个频率带范围,然而三角滤波器只作用于截止频率以内的频率带。

    • 对于上图的理解:在DNN的最底层,是个神经元排列成的矩形,每一行与下层的不同时间帧的pseduo-filterbank相连接,从而构成前后多帧数据的联合处理。
    • 理解上存在的问题:在filterbank当中,滤波器的长度为多少?是和第一层的DNN神经元数目相同还是类似于CNN那种卷积核的形式?

    Training algorithm

    功率谱(x(f))沿着时间帧维度拼接之后,直接输入到pseudo-filterbanks当中。这些特征然后乘以滤波器对应的增益,并且沿着频率带进行累加。然后使用对数压缩得到一个log-mel(pseudo-)filterbank特征:

    [h_n=log( sum_f^{256} heta_n(f)x(f)) ]

    (h_n)然后被输入到DNN当中。对于滤波器的参数训练也是使用BP算法,以(varphi_n)为例:

    [varphi_n^{new} = varphi_n^{old} - eta frac{ partial varphi_n}{ partial{L}} ]

    其中,(L)是目标函数,(eta)是学习率。(eta_n gamma_n)使用相同的方法进行更新。

    本文所提出的方法,通过假设Gaussian核函数,对滤波器进行参数化,大大降低了需要训练的参数数目,此外,本方法相比于其他的数据驱动(data-driven)的特征提取方法,具有良好的模型适应性。

    网络的训练过程可以分为来两个阶段:

    1. 对除了pseudo-filterbanks的DNN网络进行fine-tuned(fixed model);
    2. 将二者结合起来,进行联合训练(trained model)。

    实验

    Baseline

    本文的基线系统是一个全连接的DNN网络,其网络参数为:隐藏层层数为5层,每一层网络具有2048个神经元,激活函数使用ReLu函数。其输入是11帧数据的40维log mel-scale filterbanks特征进行拼接所得到的特征( 根据此处的描述,我们可知,网络的输入层为单元数目为(11*40=440)个,又因为DNN后面会接上HMM模型,因此隐藏层的最后一层也就是DNN网络的输出层。)。这些特征在输入之前需要经过标准化处理(即均值为0,方差为1)。(此处的特征获取可以使用HTK或者Kaldi工具,也可以使用Github 上的python开源工具)

    Incorporation of pseudo-filterbanks

    在这里,我们有一个具有440(log-)units的filterbank层,DNN的参数设置与基线相同。网络的输入是11帧连续帧数据的256维功率谱。pseudo-filterbanks的数目设置为40个(与基线当中的40维特征相同,此处的结构表明,每个滤波器的维度应该为256维)。pseudo-filterbanks的初始化过程为:增益均设置为1,中心频率沿着Mel尺度进行均匀分割,带宽设置为两倍的Sigma,即对应的Mel-scale filterbank的带宽。

    在下图中展示了模型在clean data下的模型WER:

    滤波器的形状和初始化参数以及训练之后的参数在下图中展示:

    其中,值得注意的是,在male和female之间,增益参数的变化较初始化参数变化比较明显,且二者具有较大的差异,在中心频率方面,与初始化参数的变化不大。

    我们分别在clean数据和noise数据当中,测试了基线系统和本论文中提出的系统(DNN+pseduo-filterbanks),参数设置和上面相同,实验结果如下所示:

    上表中,WER是在多个SNR情况下的平均值(10db,15db,20db)。

    conclusions

    • Gaussian filterbanks的自适应性
    • 设计网络哪一层具有什么功能。也就是说,一个filterbank应该关注于(作用于)speaker-和noise-specific功能的自适应性上。(In other words, a filterbank layer should concentrate on speaker- and noise-specific functions such as VTLN to efficiently apply adaptation. )
    • 中心频率这一参数与其他参数具有较大的不同(中心频率具有小幅波动,而增益具有较大波动),对所有的参数都使用同一个学习率是不合适的。我们在使用Adam优化器的时候,得到的中心频率相比于SGD得到的结果具有较大的变化。
  • 相关阅读:
    js获取UserControl (<uc1>)控件ID
    NPOI的使用
    Ajax实现页面后台button click事件无刷新弹窗
    java反射中Class对象详解和类名.class, class.forName(), getClass()区别
    反射的笔记
    MyEclipse异常关闭导致启动不了tomcat的解决方法
    java面试题05
    java面试题04
    Spring笔记03(Spring创建对象的三种方式)
    Spring笔记02(3种加载配置文件的方式)
  • 原文地址:https://www.cnblogs.com/dream-and-truth/p/10813333.html
Copyright © 2011-2022 走看看