gmm

Understanding Gaussian Mixture Models

匿名 (未验证) 提交于 2019-12-03 01:48:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am trying to understand the results from the scikit-learn gaussian mixture model implementation. Take a look at the following example: #!/opt/local/bin/python import numpy as np import matplotlib.pyplot as plt from sklearn.mixture import GaussianMixture # Define simple gaussian def gauss_function(x, amp, x0, sigma): return amp * np.exp(-(x - x0) ** 2. / (2. * sigma ** 2.)) # Generate sample from three gaussian distributions samples = np.random.normal(-0.5, 0.2, 2000) samples = np.append(samples, np.random.normal(-0.1, 0.07, 5000)) samples

sklearn GMM raises “ValueError: setting an array element with a sequence.” on sparse matrix

匿名 (未验证) 提交于 2019-12-03 01:45:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I am attempting to cluster a set of data points that are represented as a sparse scipy matrix, X. That is, >>> print type(X) <class 'scipy.sparse.csr.csr_matrix'> >>> print X.shape (57, 1038) >>> print X[0] (0, 223) 0.471313296962 (0, 420) 0.621222153695 (0, 1030) 0.442688836467 (0, 124) 0.442688836467 When I feed this matrix into an sklearn.mixture.GMM model, however, it raises the following ValueError: File "/Library/Python/2.7/site-packages/sklearn/mixture/gmm.py", line 423, in fit X = np.asarray(X, dtype=np.float) File "/System/Library

ValueError: Features are incompatible with given information. Given features: Tensor(“input:0”, shape=(?, 198), dtype=float32)

匿名 (未验证) 提交于 2019-12-03 01:19:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Hi I am trying to implement GMM using tensorflow. But I am getting the following error :- ValueError: Features are incompatible with given information. Given features: Tensor("input:0", shape=(?, 198), dtype=float32), required signatures: TensorSignature(dtype=tf.float64, shape=TensorShape([Dimension(None), Dimension(198)]), is_sparse=False). Following is my code:- from tensorflow.contrib.factorization.python.ops import gmm as gmm_lib import numpy as np num_clusters = 200 x = np.array([[random.random() for i in range(198)] for j in range

kaldi中特征变换

匿名 (未验证) 提交于 2019-12-03 00:22:01
简介 Kaldi 目前支持多种特征和模型空间的变换与映射。特征空间变换和映射通过工具来处理(本质上就是矩阵),以下章节将介绍: 全局线性或仿射变换 说话人无关或单一说话人( per-speaker )或者( per-utterance )单一句子自适应 句子-说话人( Utterance-to-speaker )和说话人-句子( speaker-to-utterance )映射 组合变换 估计变换时的静音权重 变换,投影或者其他没有特定说话人的特征操作包括: 线性判别性分析(LDA) 帧拼接和差分特征计算 异方差的线性判别性分析(HLDA) 全局半协方差/最大似然线性变换 全局变换主要通过说话人自适应的方式应用: 全局GMLLR/fMLLR变换 线性声道长度归一化 指数变换 谱均值和方差归一化 下面我们将介绍回归树以及用到回归树的变换: 为自适应构建回归类树 全局线性或仿射特征变换 Matrix<BaseFloat> The Tableconcept )中。 变换可以通过程序transform-feats应用于特征上,语法如下 Specifying Tableformats: wspecifiers and rspecifiers Extendedfilenames: rxfilenames and wxfilenames ).这个程序通常用于管道的一部分。

【转】高斯混合模型的终极理解

妖精的绣舞 提交于 2019-12-02 19:47:17
高斯混合模型GMM是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。网上的关于GMM的大多资料介绍都是大段公式,而且符号表述不太清楚,或者文笔非常生硬。本文尝试用通俗的语言全面介绍一下GMM,不足之处还望各位指正。 首先给出GMM的定义 这里引用李航老师《统计学习方法》上的定义,如下图: 定义很好理解,高斯混合模型是一种混合模型,混合的基本分布是高斯分布而已。 第一个细节:为什么系数之和为0? PRML上给出过一张图: 这图显示了拥有三个高斯分量的一个维度的GMM是如何由其高斯分量叠加而成。这张图曾经一度对我理解GMM造成了困扰。因为如果是这样的话,那么这三个高斯分量的系数应该都是1,这样系数之和便为3,才会有这样直接叠加的效果。而这显然不符合GMM的定义。因此,这张图只是在形式上展现了GMM的生成原理而并不精确。 那么,为什么GMM的各个高斯分量的系数之和必须为1呢? 其实答案很简单,我们所谓的GMM的定义本质上是一个概率密度函数。而概率密度函数在其作用域内的积分之和必然为1。GMM整体的概率密度函数是由若干个高斯分量的概率密度函数线性叠加而成的,而每一个高斯分量的概率密度函数的积分必然也是1,所以,要想GMM整体的概率密度积分为1,就必须对每一个高斯分量赋予一个其值不大于1的权重,并且权重之和为1。 第二个细节:求解GMM参数为什么需要用EM算法 总所周知

How to plot the pdf of a 1D Gaussian Mixture Model with matplotlib

