本篇文章我们来介绍一种适用范围非常广泛的机器学习算法——期望最大化算法(Expectation Maximization,之后简称EM)。吴军老师在其著作《数学之美》中将其称为“上帝的算法”,因为该算法过程和原理非常简洁易懂,只要我们手头有足量的数据,再定义一个要最大化的目标函数,通过计算机把相关参数训练出来,即可得到想要的模型,非常美妙。
EM算法主要分为两个步骤:E-step(求期望步骤,用来求出当前迭代轮次所要最大化的期望的表达式)以及M-step(最大化期望步骤,通过令偏导为0的形式求出该轮次使得期望最大化的所有参数的迭代计算式)。EM算法的执行过程就是从初始轮次开始,每一轮顺次执行E、M两个步骤,直至各参数收敛。过程比较明了,没有复杂的跳转环节,关于E、M两个步骤也会在后面进行详细阐述。
本文所需基础知识
1,(必要)高等数学的对数运算、一重积分运算,概率论的贝叶斯公式、边缘分布和条件分布的求解、高斯(正态)分布、求解期望的方法、最大似然估计法,Jsensen’s Inequality
2,(非必要)线性代数矩阵运算、矩阵求导(用于复杂推导部分),熟悉Python的numpy、Matplotlib(用于理解实现部分的代码)
请查看以下知乎文章。讲解很详细,有推导过程。
上篇:https://zhuanlan.zhihu.com/p/28298205
下篇:https://zhuanlan.zhihu.com/p/28298944