• 一、最大熵模型

    • 1、熵

      • 联合熵和条件熵
      • 相对熵
      • 交叉熵
      • 互信息
      • 总结
    • 2、最大熵模型
  • 二、EM算法(期望最大化算法)
  • 三、GMM

一、最大熵模型

lnx<=x−1lnx<=x−1

lnx

证明:f(x)=x−1−lnx,x>0f(x)=x−1−lnx,x>0f(x)=x-1-lnx,x>0,求导是凸函数,在x=1处取得极值




1、熵

熵是信息的度量,与信息量成反比。

信息量:h(xi)=log21p(xi)h(xi)=log21p(xi)h(x_i)=log_2\frac{1}{p(x_i)}

事件发生的概率越高,对应的信息量越低,事件发生的概率越小,对应的信息量越大。

熵是信息量的期望:H(x)=−∑ni=1p(xi)log21p(xi)H(x)=−∑i=1np(xi)log21p(xi)H(x)=-\sum_{i=1}^np(x_i)log_2\frac{1}{p(x_i)}


两点分布的最大熵:

三点分布:

p1=p2=p3的时候,曲面的值最高(图1)

当X满足均匀分布时,熵最大:

联合熵和条件熵

联合熵:H(X,Y),表示X,Y同时发生的不确定性

H(X,Y)=−∑∑p(xi,yi)log2p(xi,yi)=H(X)+H(Y|X)H(X,Y)=−∑∑p(xi,yi)log2p(xi,yi)=H(X)+H(Y|X)

H(X,Y)=-\sum \sum p(x_i,y_i)log_2 p(x_i,y_i)=H(X)+H(Y|X)

解释:联合熵=X发生的熵+X发生的条件下Y发生的熵

联合熵的性质:

  • 联合熵>=变量熵中最大的
  • 联合熵<=变量熵之和

条件熵:Y发生的条件下,X发生的不确定性

相对熵

度量两个分布之间的差异

如果用距离度量的话,两个分布的点的个数要相等,如果不等的话,无法进行单个点距离的度量。

E_px 表示期望

证明D(p||q)≥0D(p||q)≥0D(p||q)\geq0:利用Jenson不等式,

Jensen不等式表述如下:

  • 如果f是凸函数,X是随机变量,那么E(f(X))≥f(E(x))E(f(X))≥f(E(x))E(f(X))\geq f(E(x))

  • 如果f是凹函数,X是随机变量,那么E(f(X))≤f(E(x))E(f(X))≤f(E(x))E(f(X))\leq f(E(x))

交叉熵

CH(p,q)CH(p,q)CH(p,q)

=−∑ip(xi)logq(xi)=−∑ip(xi)logq(xi)=-\sum_ip(x_i)logq(x_i)
=−∑ip(xi)logp(xi)+∑ip(xi)logp(xi)−∑ip(xi)logq(xi)=−∑ip(xi)logp(xi)+∑ip(xi)logp(xi)−∑ip(xi)logq(xi)=-\sum_ip(x_i)logp(x_i)+\sum_ip(x_i)logp(x_i)-\sum_ip(x_i)logq(x_i)
=H(pi)+∑ipilogpiqi=H(pi)+∑ipilogpiqi=H(p_i)+\sum_ip_ilog\frac{p_i}{q_i}

∴CH(p||q)=H(p)+D(p||q)∴CH(p||q)=H(p)+D(p||q)

\therefore CH(p||q)=H(p)+D(p||q)

互信息


(五六行添加负号)

总结

2、最大熵模型

  • 承认已知事物

  • 对未知事物不做任何假设,没有任何偏见

示例:

假设1:

假设2:

利用最大熵模型:

承认已知的X,让未知的Y的概率最大。

写成一般的形式:

最大熵原则:

对于一个随机事件的概率分布进行预测时,预测应当满足全部已知的约束,而对未知的情况下不做任何主观的假设,在这种情况下,概率分布是最均匀的,预测的风险性最小,因此得到的概率分布的熵最大。

最大熵原则就是使得未知部分的概率分布都相等,因为相等情况下不确定性最大,也就是熵最大。
正态分布是给定均值和方差情况下的最好的分布,熵最大的分布。

示例2:



p¯¯¯是样本中的概率,不加横线的是未知的分布中的,相等的意思就是认为样本可以代表整体的分布。p¯是样本中的概率,不加横线的是未知的分布中的,相等的意思就是认为样本可以代表整体的分布。\overline p 是样本中的概率,不加横线的是未知的分布中的,相等的意思就是认为样本可以代表整体的分布。

