前言:本文主要把EM算法的内容及其简单推导交待清楚,为后面实现高斯混合模型的聚类算法做一个铺垫,因此本文不会出现代码。文中会出现大量的数学定义、公式及原理等,篇幅有限,加上能力有限,我不可能把所有的定义和公式都罗列一遍,作为博文也没必要这样做,如果这样做,未免过于枯燥生涩,还不如直接去写论文算了。只是力求简明扼要把这个算法描述清楚,但又不能过于简单,否则就无法理解其中的精髓。EM算法,又称期望极大算法(expectation maximization algorithm),是含有隐变量的概率模型参数的极大似然估计法。作为机器学习十大算法之一,它的重要性不言而喻。
一、问题引入
首先还是讲讲极大似然估计。相信大部分本科数理统计课本已经把极大似然估计的概念介绍得非常清楚,这里作一个简单回顾。举一个例子,假设有一枚硬币,其出现正面的概率是θ(θ是客观存在的参数,只是我们不知道是多少),记事件y为“抛这枚硬币”,1表示正面,0表示反面。那么y服从伯努利分布:
我们不知道参数θ是多少,所以我们要进行多次试验得到多个样本值来估计参数θ。其似然函数为:
θ就是似然函数最大的时候所取的值: