当前位置: 主页 > Python语言

最大熵模型 python-耦合模型熵权法

发布时间:2023-02-08 11:16   浏览次数:次   作者:佚名

前言:“熵”最初是热力学中的一个概念。 后来信息论中引入了信息熵的概念来表示不确定性的度量。 不确定性越大,熵值越大。 在极限情况下,当随机变量均匀分布时,熵值最大; 当完全确定时,熵值为0。基于最大熵理论的统计建模已成为近年来自然语言处理领域最成功的机器学习方法。

目录

1.什么是最大熵原理

2.相关数学知识

3. 最大熵模型的定义

4.最大熵模型的学习

5.优化算法

6. 参考资料

1.引入最大熵原理

例1:假设随机变量X有5个值{A,B,C,D,E},需要估计概率P(A),P(B),...,P(E ) 的每个值。

这些概率值满足条件

最大熵模型_最大熵模型 python_耦合模型熵权法

P(A)+P(B)+P(C)+P(D)+P(E)=1

但是满足这个条件的概率分布有无穷多个。 如果没有其他信息,一个可行的办法是认为它们的概率是相等的,都是0.2。

如果多一个条件 P(A) + P(B) = 0.3,每个值的概率是多少?

2.数学知识

贝叶斯定理用于描述两个条件概率之间的关系。 如果P(A)和P(B)分别表示事件A和事件B发生的概率最大熵模型 python最大熵模型 python,P(A|B)表示事件B发生时事件A的概率,P(A,B)表示事件A和B同时出现的概率,则:

结合(1.2)和(1.3),可进一步得到贝叶斯公式:

熵是热力学中的一个概念,由香农引入信息论。 在信息论和概率统计中,熵被用来表示随机变量不确定性的度量。

H(x)取决于X的分布,但与X的具体取值无关。H(X)越大,X的不确定性越大。

3. 最大熵模型的定义

最大熵模型_最大熵模型 python_耦合模型熵权法

最大熵原理是统计学习的一般原理,将其应用于分类会产生最大熵模型。

假设分类模型是一个条件概率分布 P(Y|X),其中 X 代表输入,Y 代表输出。 该模型表示对于给定的输入 X,输出 Y 的条件概率为 P(Y|X)。

给定一个训练数据集 T,我们的目标是利用最大熵原理来选择最好的分类模型。

根据最大熵原理,首先要保证模型满足所有已知的约束条件。 那么如何获得这些约束呢?

其思想是:从训练数据T中提取若干个特征,然后要求这些特征对T上的经验分布的期望等于它们在模型中对p(x,y)的数学期望,这样一个特征对应到一个约束。

经验分布是指对训练数据T进行统计得到的分布。我们需要考察两个经验分布,x,y的联合经验分布和x的分布。 它的定义如下:

在(3.3)中,count(x,y)表示(x,y)在数据T中出现的次数,count(x)表示x在数据T中出现的次数。

对于任何特征函数 f,记录 E p !  (f) 表示 f 对训练数据 T 关于 p 的数学期望!  (x,y)。  E p ( f ) 表示模型中 f 对 p(x,y) 的数学期望。 根据期望的定义,有:

需要注意的是,式(3.5)中的p(x,y)是未知的。 而我们的建模目标是p(y|x),所以我们使用贝叶斯定理得到p(x,y)=p(x)p(y|x)。 此时p(x)还是未知数,我们可以用经验分布来近似p(x)。

耦合模型熵权法_最大熵模型 python_最大熵模型

对于概率分布p(y|x),我们希望特征f的期望应该与从训练数据中得到的特征期望相同。 因此,可以提出约束:

假设从训练数据中提取了n个特征,则对应有n个特征函数和n个约束条件。

给定一个数据集 T,我们的目标是根据最大熵原则选择一个最优分类器。

给定特征函数和约束,我们将熵的概念应用于条件分布。 我们使用条件熵。

至此,我们可以给出最大熵模型的完整描述。 对于给定的数据集T,特征函数fi(x,y),i=1,...,n,最大熵模型就是求解模型集C中条件熵最大的模型:

4.最大熵模型的学习

用拉格朗日乘子法定义关于(3.7)、(3.12)和(3.13)的拉格朗日函数如下:

使用拉格朗日对偶性,由(3.6)、(3.12)和(3.13)定义的最大熵模型等价于求解:

通过交换最大和最小位置,可以得到式(4.2)的对偶问题:

最大熵模型 python_最大熵模型_耦合模型熵权法

经过两次等价变换,求解最大熵模型就是求解对偶问题(4.3)。求解极小问题对偶问题(4.3)的内部极小问题是关于参数lamba

我们可以使用拉格朗日乘数法来获得p。

首先计算拉格朗日函数 L 关于 p(y|x) 的偏导数。

将上式设为0,我们得到:

进一步可以解决:

将上述公告带入(3.13),可以得到

进一步可用:

将(4.7)带回(4.6),我们得到:

(4.9) 称为归一化因子。  (4.8)中的p是最大熵模型的解,可见他具有指数形式。 极大似然估计得到对偶问题(4.3)的内极小问题的解p后,还需要进一步求解外极值问题。

最大熵模型_最大熵模型 python_耦合模型熵权法

例子

分别对w0和w1求偏导,使它们都等于0,可以得到

5.优化算法

式(4.11)没有显式解析解,需要借助其他方法。 由于目标函数是凸函数,可以通过各种优化方法求解,可以保证全局最优解。

为最大熵模型量身定制的两种优化方法是通用迭代缩放 (GIS) 和改进迭代缩放 (IIS)。

参考

李航。 统计学习方法[M]. 北京:清华大学出版社,2012

吴军. 数学之美[M]. 北京:人民邮电出版社,2012

《最大熵学习笔记》

“关于最大熵模型的严重混淆:为什么没有解析解?”

《最大熵——IIS(改进的迭代缩放)训练算法的Java实现》《如何理解最大熵模型中的特征?》