写成拉格朗日函数的样子求解:

求解:


只剩lambda为未知的,求解,指数函数的解析解很难求:



前面是条件熵,后面是常数,所以极大似然估计和最大熵模型具有相同的形式。

但是最大熵函数的目标函数好建立




最大熵模型在分类方法里算是比较优的模型,但是由于它的约束函数的数目一般来说会随着样本量的增大而增大,导致样本量很大的时候,对偶函数优化求解的迭代过程非常慢,scikit-learn甚至都没有最大熵模型对应的类库。但是理解它仍然很有意义,尤其是它和很多分类方法都有千丝万缕的联系。 

最大熵模型的优点有:

    a) 最大熵统计模型获得的是所有满足约束条件的模型中信息熵极大的模型,作为经典的分类模型时准确率较高。

    b) 可以灵活地设置约束条件,通过约束条件的多少可以调节模型对未知数据的适应度和对已知数据的拟合程度

最大熵模型的缺点有:

    a) 由于约束函数数量和样本数目有关系,导致迭代过程计算量巨大,实际应用比较难

二、EM算法(期望最大化算法)

我们经常会从样本数据中,找出最可能得到该样本的模型参数,最常用的就是对数似然函数。

但是在一些情况下,得到的观察数据含有未观察到的隐含数据,此时的隐含数据和模型参数都变成了未知的,所以无法用极大化对数似然函数的模型来得到模型的参数。

EM算法解决含有未知观测数据的思路是利用启发式的迭代方法,既然我们没法直接求得模型分布参数,那么可以先猜想隐含数据(E步),接着基于观察数据和猜想数据来极大化对数似然函数(M步),求解模型参数。

由于之前的数据是猜测的,所以得到的模型参数一般还不是我们想要的结果,不过基于当前得到的模型参数,继续猜测隐含数据,然后继续极大化对数似然,求解我们的模型参数,以此类推,不断迭代,直到模型分布参数基本无变化,算法收敛,得到最优参数。

kmeans无法给出属于某类的可信度

利用极大似然估计推出EM算法:


上式是先取对数,再求导=0,得到0.7。

假设含有隐变量的似然函数为:

L(θ)=∏j=1NPθ(yi)=∏j=1n∑zPθ(yi|z)P(z)L(θ)=∏j=1NPθ(yi)=∏j=1n∑zPθ(yi|z)P(z)

L(\theta)=\prod _{j=1}^NP_{\theta}(y_i)=\prod _{j=1}^n \sum _z P_{\theta}(y_i|z)P(z)

对上式取ln:

lnL(θ)=∑j=1Nln∑zPθ(yi|z)P(z)lnL(θ)=∑j=1Nln∑zPθ(yi|z)P(z)

lnL(\theta)=\sum _{j=1}^N ln \sum_z P_{\theta}(y_i|z)P(z)

对数函数中有加和项,难以求得解析解,故求近似最优解。

要求迭代至得到maxlnL(θ)maxlnL(θ)max lnL(\theta),即lnL(θn+1)>lnL(θn))lnL(θn+1)>lnL(θn))lnL(\theta_{n+1})>lnL(\theta_n)),迭代若干次,就是渐渐逼近最优解。

lnL(θ)−lnL(θn)≥Q(θ|θn)lnL(θ)−lnL(θn)≥Q(θ|θn)

lnL(\theta)-lnL(\theta_n) \geq Q(\theta|\theta_n)

Q(θ|θn)Q(θ|θn)Q(\theta|\theta_n)被称为下确界函数,我们要使得lnL(θ)lnL(θ)lnL(\theta)尽可能的大,就要使得Q(θ|θn)Q(θ|θn)Q(\theta|\theta_n)尽可能的大,所以我们每次求得下确界函数的极大值(求偏导=0,得到极大值),将该极大值带入似然函数,求得新的下确界函数,一直迭代到||θn+1−θn||≤ξ||θn+1−θn||≤ξ||\theta_{n+1}-\theta_n || \leq \xi,得到的参数即为最优参数。

红色那条线就是我们的对数似然函数,蓝色那条是我们在当前参数下找到的对数似然的下界函数,可以看到,我们找到它的局部极值那么参数更新成thetanew,此时对数似然函数的值也得到了上升,这样重复进行下去,是不是就可以收敛到对数似然函数的一个局部极值了嘛。对的,局部极值

EM算法思想:

含有隐含项的最大似然函数难求解–>求得下边界函数的极值->将其看做此时的函数参数–>得到新的似然函数–>再次得到新的下边界曲线–>迭代至收敛

