作者:CHEONG

公众号:AI机器学习与知识图谱

研究方向:自然语言处理与知识图谱

阅读本文之前,首先注意以下两点:

1、机器学习系列文章常含有大量公式推导证明,为了更好理解,文章在最开始会给出本文的重要结论,方便最快速度理解本文核心。需要进一步了解推导细节可继续往后看。

2、文中含有大量公式,若读者需要获取含公式原稿Word文档,可关注公众号后回复:EM算法第一讲,本文主要从以下四个方面介绍EM算法:

EM算法解决的问题

EM算法E-Step和M-Step

EM算法收敛性证明

EM算法延展思考

一、EM算法解决的问题

通俗些说,EM算法就是求含有隐变量zzz的概率模型p(x,z∣θ)p(x,z|\theta)p(x,z∣θ)中的参数θ\thetaθ。对于求参数问题我们很容易想到最大似然估计法MLE,但MLE是针对比较简单的概率模型p(x∣θ)p(x|\theta)p(x∣θ)可直接使用MLE求出参数的解析解,MLE参数最大化公式所示:

对于含有隐变量的概率模型p(x,z∣θ)p(x,z|\theta)p(x,z∣θ),隐变量zzz的概率分布是未知的,无法使用MLE求出解析解,因此使用EM算法来求解参数的近似解。对于概率密度p(x,z∣θ)p(x,z|\theta)p(x,z∣θ)参数求解公式如下:

二、EM算法E-Step和M-Step

对于上式参数θt+1\theta^{t+1}θt+1求解,EM算法是分为E-Step和M-Step两步进行参数求解。

在E-Step求期望Q(θ,θt)Q(\theta,\theta^t)Q(θ,θt):

在M-Step通过最大化期望来求解参数值θ\thetaθ:

三、EM算法收敛性证明

EM算法收敛性,数学定义如下:随着θt−>θt+1\theta^{t}->\theta^{t+1}θt−>θt+1参数迭代,最大似然始终存在

下面给出证明过程。首先根据贝叶斯公式,下面式子始终成立:

分别让等式左边和右边对p(z∣x,θt)p(z|x,\theta^t)p(z∣x,θt)求积分,首先等式(5)左边对后验p(z∣x,θt)p(z|x,\theta^t)p(z∣x,θt)求积分:

其中

所以:

将等式(5)右边对p(z∣x,θt)p(z|x,\theta^t)p(z∣x,θt)求积分有:

这里令:

而Q(θ,θt)Q(\theta,\theta^t)Q(θ,θt)就是E-Step求解的期望,满足:

因为:

所以现在只要证明:

就可以得出结论:

所以:

因此,EM算法是收敛的。

四、EM算法延展思考

1.VIEM算法、MCEM算法

EM算法在E-Step和M-Step可能都存在问题,例如在E-Step求期望时无法直接求解后验概率分布,这时为了继续求解便需要近似求解后验概率分布。当使用确定近似推断方法变分推断Variational Inference求解后验概率分布时,此时便称为VIEM算法;当使用近似推断方法MCMC求解后验概率分布时,称为MCEM算法

2.EM是一类算法而非模型

EM算法是用于解决优化问题的迭代算法,和梯度下降法是一类算法。EM算法主要通过迭代优化进行参数估计,学习模型参数。

但因为p(X∣θ)p(X|\theta)p(X∣θ)很复杂,完全不了解其服从的概率分布,因此假设存在隐变量ZZZ,用ZZZ来生成数据XXX,例如:假设p(X∣θ)p(X|\theta)p(X∣θ)服从高斯分布,然后再利用积分将ZZZ给积掉,就可以得到为p(X∣θ)p(X|\theta)p(X∣θ)

对于大多数概率生成模型,比如GMM模型、HMM模型等,都是利用隐变量ZZZ来生成数据XXX

对上面等式两边同时关于q(z)q(z)q(z)求期望就可以得出:

其中:

3.狭义EM算法和广义EM算法

狭义EM算法就是前面内容所介绍的,而广义EM算法则认为在E-Step时后验概率难求解,因此在E-Step时,固定参数θ\thetaθ求解概率分布qqq;在M-Step时,固定概率分布qqq求解参数θ\thetaθ,因此狭义EM算法只是广义EM算法的一种特殊形式,用公式表示为:

三、往期精彩

【知识图谱系列】Over-Smoothing 2020综述

【知识图谱系列】基于生成式的知识图谱预训练模型

【知识图谱系列】基于2D卷积的知识图谱嵌入

【知识图谱系列】基于实数或复数空间的知识图谱嵌入

【知识图谱系列】自适应深度和广度图神经网络模型

【知识图谱系列】知识图谱多跳推理之强化学习

【知识图谱系列】知识图谱的神经符号逻辑推理

【知识图谱系列】动态时序知识图谱EvolveGCN

【知识图谱系列】多关系神经网络CompGCN

【知识图谱系列】探索DeepGNN中Over-Smoothing问题

【知识图谱系列】知识图谱表示学习综述 | 近30篇优秀论文串讲

【知识图谱系列】动态知识图谱表示学习综述 | 十篇优秀论文导读

【面经系列】八位硕博大佬的字节之旅

【机器学习系列】机器学习中的两大学派

各大AI研究院共35场NLP算法岗面经奉上

干货 | Attention注意力机制超全综述

干货 | NLP中的十个预训练模型

干货|一文弄懂机器学习中偏差和方差

FastText原理和文本分类实战,看这一篇就够了

