【机器学习系列】EM算法第一讲:EM算法相关概述及收敛性证明
作者: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算法相关概述及收敛性证明相关推荐
- 外罚函数法(二):SUMT算法及其收敛性证明
阅前提示:文章是中山大学-最优化理论-罚函数方法1_哔哩哔哩_bilibili的学习笔记,感兴趣可以看视频,讲的非常好. 目录 SUMT算法 1.SUMT算法描述 2.几何直观理解 收敛性 1.引理 ...
- 【机器学习基础】EM算法详解及其收敛性证明
EM算法详解 (一)单高斯模型 1.1 一维高斯分布: 1.2 多维高斯分布: (二)最大似然估计 2.1 最大似然估计的数学概念: 2.2 最大似然估计的基本步骤: 2.2.1 构造似然函数: 2. ...
- k近邻法matlab_机器学习系列(一)K近邻算法(KNN,KNearestNeigh
本文源自微信公众号[Python编程和深度学习]原文链接:机器学习系列(一)K-近邻算法(KNN,K-Nearest-Neighbor),欢迎扫码关注鸭! 目录 一.算法概述 二.Python代码 三 ...
- Java数据结构第一讲-排序算法
常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...
- 算法基础课:第一讲——基础算法
文章目录 前言: 排序 1.快速排序 作用: 算法思想: 模板: 例题: AC代码: 2.归并排序 作用: 算法思想: 模板: 例题: AC代码: 二分 1.整数二分 作用: 算法思想: 模板: 例题 ...
- WebMatrix网站开发系列教程:第一讲 WebMatrix入门经典
第一讲:新手想要学习网站开发,让我们从WebMatrix开始吧! WebMatrix新手学习网站开发的首选!网站开发老鸟更新自身知识体系的最佳时机! WebMatrix简要介绍: 微软WebMatri ...
- MIT自然语言处理第一讲:简介和概述(第三部分)
自然语言处理:背景和概述 Natural Language Processing:Background and Overview 作者:Regina Barzilay(MIT,EECS Departm ...
- 机器学习系列:期望最大(EM)算法
1. 期望最大 期望最大算法的目的是解决具有隐变量的混合模型的参数估计(极大似然估计)MLE 对 p(x∣θ)p(x|\theta)p(x∣θ) 参数的估计记为:θMLE=argmaxθlogp(x ...
- dda算法画直线_深度学习算法第一讲感知机数学原理解析及实现
前言 从本篇开始我们将讲解一些机器学习中常用的算法模型及实现原理,本系列会一直更新,把自己走过的弯路都记录下来,也希望后人学习的过程能更顺畅一点. 正文 感知机的理解 感知机属于机器学习算法中 ...
- 漫画:二分法系列篇(第一讲)
今天是小浩算法"365刷题计划"第66天.暂定接下来讲解的几个topic为:二分法(以常考题目为主).回溯法(大部分是中等以上难度题型).分治法(以思想掌握为主).动态规划(以2维 ...
最新文章
- 线上比赛中关于视觉AI组与信标组补充说明
- Keil左侧显示行数
- java读取与写入_Java读取与写入文件
- scala成长之路(2)对象和类
- leetcode6. Z 字形变换
- linux禁止客户端上传文件_Linux 几种上传文件到linux服务的方法
- 如何正确的关闭 MFC 线程
- python获取窗口控件属性_Python——tkinter窗口视窗的功能部件
- 在mininet中测试TCP、UDP带宽并作图
- html里表格做斜线表头,word表格斜线_Word2010怎么绘制斜线表头-太平洋IT百科
- 新东方的负载均衡架构探索和实践
- js通过开始时间和结束时间计算出中间的所有日期
- 制作双色调图像(RGB 颜色模式)
- Gyro陀螺仪 > MPU 6000 vs ICM 20689
- ubuntu升级22.04无法启动--ACPI BIOS Error
- M26模块TCP透传数据流程笔记
- 华为+android+root权限获取root,华为root权限获取的方法有哪些【图文】
- myeclipse部署时An internal error occurred 错误的几种情况
- 题解 P4460 【[CQOI2018]解锁屏幕】
- 一篇快速解决Nginx Post请求405 (Not Allowed)异常的方案
热门文章
- exchange2003系列总结:-5邮件加密与签名的工作流程
- Django__WSGI
- 测试C++代码与WebBrowser HTML的互动
- 谈谈Memcached与Redis(三)
- java gui 保存文件_用JAVA编写一个GUI记事本程序,实现文本的输入,保存,修改,打开操作...
- r语言集合补集_极速统计教程之八 | 概率和集合
- ping 代理_linux命令行代理神器-proxychains
- mysql is fashion_Blog/MySQL.md at master · fashionzzZ/Blog · GitHub
- 鸿蒙系统在哪里,“安卓系统”和“鸿蒙系统”区别在哪里?网友:根本就是一个天上一个地下...
- php pdo oci8,PHP516 用phpize增加扩展PDO_OCI和OCI8