zoukankan      html  css  js  c++  java
  • 2. EM算法-原理详解

    1. EM算法-数学基础

    2. EM算法-原理详解

    3. EM算法-高斯混合模型GMM

    4. EM算法-高斯混合模型GMM详细代码实现

    5. EM算法-高斯混合模型GMM+Lasso

    1. 前言

    概率模型有时既含有观测变量(observable variable),又含有隐变量或潜在变量(latent variable),如果仅有观测变量,那么给定数据就能用极大似然估计或贝叶斯估计来估计model参数;但是当模型含有隐变量时,需要一种含有隐变量的概率模型参数估计的极大似然方法估计——EM算法

    2. EM算法原理

    EM算法称为期望极大值算法(expectation maximizition algorithm,EM),是一种启发式的迭代算法。

    EM算法的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM算法的E步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM算法的M步)。

    可以通过K-Means算法来简单理解EM算法的过程。

    E步:

    在初始化K个中心点后,我们对所有的样本归到K个类别。

    M步:

    在所有的样本归类后,重新求K个类别的中心点,相当于更新了均值。

    3. EM算法公式

    对于(m)个样本观察数据(x=(x^{(1)},x^{(2)},...x^{(m)}))中,找出样本的模型参数( heta),极大化模型分布的对数似然函数如下,假设数据中有隐含变量(z=(z^{(1)},z^{(2)},...z^{(m)}))

    [L( heta) = sumlimits_{i=1}^m logP(x^{(i)}| heta) ]

    加入隐含变量公式变为如下,注意到下式中(Q_i(z(i)))是一个分布,因此(sum Q_i(z(i))logP(x(i),z(i)|θ))可以理解为(logP(x(i),z(i)|θ))基于条件概率分布(Q_i(z(i)))的期望。

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

    [L( heta) = sumlimits_{i=1}^m logsumlimits_{z^{(i)}}Q_i(z^{(i)})P(x^{(i)},z^{(i)}| heta);;;s.t.sumlimits_{z}Q_i(z^{(i)}) =1;;;;;(1) ]

    根据Jensen不等式,(1)式变为(2)

    [E [f left ( g(X) ight ) ] ge f left (E[g(X)] ight ) ]

    [L( heta) = sumlimits_{i=1}^m logsumlimits_{z^{(i)}}Q_i(z^{(i)})P(x^{(i)},z^{(i)}| heta)gesumlimits_{i=1}^m sumlimits_{z^{(i)}}Q_i(z^{(i)})logP(x^{(i)},z^{(i)}| heta);;;s.t.sumlimits_{z}Q_i(z^{(i)}) =1;;;;;(2) ]

    4. EM算法流程

    输入:观察数据(x=(x^{(1)},x^{(2)},...x^{(m)})),联合分布(p(x,z| heta)), 条件分布(p(z|x, heta)), EM算法退出的阈值(gamma)

    1. 随机初始化模型参数( heta)的初值( heta^0)
    2. 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)} ]

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

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

    1. 重复2,3两步,直到极大似然估计(L( heta, heta^j))的变化小于(gamma)

    5. 总结

    如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。

    本节介绍的EM算法是通用的EM算法框架,其实EM算法有很多实现方式,其中比较流行的一种实现方式是高斯混合模型(Gaussian Mixed Model)。

  • 相关阅读:
    机器学习之大数据集
    机器学习之协同过滤算法(推荐系统)
    机器学习之异常检测
    机器学习之PCA主成分分析
    机器学习之K-means算法
    机器学习之SVM支持向量机
    机器学习之模型选择与改进
    springmvc spring mybatis插入mysql中文乱码
    springmvc和http404错误
    oracle删除users表空间
  • 原文地址:https://www.cnblogs.com/huangyc/p/10123780.html
Copyright © 2011-2022 走看看