Transformer模型细节理解及Tensorflow实现

GPT,GPT2,Bert,Transformer-XL,XLNet论文阅读速递

机器学习算法篇:最大似然估计证明最小二乘法合理性

Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码

Word2vec, Fasttext, Glove, Elmo, Bert, Flair训练词向量教程+数据+源码

原稿获取请关注公众号后回复:EM算法第一讲,原创不易,有用就点个赞呀!

【机器学习系列】EM算法第一讲:EM算法相关概述及收敛性证明相关推荐

  1. 外罚函数法(二):SUMT算法及其收敛性证明

    阅前提示:文章是中山大学-最优化理论-罚函数方法1_哔哩哔哩_bilibili的学习笔记,感兴趣可以看视频,讲的非常好. 目录 SUMT算法 1.SUMT算法描述 2.几何直观理解 收敛性 1.引理 ...

  2. 【机器学习基础】EM算法详解及其收敛性证明

    EM算法详解 (一)单高斯模型 1.1 一维高斯分布: 1.2 多维高斯分布: (二)最大似然估计 2.1 最大似然估计的数学概念: 2.2 最大似然估计的基本步骤: 2.2.1 构造似然函数: 2. ...

  3. k近邻法matlab_机器学习系列(一)K近邻算法(KNN,KNearestNeigh

    本文源自微信公众号[Python编程和深度学习]原文链接:机器学习系列(一)K-近邻算法(KNN,K-Nearest-Neighbor),欢迎扫码关注鸭! 目录 一.算法概述 二.Python代码 三 ...

  4. Java数据结构第一讲-排序算法

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  5. 算法基础课:第一讲——基础算法

    文章目录 前言: 排序 1.快速排序 作用: 算法思想: 模板: 例题: AC代码: 2.归并排序 作用: 算法思想: 模板: 例题: AC代码: 二分 1.整数二分 作用: 算法思想: 模板: 例题 ...

  6. WebMatrix网站开发系列教程:第一讲 WebMatrix入门经典

    第一讲:新手想要学习网站开发,让我们从WebMatrix开始吧! WebMatrix新手学习网站开发的首选!网站开发老鸟更新自身知识体系的最佳时机! WebMatrix简要介绍: 微软WebMatri ...

  7. MIT自然语言处理第一讲:简介和概述(第三部分)

    自然语言处理:背景和概述 Natural Language Processing:Background and Overview 作者:Regina Barzilay(MIT,EECS Departm ...

  8. 机器学习系列:期望最大(EM)算法

    1. 期望最大 期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)MLE 对 p(x∣θ)p(x|\theta)p(x∣θ) 参数的估计记为:θMLE=argmaxθlog⁡p(x ...

  9. dda算法画直线_深度学习算法第一讲感知机数学原理解析及实现

    前言    从本篇开始我们将讲解一些机器学习中常用的算法模型及实现原理,本系列会一直更新,把自己走过的弯路都记录下来,也希望后人学习的过程能更顺畅一点. 正文 感知机的理解  感知机属于机器学习算法中 ...

  10. 漫画:二分法系列篇(第一讲)

    今天是小浩算法"365刷题计划"第66天.暂定接下来讲解的几个topic为:二分法(以常考题目为主).回溯法(大部分是中等以上难度题型).分治法(以思想掌握为主).动态规划(以2维 ...

最新文章

  1. 线上比赛中关于视觉AI组与信标组补充说明
  2. Keil左侧显示行数
  3. java读取与写入_Java读取与写入文件
  4. scala成长之路(2)对象和类
  5. leetcode6. Z 字形变换
  6. linux禁止客户端上传文件_Linux 几种上传文件到linux服务的方法
  7. 如何正确的关闭 MFC 线程
  8. python获取窗口控件属性_Python——tkinter窗口视窗的功能部件
  9. 在mininet中测试TCP、UDP带宽并作图
  10. html里表格做斜线表头,word表格斜线_Word2010怎么绘制斜线表头-太平洋IT百科
  11. 新东方的负载均衡架构探索和实践
  12. js通过开始时间和结束时间计算出中间的所有日期
  13. 制作双色调图像(RGB 颜色模式)
  14. Gyro陀螺仪 > MPU 6000 vs ICM 20689
  15. ubuntu升级22.04无法启动--ACPI BIOS Error
  16. M26模块TCP透传数据流程笔记
  17. 华为+android+root权限获取root,华为root权限获取的方法有哪些【图文】
  18. myeclipse部署时An internal error occurred 错误的几种情况
  19. 题解 P4460 【[CQOI2018]解锁屏幕】
  20. 一篇快速解决Nginx Post请求405 (Not Allowed)异常的方案

热门文章

  1. exchange2003系列总结:-5邮件加密与签名的工作流程
  2. Django__WSGI
  3. 测试C++代码与WebBrowser HTML的互动
  4. 谈谈Memcached与Redis(三)
  5. java gui 保存文件_用JAVA编写一个GUI记事本程序,实现文本的输入,保存,修改,打开操作...
  6. r语言集合补集_极速统计教程之八 | 概率和集合
  7. ping 代理_linux命令行代理神器-proxychains
  8. mysql is fashion_Blog/MySQL.md at master · fashionzzZ/Blog · GitHub
  9. 鸿蒙系统在哪里,“安卓系统”和“鸿蒙系统”区别在哪里?网友:根本就是一个天上一个地下...
  10. php pdo oci8,PHP516 用phpize增加扩展PDO_OCI和OCI8