最大熵模型和EM算法

摘要:
EM算法是一个框架,Z可以是您需要的任何变量。

一、极大似然
已经发生的事件是独立重复事件,符合同一分布
已经发生的时间是可能性(似然)的事件
利用这两个假设,已经发生时间的联合密度值就最大,所以就可以求出总体分布f中参数θ
最大熵模型和EM算法第1张

用极大似然进行机器学习
有监督学习:最大熵模型
无监督学习:GMM

二、熵和信息
自信息i(x) = -log(p(x)) 信息是对不确定性的度量。概率是对确定性的度量,概率越大,越确定,可能性越大。信息越大,越不确定。

熵是对平均不确定性的度量。熵是随机变量不确定性的度量,不确定性越大,熵值越大。
H(x) = -∑p(x)log⁡P(x)

互信息,其实我不不关心一个事件的大小,更关心的是知道某个信息之后,对于你关心的那个事件的不确定性的减少。互信息是对称的。
i(y, x) = i(y) – i(y|x) = log(p(y|x)/p(y))

平均互信息
决策树中的“信息增益”其实就是平均互信息I(x, y), 后面那部分就是互信息,前面p(x,y)相当于权重。这就与机器学习相关的点了。平均互信息=熵-条件熵
最大熵模型和EM算法第2张

信息论与机器学习的关系

最大熵模型和EM算法第3张

交叉熵

评价两个概率分布的差异性,比如一个概率分布是01分布,另一个概率分布也是01分布,但是他们分布的概率不一样,一个3/7,一个是6/4

最大熵模型和EM算法第4张

逻辑回归中的交叉熵代价函数,用来衡量误差,a是预测值,y是实际值

最大熵模型和EM算法第5张

相对熵(KL散度) 也是衡量两个概率分布的差异性,可以理解成一种广泛的距离。不具有对称性。

最大熵模型和EM算法第6张

三、最大熵原理

(比较理想的模型,实际实现的时候计算量比较大,只适合于自然语言处理中的一小部分问题,在近两年大家提到的频率没有那么高了,因为deeplearning的兴起,很多用神经网络替换了。)

凡是已知的条件认为是一种约束,对于未知的条件,我们认为是均匀分布的且没有任何偏见。条件熵最大是一个自然的规律,它意味着我们所有的条件概率的分布在约束条件下也符合平均的。
承认已知事物,对未知事务不做任何假设,没有任何偏见,熵取最大的时候,是各个概率都相等的时候
最大熵模型和EM算法第7张

最大熵存在且唯一(凸优化)

最大熵原理进行机器学习
最大化条件熵得出的结果就是我们要得到的条件概率的分布P(y|x),就是我们要求的模型
x表示特征,y表示标签

最大熵模型和EM算法第8张

理解约束条件

最大熵模型和EM算法第9张

若引入新知识,p(y4)=0.5

最大熵模型和EM算法第10张

再次引入新知识,条件概率约束,怎么样得到无偏的最大熵模型。

最大熵模型和EM算法第11张

用凸优化(求最小值)理论求解Maxent

最大熵模型和EM算法第12张

最大熵模型和EM算法第13张

原始问题是求凸函数的最小值,对偶问题是求其对偶函数的最大值,在最大函数不是凸的情况下,原来问题的最小值会比对偶问题的最大值还大一点点,有一段gap,但对于凸函数来说gap会等于0,所有只要求对偶问题的最大值就够了,就能够求到原始问题最小值对应的值。题就相当于解完了。

最大熵模型和EM算法第14张

泛函求导,由于P不是一个变量,是一个函数,所以涉及到泛函求导。

最大熵模型和EM算法第15张

求偏导,得到条件概率,得到我们苦苦追寻的p(y|x),其中的w是我们要求的。

最大熵模型和EM算法第16张

但是上面这个条件概率所有情况加起来是不等于1的,所以我们进行归一化,将值相加再除以它,下面就是最大熵模型的形式,一个非常简单的形式——指数函数。确定指数函数的参数就是训练的过程。最原始的训练方法是GIS,后面又提出IIS。下图还举了一个最大熵模型转换为Logistic回归的例子,对输入x和输出y去做一个f(x,y)的定义的时候,可以转化。

最大熵模型和EM算法第17张

最大熵模型和EM算法第18张

主要应用:自然语言处理中的词性标注、句法分析。最大熵的库:github上面minixalpha/Pycws 用最大熵完成抽取的特征

最大熵模型和EM算法第19张

