当前位置: 首页 > news >正文

【EM算法】三硬币模型

【EM算法】算法及注解

三硬币模型是EM算法运用的一个经典例子

EM算法:

1.选择初值

2.E步求期望

3.M步求极大

4.迭代至收敛

 

目录

三硬币模型

极大似然估计方法

EM方法


三硬币模型

3枚硬币分别记作A、B、C,这些硬币正面出现的概率分别是\pipq。进行如下掷硬币试验:先掷硬币 A,根据其结果选出硬币B 或硬币C,正面选硬币B,反面选硬币C;然后掷选出的硬币,掷硬币的结果,出现正面记作1,出现反面记作0;独立地重复n次试验(这里取n= 10),观测结果为:{1,1,0,1,0,0,1,0,1,1}

假设只能观测到掷硬币的结果,不能观测掷硬币的过程。问如何估计参数\pipq

目的是估计模型参数,自然地考量到极大似然估计方法

极大似然估计方法

三硬币模型可以写作:

P(y|\theta)=\sum_zP(y,z|\theta)=\sum_zP(z|\theta)P(y|z,\theta)=\pi p^y(1-p)^{1-y}+(1-\pi)q^y(1-q)^{1-y}

$y$:观测变量,表示一次试验观测的结果是 1 或 0

$z$:隐变量(不可观测变量),表示未观测到的掷硬币 A 的结果

$\theta=(\pi,p,q)$:模型参数

将观测数据表示为$Y=(Y_1,Y_2,\cdots,Y_n)^{\mathrm{T}}$,未观测数据表示为$Z=(Z_1,Z_2,\cdots,Z_n)^{\mathrm{T}}$则观测数据的似然函数为

$P(Y|\theta)=\sum_{Z}P(Z|\theta)P(Y|Z,\theta)$

展开得


P(Y|\theta)=\prod_{j=1}^n[\pi p^{y_j}(1-p)^{1-y_j}+(1-\pi)q^{y_j}(1-q)^{1-y_j}]

考虑求模型参数$\theta=(\pi,p,q)$的极大似然估计,即

$\hat{\theta}=\arg\operatorname*{max}_{\theta}\log P(Y|\theta)$

实际上,这个问题没有解析解,只有通过迭代的方法求解。EM 算法就是可以用于求解这个问题的一种迭代算法。换句话说,EM算法是求解含有隐变量的概率模型参数的极大似然估计法。

EM方法

首先选取参数的初值,记作 $\theta^{(0)}=(\pi^{(0)},p^{(0)},q^{(0)})$

然后通过E步和M步迭代计算参数的估计值。第$i$次迭代参数的估计值为\theta^{(i)}=$ $(\pi^{(i)},p^{(i)},q^{(i)})。EM 算法的第$i+1$次迭代如下:

E 步:计算在模型参数 $\pi^{(i)},p^{(i)},q^{(i)}$下观测数据$y_j$来自掷硬币 B 的概率

$\mu_{j}^{(i+1)}=\frac{\pi^{(i)}(p^{(i)})^{y_{j}}(1-p^{(i)})^{1-y_{j}}}{\pi^{(i)}(p^{(i)})^{y_{j}}(1-p^{(i}))^{1-y_{j}}+(1-\pi^{(i)})(q^{(i)})^{y_{j}}(1-q^{(i)})^{1-y_{j}}}$

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

$\pi^{(i+1)}=\frac{1}{n}\sum_{j=1}^{n}\mu_{j}^{(i+1)}$

p^{(i+1)}=\frac{\sum_{j=1}^n\mu_j^{(i+1)}y_j}{\sum_{j=1}^n\mu_j^{(i+1)}}
q^{(i+1)}=\frac{\sum_{j=1}^n(1-\mu_j^{(i+1)})y_j}{\sum_{j=1}^n(1-\mu_j^{(i+1)})}

进行数值计算。假设模型参数的初值取为

\pi^{(0)}=0.5,\quad p^{(0)}=0.5,\quad q^{(0)}=0.5

依据E步公式,对$y_j=1$$y_j=0$均有$\mu_j^{(1)}=0.5$

依据M步公式, 得到

\pi^{(1)}=0.5,\quad p^{(1)}=0.6,\quad q^{(1)}=0.6

再依据E步公式,得到

\mu_j^{(2)}=0.5,\quad j=1,2,\cdots,10

再依据M步公式, 得到

\pi^{(2)}=0.5,\quad p^{(2)}=0.6,\quad q^{(2)}=0.6

两次迭代结果一致,这时已经满足收敛条件

于是得到模型参数$\theta$的极大似然估计

$\hat{\pi}=0.5,\quad\hat{p}=0.6,\quad\hat{q}=0.6$

$\pi=0.5$表示硬币 A 是均匀的,这一结果容易理解

EM算法对初值敏感:

如果取初值\pi^{(0)}=0.4,\:p^{(0)}=0.6,\:q^{(0)}=0.7, 那么得到的模型参数的极大似然估计是$\hat{\pi}=0.4064,\quad\hat{p}=0.5368,\quad\hat{q}=0.6432$

http://www.dtcms.com/a/279773.html

相关文章:

  • [硬件电路-21]:模拟信号处理运算与数字信号处理运算的详细比较
  • 连分数的收敛判别与计算方法
  • 鸿蒙开发NDK之---- 如何将ArkTs的类型转化成C++对应的类型(基础类型,包含部分代码解释)
  • Jetson平台CSI摄像头采集与显示:gst-launch-1.0与OpenCV实战
  • 【linux V0.11】boot
  • 多生产者多消费者问题(操作系统os)
  • SpringCloud之Hystrix
  • 【DOCKER】-4 dockerfile镜像管理
  • linux网络存储——freeNAS的安装配置
  • Spring Cloud分布式配置中心:架构设计与技术实践
  • MFC/C++语言怎么比较CString类型 第一个字符
  • 读文章 Critiques of World model
  • Java(集合)
  • aspnetcore Mvc配置选项中的ModelMetadataDetailsProviders
  • SAP-ABAP:SAP库存管理核心增强:IF_EX_MB_DOCUMENT_BADI 深度解析
  • 交换类排序的C语言实现
  • Hello, Tauri!
  • 基于Android的景点旅游信息系统App
  • 使用aiohttp实现高并发爬虫
  • uni-app开发的页面跳转全局加载中
  • 基于HarmonyOS的智能灯光控制系统设计:从定时触发到动作联动全流程实战
  • C++ 中常见的字符串定义方式及其用法
  • 1111自己
  • 基础分类模型及回归简介(一)
  • 体验RAG GitHub/wow-rag
  • 前端同学,你能不能别再往后端传一个巨大的JSON了?
  • 引用(C++)
  • python的微竞网咖管理系统
  • ⽂本预处理(一)
  • volatile 关键字