您的位置:首页 > 其它

机器学习24-EM算法

2017-07-12 17:39 211 查看
一  

    1, 最大似然估计:参考 http://blog.csdn.net/xinzhi8/article/details/72730164

    2 ,Jensen不等式



     

凹函数反之亦然

二   



   假定随机挑选10000名志愿者,测量他们的身高,若样本中存在男性和女性,且身高服从高斯分布,试估计(μ男
 σ男),(  μ女  σ女)以及样本属于男女的概率π(这个概率π便是隐变量),往往对于隐变量的求解,EM算法比较合适。

  经典的k-means聚类方法能将图a合理的分类,但分类图b效果则非常差,即使分类图a效果好点,但是对于单个样本属于某类的后验概率,即π,给不出确定的数值

  一幅图片的前景,背景分割用EM也比较合适

  三  建立目标函数



   


说明下下,这里的样本X可以是一维数据,也可以是N维数据,对于给定的均值和方差,N( x | μ , Σ) 是可算的

如果对数似然函数中没有π这个隐变量,对μ 与Σ求偏导,令等于0,是可算的。但有了π,对π偏导令等于0,等式左右都是0,换句话说就是,变量数目大于等式数目。

所以为了解决这个问题,可分为2个步骤

四 步骤一:估算样本属于哪个类



注意:对于这种参数数量多于等式数量的求解,可以先给定参数π,μ , Σ的具体数值,算出的结果再次带入上面公式,不停的迭代下去,当数值收敛时,便是最优解。

举例:

假定样本中男女比例4:1,则π男=0.8,π女=0.2 ,男女身高服从高斯分布,(μ男  Σ男),(  μ女  Σ女)也先给定,则

π男=0.8,N(身高=1.98 | μ男  Σ男)= 0.3   

π女=0.2 ,N(身高=1.98 | μ女  Σ女)= 0.01 

γ(身高=1.98,男) =  (0.8*0.3)/  (0.8*0.3 + 0.2 * 0.01)= 0.99   则 身高为1.98的样本属于男性的概率为0.99

γ(身高=1.98,女) =  (0.2 * 0.01)/  (0.8*0.3 + 0.2 * 0.01)= 0.01  则 身高为1.98的样本属于女性的概率为0.01

五 步骤二:估算每个类的参数



举例:

7个样本:1.65 1.58 1.64 1.84 1.74 1.65 1.98

N=7

根据步骤一计算:

K男类:γ(1.98,男)=0.99   γ(1.65 ,男)=0.9   γ(1.58 ,男)=0.8   γ(1.64 ,男)=0.3  γ(1.84 ,男)=0.6   γ(1.74 ,男)=0.83   γ(1.65 ,男)=0.74

K女类:γ(1.98,女)=0.01   γ(1.65 ,女)=0.1   γ(1.58 ,女)=0.2   γ(1.64 ,女)=0.7  γ(1.84 ,女)=0.4   γ(1.74 ,女)=0.17   γ(1.65 ,女)=0.26

则:

N男 = 0.99 + 0.9 + 0.8 + 0.3 + 0.6 + 0.83 + 0.74        

N女= 0.01 + 0.1 + 0.2 + 0.7 + 0.4 + 0.17 + 0.26
    

 π男 = N男 / N

 π女 = N女 / N

μ男 = (1.98 * 0.99  + 1.65 *  0.9 + 1.58 *  0.8 + 1.64 *  0.3 + 1.84 *  0.6 + 1.74 *  0.83 + 1.65 *  0.74  ) /  N男

μ女  = (1.98 * 0.01 +  1.65 * 0.1 +  1.58 *  0.2 + 1.64 * 0.7 +  1.84 *  0.4 + 1.74 *  0.83 + 1.65 *  0.26  )/  N女

同理可算 

Σ男  Σ女

六  迭代

将步骤二计算得出的 π男 π女 , μ男 μ女 ,  Σ男  Σ女 带入步骤一,然后通过步骤二再计算 π男 π女 , μ男 μ女 ,  Σ男  Σ女 ,如此迭代下去,直至收敛,则参数便是最优解

----------------------------------------------------------------------------------------------------手动分割线----------------------------------------------------------------------------------------------------------------

为什么上面的做法是正确的呢,他的理论依据是怎么样的呢?





这里面的Z便是隐变量,对应上面例子中的性别,性别分为2类。对于含有隐变量的似然函数是不可能对参数求导得出解的,这里变需要上文提到的迭代。



要求L(θ) 的最大值,可以在θ1处造一个L(θ)下界函数r,如图蓝色线,使得L(θ)大于等于r ,这是可做的。

L(θ2)>  r (θ2)>  r (θ1)

在θ2处再造个r函数,求r的最大值处的θ,直至θ不变,此时L(θ)便是局部最大值

根据Jensen不等式



Q(z)是一个概率分布,比如上文中的男的概率是0.8,女的概率是0.2,红框看成一个整体Y,则变量Y在Q(z)概率分布上的加和,

就是ln(E(y))大于等于E(ln(y))

此时不等式右边就是上文的下界函数r,Q(Z)是固定的,可以根据各种技术手段,求解最优θ

二 根据Jensen不等式,可确保下界函数的存在,那么怎么确定θ1点,即不等式左右两边相等呢?

当两个变量Y不相等时,不等式大于总是存在,只有两个变量Y相等时候,不等式左右两边才相等,则Y是一个定值



可以看出上文的例子,为什么用



代码

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  EM 机器学习 EM算法