EM算法在高斯混合模型中的应用.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
EM算法在高斯混合模型中的应用.doc

EM算法及其在高斯混合模型中的应用 EM算法在高斯混合模型中的应用 1.定义 对于一个随机信号生成器,假设他的模型参数为,我们能观测到的数据输出为X,不能观测到的数据输出为Y,且随机系统模型结构的概率密度函数为 (1) 能够观测到的一部分数据输出数据,模型的另一部分输出数据 未知,模型的参数也未知。EM算法就是要求我们从观测数据中估计出参数。 2.EM算法的描述 假设每一对随机系统的输出样本对于不同的n相互独立,这样当,x和y都已知的情况下,概率也已知。未观测的输出y的概率分布也属于待求参数。 根据独立性假设有: (2) 3.EM算法的基本思路 基本问题是求解下面的方程的解: (3) 由于X是确定量,Y是未知的,因此即使给定了,也无法求得的值,因此我们只能退一步求: (4) 其中 (5) 表示考虑了未知数据y的所有可能的取值Y后对求平均值。 最后根据log函数的单调性得到(4)的等效形式: (6) 对于(6)给出的最优化问题,考虑用下面的递推算法解决,即:先给定一个估值并计算,然后更新得到并且有 (7) (8) 其中,等号在时成立,即: (9) 于是对的递推算法(7)可通过进行,步骤为: 令k=0,先给出估值 然后找出满足 (10) k更新为k+1并返回步骤2)直到收敛 令 (11) 处理后 (12) 其中 (13) 4.EM算法与高斯混合模型 在随机系统模型中,假设是通道的随机信号生成器的概率密度函数的参数,是选中通道的概率。记为。 假设个随机信号生成器和通道选择随机生成器是相互独立的,从通道输出的数据的概率是: (14) 不考虑通信信息,输出的概率为: (15) 其中: :是第个通道随机信号生成器的参数。 :参数集合。 观测数据为一批随机产生的输出信号,并且每个输出都是相互独立的,而每个输出来自哪个通道不可测。于是系统模型参数估计问题就变为通过有限的输出样本估计个通道参数. 应用(12)求解,其中可以简化为: (16) 其中: 这样我们把和分别放在两项里面,他们不相关,可以独立考虑。 在中应用约束条件: 用拉格朗日乘子优化得到: 上式的含义是,选中号通道的概率估计是每个观测数据来自于通道的条件概率(根据上一次估值估算)的平均。其中的通过下式得出。 中的的优化取决于分布函数的类型,对于为高斯分布时, 其中是分布的均值,是方差。再经过推导,有: ① , ② ③ 通道参数得更新可以看作是对的加权,加权系数可以看成是根据上一次的参数估计算出来得率属于通道的概率。 最后,上面的EM算法可能收敛到局部极大点,因此需要选择多个参数的初始值进行迭代计算,并选择使得最大的解,最大的解可由下式算出: 5.EM算法在matlab中的实现 利用上面推导出的公式①②③,我们以二个一维的高斯分布(,)来验证EM算法的性能,首先用二个一维的高斯分布来建立一个高斯混合模型。 假设: , 其中与为混合系数,且有,我们要用EM算法估计混合系数和各一维高斯分布的均值和方差。并将利用EM算法估计出的值与真实值做比较,就可以得到该算法的性能。 首先我们取的真实值为(0.4,0.6,1,2,0.25,0.36) 这样我们得到一个混合高斯分布,他的密度函数为,然后产生1000个服从的分布的观测样本点。接下来要做的就是对这1000个样本点用EM算法进行处理,来估计出一组的值。 在使用EM算法时,要首先给设定一组初值 这里假设初值为=0.3,=0.7,0.8,1.8,0.2,0.25 Matlab具体程序如下: Y=zeros(1,10000); for i=1:10000 if rand(1

您可能关注的文档

文档评论(0)

sunguohong + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档