zoukankan      html  css  js  c++  java
  • 混合模型

    基本想法:既不想像参数估计(最大似然,贝叶斯学习)那样需要假定特定的分布函数形式,又不想像非参数估计那样在最终生成的模型中带着所有的训练样本。

        

    注意理解这个式子:p(j)是样本概率由第j个组分得到的概率,式(1)中也就是对联合分布求和得到了边缘分布。

    P(j)的取值需要满足概率函数的约束:

        

        

    同理,条件概率密度需要满足:

        这个表达式(1)有意跟我们常见的分类问题中的表达式很相像,那时的表达式是这样的:

    我们一般针对每一类去确定一个特定的概率密度函数形式,然后得到最终的结果。但是有时候我们得到的数据可能不完整,缺少类标签,所以不知道p(x)由哪几个成分组成,于是出现了式(1)那种存粹靠猜的做法:就假设M种组分,各用一个概率密度函数组合成x的分布!这是思路的来源。但随后用法就可以扩展了,其实可以针对每一类用一个混合分布模型,理论上可以证明,通过组合足够多的概率密度分布,可以精确接近任何一种分布!

    混合模型的求解是基于最大似然概率的。

    1、最大似然

    具体实施先要假设的形式,这里假设都是高斯函数,且协方差矩阵,所以:

        

    似然函数表达如下:

        

    这里需优化的参数有

    考虑到p(j)是一个受约束的参数,求导过程不易处理,于是用softmax函数将其约束表达出来:

        

    于是需优化的参数变成了:

        

    对公式(3)求偏导可以得到参数的最优值(偏导为零)如下:

        


        

    注意(5) (6) (7)式中都出现的可以利用贝叶斯公式计算:

                                

    由(8)式可以计算(5)(6)(7),但它又要借助前面的结果,最优参数值的计算中出现了环!如果将旧值用于左边,则求出来的新值将是已有条件下的最优值,也就是比旧值更优!这就是迭代更新的策略了!

    2、EM算法    

        依据前面的式(3),可以得到:

        

    根据混合模型的公式(1),我们将式(9)化为:

        

    又由Jensen不等式,给定序列{},满足,则下面不等式恒成立:

                

    从而可以得到:

                

    因为公式中的旧值总是已知的,可以除去公式中与新值完全无关的项,得到:

                

    问题变成了在迭代过程中求解的最小值,这里为了表达作为分布函数所受到的约束,利用拉格朗日乘子法,将目标函数重新表述为:

                    

    利用偏导等于0,简单的变换可以直接求得拉格朗日乘子

    对于高斯混合模型的情况,带入公式可以求得具体形式。

    事实上,这只是EM算法的一种特例。EM算法的提出,最初针对的是不完整的数据集。这里缺失的信息就是某个特性数据x由哪一个组分生成的信息!

     

  • 相关阅读:
    vs2015调试慢
    阿里正式发布《Java开发手册》终极版!
    为什么听有些人讲话让人抓狂
    hibernate 映射实例 学生 课程 成绩
    hibernate 树状映射
    hibernate 一对多双向的CURD
    hibernate 多对多双向关联
    hibernate 多对多单向
    hibernate 一对多双向
    hibernate 一对多关联
  • 原文地址:https://www.cnblogs.com/hustxujinkang/p/4629598.html
Copyright © 2011-2022 走看看