机器学习---EM算法

1. 极大似然估计与EM算法

        极大似然估计是一种常用的参数估计方法,它是以观测值出现的概率最大作为准则。关于极

大似然估计,假设现在已经取到样本值了,这表明取到这一样本的概率L(θ) 比较

大。我们自然不会考虑那些不能使样本出现的θ作为估计值,再者,如果已知当

θ=θ(0)是使L(θ)取很大值,而θ中的其他θ的值使 L(θ)取值很小,自然认为取θ(0)作为未知参数

θ 的估计值较为合理。        

         在极大似然估计中,独立同分布(IID)的数据,  其概率密度函数为

似然函数定义为对数似然函数定义为θ的

极大似然估计为

        极大似然估计存在着问题是:①对于许多具体问题不能构造似然函数解析表达式 ②似然函数

的表达式过于复杂而导致求解方程组非常困难。正是在这种情况下,才提出了EM算法。EM算法主

要用于非完全数据参数估计,它是通过假设隐变量的存在,极大化地简化了似然函数方程,从而解

决了方程求解问题

       计算极大似然估计(maximum likelihood  estimate,MLE),需要求似然函数的极值。如求正态

分布均值和方差的MLE:

观测数据:观测到的随机变量Y的IID样本

缺失数据:未观测到的随机变量Z的值

完整数据:包含观测到的随机变量Y和未观测到的随机变量Z的数据,

        EM算法是一种迭代算法,1977年由Dempster等人总结提出,用于含有隐变量的概率模型参

数的极大似然估计,或极大后验概率估计。EM算法的每次迭代由两步组成:E步,求期望

(Expectation);M步,求极大(Maximization)。所以这一算法称为期望极大算法。

2. 3硬币模型

       假设有3枚硬币,分别记作A、B、C。这些硬币正面出现的概率概率分别是a、b、c。进行如

下掷硬币试验:先掷A,根据其结果选出硬币B或C,正面选择硬币B,反面选硬币C;然后掷选出

的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次试验(这里n=10),观测结

果如下:1、1、0、1、0、0、1、0、1、1

假设只能观测到掷硬币的结果,不能观测到掷硬币的过程。问如何估计三硬币正面出现的概率,即

三硬币模型的参数。三硬币模型可以写作:

这里,随机变量y是观测变量,表示一次试验观测的结果是1或0;随机变量z是隐变量,表示未观测

到的掷硬币A的结果,θ=(a,b,c)是模型参数。注意,随机变量y的数据可以观测,随机变量z的数据

不可观测。

将观测数据表示为,未观测数据表示

则观测数据的似然函数为:

即:

考虑求模型参数θ=(a,b,c)的极大似然估计,即:

这个问题没有解析解,只能通过迭代的方法求解。EM算法就是可以用于求解这个问题的一种迭代

算法,下面给出针对以上问题的EM算法:

EM算法首先选取参数的初值,记作:

然后通过下面的步骤迭代计算参数的估计值,直至收敛为止。第i次迭代参数的估计值为:

EM算法的第i+1次迭代如下:

①E步:计算在模型参数下观测数据来自掷硬币B的概率:

计算似然函数的期望:

M步:求似然函数的极大值

计算模型参数的新估计值:

 

进行数字计算:假设模型参数的初始值取为:由E步第一个公式,

对y=0与y=1均有利用迭代公式(新估计值),得到

由E步第一个公式有,j=1,2,3...10,继续迭代得

于是参数模型的极大似然估计:

3. EM算法步骤

        EM算法的实现思路:首先根据已经给出的观测数据,估计出模型参数的值; 然后再依据上⼀

步估计出的参数值估计缺失数据的值,再根据估计出的缺失数据加上之前已经观测到的数据重新再

对参数值进行估计;然后反复迭代,直至最后收敛,迭代结束。

EM算法计算流程:

EM算法步骤:

选择模型参数的初值,开始迭代; 

E步:记为第i次迭代参数θ的估计值,在第i+1次迭代的E步,定义Q函数并计算:

这里,Q函数定义为完全数据的对数似然函数在给定观测数据Y和当前的参

下对未观测数据Z的条件概率分布的期望;通过求期望,去掉了完整似然函数中的

变量Z。其实就是用这个缺失数据的期望值来代替缺失的数据,而这个缺失的数据期望值和它的概

率分布有关。那么我们可以通过对似然函数关于缺失数据期望的最大化,来逼近原函数的极大值。

EM算法本质就是含有隐变量的概率模型参数的极大似然估计法。即EM的E步。

M步:求使极大化的θ,确定第i+1次迭代的参数的估计值

重复E、M两步,直到收敛。每次参数更新会增加非完整似然值,反复迭代后,会收敛到似然的局

部最大值。

4. EM算法原理

EM算法是一种解决存在隐含变量优化问题的有效方法。它的具体思想是:既然不能直接最大化参

数似然函数L,我们可以不断地建立参数似然函数L的下界(E步),然后优化下界(M步)。

利用琴生不等式得到似然函数的下界:

