将最大熵原理应用在分类问题上,就得到了最大熵模型,而为了讲述最大熵原理,我们首先介绍熵的概念。

熵以及最大熵原理

熵的概念

设 $X$ 为可取有限个不确定值的离散型随机变量,它的概率分布为:

$$P(X=x_i)=p_i$$

则该随机变量 $X$ 的熵定义为:

$$H(P)=-\Sigma_xp_ilogp_i$$

特别地,令 $0log0=0$。上式中对数底为 $2$ 时,熵的单位为比特(bit),对数底为 $e$ 时,熵的单位为纳特(nat)。随机变量的熵反映了随机变量取值的不确定性程度。熵的取值范围如下:

$$0 \leq H(P) \leq log|X|$$

上式中,$|X|$ 代表随机变量 $X$ 的取值个数。当随机变量的概率分布为均匀分布时,其熵取得最大值。

最大熵原理

最大熵原理认为,在所有符合约束条件的概率模型中,熵最大的模型是最好的模型。

最大熵模型

最大熵模型用于处理分类问题,与 logistic 回归模型 一样,它是概率模型,也就是说,若设含 $n$ 个样本的训练数据集为 $\{(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}), …, (x^{(n)}, y^{(n)})\}$,那么通过该训练数据集最后学得的模型形式应为 $P(y|x)$,其中 $x$ 是特征,$y$ 是类别。同时,它也属于对数线性模型的范畴,只不过这里的模型对数不与显而易见的简单线性函数形式存在相等关系。

如上所述,我们最终学得的模型形式为 $P(y|x)$,将最大熵原理应用在这里的分类问题中,即我们需要 从所有满足条件的模型 $P(y|x)$ 中,找到其中熵最大的作为我们最终得到的最优模型,即为最大熵模型。$P(y|x)$ 是条件概率的形式,因此我们这里需要用到的熵为条件熵。条件熵的数学表达式如下:

$$H(P)=-\Sigma_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)$$

上式中,我们取对数底为自然对数,$\widetilde{P}(x)$ 为从训练数据集中得到的关于 $x$ 的经验概率,它等于特征 $x$ 在训练数据集中出现的频率。

以上条件熵的数学表达式实际上可以通过如下过程得到:
如果将这里的条件概率看作如上一部分中所述的一般概率形式,则随机变量 $Y$ 的熵为 $-\Sigma_yP(y|x)logP(y|x)$,但是真正来说,这里的条件概率将 $x$ 作为一个随机变量来对待,引入随机变量 $x$ 后的条件熵应该为随机变量 $X$ 关于以上随机变量 $Y$ 的熵的数学期望,即为:$-\Sigma_x\widetilde{P}(x)\Sigma_yP(y|x)logP(y|x)$,进一步化简,可得最终条件熵的数学表达式为:$-\Sigma_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)$。

让我们回到一开始的主题上来,如前所述,最大熵模型即为条件熵最大的模型,不仅如此,最大熵模型还必须满足训练数据集中的特征约束条件,为了表征这些特征约束条件,我们定义特征指示函数如下:

$$f(x, y)=\begin{cases}1,& \text{$x$、$y$ 满足某一特征约束条件;}\\
0, & \text{otherwise.} \end{cases}$$

设有 $n$ 个特征约束,则有 $n$ 个特征指示函数 $f_1(x, y), f_2(x, y), …, f_n(x, y)$, 我们希望某个特征在训练集中出现的概率与在总体样本中出现的概率相同,反映在数学上,也就是说,该特征在训练集中的数学期望与其在总体样本中的数学期望相等,即有:

$$\mathbb{E} _{\widetilde{P}}(f_i(x, y)) = \mathbb{E}_ P(f_i(x, y)) \quad i=1,2,…,n$$

也就是说:

$$\Sigma_{x,y}\widetilde{P}(x, y)f_i(x, y)=\Sigma_{x,y}P(x, y)f_i(x, y) \quad i=1,2,…,n$$

上式中,$\widetilde{P}(x, y)$ 为特征约束 $f_i(x, y)$ 在训练集中出现的经验概率,同样,它等于特征约束 $f_i(x, y)$ 在训练集中出现的频率。

进一步地:

$$\Sigma_{x,y}\widetilde{P}(x, y)f_i(x, y)=\Sigma_{x,y}\widetilde{P}(x)P(y|x)f_i(x, y) \quad i=1,2,…,n$$