浪尽此生 提交于 2019-12-02 07:23:18
I want to plot a Gaussian Mixture Model. The following code allows me to plot 2 separate Gaussians, but where they intersect, the line is very sharp and not smooth enough. Is there a way to plot the pdf of a 1D GMM? def plot_data(): mu = [-6, 5] var = [2, 3] sigma = [np.sqrt(var[0]), np.sqrt(var[1])] x = np.linspace(-10, 10, 100) curve_0 = mlab.normpdf(x, mu[0], sigma[0]) curve_1 = mlab.normpdf(x, mu[1], sigma[1]) import ipdb; ipdb.set_trace() plt.plot(x, curve_0, color='grey') plt.plot(x, curve_1, color='grey') plt.fill_between(x,curve_0 , color='grey') plt.fill_between(x,curve_1, color='grey

高斯混合模型GMM和EM算法

一世执手 提交于 2019-12-02 06:02:46
高斯混合模型的基本思想是任何一个曲线,无论多么复杂,都可以用若干个高斯曲线来逼近它。 高斯混合模型也被视为一种聚类方法,是机器学习中对“无标签数据”进行训练得到的分类结果。其分类结果由概率表示,概率大者,则认为属于这一类。 matlab中关于高斯混合模型的内容集中在gmdistribution类中,使用gmdistribution创建GMM,使用fitgmdist根据给定样本生成GMM,使用cluster对GMM样本点进行聚类分析,pdf表示GMM的概率密度函数,random由GMM生成随机变量,posterior计算GMM每个高斯分布分量的后验概率。 来源: https://www.cnblogs.com/larry-xia/p/11733539.html

A Deep Neural Network Approach To Speech Bandwidth Expansion

孤街浪徒 提交于 2019-12-01 11:43:07
题名:一种用于语音带宽扩展的深度神经网络方法 作者:Kehuang Li;Chin-Hui Lee 2015年出来的 摘要   本文 提出了一种基于深度神经网络(DNN)的语音带宽扩展(BWE)方法。 利用对数谱功率作为输入输出特征进行所需的非线性变换,训练神经网络来实现这种高维映射函数。 在10小时的大型测试集上对该方法进行评估时,我们发现与传统的基于高斯混合模型(GMMs)的BWE相比,DNN扩展语音信号在信噪比和对数谱失真方面具有很好的客观质量度量。 在假定相位信息已知的情况下,主观听力测试对DNN扩展语音的偏爱度为69%,对GMM的偏爱度为31%。 对于实际运行中的测试,当相位信息从给定的窄带信号imaged(成像)时,首选项的比较上升到84%,而不是16%。 正确的相位恢复可以进一步提高该方法的BWE性能。 关键词:深度神经网络,语音带宽扩展,频谱映射,相位估计 1 引言    将语音带宽从窄带(4khz带宽)扩展到宽带(8khz带宽)已经研究了几十年,因为带宽在早期是一种昂贵的资源。 即使现在语音传输的带宽不再受到紧张的限制,我们在现有的公共交换电话网(PSTN)系统中仍然面临着低带宽的限制。 为了提高语音在PSTN上的收听质量,人们一直在努力人为地扩展带宽。   早期对带宽扩展(BWE)的研究多集中于估计高频带的频谱包络线,利用低频带产生的激励恢复高频频谱[1]

高斯混合模型(GMM)和EM算法

戏子无情 提交于 2019-11-26 21:52:55
EM算法 EM算法是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计。每一次迭代由两步组成:E步,求期望(expectation);M步,求极大(maximazation)。不断循环直到算法收敛,最后得出参数的估计。 之所以要搞得这么麻烦,就是因为有隐变量(latent variable)这个东西的存在,隐变量是无法观测的,这就造成了我们的观测值和想要预测的参数值之间的差距。如果所有的变量都是可观测的,我们使用极大似然法就可以得出对参数的估计了。 一般地,我们用Y表示观测随机变量的数据,Z表示隐随机变量的数据,Y和Z连在一起称为完全数据。假设给定观测数据Y,其概率分布是 P ( Y | θ ) //--> , θ //--> 为要估计的参数,那么Y的对数似然函数为 L ( θ ) = log P ( Y | θ ) //--> 。Y和Z的联合概率分布是 P ( Y , Z | θ ) //--> ,它的对数似然函数为 log P ( Y , Z | θ ) //--> 。 下面介绍EM算法的步骤: 输入:观测变量数据Y,隐变量数据Z, 联合分布 P ( Y , Z | θ ) //--> ,条件分布 P ( Z | Y , θ ) //--> (这里的两个分布应该指的是形式) 输出:模型参数 (1)选择参数的初始值 θ ( 0 ) //--> (2)E步: θ ( i )

DNN-HMM语音识别的声学模型

一笑奈何 提交于 2019-11-26 20:14:38
基于DNN-HMM的语音识别声学模型结构如下图所示,与传统的基于GMM-HMM的声学模型相比,唯一不同点在于用DNN替换了GMM来对输入语音信号的观察概率进行建模。DNN与GMM相比具有如下优点: DNN不需要对声学特征所服从的分布进行假设; DNN的输入可以采用连续的拼接帧,因而可以更好地利用上下文的信息; DNN的训练过程可以采用随机优化算法来实现,而不是采用传统的批优化算法,因此当训练数据规模较大时也能进行非常高效的训练,显然,训练数据规模越大,所得到的声学模型就越精确,也就越有利于提高语音识别的性能; 在发音模式分类上,DNN这种区分式模型也要比GMM这种产生式模型更加合适。 DNN的输入是传统的语音波形经过加窗、分帧,然后提取出来的频谱特征,如MFCC、PLP或更底层的滤波器组(filter bank,FBK)声学特征等。FBK特征多利用Mel滤波器组在功率谱上进行滤波并计算对数能量,然后采用其规整值来表示。目前,FBK特征获得了广泛的成功,证明了原始语音频率对于基于DNN的语音识别技术的重要性。与传统的GMM采用单帧特征作为输入不同,DNN将相邻的若干帧进行拼接来得到一个包含更多信息的输入向量。研究表明,采用拼接帧作为输入是DNN相比GMM能获得明显性能提升的关键因素之一。 DNN输出向量的维度对应HMM中状态的个数,通常每一维输出对应一个绑定的triphone状态