对于每一个样例i,让Qi表示该样例隐含变量z的某种分布,Qi满足条件:

这个过程可以看作是对L(θ)求了下界。对于的选择有很多种,哪种更好呢?假设θ已经给

定,那么L(θ)的值就决定于。我们可以通过调整这两个概率使下界不断上

升,以逼近L(θ)的真实值,那么什么时候算是调整好了呢?当不等式变成等式时,说明调整后的

概率能够等价L(θ)。根据琴生不等式,等式成立的条件是随机变量取值为常数值,故可得到:

c为常数,不依赖于

由于,那么就有(多个等式分子分母相加不变,这个认为每

个样例的两个概率比值都是c),那么有:

带入前面得到的似然函数下界,可以发现L(θ)的下界函数就是前面定义的

函数。 这一步是E步,建立了L(θ)的下界。

接下来是M步,就是在给定后,调整θ,去极大化L(θ)的下界,那么怎么确保EM收敛

呢?又如何确保每次迭代都能使极大似然估计单调增加呢?下述两个定理表明了利用EM算法所得

到的估计序列具有良好的收敛性,且其收敛到p(θ丨Y)的最大值。

定理1:设P(Y丨θ)为观测数据的似然函数,(i=1,2...)为EM算法得到的参数估计序列,

(i=1,2...)为对应的似然函数序列,则是单调递增的,即

保证了EM算法的每次迭代都使似然函数增大或达到局部极值。

定理2:设为观测数据的对数似然函数(i=1,2...)为EM算法得到的参数估计序列,(i=1,2...)为对应的对数似然序列。

(1)如果P(Y丨θ)有上界,则收敛到某一值

(2)在函数满足一定条件下,由EM算法得到的参数估计序列的收

敛值的稳定点。

保证了EM算法所得到的估计序列具有良好的收敛性,且其收敛到p(θ丨Y)的最大值。

5. EM算法补充

EM算法的另一种理解:坐标上升法

下图的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐

标轴的,因为每一步只优化一个变量。就像在x-y坐标系中找一个曲线的极值,然而曲线函数不能

直接求导,因此什么梯度下降方法就不适用了。但固定一个变量后,另外一个可以通过求导得到,

因此可以使用坐标上升法,一次固定一个变量,对另外的求极值,最后逐步逼近极值。对应到EM

上,E步:固定θ,优化Q;M步:固定Q,优化θ;交替将极值推向最大。

EM算法的几点说明: 

①参数的初值可以任意选择,但需要注意EM算法对初值是敏感的

②E步求Q函数。Q函数式中Z是未观测数据,Y是观测数据。注意,的第一个变元表

示要极大化的参数,第二个变元表示参数的当前估计值。每次迭代实际在求Q函数及其极大。

③M步求的极大化,得到,完成一次迭代。每次迭代都使似

然函数增大或达到局部极值。

④给出停止迭代的条件,一般是对较小的正数,若满足以下条件,则停止迭代。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/208225.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高校智慧用电管理平台

高校智慧用电管理平台是一种基于物联网、云计算、大数据等技术的智能化用电管理系统,旨在实现高校用电的实时监测、智能控制、数据分析和管理决策。 具体来说,该平台通常包括以下功能和特点: 实时监测:通过安装传感器、智能终端等…

ZeroTier外网访问实验室Linux服务器

ZeroTier外网访问实验室Linux服务器 1、在ZeroTier上创建一个自己的Network 进入ZeroTier的官网https://www.zerotier.com/注册一个账号 注册完之后登录进去,创建自己的Network 创建完之后来到IPv4的分配管理,选择主机位只有后8位的IP,才能…

img[src=““] img无路径情况下,页面出现边框

在开发过程中遇到一个问题就是当img标签的src为空时,会出现边框,影响美观 其实我们可以直接加上这个就可以解决了 img[src""],img:not([src]){opacity:0; }

金融系统中容易踩坑的问题

1、产品类型指的是大类还是小类 有的产品比如员工贷既是指员工贷小类,也是指员工贷系列的产品,这时候需要关注需求描述的员工贷覆盖范围是产品大类还是小类。 2、未带参数时是否有默认处理 前端传输的某个值为空时,后端是否需要设默认值&a…

夯实c基础

