• EM 算法资料


    EM 算法的英文全称是: Expectation-Maximum。

    EM 算法的步骤

    假设 (Z) 是隐变量,( heta) 是待定参数。

    • E 步:固定参数 ( heta),求 (Z) 的期望;
    • M 步:求 ( heta) 的极大似然估计。

    与 K-means 算法的比较

    1、固定聚类中心,把每一个数据点分配到最近的中心(先确定隐含类别变量 (c),得到每个数据点的类别);
    2、现在每个数据点都有了类别,我们发现,可以重新计算每个类别的中心,使得损失函数 (J) 变得更小(固定了每个数据点的类别,找到聚类中心,使得损失函数变得更小)。

    这样从 K-means 里我们可以看出它其实就是 EM 的体现,E 步是 ,M 步更新其他参数 (mu) 来使 (J) 最小化。

    K-means 一开始不知道每个样例 (x^{(i)}) 对应隐含变量,也就是每个数据 (x^{(i)}) 对应的类别 (c^{(i)}) ,这里 (i) 是数据集编号。

    最开始可以对每一个数据任意指定一个 (c^{(i)}) 给它,然后为了让完全数据的联合概率分布的似然函数 (P(x,y)) 最大(这里是要让损失函数 (J) 最小)。

    我们求出在每个数据给定 (c^{(i)}) 情况下,(J) 最小时的(mu_j)(前面提到的其他未知参数,这里是聚类中心),然而此时发现,可以有更好的 (c^{(i)})(质心与样例距离最小的类别 (x^{(i)}) )指定给样例 (x^{(i)}) ,那么(c^{(i)})得到重新调整,上述过程就开始重复了,直到没有更好的 (c^{(i)}) 指定。

    K-means 算法的介绍可以参考:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html

    这里的隐含类别变量指定方法比较特殊,属于硬指定,从 (k) 个类别中硬选出一个给样例,而不是对每个类别赋予不同的概率。总体思想还是一个迭代优化过程,有目标函数,也有参数变量,只是多了个隐含变量,确定其他参数估计隐含变量,再确定隐含变量估计其他参数,直至目标函数最优。

    (EM算法)The EM Algorithm

    https://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html

    E 步:找到下界;
    M 步:优化下界。

    刘建平:EM算法原理总结

    https://www.cnblogs.com/pinard/p/6912636.html

    E 步:计算联合分布的条件概率期望:

    [Q_i(z^{(i)}) = P( z^{(i)}|x^{(i)}, heta^{j})) ]

    [L( heta, heta^{j}) = sumlimits_{i=1}^msumlimits_{z^{(i)}}Q_i(z^{(i)})log{P(x^{(i)}, z^{(i)}| heta)} ]

    M 步:极大化 (L( heta, heta^{j})),得到 ( heta^{j+1})

    [ heta^{j+1} = arg max limits_{ heta}L( heta, heta^{j}) ]

    EM算法的收敛性思考:对数似然函数的值在迭代的过程中一直在增大。

    K-Means聚类和EM算法复习总结:https://www.cnblogs.com/arachis/p/KMeans.html

  • 相关阅读:
    dubbo注册服务IP解析异常及IP解析源码分析
    Linux下安装并破解StarUML
    Mysql中int(1)的误解及说明
    grep参数说明及常用用法
    ubuntu中使用nginx把本地80端口转到其他端口
    IDEA下安装/配置Jrebel
    Eclipse下安装/配置Jrebel6.X
    shell脚本问题read: Illegal option -t
    docker pull 提示错误的username or password
    linux 安装 rpm 的jdk
  • 原文地址:https://www.cnblogs.com/liweiwei1419/p/9870023.html
Copyright © 2020-2023  润新知