机器学习基础:MLE和EM算法
假设一个情景:假设某种实验有四个可能得结果,其发生概率分别为
[frac{1}{2}-frac{ heta}{4},frac{1}{4}-frac{ heta}{4},frac{1}{4}+frac{ heta}{4},frac{ heta}{4}
]
且次数分别为(y_1, y_2, y_3, y_4), 求( heta)的估计值。
1. MLE
[egin{split}L( heta) &= (frac{1}{2}-frac{ heta}{4})^{y_1}(frac{1}{4}-frac{ heta}{4})^{y_2}(frac{1}{4}+frac{ heta}{4})^{y_3}(frac{ heta}{4})^{y_4} \ln\,L( heta) &= y_1ln\,frac{2- heta}{4} + y_2ln\,frac{1- heta}{4} + y_3ln\,frac{1+ heta}{4} +y_4ln\,frac{ heta}{4}\frac{dln\,L( heta)}{d heta} &= -frac{y_1}{2- heta} -frac{y_2}{1- heta} + frac{y_3}{1+ heta}+frac{y_4}{ heta} = 0end{split}
]
上面假设的场景,实验结果都是可以直接观测的,此时可以使用MLE。但是如果实验结果含有隐藏变量,即不可观测部分,就需要用到EM算法。
在上面的情景中,假设第一部分(frac{1}{2}-frac{ heta}{4})可以分为(frac{1}{4}-frac{ heta}{4}, frac{1}{4}),且出现次数分别为(z_1, y_1-z_1)。第三部分(frac{1}{4}+frac{ heta}{4})可以分为(frac{ heta}{4},frac{1}{4}), 且出现次数分别为(z_2, y_3-z_2)。则:
[egin{split}L( heta) &= (frac{1}{4}-frac{ heta}{4})^{z_1 + y_2}(frac{1}{4})^{y_1-z_1}(frac{ heta}{4})^{y_4+z_2}(frac{1}{4})^{y_3-z_2}\ln\,L( heta) &= (z_1+y_2)ln\,frac{1- heta}{4} + (z_2 + y_4)ln\,frac{ heta}{4} +(y_1-z_1 + y_3-z_2)ln\,frac{1}{4} \frac{dln\,L( heta)}{d heta} &= -frac{z_1 + y_2}{1- heta} +frac{z_2 + y_4}{ heta} = 0 \hat{ heta} &= frac{z_2+y_4}{z_1+z_2+y_2+y_4} \&其中z_1 sim B(y_1, frac{1- heta}{2- heta}), \, \, z_2 sim B(y_3, frac{ heta}{1+ heta})end{split}
]
2. EM算法
-
- E步,目的是消去潜在变量(z_1, z_2):
[E(z_1) = frac{1- heta}{2- heta}y_1, E(z_2) = frac{ heta}{1+ heta}y_3 ]带入得到:
[hat{ heta} = frac{frac{ heta}{1+ heta}y_3+y_4}{frac{1- heta}{2- heta}y_1+frac{ heta}{1+ heta}y_3+y_2+y_4} ] -
- M步,取最大值
[ heta^{(i+1)} = frac{frac{ heta^{(i)}}{1+ heta^{(i)}}y_3+y_4}{frac{1- heta^{(i)}}{2- heta^{(i)}}y_1+frac{ heta^{(i)}}{1+ heta^{(i)}}y_3+y_2+y_4}
]
任意取初始$ heta in (0,1) $,不断迭代