机器学习算法之EM算法

一、EM算法

EM算法最初是为了解决缺失数据情况下参数估计问题;根据已经给出的观察数据,估计出模型参数的值,然后根据得到的模型参数去估计缺失的数据,再由模型的观察数据和估计的确实数据去预测模型参数值,反复迭代,直至最后收敛。

1.1预备知识:

1.1.1.极大似然估计:根据已观察到的数据去最大化该数据出现概率,得到的参数即为所求。(已观察到的数据理应出现的概率比较大,比较合理)

1.1.2.Jensen不等式:f是实数函数,若对任意x有f(x)的二阶导数>0,则f(x)是凹函数。有

机器学习算法之EM算法_第1张图片

1.2EM算法的适合场景:

问题1描述:比如我们要调查学校的身高分布;现在有100个男生身高的数据和100个女生身高的数据,并且男女生的身高分别服从正太分布,则我们可以根据现存的观察数据用极大似然(每个数据出现的概率都是关于u和sigma的概率密度函数P(x,u,sigma))分别估计男生和女生的正态分布参数均值u和方差sigma。优化公式如下图所示:

机器学习算法之EM算法_第2张图片

问题2描述:还是要调查学校的身高分布现在有100个男生身高的数据和100个女生身高的数据,还是分别服从正太分布,只是我们目前不知道哪些数据数据男生,哪些数据属于女生【数据分布不知道了,我们无法直接利用L(θ)进行估计了,因为p(x_i,θ)我们没法算,θ不知道选哪个】。此时的优化问题对于每一个数据就有了两个问题:

(1)该数据属于男生还是女生?

(2)男生和女生的参数分布是多少?【问题1只有(2)这一个问题】

此时我们把数据数据男生或者女生称作隐变量。

该问题EM求解步骤:

(1)首先初始化模型参数,男和女的分布参数,(此时分布参数视为已知

(2)对于每个样本估计属于男生还是女生,进行归类(此时样本归属分布属于已知->这样就等同于问题1的形式了)

(3)分别对两类进行极大似然估计(此时的估计参数作为本轮的估计结果->这样就把参数给估计出来了,但是还没完,因为这个数据不准确)

(4)利用估计的参数来重复2、3步骤,直到参数收敛,不在发生变化。

1.3EM算法推导流程:

由于得到的观察变量中包含隐藏变量,比如每个样本属于哪个类,z=(z_1,z_2,...,z_n),此时的优化目标极大似然估计变为了:

而对于优化该式子,log里面是一个和式,求导很不方便,因此直接求θ并不行

机器学习算法之EM算法_第3张图片 在式子1中引入一个关于z的分布Q(z),即假设出隐变量满足一个分布,

机器学习算法之EM算法_第4张图片 期望是引入Q(z)分布之后得到的,上式期望是最优化方程的下界,我们逐渐增大下界来使逐渐逼近最优解,对于该式子的期望值是p(x),关于隐变量分布的期望,也就是在隐变量分布的条件下,取该p(x)值的大小。

因此我们实际上找到了优化目标的一个下界,那么我们不妨就逐渐让下界变大,以逐渐逼近最大值,当不等号变成等号的时候,也就说明我们的调整已经等价于优化目标函数的最大值了,因此等号成立的条件是

机器学习算法之EM算法_第5张图片

以上操作我们称作E步,即根据初始化θ_0,我们得到Q(z)分布,然后求每组实验所对应的期望值(男女身高例子过程中即为,男生贡献该身高的概率和女生贡献该身高的概率)Q(z)是关于初始化θ_0的概率分布

机器学习算法之EM算法_第6张图片 在Q(z)得到的基础上->得到了关于θ_0和θ的式子,其中θ是参数,下一部求导所得的最优θ_1。

1.4EM算法全流程:

(1)随机初始化模型参数\theta_{0}

(2)j=1,2,3,4......开始循环迭代

机器学习算法之EM算法_第7张图片

注:EM算法可以保证收敛到一个稳定的点,但无法保证是全局最优解,如果优化目标是凹的,则存在。

综上的优化目标为下图所述

机器学习算法之EM算法_第8张图片

 到此,我们通过举例子大致说了EM的算法步骤,希望可以初步帮同学们打个样~

你可能感兴趣的:(机器学习,算法,机器学习,人工智能)