由此,求最大熵模型的过程变为求解如下带约束条件的最优化问题:

$$max_P \quad H(P)=-\Sigma_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)\\
s.t. \quad \mathbb{E} _{\widetilde{P}}(f_i(x, y))=\mathbb{E}_ P(f_i(x, y)) \quad i=1,2,…,n\\
\quad \Sigma_yP(y|x)=1$$

按照求最优化问题的习惯,将以上最大化问题转换为最小化问题如下:

$$min_P \quad -H(P)=\Sigma_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)\\
s.t. \quad \mathbb{E} _{\widetilde{P}}(f_i(x, y))=\mathbb{E}_ P(f_i(x, y)) \quad i=1,2,…,n\\
\quad \Sigma_yP(y|x)=1$$

对于带约束条件的最优化问题,考虑使用拉格朗日乘子法,引进拉格朗日乘子 $w_0, w_1, w_2, …, w_n$,构造广义拉格朗日函数如下:

$$\mathcal{L}(P, w)=-H(P)+w_0(1-\Sigma_yP(y|x))+\Sigma_{i=1}^nw_i(\mathbb{E} _{\widetilde{P}}(f_i(x, y))-\mathbb{E}_ P(f_i(x, y)))\\
=\Sigma_{x,y}\widetilde{P}(x)P(y|x)logP(y|x)+w_0(1-P(y|x))+\\
\Sigma_{i=1}^nw_i(\Sigma_{x,y}\widetilde{P}(x, y)f_i(x, y)-\Sigma_{x,y}\widetilde{P}(x)P(y|x)f_i(x, y))$$

拉格朗日对偶 知,与原始问题等价的优化问题为广义拉格朗日函数的极小极大化问题,即:

$$min_P\;max_w\;\mathcal{L}(P, w)$$

其对偶问题为:

$$max_w\;min_P\;\mathcal{L}(P, w)$$

由于 $-H(P)$ 是关于 $P$ 的凸函数,所以可以通过求解对偶问题的解从而求得原始问题的解。对于以上对偶问题,先考虑极小化问题 $min_P\;\mathcal{L}(P, w)$,广义拉格朗日函数 $\mathcal{L}(P, w)$ 针对 $P$ 取得极小值的必要条件为 $\nabla_P\mathcal{L}(P, w)=0$,即有:

$$
\nabla_P\mathcal{L}(P, w)=\Sigma_{x, y}\widetilde{P}(x)logP(y|x)+\Sigma_{x,y}\widetilde{P}(x)+w_0-\Sigma_{x,y}\widetilde{P}(x)\Sigma_{i=1}^nw_if_i(x, y)\\
=\Sigma_{x,y}\widetilde{P}(x)[logP(y|x)+1+\frac{w_0}{\Sigma_{x,y}\widetilde{P}(x)}-\Sigma_{i=1}^nw_if_i(x, y)]=0
$$

在 $\widetilde{P}(x)>0$ 的情况下,则必有:$logP(y|x)+1+\frac{w_0}{\Sigma_{x,y}\widetilde{P}(x)}-\Sigma_{i=1}^nw_if_i(x, y)=0$,解得:

$$P_w(y|x)=exp(\Sigma_{i=1}^nw_if_i(x,y)+\frac{w_0}{\Sigma_{x,y}\widetilde{P}(x)}-1)\\
=\frac{exp\Sigma_{i=1}^nw_if_i(x, y)}{exp(1-\frac{w_0}{\Sigma_{x,y}\widetilde{P}(x)})}$$

符号 $P_w(y|x)$ 表示求得的 $P(y|x)$ 是关于 $w$ 的函数,令 $Z_w(x)=exp(1-\frac{w_0}{\Sigma_{x,y}\widetilde{P}(x)})$,则有:

$$P_w(y|x)=\frac{1}{Z_w(x)}exp(\Sigma_{i=1}^nw_if_i(x, y))$$

上式中,$w_i$ 为特征约束 $f_i(x, y)$ 的权重。实际上,上式两端取自然对数 $log$,得:$logP_w(y|x)=log\frac{exp(\Sigma_{i=1}^nw_if_i(x, y))}{Z_w(x)}=\Sigma_{i=1}^nw_if_i(x, y)-logZ_w(x)$,也就是说,模型 $P_w(y|x)$ 与特征函数 $f_i(x, y)$ 存在着以上这种线性关系,这也是最大熵模型是一种对数线性模型的原因。

