EM算法理解
导入:
1. k-means算法:一种无监督的聚类算法。
step1:随机选取k个均值
step2:遍历余下的点,一个点到这k个均值的距离,该点离哪个均值近就跟哪个均值归为一个簇
step3:分好k个簇后,计算各自的中心点(判断中心点与这上诉K个均值是否一致,不一致则迭代计算1-3步,一致则达到收敛)
2. KNN算法:(有监督)
step1:随机取k值,在测试集中选择一个样本,在训练集中找到距离这个样本最近的k个点
step2:k个点中多数的类就是这个样本的类标签(距离度量)
k值的减小就意味着整体模型变得复杂,容易发生过拟合
EM算法:就是含有隐变量的概率模型参数的极大似然估计法(极大后验概率估计法)
缺陷:会产生过拟合,将训练集中的噪声学到使模型过于复杂。对于这个缺陷的处理:加上惩罚项(模型参数的范数)
算法步骤:
观测变量$X$,隐变量$Z$,联合概率分布$p\left( X,Z|\theta \right)$,条件分布$p\left( Z|Y,\theta \right)$
1.选择参数的初始值${{\theta }_{0}}$,开始迭代
2.E步:记${{\theta }_{i}}$为第i次迭代参数$\theta $的估计值,在第i+1次迭代的E步,计算:
$Q\left( \theta ,{{\theta }_{i}} \right)=\sum\limits_{Z}{\log p\left( Y,Z|\theta \right)}p\left( Z|Y,{{\theta }_{i}} \right)$(EM算法的核心)
3.M步:求使Q极大化的$\theta $,确定第i+1次迭代的参数的估计值${{\theta }_{i+1}}$
${{\theta }_{i+1}}=\arg \underset{\theta }{\mathop{\max }}\,Q\left( \theta ,{{\theta }_{i}} \right)$
4.重复第2-3,直到收敛
似然函数形式复杂,没有解析解,因此引入Jensen不等式求出下界,通过优化下界来优化似然函数