转:http://blog.sina.com.cn/s/blog_66f725ba0101bw8i.html

关于语音识别的声学模型训练方法已经是比较成熟的方法,一般企业或者研究机构会采用HTK工具包、Kaldi等进行训练,目前从声学模型出发,提高系统性能的主要策略主要有:

1)增加训练数据。不同的训练数据也会对模型有一定的影响,例如,数据的男女均衡性、采集数据的channel、数据的背景噪声、发音人的方言等等。

2)采用比较好的模型训练方法。以前一般采用基于EM和Baum-Welch算法的最大似然估计MLE(Maximum Likelihood Evaluation)方法,但现在众多研究者针对于MLE方法的缺陷,相继提出了多种区分性训练DT(Discriminative Training)方法,以期能得到较优的分类器。

3)声学模型表示。表述声学模型,用的比较多的就是DTW、GMM-HMM,以及目前研究比较热门的DNN(Deep Neural Network)等。

下面针对MLE和DT这两种训练方法,进行一个理论上的分析。以下内容参考中科大鄢志杰博士的毕业论文“声学模型区分性训练及其在自动语音识别中的应用”。

1. 最大似然估计MLE训练

目前,基于最大似然估计的MLE训练的HMM模型是语音识别系统中声学模型最主流的方法。这与MLE的特有的性质是分不开的。

首先,MLE提供了一种简单的训练方法,使得一个较高精度的语音识别声学模型能够迅速地训练得到。

其次,MLE采用的EM、Baum-Welch算法等,使得其不需要精细的参考文本音段时间标注,并在每一步迭代中确保对目标函数的优化。

最后,MLE估计对训练资源的消耗较小,现在已有很多成熟的算法和工具包能够利用对模型参数进行估计。

但是,MLE估计再理论上做的一些假设影响了其在实际应用条件下训练出最优分类器的能力,具体来说,MLE估计训练出的最优HMM声学模型需要满足以下几个条件:

1)模型假设要正确。即,建模时指定的概率密度函数要能够代表实际语音的“真实”分布。

2)训练数据要趋于无穷。即,可以经由无穷多的数据估计出模型的“真实”参数。

3)解码时需要的语言模型要事先已知,且参数要完全“真实”。

从上面的三点“真实”假设,我们可以看出,这三点在实际实践中是不可能真正做到的。这是因为:语音参数的“真实”分布是不可测的,更谈不上通常意义上的指数族函数(例如我们常采用的GMM)来充分模拟。另外,对于语音识别中的大量模型参数而言,训练数据总是稀疏的,实际的训练数据量远达不到无穷的要求。再者,解码中语言模型存在的问题与声学模型几乎完全一样,因此也达不到“真实”参数的要求。所以,在现实条件下通过MLE训练得到最优分类器是不可能的。

2. 区分性DT训练

区分性训练时研究者针对MLE训练的不足而提出的,希望在现实条件下能得到较优的分类器。DT训练通常定义一个目标函数(Objective Function),或者说是准则函数(Criterion Function),来近似一个与分类代价相关的度量。例如,可定义一个域分类错误相关的量并最小化它;或是定义一个与识别正确率相关的量,并最大化它。通过区分性训练,我们可以从一定程度上弱化模型假设错误所带来的影响。同时,由于区分性训练致力于优化与识别效果好坏相关的度量,因此也就为提高识别器性能提供了更直接的途径。形象的说,MLE训练告诉模型“这是椅子,那是桌子”,而区分性训练则告诉模型“这是桌子而不是椅子,那是椅子而不是桌子”。MLE训练更重视调整模型参数以反映训练数据的概率分布,而区分性训练则更重视调整模型之间的分类面,以更好的根据设定的准则对训练数据进行分类。

区分性群联研究的重点主要有两个方面,一是定义准则,即表明“需要优化什么”,二是研究优化算法,即如何根据给定的准则有效的优化模型参数。在语音识别领域,常用的优化准则有:最大互信息量估计准则(Maximum Mutual Information Estimation,MMIE)、最小分类错误准则(Minimum Classification Error,MCE),以及最小词/音素错误准则(Minimum Word/Phone Error)。而常用的参数优化准则算法则包括广义概率下降(Generalized Pmbability Descent,GPD),以及扩展Baum-Welch(Extened Baum—Welch,EB)算法。

纵观现在主流的声学模型的训练,一般公司的研究院或者是一些公司已经采用DNN训练方式,或者是基于HMM的MPE/fMPE相结合的训练方式,训练更powerful的声学模型。当然,这些对训练数据的需求量依然是相当的大。

[转]语音识别中区分性训练(Discriminative Training)和最大似然估计(ML)的区别的更多相关文章

  1. 深度学习中交叉熵和KL散度和最大似然估计之间的关系

    机器学习的面试题中经常会被问到交叉熵(cross entropy)和最大似然估计(MLE)或者KL散度有什么关系,查了一些资料发现优化这3个东西其实是等价的. 熵和交叉熵 提到交叉熵就需要了解下信息论 ...

  2. 卷积神经网络(CNN)在语音识别中的应用

    前言 总结目前语音识别的发展现状,dnn.rnn/lstm和cnn算是语音识别中几个比较主流的方向.2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neur ...

  3. 详解卷积神经网络(CNN)在语音识别中的应用

    欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:侯艺馨 前言 总结目前语音识别的发展现状,dnn.rnn/lstm和cnn算是语音识别中几个比较主流的方向.2012年,微软邓力和俞栋老 ...

  4. kaldi chain模型的序列鉴别性训练代码分析

    chainbin/nnet3-chain-train.cc int main(int argc, char *argv[]) { ... Nnet nnet; ReadKaldiObject(nnet ...

  5. Opencv中SVM样本训练、归类流程及实现

    支持向量机(SVM)中最核心的是什么?个人理解就是前4个字--"支持向量",一旦在两类或多累样本集中定位到某些特定的点作为支持向量,就可以依据这些支持向量计算出来分类超平面,再依据 ...

  6. PocketSphinx语音识别系统语言模型的训练和声学模型的改进

    PocketSphinx语音识别系统语言模型的训练和声学模型的改进 zouxy09@qq.com http://blog.csdn.net/zouxy09 关于语音识别的基础知识和sphinx的知识, ...

  7. 语音识别中的CTC算法的基本原理解释

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文作者:罗冬日 目前主流的语音识别都大致分为特征提取,声学模型,语音模型几个部分.目前结合神经网络的端到端的声学模型训练方法主要CTC和基 ...

  8. Ruby中区分运行来源的方法(转)

    Ruby中区分运行来源的方法 这篇文章主要介绍了Ruby中区分运行来源的方法,本文讲解的是类似Python中的if name == 'main':效果,其实Ruby中也有类似语法,需要的朋友可以参考下 ...

  9. PyTorch在NLP任务中使用预训练词向量

    在使用pytorch或tensorflow等神经网络框架进行nlp任务的处理时,可以通过对应的Embedding层做词向量的处理,更多的时候,使用预训练好的词向量会带来更优的性能.下面分别介绍使用ge ...

随机推荐

  1. leetcode621

    public class Solution { public int LeastInterval(char[] tasks, int n) { Dictionary<char, int> ...

  2. 详解BOM用途分类及在汽车企业中的应用

    摘要:在整车企业中,信息系统的BOM是联系CAD.CAPP.PDM和ERP的纽带,按照用途划分产品要经过产品设计,工程设计.工艺制造设计.生产制造4个阶段,相应的在这4个过程中分别产生了名称十分相似但 ...

  3. 退出vim编辑器(转)

    在linux家族中,vim编辑器是系统自带的文本编辑器,其功能强大自不必说了. 偶有小白,刚接触linux,要修改某个文本文件,不可能像WINDOWS那样操作,更有甚者,进入VI编辑器后,无法退出以致 ...

  4. html转换pdf

    项目需求:移动端APP项目需要在手机上签订合同,将html转换成pdf格式的文件 解决方案:是用插件wkhtmltopdf; 记录用法:1.网址https://wkhtmltopdf.org/ 下载压 ...

  5. javaMail实现收发邮件(三)

    JavaMail API中定义了一个java.mail.Transport类,它专门用于执行邮件发送任务,这个类的实例对象封装了某种邮件发送协议的底层实施细节,应用程序调用这个类中的方法就可以把Mes ...

  6. CentOS6.8 使man支持显示中文

    1.安装显示中文的man命令 wget https://src.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.1.tar.gz ...

  7. IBGP规划

    在IBGP邻居中,使用反射器减少IBGP邻居关系是一种最常用的网络结构,在上图中AS65001中有6台路由器,其中,R1和R2是一组反射器,配置如下: R1: ! interface Loopback ...

  8. Jupyter Notebook 的快捷键

    原文:http://blog.csdn.net/lawme/article/details/51034543 Jupyter Notebook 的快捷键 Jupyter Notebook 有两种键盘输 ...

  9. Block学习总结

    最近网上浏览了一些关于Block的文章,自己进行一下消化吸收. Void (^blockName)(parma)-> Block声明 Void (^) (parma){};  ->Bloc ...

  10. Agile PLM 开发中AgileAPI类型对应控制台分类说明

    1)    分类中的一级大类PLM后台管理的控制台中,每个分类中的一级大类都对应AgileAPI中一个类型 IServiceRequest对应产品服务请求,表为:psrIPrice对应价格,表为:pr ...