机器学习24-EM算法
2017-07-12 17:39
211 查看
一
1, 最大似然估计:参考 http://blog.csdn.net/xinzhi8/article/details/72730164
2 ,Jensen不等式
![](http://img.blog.csdn.net/20170712102317014?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
凹函数反之亦然
二
![](http://img.blog.csdn.net/20170712103836116?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
假定随机挑选10000名志愿者,测量他们的身高,若样本中存在男性和女性,且身高服从高斯分布,试估计(μ男
σ男),( μ女 σ女)以及样本属于男女的概率π(这个概率π便是隐变量),往往对于隐变量的求解,EM算法比较合适。
经典的k-means聚类方法能将图a合理的分类,但分类图b效果则非常差,即使分类图a效果好点,但是对于单个样本属于某类的后验概率,即π,给不出确定的数值
一幅图片的前景,背景分割用EM也比较合适
三 建立目标函数
![](http://img.blog.csdn.net/20170712112543105?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20170712112400304?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
说明下下,这里的样本X可以是一维数据,也可以是N维数据,对于给定的均值和方差,N( x | μ , Σ) 是可算的
如果对数似然函数中没有π这个隐变量,对μ 与Σ求偏导,令等于0,是可算的。但有了π,对π偏导令等于0,等式左右都是0,换句话说就是,变量数目大于等式数目。
所以为了解决这个问题,可分为2个步骤
四 步骤一:估算样本属于哪个类
![](http://img.blog.csdn.net/20170712114309798?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
注意:对于这种参数数量多于等式数量的求解,可以先给定参数π,μ , Σ的具体数值,算出的结果再次带入上面公式,不停的迭代下去,当数值收敛时,便是最优解。
举例:
假定样本中男女比例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
五 步骤二:估算每个类的参数
![](http://img.blog.csdn.net/20170712123043644?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
举例:
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女
同理可算
Σ男 Σ女
六 迭代
将步骤二计算得出的 π男 π女 , μ男 μ女 , Σ男 Σ女 带入步骤一,然后通过步骤二再计算 π男 π女 , μ男 μ女 , Σ男 Σ女 ,如此迭代下去,直至收敛,则参数便是最优解
----------------------------------------------------------------------------------------------------手动分割线----------------------------------------------------------------------------------------------------------------
为什么上面的做法是正确的呢,他的理论依据是怎么样的呢?
一
![](http://img.blog.csdn.net/20170712155958684?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里面的Z便是隐变量,对应上面例子中的性别,性别分为2类。对于含有隐变量的似然函数是不可能对参数求导得出解的,这里变需要上文提到的迭代。
![](http://img.blog.csdn.net/20170712161521432?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
要求L(θ) 的最大值,可以在θ1处造一个L(θ)下界函数r,如图蓝色线,使得L(θ)大于等于r ,这是可做的。
L(θ2)> r (θ2)> r (θ1)
在θ2处再造个r函数,求r的最大值处的θ,直至θ不变,此时L(θ)便是局部最大值
根据Jensen不等式
![](http://img.blog.csdn.net/20170712163923791?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
Q(z)是一个概率分布,比如上文中的男的概率是0.8,女的概率是0.2,红框看成一个整体Y,则变量Y在Q(z)概率分布上的加和,
就是ln(E(y))大于等于E(ln(y))
此时不等式右边就是上文的下界函数r,Q(Z)是固定的,可以根据各种技术手段,求解最优θ
二 根据Jensen不等式,可确保下界函数的存在,那么怎么确定θ1点,即不等式左右两边相等呢?
当两个变量Y不相等时,不等式大于总是存在,只有两个变量Y相等时候,不等式左右两边才相等,则Y是一个定值
![](http://img.blog.csdn.net/20170712171828968?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
可以看出上文的例子,为什么用
![](http://img.blog.csdn.net/20170712173633790?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveGluemhpOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
代码
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是一个定值
可以看出上文的例子,为什么用
代码
相关文章推荐
- 机器学习小组知识点24:数据预处理之数据清理(Data-Cleaning)
- 王小草【机器学习】笔记--EM算法
- 机器学习几种模块的原理及公式推导——EM算法
- 【机器学习】K-means聚类算法与EM算法
- [机器学习入门] 李宏毅机器学习笔记-24(introduction of Structured Learning;结构化学习介绍)
- 【机器学习-斯坦福】学习笔记11 混合高斯模型(Mixtures of Gaussians)和EM算法
- 斯坦福大学机器学习——EM算法求解高斯混合模型
- 机器学习 - 高斯混合模型参数估计的EM算法
- 【机器学习笔记】EM算法及其应用
- 机器学习笔记(4)-EM算法(期望极大算法)
- <机器学习练习>EM算法
- 机器学习与em算法
- 关于机器学习-EM算法新解
- 【机器学习-斯坦福】学习笔记12 (EM算法)The EM Algorithm
- 机器学习-24:MachineLN之朴素贝叶斯源码
- 机器学习-EM算法
- 【机器学习】手推EM算法
- 机器学习(EM算法)
- 机器学习优化算法之EM算法
- 机器学习笔记 EM算法