1 拿到所有的观测样本,根据先验或者喜好先给一个参数估计。

2 根据这个参数估计和样本计算类别分布Q,得到最贴近对数似然函数的下界函数。

3 对下界函数求极值,更新参数分布。

4 迭代计算,直至收敛。

EM算法的流程:

输入:已知数据Y,和未知隐变量Z(随机赋值)
输出:θθ\theta

1°:给 θθ\theta 随机赋初值θ0θ0\theta_0
2°:E步,令θnθn\theta_n为第n次已经求得的参数,对lnP(y|z)lnP(y|z)lnP(y|z)以Pθn(z|y)Pθn(z|y)P_{\theta_n}(z|y)为概率求期望。

Q(θ|θn)=∑zPθn(z|y)lnP(y|z)Q(θ|θn)=∑zPθn(z|y)lnP(y|z)

Q(\theta|\theta_n)=\sum_zP_{\theta_n}(z|y)lnP(y|z)

3°:M步,对QQQ函数求偏导,得到极大值,得到使得其获得极大值的θ" role="presentation" style="position: relative;">θθ\theta值。
4°:重复2和3步,直到||θn+1−θn||≤ξ||θn+1−θn||≤ξ||\theta_{n+1}-\theta_n || \leq \xi
5°:输出最优模型参数θθ\theta

EM算法可以保证收敛到一个稳定点,但是不能保证收敛到全局的极大值点,因此是局部的最优算法。当然,如果我们的优化目标是凸的,则EM算法可以保证收敛到全局最大值。

如果我们从算法思想的角度来思考EM算法,我们可以发现我们的算法里已知的是观察数据,未知的是隐含数据和模型参数,在E步,我们所做的事情是固定模型参数的值,优化隐含数据的分布,而在M步,我们所做的事情是固定隐含数据分布,优化模型参数的值。比较下其他的机器学习算法,其实很多算法都有类似的思想。比如SMO算法(支持向量机原理(四)SMO算法原理),坐标轴下降法(Lasso回归算法: 坐标轴下降法与最小角回归法小结), 都使用了类似的思想来求解问题。

三、GMM

高斯混合模型指的是多个高斯分布函数的线性组合,理论上GMM可以拟合出任意类型的分布,通常用于解决同一集合下的数据包含多个不同分布的情况,或者是同一类分布但是参数不同,或者是不同类型的分布。

GMM中,样本的分类标签是未知的

下图中,明显是两个类别,如果没有GMM,那么只能用一个二维高斯分布来描述图1的数据。
这时候就可以使用GMM了!

如图2,数据在平面上的空间分布和图1一样,这时使用两个二维高斯分布来描述图2中的数据,分别记为N(μ1,Σ1)N(μ1,Σ1)N(μ 1 ,Σ 1 ) 和N(μ2,Σ2)N(μ2,Σ2)N(μ 2 ,Σ 2 ) . 图中的两个椭圆分别是这两个高斯分布的二倍标准差椭圆。可以看到使用两个二维高斯分布来描述图中的数据显然更合理。实际上图中的两个聚类的中的点是通过两个不同的正态分布随机生成而来。如果将两个二维高斯分布N(μ1,Σ1)N(μ1,Σ1)N(μ 1 ,Σ 1 ) 和N(μ2,Σ2)N(μ2,Σ2)N(μ 2 ,Σ 2 ) 合成一个二维的分布,那么就可以用合成后的分布来描述图2中的所有点。最直观的方法就是对这两个二维高斯分布做线性组合,用线性组合后的分布来描述整个集合中的数据。这就是高斯混合模型(GMM)。

GMM:
设有随机变量X ,则混合高斯模型可以用下式表示:

其中N(x|μk,Σk)N(x|μk,Σk)N(x|μ_ k ,Σ_ k ) 称为混合模型中的第k 个分量(component)。如前面图2中的例子,有两个聚类,可以用两个二维高斯分布来表示,那么分量数K=2K=2K=2 . πkπkπ _k 是混合系数(mixture coefficient),且满足:

∑k=1Kπk=1,0≤πk≤1∑k=1Kπk=1,0≤πk≤1

\sum_{ k=1}^{ K} π _k =1 ,0\leqπ _k\leq1

πkπk\pi_k相当于每个分量N(x|μk,Σk)N(x|μk,Σk)N(x|μ_ k ,Σ_ k ) 的权重。


