三硬币模型是EM算法所举的一个例子,李航的《统计学习方法》中有其公式和过程的描述。其问题为:A、B、C三枚硬币。先掷A硬币,如果A硬币朝上,掷B硬币。A硬币朝下则掷C硬币。B和C硬币的结果出现正面朝上记为1,反面朝上记为0。现有如下十次观测结果:1,1,0,1,0,0,1,0,1,1 ,已知A B C朝上的概率分别为 π,p,q,求π,p,q的极大似然估计。
现在的问题是我们只知道每次的结果(硬币的朝向),却不知道是B硬币的结果还是C硬币的结果,也就是不知道A硬币朝上还是朝下。因此Z=(Z1,Z2,...Z10)为隐变量,它代表·每一次A硬币的朝向。
该问题可以用概率模型来描述:
第1步到第2步:写出了隐变量Z,求和是因为联合概率分布中,一个变量发生的概率等于在另一个变量必然发生的情况下该变量发生的概率,因此需将所有Z相加。
第2步到第3步:第3步是第1步的全概率公式
第3步到第3步:代入
该模型的参数估计用到了EM算法,其分为E和M两步。其中E是根据已知概率求隐变量的期望。M则根据隐变量的期望调整各个参数的值,这样一直迭代下去,直到收敛。极大似然估计及其推导过程略,下面直接给出公式。
右上角的括号代表第i步或者第i+1步的参数结果。E步中,yj代表第j次试验的结果(不是0就是1),π、p、q需要先预设一个值(只能猜),我们就随便猜一个,假设都为0.5.
当yj=1时,代入π、p、q的值(都是0.5),得出E步的结果(图中9.5式)为μ=0.5。
当yj=0时,μ=0.5
将μ代入计算π、p、q的值,得出其结果为0.5,0.6,0.6,并且该结果收敛。
同理可得,当我们猜的初始结果为π=0.4,p=0.6,q=0.7时,结果为0.4064,0.5368,0.6432.
书上还提到,EM算法对初始值敏感。