EM算法推导

网上和书上有关于EM算法的推导,都比较复杂,不便于记忆,这里给出一个更加简短的推导,用于备忘。

在不包含隐变量的情况下,我们求最大似然的时候只需要进行求导使导函数等于0,求出参数即可。但是包含隐变量,直接求导就变得异常复杂,此时需要EM算法,首先求出隐变量的期望值(E步),然后,把隐变量当中常数,按照不包含隐变量的求解最大似然的方法解出参数(M步),反复迭代,最终收敛到局部最优。下面给出EM算法的推导

我们有对数似然函数
\[
L(\theta)=\log P(y|\theta) = \log\sum_zp(y,z|\theta)
\]
可以表示成包含隐变量\(z\)的形式,然后通过边缘化再消除\(z\),效果是一样的。

由于是迭代,我们需要每次得到的新的似然结果比上一次的似然结果要大,于是我们的目标是下式
\[
\theta = \arg\max_\theta L(\theta) - L(\theta')
\]
由于$L(\theta') $ 是常量,所以,使得\(L(\theta)\)最大化即可。下面看看如何最大化 \(L(\theta)\) :
\[
\begin{split}
\theta &= \arg\max_\theta L(\theta)\\
&= \arg\max_\theta \log\sum_zp(y,z|\theta)\\
&= \arg\max_\theta \log\sum_zp(z|y, \theta')\dfrac{p(y, z|\theta)}{p(z|y, \theta')}\\
&= \arg\max_\theta \sum_zp(z|y,\theta')\log\dfrac{p(y,z|
\theta)}{p(z|y,\theta')}\\
&= \arg\max_\theta\sum_zp(z|y,\theta')\log(p(y, z|\theta))\\
&= \arg\max_\theta Q(\theta, \theta')
\end{split}
\]

至此,得到传说中的Q函数,然后求解出参数\(\theta\)即可

EM算法简易推导的更多相关文章

  1. 【机器学习】EM算法详细推导和讲解

    今天不太想学习,炒个冷饭,讲讲机器学习十大算法里有名的EM算法,文章里面有些个人理解,如有错漏,还请读者不吝赐教. 众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的 ...

  2. EM算法以及推导

    EM算法 Jensen不等式 其实Jensen不等式正是我们熟知的convex函数和concave函数性质,对于convex函数,有 \[ \lambda f(x) + (1-\lambda)f(y) ...

  3. EM算法-完整推导

    前篇已经对EM过程,举了扔硬币和高斯分布等案例来直观认识了, 目标是参数估计, 分为 E-step 和 M-step, 不断循环, 直到收敛则求出了近似的估计参数, 不多说了, 本篇不说栗子, 直接来 ...

  4. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  5. EM算法理论与推导

    EM算法(Expectation-maximization),又称最大期望算法,是一种迭代算法,用于含有隐变量的概率模型参数的极大似然估计(或极大后验概率估计) 从定义可知,该算法是用来估计参数的,这 ...

  6. EM算法(Expectation Maximization Algorithm)初探

    1. 通过一个简单的例子直观上理解EM的核心思想 0x1: 问题背景 假设现在有两枚硬币Coin_a和Coin_b,随机抛掷后正面朝上/反面朝上的概率分别是 Coin_a:P1:-P1 Coin_b: ...

  7. EM算法

    EM算法的推导

  8. 猪猪的机器学习笔记(十四)EM算法

    EM算法 作者:樱花猪   摘要: 本文为七月算法(julyedu.com)12月机器学习第十次次课在线笔记.EM算法全称为Expectation Maximization Algorithm,既最大 ...

  9. EM算法原理总结

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等.本文就对 ...

随机推荐

  1. [VC]ocx控件怎么屏蔽backspace的后退键

    <script Language=javascript> function   document.onkeydown()   {   if(window.event.keyCode   = ...

  2. CF Gym 100637K Microcircuits (DP)

    题意:给你n个点,将这些点放在一个环上,问你不相交的连k条线的方案数.(没有重点) 题解:dp[i][j]表示i个点连j条线的方案数,那么新加一个点i, 情况1,i没有和之前的点相连,方案数为dp[i ...

  3. [学习笔记] Markdown语法备忘

    Markdown语法总结 标题 # 这是一级标题 ## 这是二级标题 ### 这是三级标题 #### 这是四级标题 ##### 这是五级标题 ###### 这是六级标题 注意#后面要加空格 字体 ** ...

  4. 【转】iOS开发-文件管理(一)

    iOS开发-文件管理(一) 一.iOS中的沙盒机制 iOS应用程序只能对自己创建的文件系统读取文件,这个独立.封闭.安全的空间,叫做沙盒.它一般存放着程序包文件(可执行文件).图片.音频.视频.pli ...

  5. 关于tomcat的classloader的一点想法

    关于tomcat的classloader相关的帖子网上非常多,我觉得比较好的有: https://www.jianshu.com/p/d90e4430b0b9 https://blog.csdn.ne ...

  6. Java第十二次作业:继承与抽象类解决工人与学生的问题,抽象类实例。抽象类作用——为多态创造了可能。抽象类的作用总结

    继承与抽象类解决工人与学生的问题 抽象类实例 package com.swift; public abstract class Person { private String name; privat ...

  7. stataic 变量

    static 是静态变量的的类型说明符 静态变量属于静态存储方式,(外部变量也是静态存储方式) 静态的局部变量 静态局部变量属于静态存储方式,它具有以下特点: (1)静态局部变量在函数内定义 它的生存 ...

  8. C# 用qq邮箱发邮件

    一.在企业的QQ邮箱中开启POP3/SMTP服务 开启服务时,授权密码保存好. 二.示例 public static string UserName = ""; // 企业邮箱 p ...

  9. Missing letters-freecodecamp算法题目

    Missing letters 1.要求 从传递进来的字母序列中找到缺失的字母并返回它. 如果所有字母都在序列中,返回 undefined. 2.思路 设定缺失变量miss 在for循环遍历字符串的各 ...

  10. Android读书笔记四

    第四章 这是一次源代码之旅,学到了如何下载和编译Android源代码和Linux内核源代码.来详细阐述一下一些具体过程 一.Android源代码下载环境 1.安装下载Android源代码的环境配置 ( ...