机器学习算法
本文主要介绍了一些机器学习算法的基础知识。
EM 算法(Expectation-Maximum)
EM 算法也称期望最大化(Expectation-Maximum,简称 EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA 主题模型的变分推断等等。
EM 算法要解决的问题
我们经常会从样本观察数据中,找出样本的模型参数。 最常用的方法就是极大化模型分布的对数似然函数。
但是在一些情况下,我们得到的观察数据有未观察到的隐含数据,此时我们未知的有隐含数据和模型参数,因而无法直接用极大化对数似然函数得到模型分布的参数。怎么办呢?这就是 EM 算法可以派上用场的地方了。
EM 算法解决这个的思路是使用启发式的迭代方法,既然我们无法直接求出模型分布参数,那么我们可以先猜想隐含数据(EM 算法的 E 步),接着基于观察数据和猜测的隐含数据一起来极大化对数似然,求解我们的模型参数(EM 算法的 M 步)。由于我们之前的隐藏数据是猜测的,所以此时得到的模型参数一般还不是我们想要的结果。不过没关系,我们基于当前得到的模型参数,继续猜测隐含数据(EM 算法的 E 步),然后继续极大化对数似然,求解我们的模型参数(EM 算法的 M 步)。以此类推,不断的迭代下去,直到模型分布参数基本无变化,算法收敛,找到合适的模型参数。
从上面的描述可以看出,EM 算法是迭代求解最大值的算法,同时算法在每一次迭代时分为两步,E 步和 M 步。一轮轮迭代更新隐含数据和模型分布参数,直到收敛,即得到我们需要的模型参数。
一个最直观了解 EM 算法思路的是 K-Means 算法,见之前写的K-Means 聚类算法原理。在 K-Means 聚类时,每个聚类簇的质心是隐含数据。我们会假设 K 个初始化质心,即 EM 算法的 E 步;然后计算得到每个样本最近的质心,并把样本聚类到最近的这个质心,即 EM 算法的 M 步。重复这个 E 步和 M 步,直到质心不再变化为止,这样就完成了 K-Means 聚类。
当然,K-Means 算法是比较简单的,实际中的问题往往没有这么简单。上面对 EM 算法的描述还很粗糙,我们需要用数学的语言精准描述。
参考内容
EM algorithm and Gaussian Mixture Model (GMM)
支持向量机(Support Vector Machine)
支持向量(Support Vector)
事实上,大多数样本点位于超球体内,只有少数样本在球界面上或之外,我们把满足$\alpha_i>0$所对应的样本称为支持向量 (Support Vector, SV).
支持向量数据描述(SVDD)
支持向量数据描述(Support Vector Data Description,SVDD)是一种单值分类算法,能够实现目标样本和非目标样本的区分,通常应用于异常检测和故障检测等领域。