夯实c基础 区别: 图一的交换,(交换的是地址而不是两数)无法实现两数的交换。 题干以下程序的输出结果为( c  )。 void fun(int a, int b, int c){ ca*b; } void main( ){ int…

模型层(回顾补充)

1.1基本使用 orm框架---》对象关系映射 数据库中:一个个表 :user表,book表,一条条的记录 程序中:一个个类,一个个对象 以后数据库中一张表---》对应程序中一个类 以后数据库中一条记录--》对应…

ThinkPHP 2.x任意代码执行漏洞

任务一: 复现环境中的代码漏洞 任务二: 尝试利用代码执行漏洞读取服务器web目录下的文件列表。 任务一: 1.搭建环境: 2.在php环境下直接输入{${phpinfo}}测试代码片段 2.写入一句话木马,用antsword连接&#xff0…

C++基础 -24- 覆盖

覆盖的三个条件 -1- 基类和派生类存在同名的函数 -2- 基类的函数为虚函数 -3- 必须使用基类引用或指针指向派生类 #include "iostream"using namespace std;class base {public:base(){}virtual void show(){cout << "base show" << endl;} };…

【LeetCode】栈和队列OJ题---C语言版

栈和队列OJ题 1.括号匹配问题&#xff08;1&#xff09;题目描述&#xff1a;&#xff08;2&#xff09;思路表述&#xff1a;&#xff08;3&#xff09;代码实现&#xff1a; 2.用队列实现栈&#xff08;1&#xff09;题目描述&#xff1a;&#xff08;2&#xff09;思路表述&…

OSI七层模型与TCP/IP四层模型的区别(计算机网络)

一、OSI七层网络模型 OSI 网络模型共有 7 层&#xff0c;分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。 应用层&#xff0c;负责给应用程序提供统一的接口&#xff1b;表示层&#xff0c;负责把数据转换成兼容另一个系统能识别的格式&#xff1b;会话…

NX二次开发UF_MTX2_copy 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX2_copy Defined in: uf_mtx.h void UF_MTX2_copy(const double mtx_src [ 4 ] , double mtx_dst [ 4 ] ) overview 概述 Copies the 2x2 matrix elements from the source m…

对外汉语教师简历(精选12篇)

以对外汉语老师招聘需求为背景&#xff0c;我们制作了1份全面、专业且具有参考价值的简历案例&#xff0c;大家可以灵活借鉴&#xff0c;希望能帮助大家在众多候选人中脱颖而出。 对外汉语教师简历下载&#xff08;在线制作&#xff09;&#xff1a;百度幻主简历或huanzhucv.c…

多线程原理和常用方法以及Thread和Runnable的区别

文章目录 &#x1f366;多线程原理&#x1f367;随机性打印&#x1f368;多线程内存图解 &#x1f369;Thread类的常用方法&#x1f36a;获取线程名称 getName()&#x1f382;设置线程名称 setName() 或者 new Thread("线程名字")&#x1f370;使当前正在执行的线程以…

数据挖掘实战:基于 Python 的个人信贷违约预测

本次分享我们 Python 觅圈的一个练手实战项目&#xff1a;个人信贷违约预测&#xff0c;此项目对于想要学习信贷风控模型的同学非常有帮助。 技术交流 技术要学会交流、分享&#xff0c;不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。 好的文章离不开粉丝的分享、…

ssm+java车辆售后维护系统 springboot汽车保养养护管理系统+jsp

以前汽车维修人员只是在汽车运输行业中从事后勤保障工作,随着我国经济的发展,汽车维修行业已经从原来的从属部门发展成了如今的功能齐备的独立企业。这种结构的转变,给私营汽修企业和个体汽修企业的发展带来了契机,私营企业和个体维修企业的加入也带动了整个汽修行业的整体水平…

Python中进行特征重要性分析的8个常用方法

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 在机器学习和数据科学领域&#xff0c;理解特征在模型中的重要性对于构建准确且可靠的预测模型至关重要。Python提供了多种强大的工具和技术&#xff0c;能够探索特征重要性的各个方面。 本文将详细介绍8种常用…

Linux系统:使用CloudDrive实现云盘本地挂载

此处以不使用Docker服务 系统&#xff1a; Ubuntu22.04 硬件信息&#xff1a; x86_64 1 安装CloudDrive CloudDrive下载地址 在服务器上安装fusemount3 sudo apt-get -y install fuse3下载对应版本的CloudDrive压缩包&#xff0c;我的机器为&#xff1a;clouddrive-2-linux-…

外汇天眼:外汇市场是由哪些层级构成?

除了一般投资人外&#xff0c;外汇市场基本上可分为以下三个层级&#xff1a; 第一层级&#xff1a;顶级做市商 顶级做市商&#xff1a;各大大型银行、央行和一些非银行做市商 根据2016年的Euromoney调查外汇显示&#xff1a;外汇市场最顶端的无疑是各大银行做市商&#xff…

【IEEE出版|往届均已成功EI检索】2024年第四届消费电子与计算机工程国际学术会议(ICCECE 2024)

2024年第四届消费电子与计算机工程国际学术会议&#xff08;ICCECE 2024&#xff09; 2024 4th International Conference on Consumer Electronics and Computer Engineering 进入21世纪以来&#xff0c;计算机技术的高速发展带来了消费电子产品的快速更迭。在技术迅速发展历…

虚假IP地址攻击的溯源方法

随着网络技术的迅速发展&#xff0c;网络攻击行为也日益猖獗。其中&#xff0c;虚假IP地址攻击是一种较为常见的网络攻击方式&#xff0c;它利用虚假的IP地址&#xff0c;通过互联网对目标进行攻击和入侵。这种攻击方式不仅难以追踪&#xff0c;而且往往会给企业和个人带来巨大…