十、最大熵模型与EM算法相关推荐

  1. 统计学习方法第六章作业:逻辑斯谛梯度下降法、最大熵模型 IIS / DFP 算法代码实现

    逻辑斯谛梯度下降法 import numpy as np import matplotlib.pyplot as pltclass logist:def __init__(self,a=1,c=Non ...

  2. 主题模型(3)——PLSA模型及其EM算法求解

    之前整理过两篇关于主题模型的博客<文本建模之Unigram Model,PLSA与LDA>和<再看LDA主题模型>,主要是整理了主题模型的由来和推导过程,关于模型参数怎么计算没 ...

  3. 学习笔记三:GMM模型以及EM算法理解及代码实现

    第三章 GMM模型以及EM算法 1.潜变量模型 使用潜变量解释观测变量的数学模型,称之为潜变量模型 潜变量模型将不完全数据(观测数据)的边缘分布转换成容易处理的完全数据(观测数据+潜变量)的联合分布. ...

  4. 机器学习-白板推导-系列(十)笔记:EM算法

    文章目录 0 笔记说明 1 算法收敛性证明 2 公式导出 2.1 ELBO+KL Divergence 2.2 ELBO+Jensen Inequlity 2.3 最后的工作 3 从狭义EM到广义EM ...

  5. 含隐变量模型求解——EM算法

    1 EM算法的引入 1.1 EM算法 1.2 EM算法的导出 2 EM算法的收敛性 3EM算法在高斯混合模型的应用 3.1 高斯混合模型Gaussian misture model 3.2 GMM中参 ...

  6. IRT模型估计-EM算法

    IRT模型中参数估计 IRT(Item Response Theory) 项目反应理论.是教育评估与心理测量理论中的重要模型.主要目的是通过被试(examinees) 的对于一套试题的反应(respo ...

  7. nlp(贪心学院)——时序模型、HMM、隐变量模型、EM算法

    任务225: 时序模型 随时间维度变化的 每时每刻有相关性(t时刻数据t+1时刻数据有相关性) 时序数据长度不确定 时序数据:如股票价格.语音.文本.温度 任务226: HMM的介绍 观测值.隐式变量 ...

  8. GMM 模型与EM算法求解详细推导

    1. 高斯模型与高维高斯模型介绍 高斯模型也就是正态分布模型,该模型最早可见于我们的高中数学教材中.闻其名知其意,正态分布是自然界中普遍存在的一种分布.比如,考试成绩,人的智力水平等等.都是大致呈现为 ...

  9. 最大熵模型及GIS算法

    # -*- coding: utf-8 -*-import sys import math from collections import defaultdictclass MaxEnt:def __ ...

最新文章

  1. 对学校的希望和寄语_新年元旦寄语【三篇】
  2. 计算机中用户权利和用户权限,揭秘:Win7系统用户和组权限说明
  3. sql 注入防护与xss攻击防护
  4. python生成器函数_Python 编写生成器函数
  5. 将要发布的开源CCOA的照片一览
  6. 数据库面试题---原理
  7. OpenCore引导配置说明第五版
  8. mysql超市进存销管理系统_企业进存销管理系统.doc
  9. angularUI之accordion的用法
  10. LeetCode 三等分(题解+优化过程)
  11. sed替换字符串(变量)
  12. 【Django BUG 已解决】You must either define the environment variable DJANGO_SETTINGS_MODULE or call ...
  13. mysql从删库到跑路 Ubuntu篇
  14. 简易记账开发笔记之Fragment(前传)
  15. 简单的指针二叉查找树和数组二叉查找树
  16. [微信小程序毕业设计源码]基于小程序的健康管理(慢性疾病)系统
  17. 使用加密锁加密Unity工程插件源码
  18. 你是否愿意用华为鸿蒙系统,如果华为改用自研的“鸿蒙”系统,你是否愿意尝试?...
  19. 迁移学习一——TCA和SSTCA
  20. 皮尔森相关性的相似度

热门文章

  1. [轮子系列]Google Guava之CharMatcher源码分析
  2. Django的ModelForm
  3. 【312】◀▶ arcpy 常用函数说明
  4. 第83天:jQuery中操作form表单
  5. windows下kafka源码阅读环境搭建
  6. sulime text 常用快捷键总结
  7. Silverlight开发历程—模糊特效与投影特效
  8. mysql path conflict_yum安装MySQL出现conflict problem
  9. mysql目录下没有配置文件_MySQL没有my.cnf配置文件如何解决
  10. ubuntu ifconfig命令找不到_那些年踩过的坑--无法使用MobaXterm远程登录Ubuntu