最大熵模型

GitHub

CSDN

1. 最大熵原理

最大熵模型(Maximum Entropy Model)是通过最大熵原理推导实现,那什么是最大熵原理?

熵是随机变量不确定性大的度量,不确定性越大,熵值越大;若随机变量变为定值,即某个值发生的概率为1,而其它事件都为0, 此时熵值为0,均匀分布是熵值最大的分布,也即“最不确定的分布”。

假设离散随机变量 的概率分布是 ,则其熵为:

熵满足如下条件:


其中, 表示 的取值,当 的分布是均匀分布时,满足左边等号,当 是确定事件时,满足左边的等号。

从上面可知,最大熵原理认为该求解的概率模型满足如下条件:

  1. 满足事先已约束的条件;
  2. 然后在满足这些条件的模型中选择熵最大的模型,即让不确定的信息等可能的发生;

2. 最大熵模型

将最大熵原理应用到分类问题中即得到最大熵模型。假设分类模型的一个条件概率分布 , 表示输入,表示输出。这个模型表示给定的输入 ,以条件概率输出。

给定一个训练数据集

学习的目标是用最大熵原理选择最好的模型。

对于给定训练数据集,我们可以确定联合分布的经验分布和边缘分布 的经验分布 ,即:

其中, 表示训练数据中样本出现的频数, 表示训练数据集中 出现的频数。 表示训练样本的总容量。

特征函数 表示输入 和输出 之间的某个约束。其定义为:

特征函数 关于经验分布 的期望值为:

特征函数 关于模型 和经验分布 的期望值为:

因为机器学习的目的就是从数据集中学得数据中包含的某种内在信息,因此我们可以假设公式4和公式5相等,即

公式6就作为模型的约束条件,如果有 n 个特征函数,则就有 n 个约束条件。

最大熵模型 假设满足所有约束条件的模型集合为

定义在条件概率分布 上的条件熵为:

则模型集合 条件熵最大的模型成为最大熵模型

补充

条件概率的熵的公式为

因此最大熵模型如公式7所示。

总之,最大熵模型就是在满足约束的模型集合中选择条件概率分布 最大的模型。

3. 最大熵模型的学习

通过上述上述的描述,最大熵模型可以形式化为约束最优化问题,即

按照优化习惯,通常将最大值优化转换为最小值优化。即

公式10所得出的解就是最大熵模型学习的模型。

解决上述约束最优化问题,我们通过拉格朗日对偶性来进行解决。

首先我们引入拉格朗日乘子,定义拉格朗日函数 为
\begin{aligned} L(P, w) &=-H(P) + w_0(1-\sum_yP(y|x))+\sum_{i=1}^{n}w_i(E_{\tilde p}(f_i) - E_{p}(f_i)) \\ &=\sum_{x,y}\tilde P(x)P(y|x)\log P(y|x) + w_0(1-\sum_yP(y|x)) \\ &+\sum_{i=1}^{n}w_i(\sum_{x,y}\tilde P(x,y)f(x, y) - \sum_{x, y} \tilde P(x)P(y|x)f(x, y)) \end{aligned} \tag{11}

因此,最优化问题的原始问题为

对偶问题

我们称公式10、11和12为原始问题,公式13为原始问题的对偶问题,且原始问题的解与对偶问题的解是等价的,因此,公式11的解就是我们求解的模型。

我们首先求解对偶问题公式13内部的极小化问题,该函数是关于 的函数,我们将其记作:

称为对偶函数,同时其解记为:

我们可以利用偏导数来求解公式15,即

\begin{aligned} \frac{\partial L(P,w)}{\partial P(y|x)} &= \sum_{x,y}(\tilde P(x) \log P(y|x) + \tilde{P}(x)) -\sum_{y}w_o+\sum_{i=1}^{n}w_i(-\sum_{x,y}\tilde{P}(x)f_{i}(x,y)) \\ &= \sum_{x,y}\tilde{P}(x)(\log P(y|x) + 1) - \sum_{y}w_0-\sum_{x,y}{\tilde{P}(x)\sum_{i=1}^nw_if_i(x,y)} \\ &=\sum_{x,y}\tilde{P}(x)(\log P(y|x) + 1) - \sum_x \tilde{P}(x)\sum_{y}w_0-\sum_{x,y}{\tilde{P}(x)\sum_{i=1}^nw_if_i(x,y)} \\ &= \sum_{x,y}\tilde{P}(x)(\log P(y|x) + 1-w_0-\sum_{i=1}^nw_if_i(x,y)) \end{aligned} \tag{16}