又由于 $\Sigma_yP_w(y|x)=1$,代入上式,两边分别取 $\Sigma_y$,可解得:

$$Z_w(x)=\Sigma_yexp(\Sigma_{i=1}^nw_if_i(x, y))$$

接着考虑对偶问题最外部的极大化问题,即:$max_w\;\mathcal{L}(P_w, w)$,取得以上最优解时 $w$ 对应的最优值 $w^*=argmax_w\;\mathcal{L}(P_w, w)$。可以采用 拟牛顿法 或改进的迭代尺度法求解这里的最优值,我们将在 下一节 中介绍详细过程,在这之前,我们先来看一下最大熵模型的极大似然估计与对偶函数的极大化之间有什么关系。

最大熵模型的极大似然估计

设 $\widetilde{P}(x,y)$ 是训练数据集中关于样本特征 $x$ 和标签 $y$ 的联合概率分布,则条件分布 $P(y|x)$ 的似然函数为:

$$\mathcal{l}(P(y|x))=\Pi_{x,y}P(y|x)^{\widetilde{P}(x,y)}$$

取对数似然:

$$\mathcal{L}(P(y|x))=log\Pi_{x,y}P(y|x)^{\widetilde{P}(x,y)}=\Sigma_{x,y}\widetilde{P}(x,y)logP(y|x)$$

将上文中得到的最大熵模型 $P_w(y|x)$ 代入上式,得:

$$
\mathcal{L}(P_w(y|x))=\Sigma_{x,y}\widetilde{P}(x,y)logP_w(y|x)\\
=\Sigma_{x,y}\widetilde{P}(x,y)(\Sigma_{i=1}^nw_if_i(x, y)-logZ_w(x))\\
=\Sigma_{x,y}\widetilde{P}(x,y)\Sigma_{i=1}^nw_if_i(x, y)-\Sigma_x\widetilde{P}(x)\Sigma_y\widetilde{P}(y|x)logZ_w(x)\\
=\Sigma_{x,y}\widetilde{P}(x,y)\Sigma_{i=1}^nw_if_i(x, y)-\Sigma_x\widetilde{P}(x)logZ_w(x)
$$

我们回过头来看一下对偶函数的极大化过程,将最大熵模型 $P_w(y|x)$ 代入以上广义拉格朗日函数中(注意下面的 $\mathcal{L}$ 为广义拉格朗日函数而不是上文的对数似然函数),得:

$$\mathcal{L}(P_w, w)=\Sigma_{x,y}\widetilde{P}(x)P_w(y|x)logP_w(y|x)+w_0(1-\Sigma_yP_w(y|x))+\Sigma_{i=1}^nw_i(\Sigma_{x,y}\widetilde{P}(x, y)f_i(x, y)-\Sigma_{x,y}\widetilde{P}(x)P_w(y|x)f_i(x, y))\\
=\Sigma_{x,y}\widetilde{P}(x)P_w(y|x)(\Sigma_{i=1}^nw_if_i(x,y)-logZ_w(x))+\Sigma_{x,y}\widetilde{P}(x, y)\Sigma_{i=1}^nw_if_i(x, y)-\Sigma_{x,y}\widetilde{P}(x)P_w(y|x)\Sigma_{i=1}^nw_if_i(x, y)\\
=\Sigma_{x,y}\widetilde{P}(x, y)\Sigma_{i=1}^nw_if_i(x, y)-\Sigma_{x,y}\widetilde{P}(x)P_w(y|x)logZ_w(x)\\
=\Sigma_{x,y}\widetilde{P}(x, y)\Sigma_{i=1}^nw_if_i(x, y)-\Sigma_x\widetilde{P}(x)\Sigma_yP_w(y|x)logZ_w(x)\\
=\Sigma_{x,y}\widetilde{P}(x,y)\Sigma_{i=1}^nw_if_i(x, y)-\Sigma_x\widetilde{P}(x)logZ_w(x)$$

由此可见,对偶函数的极大化与最大熵模型的极大似然估计是等价的。因此,我们可以通过求解最大熵模型的极大似然估计问题来求解对偶函数的极大化问题,而要使用的方法就是我们 下一节 所述的改进的迭代尺度法和拟牛顿法。