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

【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.xdnf.cn/news/15435.html

相关文章:

  • 机器学习/深度学习训练day1
  • 人工智能正逐步商品化,而“理解力”才是开发者的真正超能力
  • 【第一章编辑器开发基础第二节编辑器布局_1水平与垂直布局(1/4)】
  • Sharding-Sphere学习专题(二)案例和分片策略
  • 动态规划题解——乘积最大子数组【LeetCode】
  • 暑期自学嵌入式——Day02(C语言阶段)
  • 【论文阅读】Masked Autoencoders Are Effective Tokenizers for Diffusion Models
  • 内容管理系统指南:企业内容运营的核心引擎
  • Kotlin Map映射转换
  • 论文阅读:WildGS-SLAM:Monocular Gaussian Splatting SLAM in Dynamic Environments
  • 院级医疗AI管理流程—基于数据共享、算法开发与工具链治理的系统化框架
  • ubuntu之坑(十八)——XML相关
  • CSS基础功能介绍和使用
  • Spring Boot项目结构解析:构建高效、清晰的代码框架
  • 关于僵尸进程
  • 进程、线程、协程
  • AI革命,分布式存储也在革命,全闪化拐点已至
  • MFC扩展库BCGControlBar Pro v36.2新版亮点:可视化设计器升级
  • 深入解析Paimon的RowKind数据变更机制 和 KeyValue存储
  • vue中使用西瓜播放器xgplayer (封装)+xgplayer-hls 播放.m3u8格式视频
  • 【王树森推荐系统】物品冷启05:流量调控
  • Java-72 深入浅出 RPC Dubbo 上手 生产者模块详解
  • 清除 Android 手机 SIM 卡数据的4 种简单方法
  • 网络准入控制系统的作用解析,2025年保障企业入网安全第一道防线
  • OpenVela之开发自测试框架cmocka
  • 【算法训练营Day12】二叉树part2
  • 量产技巧之RK3588 Android12默认移除导航栏状态栏​
  • google浏览器::-webkit-scrollbar-thumb设置容器滚动条滑块不生效
  • Android 性能优化:启动优化全解析
  • C++-linux 7.文件IO(一)系统调用