四、EM算法
EM算法在高斯模型里面的体现
EM算法求解GMM问题,下面是个无监督的问题。男女在身高上都符合高斯分布,是属于女生的分布多还是属于男生的分布多,哪个分布多点,就属于哪类。
最大熵模型和EM算法第20张

上面那个例子就是,两个高斯分布,高斯分布男,高斯分布女,并分别对应概率π1,π2(相当于系数权重)
最大熵模型和EM算法第21张

拟合出一套对数似然函数,括号里面是一个Xi出现的概率,权重相乘加和后就是结果

最大熵模型和EM算法第22张

r(i,k)可以看成是其中一个高斯分布在生成数据xi时所作的贡献,先假定参数已知。

最大熵模型和EM算法第23张

基于已经知道的值,做一个加和就能反过来求μ和西格玛和π,其中Nk是某一个高斯型对所有身高的人数的贡献,即对每个确定的组分对所有人求和,比如高斯分布女的概率求所有人加和,这个值应该就是所有女生的人数。

最大熵模型和EM算法第24张

EM算法最原始的思路

最大熵模型和EM算法第25张

最大熵模型和EM算法第26张

最大熵模型和EM算法第27张

凸函数 函数的期望大于等于期望的函数

最大熵模型和EM算法第28张

最大熵模型和EM算法第29张

当Q等于下个这个值时,等号成立

最大熵模型和EM算法第30张

求Q的过程就是求E(期望),然后再基于Q,求紧下界的最大值,从而求出θ。反复迭代得到

最大熵模型和EM算法第31张

最终要求的是隐含变量Z,Q是为了方便求解Z引入的一个中间变量,Q是Z的某一个分布。Q通过jensen不等式和一系列的值,E步过程求得值。Z对应到我们上面高斯分布模型里面就是上面的π,Q是上面的r(i,k)。EM算法是一种框架,Z可以是你要求的任何变量。

免责声明:文章转载自《最大熵模型和EM算法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C#:类的访问修饰符和类成员的访问修饰符mybatis插入Oracle数据库中日期型数据下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

动手学深度学习 | 使用和购买GPU | 15

目录 使用GPU 购买GPU 整机配置 QA 使用GPU 其实如果没有钱买GPU的话,使用Google Colab也是一个不错的选择,大概是10 dollar一个月。 算力其实是很贵的... 利用好算力是一件很重要的事情! 关于Nvidia Driver too old的问题,如果是服务器的话,这里不要盲目的去更新显卡驱动,这样子会把别人的环...

word2vec改进之Hierarchical Softmax

首先Hierarchical Softmax是word2vec的一种改进方式,因为传统的word2vec需要巨大的计算量,所以该方法主要有两个改进点: 1. 对于从输入层到隐藏层的映射,没有采取神经网络的线性变换加激活函数的方法,而是采用简单的对所有输入词向量求和并取平均的方法。 比如输入的是三个4维词向量:(1,2,3,4),(9,6,11,8),(5,...

机器学习之线性回归---logistic回归---softmax回归

在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值。 Softmax回归模型对于诸如MNIST手写数字分类等问题是很有用的,该问题的目的是辨识10个不同的单个数字。Softmax回归是有监督的,不过后面也会介绍它与深度学习/无监督学习方法的结合。(译者注: MNIST...

实时机器学习是什么,面临哪些挑战?

    最近能够随数据获取实时调整模型的实时机器学习,正在成为媒体技术领域的新“网红”。曾经连续两年,都被FTI评为传媒业的重要技术趋势之一,与自然语言理解NLU、机器阅读理解MRC、音视频算法等共享金字塔顶端的荣光。        那实时机器学习到底是什么呢?   在开启扒皮模式之前,我们先来了解一下,实时机器学习究竟在哪些地方比传统的机器学习更强?  ...

使用Keras进行深度学习:(二)CNN讲解及实践

欢迎大家关注我们的网站和系列教程:http://www.tensorflownews.com/,学习更多的机器学习、深度学习的知识! 现今最主流的处理图像数据的技术当属深度神经网络了,尤其是卷积神经网络CNN尤为出名。本文将通过讲解CNN的介绍以及使用keras搭建CNN常用模型LeNet-5实现对MNist数据集分类,从而使得读者更好的理解CNN。 1....

三种Js深度学习框架介绍

谈到机器学习,我们脑海首先蹦出的编程语言是什么?一定是python。其实除了python,JavaScript也是不错的选择。都说现在是大前端时代,从移动开发、服务器端,甚至桌面软件开发(比如大名鼎鼎的VS Code),都有JavaScript的身影。   用Javascript写机器学习应用,当然不会从头开始手写机器学习算法和模型,通常会借助现有框架。我...