机器学习---最大熵模型(MEM)小结
当我们想要得到一个随机事件的概率分布时,如果没有足够的信息来完全确定其概率分布,那么最为保险的方法就是选择一个使得熵最大的分布。
最大熵模型
- 1.信息论知识
- 1.1信息熵的概念
- 1.2.条件熵
- 1.3相对熵
- 1.4互信息
- 1.5几个量之间的关系
- 2.无约束条件
- 3.最大熵原理
- 3.1构造约束条件
- 3.2求解概率分布
1.信息论知识
这里就照搬我写的一篇关于决策树的内容了。原文链接:决策树与随机森林(从入门到精通)
1.1信息熵的概念
设离散型随机变量X的取值有x1,x2,x3,...,xnx_{1},x_{2},x_{3},...,x_{n}x1,x2,x3,...,xn,其发生概率分别为p1,p2,p3,...,pnp_{1},p_{2},p_{3},...,p_{n}p1,p2,p3,...,pn,那么就可以定义信息熵为:
一般对数的底数是2,当然也可以换成e,当对数底数为2时,信息熵的单位为比特,信息熵也称香农熵。当对数不为2而是其他大于2的整数r时,我们称信息熵为r-进制熵,记为Hr(X)H_{r}(X)Hr(X),它与信息熵转换公式为:
信息熵用以描述信源的不确定度, 概率越大,可能性越大,但是信息量越小,不确定性越小,熵越小。
1.2.条件熵
设随机变量(X,Y)具有联合概率分布:
条件熵H(Y∣X)H(Y|X)H(Y∣X)表示 在已知随机变量X的条件下随机变量Y的不确定性。可以这样理解:(X,Y)发生所包含的熵,减去X单独发生的熵,就是在X发生的前提下,Y发生新带来的熵。
所以条件熵有如下公式成立:
推导如下:
1.3相对熵
相对熵,又称互熵,交叉熵,鉴别信息,Kullback熵,Kullback-Leible散度等。定义如下:
设p(x),q(x)是随机变量X中取值的两个概率分布,则p对q的相对熵为:
在信息理论中,相对熵等价于两个分布的信息熵(Shannon entropy)的差值。 即:
1.4互信息
两个随机变量X和Y的互信息,定义为X,Y的联合分布和独立分布乘积的相对熵。即:
所以根据KL散度也就是相对熵的定义,可以推出互信息的表达式如下:
继续推导如下:
所以最后有:
1.5几个量之间的关系
结合上述条件熵的两个表达式,可以进一步推出:
当然我们也可以根据熵的定义来直接推出上面这个互信息的公式:
同时我们也可以得到两个不等式:
上面这个不等式告诉我们,对于一个与X相关的随机变量Y,只要我们得知了一点关于Y的信息,那么X的不确定度就会减小。
最后,借助强大的韦恩图来记住这些关系:
2.无约束条件
假设有一随机变量X是离散的,我们只是知道它有K个可能的取值,其余什么信息都不知道,那么我们该如何估计才能使得熵最大呢?
X | 1…K |
---|---|
p | p1…pK |
根据上面熵的定义,我们知道我们要做的其实就是: | |
概率相加为1这个条件肯定得是天然满足的,换成求最小值:
同样利用拉格朗日乘子法,我们令:
我们让L对pip_{i}pi求导得:
可以看到,每一个pip_{i}pi都是一个相等的常数,又因为相加为1,所以每一个取值发生的概率都相等并且为1/K。因此,不知道任何已知条件的情况下,离散的随机变量均匀分布时,它的熵最大。
3.最大熵原理
我们设数据集为(x1,x2,...,xN)(x_{1},x_{2},...,x_{N})(x1,x2,...,xN)。
最大熵原理认为:在所有可能的概率模型中,熵最大的模型为最好的概率模型。求最大熵模型的步骤大致为:
- 根据已知约束条件筛选出可能的概率模型
- 在所有可能的概率模型中选出一个熵最大的模型作为最终的模型。
3.1构造约束条件
我们第一步要根据已知条件筛选出可能的概率模型,那么什么才是已知条件?这个需要我们自己构造,构造步骤如下:
- 我们定义一个f(x),f(x)是任意一个关于随机变量x的函数,我们称它为特征函数。
- 根据我们上面给出的训练数据集,我们可以得到f(x)的经验分布为p^(f(x))\hat{p}(f(x))p^(f(x)),进而求得其经验分布的期望为:Ep^[f(x)]E_{\hat{p}}[f(x)]Ep^[f(x)]=一个已知量。
- 解释一下经验分布:p^(f(x1))\hat{p}(f(x1))p^(f(x1))=x1x_{1}x1在训练集中出现的次数/样本集的总数目。
为什么我们要定义一个经验概率分布呢? 因为如果我们判断的随机变量x的概率分布是正确的,那么我们定义一个任意一个特征函数f(x),算出它的经验概率分布的期望,应该就等于f(x)真实的期望,这样我们就构造了一个约束条件。
3.2求解概率分布
那么我们最终要求解的就是:
其中δ\deltaδ已知。利用拉格朗日乘子法,我们令:
其中λ0是一个常数,λ是一个列向量,\lambda_{0}是一个常数,\lambda是一个列向量,λ0是一个常数,λ是一个列向量,f(x)也是一个列向量,它们都是Q维。我们让L对p(x)p(x)p(x)求导得:
于是我们就得到了p(x)p(x)p(x)的具体值,也就是x的具体分布。剩余参数可以通过KKT条件来求,这里就不再叙述了,具体可以参考:强对偶性、弱对偶性以及KKT条件的证明(对偶问题的几何证明)
机器学习---最大熵模型(MEM)小结相关推荐
- 机器学习--最大熵模型
参考链接:https://www.jianshu.com/p/e7c13002440d https://www.cnblogs.com/wxquare/p/5858008.html 详解机器学习中的熵 ...
- 机器学习-最大熵模型
最大熵模型是一种分类模型,它学习之后对某个x判断的结果是一个概率,即对一个自变量,它的分类分别是y1,y2,y3-yn的概率,然后概率最大的分类结果就是我们所要的结果分类ym. 最大熵原理 最大熵原理 ...
- 最大熵模型(MEM)
最大熵模型的优点在于可以添加任意自定义特征,且不需要保持维度一致性(通俗而言,就是每个样本满足哪些特征,就放哪些特征:特征函数的取值均为 0 或 1:放进来的特征即表示该样本在该特征维度上取值为 1, ...
- 最大熵(max entropy)模型原理小结
最大熵(max entropy)模型原理小结 1. 认识各种"熵" 1.1 信息量:信息的度量 1.2 熵:信息量的期望,不确定性的度量 1.3 联合熵 1.4 条件熵 1.5 互 ...
- 【机器学习基础】数学推导+纯Python实现机器学习算法22:最大熵模型
Python机器学习算法实现 Author:louwill Machine Learning Lab 最大熵原理(Maximum Entropy Principle)是一种基于信息熵理论的一般原理,在 ...
- 【机器学习】LR与最大熵模型的关系
逻辑回归与最大熵模型MaxEnt的关系? 逻辑回归跟最大熵模型到底有啥区别呢? 简单粗暴 的回答是:逻辑回归跟最大熵模型没有本质区别.逻辑回归是最大熵对应类别为二类时的特殊情况,也就是当逻辑回归类别扩 ...
- 【机器学习】最大熵模型(Maximum Entropy Model)
最大熵模型(Maximum Entropy Model,以下简称MaxEnt),MaxEnt 是概率模型学习中一个准则,其思想为:在学习概率模型时,所有可能的模型中熵最大的模型是最好的模型:若概率模型 ...
- 【机器学习】对数线性模型之Logistic回归、SoftMax回归和最大熵模型
来源 | AI小白入门 作者 | 文杰 编辑 | yuquanle 完整代码见:原文链接 1. Logistic回归 分类问题可以看作是在回归函数上的一个分类.一般情况下定义二值函数,然而二值函数 ...
- 各种机器学习算法的应用场景分别是什么(比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型)?...
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 链接:https://www.zhihu.com/question ...
最新文章
- centos7.9 配置nginx实现前后端分离
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水
- [Java Web – Maven – 1A]maven 3.3.3 for windows 配置(转)
- ASP.NET Core快速入门(第6章:ASP.NET Core MVC)--学习笔记
- mysql undrop_MySQL · 数据恢复 · undrop-for-innodb
- php类和自定义函数实例,php中三个调用用户自定义函数实例详解
- Hexo添加Follow me on CSDN效果
- Spring Boot 2.x 注册 Servlet 三大组件 Servlet、Filter、Listener
- 单代号网络图计算例题_海量优质网络图模板,轻巧实用的国产作图神器
- 【Windows Mobile】Win10 停留在加载界面无法进入主界面
- centos下载和安装mongodb
- Vuforia Vumark初探
- S3C2440裸机------GPIO
- Linux IP代理筛选系统
- leetcode之Kth Largest Element in an Array
- 搭建一整套电销机器人系统需要哪些技术和资源
- 怎么用python编写程序计算标准差_自学生信Python(第五天)|如何计算标准差?...
- java 删除指定文件夹内所有文件
- 软件测试与游戏测试的不同之处
- 复旦大学陈怡然:文本摘要的跨数据集迁移研究