由于 是凸函数,我们我可令上式偏导数为0,在的情况下,即可求出, 即:

由于在概率论中,,因此需对公式17进行归一化,又为常数,因此:

其中

公式18、19表示的模型就是最大熵模型.然后求解对偶函数的极大化问题

求得,得到最终模型。

4 极大似然估计

通过上面一小节的计算,我们已经求出最大熵模型,但是此时该模型还是一个关于 的函数,我们如何求出 来求得最终的模型呢。

我们先来描述对数似然函数,通过前面一章的逻辑回归模型中的最大似然估计,我们可知对数似然函数和熵在值上互为相反数,又通过公式8得知条件概率的熵形式,因此我们可以得知,条件概率分布的对数似然函数

我们再冲似然函数的定义方面证明上述公司的正确性。

在给定数据集,我们可求得当前模型的似然函数为:

我们假设在训练集中出现了,因此公式22可以转化为:

表示训练数据集中总共有 k 种不同的输入特征,我们对上市求其 次方,得:

对公式24求对数的:

因此对于 和 是等价的,

因此对于条件概率分布的对数似然函数

对于公式21-26的推导,不具有严格的树学理论,只是为了理解下面公式27做铺垫。

一直训练数据的经验概率分布条件概率分布的对数似然函数表示为

将公式18和19带入公式27可得:
\begin{aligned} L_{\tilde P}(P_w) &=\sum_{x,y}\tilde{P}(x,y)(\sum_{i=1}^{n}w_if_i(x,y)-\log Z_w(x) \\ &=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^{n}w_if_i(x,y)-\sum_{x,y}\tilde{P}(x,y)\log Z_w(x) \\ &=\sum_{x,y}\tilde{P}(x,y)\sum_{i=1}^{n}w_if_i(x,y)-\sum_{x}\tilde {P}(x)\log Z_w(x) \end{aligned} \tag{28}

公式28就是极大似然函数。上式最后两步最后一项的转化是因为 是关于 x 的函数,所以可以对 对 进行累加得到 .

我们再看看对偶函数 ,我们将 带入公式11得:

\begin{aligned} \psi (w) =& \sum_{x,y}\tilde P(x)P_w(y|x)\log P_w(y|x) + w_0(1-\sum_yP(y|x)) \\ &+\sum_{i=1}^{n}w_i(\sum_{x,y}\tilde P(x,y)f(x, y) - \sum_{x, y} \tilde P(x)P_w(y|x)f(x, y)) \\ =&\sum_{x,y}\tilde P(x)P_w(y|x)\log P_w(y|x) \\ &+\sum_{i=1}^{n}w_i(\sum_{x,y}\tilde P(x,y)f(x, y) - \sum_{x, y} \tilde P(x)P_w(y|x)f(x, y)) \\ =& \sum_{x,y}\tilde P(x,y)\sum_{i=1}^{n}w_if(x, y)+\sum_{x,y}\tilde{P}(x)P_w(y|x)(\log P_w(y|x)-\sum_{i=1}^{n}w_if_i{(x,y)}) \\ =& \sum_{x,y}\tilde P(x,y)\sum_{i=1}^{n}w_if(x, y)-\sum_{x,y}\tilde{P}(x)P_w(y|x)\log Z_w(x) \\ =& \sum_{x,y}\tilde P(x,y)\sum_{i=1}^{n}w_if(x, y)-\sum_{x,y}\tilde{P}(x)\log Z_w(x) \end{aligned} \tag{29}

公式29第三步到第四步用到下面公式进行推导:

倒数第二步到最后一步的推导用到了 .

比较公式公式28和公式29,可得:

因此,可以证明,最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计。

你可能感兴趣的:(最大熵模型)