如何利用HTK 建立GMM
- 格式:doc
- 大小:56.00 KB
- 文档页数:6
GMM的算法原理与应用1. 什么是GMMGMM(Gaussian Mixture Model)是一种用于对数据进行建模和分类的概率模型。
它假设数据由若干个高斯分布组成,每个高斯分布对应着数据的一个类别。
GMM的主要目标是通过最大化似然函数来估计模型参数,然后利用这些参数来对新样本进行分类。
2. GMM的算法原理GMM的算法原理可以简要概括为以下几个步骤:2.1 初始化参数首先需要初始化GMM模型的参数,包括高斯分布的数量、均值、协方差矩阵以及每个高斯分布的权重。
2.2 E步(Expectation Step)在E步中,计算每个样本属于每个高斯分布的后验概率。
这可以通过使用贝叶斯公式来计算,其中后验概率等于先验概率与似然函数的乘积除以归一化因子。
2.3 M步(Maximization Step)在M步中,根据上一步计算得到的后验概率,更新模型参数。
具体地,计算每个高斯分布的权重、均值和协方差矩阵。
2.4 迭代更新重复执行E步和M步,直到模型的收敛。
一般情况下,可以设定一个收敛条件,如模型参数的变化小于某个阈值时停止迭代。
3. GMM的应用GMM在很多领域中都有广泛的应用,下面列举几个常见的应用场景:3.1 图像分割GMM可以用于图像分割,帮助将图像中的像素分成不同的类别。
通过将每个像素看作一个样本,使用GMM模型进行像素分类,可以实现图像中物体与背景的分离。
3.2 人脸识别GMM可以用于人脸识别领域。
利用GMM可以对人脸图像进行建模,并将人脸特征向量映射到模型空间进行识别和验证。
3.3 异常检测GMM可以用于异常检测,帮助识别数据中的异常点。
通过将数据建模为多个高斯分布,GMM可以根据数据点的概率分布情况判断是否为异常。
3.4 音频信号处理GMM可以用于音频信号处理,在语音识别、音乐分类和声纹识别等领域有着广泛的应用。
通过建模音频信号的概率分布,GMM可以对音频进行建模和分类。
4. 总结GMM是一种常用的概率模型,适用于数据建模和分类的各种应用场景。
GMM算法详解范文GMM(Gaussian Mixture Model)算法是一种广泛应用于模式识别和机器学习领域的聚类算法。
它基于概率模型,并假设数据是由多个高斯分布组成的混合而成。
下面将从算法原理、算法步骤和应用实例三个方面对GMM算法进行详细阐述。
一、算法原理:1.选择k个高斯分布作为混合模型的组成部分;2.每个数据点根据权重选择一个高斯分布,生成观测数据。
二、算法步骤:1.初始化:-选择k个高斯分布的均值、协方差矩阵和权重;-随机分配每个数据点到一个高斯分布。
2.EM算法迭代:- E步骤(Expectation):根据当前的高斯分布参数,计算每个数据点属于每个高斯分布的概率。
利用贝叶斯公式计算后验概率。
- M步骤(Maximization):根据E步骤计算得到的后验概率,更新高斯分布的参数(均值、协方差矩阵和权重)。
3.迭代:重复E和M步骤,直到模型参数收敛或达到最大迭代次数。
4.聚类结果:将数据点分配到具有最大后验概率的高斯分布,得到聚类结果。
三、应用实例:假设有一组二维数据点,我们希望将其聚类为k个簇。
首先,我们初始化k个高斯分布的参数,然后利用EM算法进行迭代,不断更新高斯分布的参数。
最终,通过比较数据点属于每个高斯分布的后验概率,将其分配到具有最大后验概率的簇中。
例如,假设有一个包含100个数据点的数据集,我们希望将其聚类为3个簇。
通过GMM算法,我们可以得到每个簇的均值、协方差矩阵和权重。
然后,将数据点根据后验概率分配到对应的簇中,即可得到聚类结果。
-GMM算法能够处理非球形的簇,因为每个高斯分布可以具有不同的协方差矩阵;-GMM算法具有参数化的表示方式,可以通过参数的统计估计来找到最佳的聚类效果;-GMM算法具有更好的噪声鲁棒性,因为它对噪声的建模相对灵活。
总结:GMM算法是一种基于概率模型的聚类算法,根据数据的生成过程利用EM算法进行迭代,估计混合模型的参数。
它可以处理非球形簇和噪声数据,并且在聚类、异常检测和图像分割等领域有广泛应用。
1K-means算法原理模型1967年,James MacQueen提出“K-Means”(K均值),是基于距离的聚类算法。
两个对象距离越近,相似度越大,对指定的K个划分,迭代确定每个簇的中心和比较靠近该中心的归属节点,达到平方误差最小的平衡状态。
算法算法的描述如下:1、随机选取k个聚类质心点(cluster centroids)为u1,u2,…,uk∈Rn.2、重复下面过程直到收敛{对于每一个样例i,计算与质心的最小距离,判断其应该属于的类对于每一个类j,重新计算该类的质心,向量的平均值}算法的目标函数如下:J函数表示每个样本点到其质心的距离平方和。
K-means是要将J调整到最小。
固定每类的质心u(j),调整样本的所属类别c(i),让J函数减少。
然后,固定c(i),调整每个类的质心u(j),使J减少。
当J递减到最小时,u和c也同时收敛。
函数J是非凸函数,意味着我们不能保证取得的最小值是全局最小值。
K-means算法体现了EM迭代的思想,E步是估计隐含类别y的期望值,M步调整其他参数使得在给定类别y的情况下,极大似然估计P(x,y)能够达到极大值。
然后在其他参数确定的情况下,重新估计y,周而复始,直至收敛。
用K-means 解释就是开始不知道每个样本对应的隐含变量类别c(i),E步随便定一个c(i)给样本,然后是M步让P(x,c(i))最大(这里是让J最小),求出给定c的情况下,J最小时的质心u(j)(其他参数),质心确定后,重新E步估计样本的更好c(i)(归属到距离小的相似质心分类中,使J最小),c(i)得到重新调整。
重复到c没有调整。
算法是硬指定隐含类别变量给一个样本,而不是对每个类别赋予不同的概率。
总体思想是一个迭代优化过程,有目标函数,也有参数变量,只是多了个隐含变量类别c(i),确定其他参数质心u(j)估计隐含变量,再确定隐含变量估计其他参数,直至目标函数最优。
问题算法的缺点是:类型数目k需要首先较为合理的确定下来,没有在迭代过程中优化;算法会获得局部最优结果,需要好的选择初始的质心算法;小数量类别和孤立点的影响,需要考虑这些点的影响;计算数据相似度的距离算法和向量的特征维度,需要先确定下来。
系统gmm方法
GMM(Gaussian mixture models)是一种概率模型,它可以将输入数据的概率分布表
示为一组高斯混合的混合模型。
GMM的建模方法主要分为三个步骤。
首先,对于输入数据集,采用基本的概率分布函数(如高斯或者拉普拉斯)来估计输
入数据的总共概率分布。
在估计的过程中,需要确定每个数据项都有概率(或者命中概率),从而建立数据的基本分布。
其次,将估计的数据分布表示为一组多元正态分布的混合模型。
这其中每个正态分布
代表一个聚类,每个聚类都可能具有一定的权重或比例。
估计过程中,还需要确定每个聚
类的均值,方差和比例等参数。
最后,根据估计的参数,建立GMM,从而获得输入数据的概率分布。
GMM能够根据输
入数据,给出不同的类之间的关系,使得数据中的某一类更能够清晰可见,从而帮助更好
的分类任务。
GMM方法的应用范围很广,常用的应用有聚类分析,降维处理,视觉跟踪,语音识别,图像分割等。
GMM在视觉跟踪和语音识别中的应用在计算机视觉和机器人的研究中也有一
定的推广和使用,能够使模式识别及机器学习研究得到更好的应用。
试描述基于高斯混合模型背景建模的步骤背景建模是计算机视觉领域中的一个重要问题,它被广泛应用于目标检测、跟踪、视频分析等领域。
背景建模的目的是从输入的视频序列中估计出场景的背景模型,以便于检测出场景中的前景目标。
在背景建模中,高斯混合模型(Gaussian Mixture Model,GMM)是一种常见的背景建模方法。
基于高斯混合模型背景建模的步骤主要包括以下几个方面:1. 数据预处理在进行背景建模之前,需要对输入的视频数据进行预处理。
预处理的主要目的是去除图像中的噪声和不利于背景建模的影响因素,例如光照条件的变化、相机的移动等。
预处理的方法包括平滑滤波、图像增强、运动补偿等。
2. 模型初始化在建立GMM模型之前,需要对模型进行初始化。
初始化的目的是确定每个高斯分量的初始参数,包括均值、方差和权重。
通常情况下,可以使用先验知识或者简单的聚类算法来初始化模型。
3. 建立GMM模型建立GMM模型是背景建模的核心部分。
在该步骤中,需要使用EM算法来估计高斯混合模型的参数。
EM算法是一种迭代算法,它通过交替进行两个步骤来求解问题,即E步骤和M步骤。
在E步骤中,计算每个像素的后验概率,即该像素属于每个高斯分量的概率;在M步骤中,使用最大似然估计法更新高斯分量的参数。
迭代过程会一直进行,直到收敛为止。
4. 背景模型更新背景模型的更新是指随着时间的推移,背景模型需要不断地进行更新以适应场景的变化。
在模型更新的过程中,需要考虑到前景目标的影响,以避免将前景目标误判为背景。
在更新模型时,可以采用加权平均法、自适应学习率法等方法。
5. 前景检测在背景模型建立完成后,可以通过前景检测来识别场景中的前景目标。
前景检测的方法包括阈值法、基于形态学的方法、基于连通性的方法等。
通过前景检测,可以得到场景中的前景目标的位置信息和形状信息。
基于高斯混合模型的背景建模是一种常见的背景建模方法。
它通过建立高斯混合模型来估计场景的背景模型,从而实现前景目标的检测和跟踪。
gmm高斯模型推导全文共四篇示例,供读者参考第一篇示例:GMM (Gaussian Mixture Model)高斯混合模型是一种常用的概率模型,用于对数据进行聚类和密度估计。
它假设数据是由若干个高斯分布组成的混合分布生成的,每个高斯分布对应一个聚类,每个数据点的生成过程由各个高斯分布按一定概率加权组成。
本文将从GMM 的基本理论出发,逐步推导GMM的EM算法,以及参数的估计和模型的选择。
GMM的基本理论包括数学描述和模型假设。
假设我们有N个数据点x_1, x_2, \cdots, x_N,每个数据点有D个维度。
GMM假设这些数据由K个高斯分布组成,每个高斯分布对应一个聚类,表示为\{ \pi_k, \mu_k, \Sigma_k \}_{k=1}^{K},其中\pi_k是第k个高斯分布的混合系数,\mu_k是第k个高斯分布的均值向量,\Sigma_k 是第k个高斯分布的协方差矩阵。
GMM模型的概率密度函数定义如下:p(x) = \sum_{k=1}^{K} \pi_k \mathcal{N}(x|\mu_k, \Sigma_k)其中\mathcal{N}(x|\mu, \Sigma)表示多维高斯分布的概率密度函数。
每个高斯分布的参数需要满足以下条件:\mu_k \in \mathbb{R}^D, \Sigma_k \in \mathbb{R}^{D\times D}, \Sigma_k \succ 0接下来我们将推导GMM的EM算法。
EM算法是一种迭代优化算法,用于估计含有隐变量的概率模型的参数。
GMM中的隐变量是数据点的类别,即数据点属于哪一个高斯分布的概率最大。
EM算法的基本思路是通过迭代优化求解下面的似然函数极大化问题:具体来说,EM算法分为两步:E步和M步。
在E步中,我们计算数据点属于各个高斯分布的后验概率,即第n个数据点属于第k个高斯分布的概率:迭代E步和M步直到模型参数收敛,即对数似然函数的收敛差值小于一个给定的阈值。
gmm函数-回复GMM函数:理解和应用GMM(Generalized Method of Moments)函数是一种经济学和统计学中常用的估计方法。
它可以用于解决各种经济学和统计学问题,如参数估计、假设检验、模型选择等。
本文将一步一步回答关于GMM函数的问题,帮助读者深入理解和应用该方法。
什么是GMM函数?GMM函数是一种经济学和统计学中的估计方法,用于估计参数,检验假设或选择模型。
它基于矩条件,通过最大化或最小化一种准则函数来估计未知参数。
具体来说,GMM函数通过找到参数值,使得样本矩条件与理论矩条件之间的差异最小化。
如何构建GMM函数?构建GMM函数的第一步是选择一个准则函数。
准则函数通常是样本矩条件与理论矩条件之间的差异的平方和。
这里的矩是指样本或理论的某种特征,如均值、方差等。
准则函数的选择应该基于经济理论或统计学假设,以满足问题的特定需求。
构建GMM函数的第二步是选择矩条件。
矩条件是建立在样本或理论数据上的方程,与未知参数相关。
这些方程应该被选择为能够提供关于未知参数的有效信息,并应满足一些统计性质,如可识别性和合理性。
构建GMM函数的第三步是推导样本矩条件和理论矩条件之间的差异。
这个差异被称为矩误差,它是构建准则函数的基础。
构建GMM函数的第四步是选择权重矩阵。
权重矩阵是用于加权样本矩条件和理论矩条件之间的差异的矩阵。
权重矩阵的选择应该基于一些统计性质,如有效性和一致性。
构建GMM函数的最后一步是最小化或最大化准则函数。
这可以通过优化算法来实现,如牛顿法、梯度下降法等。
最优参数值是使准则函数达到最小或最大值的参数值。
如何应用GMM函数?GMM函数可以应用于各种经济学和统计学问题。
其中一种常见的应用是参数估计。
通过选择适当的矩条件和权重矩阵,可以估计未知参数的值。
例如,在经济学中,GMM函数被广泛应用于对经济模型的参数进行估计。
另一种常见的应用是假设检验。
假设检验可以用来验证经济理论或统计学假设。
gmm的基本原理和应用1. 基本原理高斯混合模型(GMM)是一种常用的概率模型,用于对多个高斯分布进行加权混合。
它是一种非监督学习算法,常用于聚类、数据建模和异常检测等任务。
GMM的基本原理包括以下几个方面:1.1 高斯分布高斯分布也称为正态分布,是一种连续型概率分布。
它可以用均值和方差来描述,具有钟形曲线的特点。
高斯分布的概率密度函数可以表示为:$$ f(x) = \\frac{1}{\\sqrt{2 \\pi \\sigma^2}} \\cdot e^{-\\frac{(x - \\mu)^2}{2 \\sigma^2}} $$其中,$\\mu$ 是均值,$\\sigma$ 是标准差。
1.2 高斯混合模型高斯混合模型是将多个高斯分布加权混合得到的模型。
假设我们有K个高斯分布,每个分布对应一个权重 $\\pi_k$,满足以下两个条件:1.$\\pi_k \\geq 0$ 且 $\\sum_{k=1}^{K} \\pi_k = 1$2.每个高斯分布都可以用均值 $\\mu_k$ 和协方差矩阵 $\\Sigma_k$ 来表示则高斯混合模型的概率密度函数可以表示为:$$ f(x) = \\sum_{k=1}^{K} \\pi_k \\cdot \\frac{1}{\\sqrt{2 \\pi \\sigma_k^2}} \\cdot e^{-\\frac{(x - \\mu_k)^2}{2 \\sigma_k^2}} $$其中,$\\sum_{k=1}^{K} \\pi_k$ 表示对所有的高斯分布进行加权求和。
1.3 模型参数估计在实际应用中,我们需要从数据中估计出高斯混合模型的参数。
常用的方法是最大似然估计(Maximum Likelihood Estimation,简称MLE)。
MLE的思想是使观测数据发生的概率最大化。
对于高斯混合模型,MLE的目标是找到最优的参数 $\\Theta = \\{\\pi_k,\\mu_k, \\Sigma_k\\}$,使得观测数据 $X = \\{x_1, x_2, ..., x_N\\}$ 的概率最大。
系统gmm方法高斯混合模型(Gaussian Mixture Model,简称GMM)是一种常用的统计模型,用于对数据进行聚类分析和概率密度估计。
它是一种生成式模型,可以用于对数据的概率分布进行建模。
在实际应用中,GMM方法被广泛应用于图像分割、语音识别、模式识别等领域。
本文将介绍系统GMM方法的原理和应用。
GMM是一种以高斯分布为基础的概率模型,它假设数据是由若干个高斯分布组合而成的。
在GMM中,每个高斯分布对应一个聚类中心,而每个数据点则由这些高斯分布生成。
因此,GMM可以用来对数据进行聚类,同时也可以用来对数据的概率密度进行建模。
在系统GMM方法中,我们首先需要确定高斯分布的数量,即确定聚类中心的个数。
这可以通过一些聚类算法来实现,比如K均值算法。
确定了聚类中心的个数之后,我们需要通过最大似然估计或期望最大化算法(EM算法)来估计每个高斯分布的参数,包括均值和协方差矩阵。
最终得到了GMM模型。
在应用中,我们可以利用训练数据来估计GMM模型的参数,然后利用该模型对新的数据进行分类或概率密度估计。
对于图像分割来说,我们可以将图像的像素看作是数据点,利用GMM模型对像素进行聚类,从而实现图像的分割。
而在语音识别中,我们可以利用GMM模型对语音信号进行建模,从而实现语音的识别和分割。
需要注意的是,GMM方法在实际应用中可能会受到初始值选择的影响,因此需要多次运行算法并选择最优结果。
另外,GMM方法对数据的分布假设较为严格,如果数据的分布不符合高斯分布,则可能导致模型的不准确性。
总之,系统GMM方法是一种常用的统计模型,可以用来对数据进行聚类分析和概率密度估计。
它在图像分割、语音识别、模式识别等领域有着广泛的应用前景。
通过对GMM方法的深入理解和应用,我们可以更好地处理和分析各种类型的数据,为实际问题的解决提供更多可能性。
HTK tool kit建立GMM(转)学习2009-11-05 09:27:58 阅读79 评论0 字号:大中小订阅/logs/10605161.html在说话人识别和音频分类等问题上,GMM具有广泛的应用。
在这里介绍一下利用HTK tool kit建立GMM的方法。
GMM建立的过程在HTK中被称为Mixture Incrementing。
顾名思义,就是通过不断分裂,得到多个mixure的混合高斯模型。
由于在状态连接时单高斯模型可以取得更好的效果,所以高斯模型的分裂往往放在模型建立比较靠后的位置。
具体步骤如下:(1)mkproto.pl proto.cfgHCompV -A -D -T 1 -C htkCfg -S trainList -f 0.01 -m -M hmm0path proto首先建立单高斯模型,进行初始化。
(2)HHEd -H proto mix.hed ubm.lst #mixture splittingHERest -A -D -T 1 -C htkCfg -I ubm.mlf -t 0 150.0 1000.0 -S train.lst-H proto ubm.lst其中mix.hed的内容为MU $n {*.state[2].mix} ,$n为要分裂得到的mixure的个数。
整个分裂的过程是非常灵活的,因为它允许再三地分裂直到mixure数符合我们的要求。
MU命令具有如下的格式:MU n itemListn表示希望通过分裂得到的mixure数,itemlist则表示需要更新的mixure分布。
在本例中,我们将所有模型的状态2的mixure数增加到了$n个。
一般来说,其它每个状态的mixure都会做相应的提高,但对于只有一个active state的GMM来说,这么写就可以了。
一般建议分步分裂mixure,例如分出1~2个后对参数进行下重估,再分出几个,让后再重估,直到得到希望的个数。
HTK搭音频分类系统(转)学习2009-11-05 09:24:43 阅读75 评论0 字号:大中小订阅版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logs/10887741.html用HTK搭音频分类系统是个比较简单的工作,推荐用perl写程序主体,调用HTK函数来完成。
语音识别系统的搭建过程与此类似,可以自行修改,具体细节推荐参看《htkbook》和《htk_basic_tutorial》,前者讲得很仔细,后者条理很清晰,训练到识别的过程一目了然。
1、特征提取HCopy -A -D -T 1 -C hcopy.cfg -S train.scp其中hcopy.cfg是hcopy的配置文件,train.scp给出音频所在的路径和特征存储路径。
2、模型初始化a)按htk的模型格式写一个初始模型proto,可以用htkDemo中的mkProto,但需要设置配置文件。
b)初始化HCompV -A -D -T 1 -C htk.cfg -S trainlist -f 0.01 -m -M hmm0 protohtk.cfg为配置文件,trainlist给出所有特征文件所在路径,-M 后接初始化后模型路径,最后为初始化前模型完整路径。
c)模型分化system("flatstart proto hmmLst >> hmmdefs")把proto改名成hmmLst里的model名称复制到hmmdefs中去,这样proto就成为了每一种model 的原型。
这里要注意在~h "proto"前面必须要有三行才能正常执行,hcompv后的proto才符合要求,直接mkProto出来的proto不符合。
3、参数重估a)mixture分裂HHEd -H hmmdefs mixHed hmmLst #按照mixHed里的设置分裂hmmLst所列的模型HERest -C htkCfg -I trainMlf -t 0 150.0 1000.0 -S trainLst -H hmmdefs hmmLst#重估参数,trainMlf里是对每个特征文件的标注,trainLst同上一般这样的分裂不是一次到位的,从1个分2个,2个分4个,大于8后,每次增加的个数是原有mixture的一半。
用HHEd分裂一次后,需要用HERest重估3-4次。
b)迭代重估这一步一般在ubm中才会用到,因为它是先对proto分裂,再flatstart分化模型,最后用迭代重估自适应到不同的模型。
HERest -C htkCfg -I trainMlf -t 0 150.0 1000.0 -S trainLst -H hmmdefs -M curDir hmmLst-M选项给出的是新模型存放的路径,若缺省,则在原位置更新原模型。
4、识别1)提取特征,同上2)生成wdnet文件hparse-A -D -T 1 gram wdnet #根据gram得到wdnet3)解码HVite -A -C htkCfg -H hmmdefs -w wdnet -l '*' -i recgMlf -S recgLst -p 0.0 -s 5.0 -o NT dict hmmLst5、结果统计HResults -I refMlf hmmLst recgMlf其中-I为正确的标注。
这就是用htk搭建一个音频分类系统最简单最本质的流程,但如果要达到很好的效果,还是需要做一些改良的。
关于音频分段和分类的若干想法最近在做音频分段和分类的工作,一个基本的想法如下:去静音-〉做BIC分段-〉GMM模型判决-〉后处理一般的语音/非语音分类器都会以定长作为分类单位,但是实验表明(这个实验也需要做一下),单一类型的音频段越长,分类器的判断越正确。
所以为了使得单一类型音频尽可能长,我们引入了BIC分段。
BIC 分段号称可以将不同声学特征的音频段分开,但其实也没那么神,用过的人都觉得效果挺烂的。
不过现在倒是有流行起来的趋势,不知道会不会有改进方法出现(我很想自己把BIC的程序写一下,现在用的这个不是自己写的)。
GMM模型比较熟悉了,mix多一些的话效果会好一些。
后处理也比较重要,由于BIC的结果和标注结果会有帧级别上的偏差,所以后处理就是在BIC结果的基础上,在附近寻找能量最低的副帧位置作为调整后的跳边点。
现在已经完成的是去静音部分,接下来要做的是BIC的改进和GMM的训练。
MFCC是否适合给音乐建模?今天看了《Mel Frequency Cepstral Coefficients for Music Modeling》,这篇文章主要对MFCC是否适合对音乐进行建模进行了讨论,得出的结果是,用MFCC至少是没有坏处的。
MFCC的计算流程可以简单的概括为以下五个步骤:1、分帧2、DFT计算谱系数3、对谱系数的幅值取log4、将3中的结果转化到Mel 频标下5、做DCT变换MFCC在语音识别建模中已经成了一种非常成熟的特征,自然而然的,很多人就把它引入到音乐的建模中。
但是很少有人会去质问,这样的引入是否合理?虽然同为音频信号,音乐和语音还是存在着一些声学特征上的差别。
例如音乐的频域的动态范围更广,在高频部分可能隐藏了更多信息等。
在这篇文章中主要对第4步和第5步的合理性进行了讨论。
其它的步骤显得不那么具有争议,是因为音乐和语音一样是不平稳的(第一步),独立于相位信息(单声道,对于第二步),以及人对它的感知与响度是成对数关系的(第三步)。
这篇文章在语音/音乐分类这个具体的问题上对第4步进行了讨论。
将采用了Mel频标变换和没有采用Mel 频标变换直接用线性频标的两组特征(第五步依然用DCT变换),进行两类音频的分类实验,发现Mel频标变换后的特征效果要好一些,这证明至少MFCC的引入是不会有害的,但这个结论只限于分类,在其它领域的普适性还需要进一步证明。
第五步的目的实际上是要对第四步得到的特征向量进行解相关。
这是因为第四步出来的向量元素间存在着强烈的相关性,这会造成特征的冗余,使得特征维数过多而不方便处理(40维左右)。
第五步其实就是想通过KL变换使得向量中的元素解相关,具体表现就是特征向量的维数下降(一般为13维),同时由于元素间的相关性被消除,在使用GMM分类器的时候协方差阵可以使用对角阵而不是全协方差阵来简化计算。
在实际操作中,DCT变换就是用来近似KL变换的效果。
这篇文章通过对音乐的KL变换本征值和本征向量与DCT的比较,说明了DCT变换对音乐也可以起到KL变换的目的。
总而言之,以后用MFCC对音乐建模算是有了一个理论上的支持,至少它的使用对我们的实验不会造成大的负面的影响。
同时对MFCC的理解也更加深入了一些。
值得一提的是,这篇文章的文风不错,不像一般的paper那样晦涩难懂,基本属于科普级的写法,看起来很有亲切感。
但是实践和数据的支持显得不是很充分,可谓是小小的缺憾。
关于BIC分段的理解学习2010-05-06 11:16:24 阅读17 评论0 字号:大中小订阅bic最初是用于model selection,BIC=loglik-p;最大似然率减去模型复杂度的惩罚。
在分段问题中,实际上转化为了一个模型选择的问题,是一个高斯分布好呢,还是两个高斯分布好呢,两个高斯分布的话,分割点选在哪儿好呢?在这里的最大似然率,作者用Nlog|D|(D表示协方差矩阵)来表示;想了半天没有理解它的深意,向张师兄询问,果然是高手,立马给了一个直观上的结束,对于一个高斯分布来说,方差越小,说明分布越集中,该段音频越有可能是同质的,方差越大,则存在分割点的可能性越大。
这样理解的话,就很直观了,就能明白为什么BIC》0的点,反而是分割点了。
再议BIC默认分类2010-05-27 14:20:13 阅读19 评论0 字号:大中小订阅最近看了篇论文:evaluation of BIC-based algorithm for audio,作者讨论分析了BIC的各种实现方法。
从算法的思想到算法的实现看来还是有很长的路要走。
下面说一下三种实现方法:1,为了节省协方差矩阵的计算时间:D=1/N*sum(Xi*(Xi)^)-U*(U)^.因此在每次计算后保留sum(Xi*Xi^),和sum(xi).保留这两个和。
在这里提到一个名词叫做分辩率,应该理解为处理的最小单位,分辨率越高,分割应该是越准确,但速度慢一些,因此在编程时,先用低分辨率的方法求BIC找出分割点的大概位置,再使用高分辨率的方法找出准确的位置2,从数据集N上添加或减去一个子集,那么其协方差和均值的变化关系如下,因此,每一次保存(方差,均值,n)这样一个三元组,从而节省协防差矩阵的计算时间3,结合1和2,保存三元组(1中的两个和和n)。