一、示例
1.1 身高抽样问题
假设学校所有学生中,男生身高服从正态分布 , 女生身高服从正态分布 。
现在随机抽取200名学生,得到这些学生的身高 ,求参数 的估计。
定义隐变量为 ,其取值为 ,分别表示
男生、女生
。如果隐变量是已知的,即已知每个学生是男生还是女生 ,则问题很好解决:
统计所有男生的身高的均值和方差,得到 :
其中 表示满足 的 构成的集合。 分别表示平均值和方差。
统计所有女生的身高的均值和方差,得到 :
其中 表示满足 的 构成的集合。 分别表示平均值和方差。
如果已知参数 ,则任意给出一个学生的身高 ,可以知道该学生分别为男生/女生的概率。
则有: 。因此也就知道该学生更可能为男生,还是更可能为女生。
因此:参数
学生是男生/女生
,这两个问题是相互依赖,相互纠缠的。为解决该问题,通常采取下面步骤:
先假定参数的初始值:。
迭代 :
根据 来计算每个学生更可能是属于男生,还是属于女生。
这一步为
E
步(Expectation
),用于计算隐变量的后验分布 。根据上一步的划分,统计所有男生的身高的均值和方差,得到 ;统计所有女生的身高的均值和方差,得到 。
这一步为
M
步(Maximization
),用于通过最大似然函数求解正态分布的参数。当前后两次迭代的参数变化不大时,迭代终止。
1.2 三硬币模型
已知三枚硬币
A
,B
,C
,这些硬币正面出现的概率分别为 。进行如下试验:- 先投掷硬币
A
,若是正面则选硬币B
;若是反面则选硬币C
。 - 然后投掷被选出来的硬币,投掷的结果如果是正面则记作
1
;投掷的结果如果是反面则记作0
。 - 独立重复地 次试验,观测结果为:
1,1,0,1,0,...0,1
。
现在只能观测到投掷硬币的结果,无法观测投掷硬币的过程,求估计三硬币正面出现的概率。
- 先投掷硬币
设:
- 随机变量 是观测变量,表示一次试验观察到的结果,取值为
1
或者0
- 随机变量 是隐变量,表示未观测到的投掷
A
硬币的结果,取值为1
或者0
- 是模型参数
则:
注意:随机变量 的数据可以观测,随机变量 的数据不可观测
- 随机变量 是观测变量,表示一次试验观察到的结果,取值为
将观测数据表示为 ,未观测数据表示为 。
由于每次试验之间都是独立的,则有:
考虑求模型参数 的极大似然估计,即:
这个问题没有解析解,只有通过迭代的方法求解,
EM
算法就是可以用于求解该问题的一种迭代算法。EM
算法求解:首先选取参数的初值,记作 ,然后通过下面的步骤迭代计算参数的估计值,直到收敛为止:
设第 次迭代参数的估计值为: , 则
EM
算法的第 次迭代如下:E
步:计算模型在参数 下,观测数据 来自于投掷硬币B
的概率:它其实就是 ,即:已知观测变量 的条件下,观测数据 来自于投掷硬币
B
的概率。M
步:计算模型参数的新估计值:- 第一个式子:通过后验概率 估计值的均值作为先验概率 的估计。
- 第二个式子:通过条件概率 的估计来求解先验概率 的估计。
- 第三个式子:通过条件概率 的估计来求解先验概率 的估计。
EM
算法的解释:初始化:随机选择三枚硬币
A
,B
,C
正面出现的概率 的初始值 。E
步:在已知概率 的情况下,求出每个观测数据 是来自于投掷硬币B
的概率。即: 。于是对于 次实验,就知道哪些观测数据是由硬币
B
产生,哪些是由硬币C
产生。M
步:在已知哪些观测数据是由硬币B
产生,哪些是由硬币C
产生的情况下:- 就等于硬币
B
产生的次数的频率。 - 就等于硬币
B
产生的数据中,正面向上的频率。 - 就等于硬币
C
产生的数据中,正面向上的频率。
- 就等于硬币