当前位置: 首页 > 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.lryc.cn/news/588566.html

相关文章:

  • 自动微分模块
  • Class9简洁实现
  • JavaScript进阶篇——第二章 高级特性核心
  • JavaScript进阶篇——第一章 作用域与垃圾回收机制
  • 力扣 hot100 Day44
  • java基础(day07)
  • 板凳-------Mysql cookbook学习 (十一--------10)
  • 06【C++ 初阶】类和对象(上篇) --- 初步理解/使用类
  • ThreadLocal内部结构深度解析
  • 《大数据技术原理与应用》实验报告三 熟悉HBase常用操作
  • 每天一个前端小知识 Day 31 - 前端国际化(i18n)与本地化(l10n)实战方案
  • html js express 连接数据库mysql
  • Java:继承和多态(必会知识点整理)
  • 为什么资深C++开发者大部分选vector?揭秘背后的硬核性能真相!
  • 9.服务容错:构建高可用微服务的核心防御
  • #Paper Reading# Apple Intelligence Foundation Language Models
  • 微服务初步入门
  • 量子计算新突破!阿里“太章3.0”实现512量子比特模拟(2025中国量子算力巅峰)
  • 【算法训练营Day12】二叉树part2
  • 《大数据技术原理与应用》实验报告二 熟悉常用的HDFS操作
  • 【小白量化智能体】应用5:编写通达信股票交易指标及生成QMT自动交易Python策略程序
  • UDP协议的端口161怎么检测连通性
  • 【PY32】如何使用 J-Link 和 MDK 开发调试 PY32 MCU
  • 【STM32】什么在使能寄存器或外设之前必须先打开时钟?
  • java基础-1 : 运算符
  • 使用dify生成测试用例
  • 13.计算 Python 字符串的字节大小
  • HTML 文本格式化标签
  • 工业新引擎:预测性维护在工业场景中的实战应用(流程制造业为例)
  • 具身智能零碎知识点(五):VAE中对使用KL散度的理解