声明:本博客整理自博友@zhouyong计算广告与机器学习-技术共享平台,尊重原创,欢迎感兴趣的博友查看原文。html
记得在《Pattern Recognition And Machine Learning》一书中的开头有讲到:“几率论、决策论、信息论3个重要工具贯穿着《PRML》整本书,虽然看起来使人生畏…”。确实如此,其实这3大理论在机器学习的每一种技法中,或多或少都会出现其身影(不局限在几率模型)。算法
《PRML》书中原话:”This chapter also provides a self-contained introduction to three important tools that will be used throughout the book, namely probability theory, decision theory, and information theory. Although these might sound like daunting topics, they are in fact straightforward, and a clear understanding of them is essential if machine learning techniques are to be used to best effect in practical applications.”app
怀念好学生时代:那些年-书本啃过的印记机器学习
本章主要讨论《信息论》(Information Theory)中一个很是重要的概念:信息熵,以及几率模型的一个学习准则:最大熵理论。ide
如何理解熵的含义?函数
天然界的事物,若是任其自身发展,最终都会达到尽量的平衡或互补状态。举例:工具
一盒火柴,(人为或外力)有序地将其摆放在一个小盒子里,若是不当心火柴盒打翻了,火柴会“散乱”地洒在地板上。此时火柴虽然很乱,但这是它自身发展的结果。学习
上面描述的实际上是天然界的熵。在天然界中,熵能够这样表述:优化
熵是描述事物无序性的参数,熵越大则无序性越强。编码
那么,在信息论中,咱们用熵表示一个随机变量的不肯定性,那么如何量化信息的不肯定性呢?
信息熵公式定义
设一次随机事件(用随机变量\(X\)表示),它可能会有\(x_1, x_2, x_3, \cdots ,x_m\)共\(m\)个不一样的结果,每一个结果出现的几率分别为\(p_1, p_2, p_3, \cdots, p_m\),那么\(X\)的不肯定度,即信息熵为:
$$
H(X) =\sum_{i=1}^{m} p_i \cdot \log_{2} \frac{1}{p_i} = - \sum_{i=1}^{m} p_i \cdot \log_{2} p_i \qquad (ml.1.2.1)
$$
①. 信息熵的物理意义:
一个事件(用随机变量\(X\)表示)可能的变化越多,那么它携带的信息量就越大(与变量具体取值无关,只跟值的种类多少以及发生几率有关)。②. 系统熵举例:
对于一个分类系统来讲,假设类别\(C\)可能的取值为\(c_1, c_2, \cdots, c_k\)(\(k\)是类别总数),每个类别出现的几率分别是\(p(c_1),p(c_2), \cdots, p(c_k)\)。此时,分类系统的熵能够表示为:$$
H(C) = - \sum_{i=1}^{k} p(c_i) \cdot \log_{2} p(c_i) \qquad (n.ml.1.2.1)
$$分类系统的做用就是输出一个特征向量(文本特征、ID特征、属性特征等)属于哪一个类别的值,而这个值多是\(c_1, c_2, \cdots, c_k\),所以这个值所携带的信息量就是公式\((n.ml.1.2.1)\)这么多。
设\(X,Y\)为两个随机变量,在\(X\)发生的前提下,\(Y\)发生所新带来的熵 定义为\(Y\)的条件熵(Conditional Entropy),用\(H(Y|X)\)表示,计算公式以下:
$$
H(Y|X) = - \sum_{x_i,y_j}^{m,n} p(x_i,y_j) \cdot log_2 p(y_j|x_i) \qquad(ml.1.2.2)
$$
其物理含义是当变量\(X\)已知时,变量\(Y\)的平均不肯定性是多少。公式\((ml.1.2.2)\)推导以下:
假设变量\(X\)取值有\(m\)个,那么\(H(Y|X=x_i)\)是指变量\(X\)被固定为值\(x_i\)时的条件熵;\(H(Y|X)\)时指变量\(X\)被固定时的条件熵。那么两者之间的关系时:
$$
\begin{align}
H(Y|X) & = p(x_1) \cdot H(Y|X=x_1) + \cdots + p(x_m) \cdot H(Y|X=x_m) \\
& = \sum_{i=1}^{m} p(x_i) \cdot H(Y|X=x_i)
\end{align} \quad(n.ml.1.2.2)
$$根据公式\((n.ml.1.2.2)\)继续推导\(Y\)的条件熵:
$$
\begin{align}
H(Y|X) & = \sum_{i=1}^{m} p(x_i) \cdot H(Y|X=x_i) \\
& = -\sum_{i=1}^{m} p(x_i) \cdot \left( \sum_{j=i}^{n} p(y_j|x_i) \cdot log_2 p(y_j|x_i) \right) \\
& = -\sum_{i=1}^{m} \sum_{j=1}^{n} p(y_j,x_i) \cdot log_2 p(y_j|x_i) \\
& = - \sum_{x_i,y_j}^{m,n} p(x_i,y_j) \cdot log_2 p(y_j|x_i)
\end{align} \qquad\qquad (n.ml.1.2.3)
$$注:条件熵里面是联合几率分布累加,公式\((n.ml.1.2.3)\)推导过程可参考《第3章:深刻浅出ML之Based-Tree Classification Family》中3.1.2节条件熵部分。
一个随机变量的不肯定性能够用熵来表示,这一律念能够直接推广到多个随机变量。
联合熵计算(Joint Entropy)
设\(X,Y\)为两个随机变量,\(p(x_i,y_j)\)表示其联合几率,用\(H(XY)\)表示联合熵,计算公式为:
$$
H(XY) = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_{2} p(x_i,y_j) \qquad(ml.1.2.3)
$$
条件熵、联合熵、熵之间的关系:
$$
H(Y|X) = H(X,Y) - H(X) \qquad\qquad(n.ml.1.2.4)
$$公式推导以下:
$$
\begin{align}
H(X,Y) - H(X) & = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 p(x_i,y_j) + \sum_{i=1}^{m} \underline{p(x_i)} \cdot log_2 p(x_i) \\
& = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 p(x_i,y_j) + \sum_{i=1}^{m} \underline{ \left( \sum_{j=1}^{n} p(x_i,y_j) \right) } \cdot log_2 p(x_i) \\
& = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot \left(log_2 p(x_i,y_j) - log_2 p(x_i) \right) \\
& = - \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 p(y_j|x_i) \\
& = H(Y|X) \qquad\qquad\qquad\qquad\qquad\qquad (n.ml.1.2.5)
\end{align}
$$
联合熵特色
相对熵概念
相对熵,又称为交叉熵或KL距离,是Kullback-Leibler散度(Kullback-Leibler Divergence)的简称。它主要用于衡量相同事件空间里的两个几率分布的差别。简单介绍其背景:
根据香农的信息论,给定一个字符集的几率分布,咱们能够设计一种编码,使得表示该字符集组成的(每一个)字符串平均须要的比特数最少(好比Huffman编码)。假设字符集是\(X\),对\(x \in X\),其出现几率为\(P(x)\),那么其最优编码平均须要的比特数(即每个字符须要的比特数)等于这个字符集的熵(公式见\((ml.1.2.1)\)),即最优编码时,字符\(x\)的编码长度等于\(log_2{\frac{1}{P(x)}}\)。
在一样的字符集上,假设存在另外一个几率分布\(Q(x)\)。若是根据\(Q(x)\)分布进行编码,那么表示这些字符就会比理想状况多用一些比特数。而KL距离就是用来衡量这种状况下平均每一个字符多用的比特数,可用来度量两个分布的距离。
KL距离计算公式
这里用\(D(P||Q)\)表示KL距离,计算公式以下:
$$
D(P||Q) = \sum_{x \in X} P(x) \cdot log_2 \frac{P(x)}{Q(x)} \qquad\qquad(ml.1.2.4)
$$
从公式\((ml.1.2.4)\)能够看出,当两个几率分布彻底相同时,KL距离为0。几率分布\(P(x)\)的信息熵如公式\((ml.1.2.1)\)所示,说的是若是按照几率分布\(P(x)\)编码时,描述这个随机事件至少须要多少比特编码。
所以,KL距离的物理意义能够这样表达:
在相同的事件空间里,几率分布为\(P(x)\)的事件空间,若用几率分布\(Q(x)\)编码时,平均每一个基本事件(符号)编码长度增长了多少比特数。
经过信息熵可知,不存在其它比按照随机事件自己几率分布更好的编码方式了,因此\(D(P||Q)\)始终是大于等于0的。
虽然KL被称为距离,可是其不知足距离定义的3个条件:1) 非负性;2) 对称性(不知足);3) 三角不等式(不知足)。
KL距离示例
假设有一个字符发射器,随机发出0和1两种字符,真实发出的几率分布为\(A\)。如今经过样本观察,获得几率分布\(B\)和\(C\)。各个分布的具体状况以下:
(1). \(A(0) = 1/2, A(1) = 1/2\);
(2). \(B(0) = 1/4, B(1) = 3/4\);
(3). \(C(0) = 1/8, C(1) = 7/8\);那么能够计算出相对熵以下:
\(D(A||B) = 1/2 \cdot log_2 (\frac{1/2}{1/4}) + 1/2 \cdot log_2 (\frac{1/2}{3/4}) = 1/2 \cdot log_2 (4/3)\)
\(D(A||C) = 1/2 \cdot log_2 (\frac{1/2}{1/8}) + 1/2 \cdot log_2 (\frac{1/2}{7/8}) = 1/2 \cdot log_2 (16/7)\)
能够看到,用\(B和C\)两种方式进行编码,其结果都是的平均编码长度增长了。同时也能发现,按照几率分布\(B\)进行编码,要比按照\(C\)进行编码,平均每一个符号增长的比特数目要少。从分布熵也能够看出,实际上\(B\)要比\(C\)更接近实际分布。
若是实际分布为\(C\),而用\(A\)分布来编码这个字符发射器的每一个字符,一样能够获得:\(D(C||A) = 1/8 \cdot log_2 (\frac{1/8}{1/2}) + 7/8 \cdot log_2 (\frac{7/8}{1/2}) = 7/8 \log_2{7} - 2 > 0\)
从示例中,咱们能够得出结论:对于一个信息源进行编码,按照其自己的几率分布进行编码,每一个字符的平均比特数最少。 这也是信息熵的概念,用于衡量信息源自己的不肯定性。
此外能够看出,KL距离不知足对称性,即\(D(P||Q)\)不必定等于\(D(Q||P)\)。
相对熵应用场景
推荐系统-物品之间类似度
在使用LDA(Latent Dirichlet Allocation)计算物品之间的内容类似度时,咱们能够先计算出物品在Topic上的分布,而后利用两个物品的Topic(话题)分布计算物品的类似度。好比,若是两个物品的Topic分布类似(处在同一个事件空间),则认为两个物品具备较高的类似度,反之则认为两个物品的类似度较低。
这种Topic分布的类似度能够利用KL散度来计算:$$
D(P||Q) = \sum_{i \in X} p(x_i) \cdot log_2 {\frac{p(x_i)}{q(x_i)}} \qquad(n.ml.1.2.6)
$$其中\(p\)和\(q\)是两个分布,\(X\)为话题集合,\(x_i\)表示第\(i\)个话题。KL散度越大说明分布的类似度越低。
若是说相对熵(KL)距离衡量的是相同事件空间里的两个事件的类似度大小,那么,互信息一般用来衡量不一样事件空间里的两个信息(随机事件、变量)的相关性大小。
互信息计算公式
设\(X\)和\(Y\)为两个离散随机变量,事件\(Y=y_j\)的出现对于事件\(X=x_i\)的出现的互信息量\(I(x_i,y_j)\)定义为:
$$
I(x_i;y_j) = log_2 {\frac{p(x_i|y_j)}{p(x_i)}} = log_2 {\frac {p(x_i,y_j)}{p(x_i)p(y_j)}} \qquad(ml.1.2.5)
$$
对于事件\(X\)和\(Y\)来讲,它们之间的互信息用\(I(X;Y)\)表示,公式为:
$$
I(X;Y) = \sum_{i=1}^{m} \sum_{j=1}^{n} p(x_i,y_j) \cdot log_2 {\frac{p(x_i,y_j)}{p(x_i)p(y_j)}} \qquad(ml.1.2.6)
$$
公式解释:
互信息就是随机事件\(X\)的不肯定性(即熵\(H(X)\)),以及在给定随机变量\(Y\)条件下的不肯定性(即条件熵\(H(X|Y)\))之间的差别,即$$
I(X;Y) = H(X) - H(X|Y) \qquad(n.ml.1.2.7)
$$互信息与决策树中的信息增益等价: 互信息 \(\Longleftrightarrow\) 信息增益.
所谓两个事件相关性的量化度量,就是在了解了其中一个事件\(Y\)的前提下,对消除另外一个事件\(X\)不肯定性所提供的信息量。
互信息与其它熵之间的关系
<feature,label>
之间相关性
在介绍最大熵模型以前,咱们先了解一下最大熵原理,由于最大熵原理是选择最优几率模型的一个准则。
在几率模型空间集合中,在知足给定约束条件的前提下,使信息熵最大化获得的几率模型,就是最优的模型。
理解最大熵原理一般用约束条件来肯定几率模型的集合。
假设离散随机变量\(X\)的几率分布是\(P(X)\),其信息熵可用公式\((ml.1.2.1)\) 表示,而且熵知足如下不等式:
$$
0 \leq H(X) \leq log_2 |X| \qquad\quad(ml.1.2.7)
$$
其中,\(|X|\)是\(X\)的取值个数,当且仅当\(X\)的分布是均匀分布时右边的等号才成立。也就是说,当\(X\)服从均匀分布时,熵最大。
根据最大熵原理学习几率模型坚持的原则:首先必须知足已有的事实,即约束条件;但对不肯定的部分不作任何假设,坚持无偏原则。最大熵原理经过熵的最大化来表示等可能性。
最大熵原理举例(本示例来自《统计学习方法》第6章-李航老师)
问题:假设随机变量\(X\)有5个取值\(\{A,B,C,D,E\}\), 要估计各个取值的几率\(P(A),P(B),P(C),P(D),P(E)\)。
首先这些几率只知足如下约束条件:
$$
P(A) + P(B) + P(C) + P(D) + P(E) = 1 \qquad(exp.ml.1.2.1)
$$知足这个约束条件的几率分布有无穷多个,可是在没有任何其它信息的状况下,根据最大熵原理和无偏原则,选择熵最大时对应的几率分布,即各个取值几率相等是一个不错的几率估计方法。即有:
$$
P(A) = P(B) = P(C) = P(D) = P(E) = \frac{1}{5} \qquad(exp.ml.1.2.2)
$$等几率坚持了最大熵的无偏原则,由于没有更多信息,此种判断是合理的。
如今从先验知识中获得一些
信息
:\(A和B\)的几率值之和知足如下条件:$$
P(A) + P(B) = \frac{3}{10} \qquad(exp.ml.1.2.3)
$$一样的,知足公式\((exp.ml.1.2.1)和(exp.ml.1.2.3)\)两个约束条件的几率分布仍有无穷多个。在缺乏其它信息的状况下,坚持无偏原则,获得:
$$
\begin{align}
P(A) = P(B) = \frac{3}{20} \qquad (exp.ml.1.2.4) \\
P(C) = P(D) = P(E) = \frac{7}{30} \qquad (exp.ml.1.2.5)
\end{align}
$$…
还能够继续按照知足约束条件下的求等几率的方法估计几率分布。以上几率模型学习的方法正是遵循了最大熵原理。
最大熵原理是统计学习的通常原理,将它应用到分类问题中,即获得最大熵模型。
最大熵模型引入
训练数据集:\(D=\{(x^{(1)},y^{(1)}), (x^{(2)},y^{(2)}), \cdots, (x^{(N)},y^{(N)})\}\),学习的目标是:用最大熵原理选择最优的分类模型。
假设分类模型是一个条件几率分布\(P(y|x), x \in X \subseteq R^n\)表示输入(特征向量),\(y \in Y\), \(X\)和\(Y\)分别是输入(特征向量)和输出(标签)的集合。这个模型表示的是对于给定的输入\(x\),以条件几率\(P(y|x)\)计算获得标签\(y\)。
首先,考虑模型应知足的条件
给定训练集,能够计算获得经验联合分布\(P(x,y)\)和边缘分布\(P(x)\)的经验分布,分别以\(\tilde{P}(x,y)\)和\(\tilde{P}(x)\)表示,即:
$$
\begin{align}
\tilde{P}(x=\tilde{x}, y = \tilde{y}) &= \frac{freq(x=\tilde{x}, y = \tilde{y})}{N} \qquad(1)\\
\tilde{P}(x=\tilde{x}) &= \frac{freq(x=\tilde{x})}{N} \qquad\qquad\;(2)
\end{align} \qquad(ml.1.2.8)
$$
其中,\(freq(x=\tilde{x}, y=\tilde{y})\)表示训练集中样本\((\tilde{x}, \tilde{y})\)出现的频数,\(freq(\tilde{x})\)表示训练集中输入\(\tilde{x}\)(向量)出现的频数,\(N\)表示训练集容量。
特征函数(Feature Function)
定义特征函数 \(f(x,y)\)用于描述输入\(x\)和输出\(y\)之间知足的某一种事实:
$$
f(x,y) = \begin{cases}
\displaystyle 1, &x与y知足某一事实; \\
0, & 其它
\end{cases} \qquad\qquad(ml.1.2.9)
$$
这是一个二值函数(也能够是任意实值函数),当\(x\)与\(y\)知足这个事实时取值为1,不然为0.
①. 特征函数\(f(x,y)\)关于经验分布\(\tilde{P}(x,y)\)的指望值,用\(E_{\tilde{P}}(f)\)表示以下:
$$
E_{\tilde{P}} = \sum_{x,y} \tilde{P}(x,y) \cdot f(x,y) \qquad\qquad(n.ml.1.2.8)
$$②. 特征函数\(f(x,y)\)关于模型\(P(y|x)\)与经验分布\(\tilde{P}(x)\)的指望值,用\(E_P(f)\)表示以下:
$$
E_P(f) = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot f(x,y) \qquad(n.ml.1.2.9)
$$③. 若是模型可以获取训练数据中足够的信息,那么就能够假设这两个指望值相等。即:
$$
\sum_{x,y} \tilde{P}(x,y) \cdot f(x,y) = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot f(x,y) \qquad(n.ml.1.2.10)
$$注:公式\((n.ml.1.2.10)\)是频率学派-点估计求参数套路,之因此假设相等,是由于有\(p(x,y)=p(y|x) \cdot p(x)\)
咱们将公式\((n.ml.1.2.10)\)做为几率模型学习的约束条件。假若有\(n\)个特征函数\(f_{i} (x,y), i=1,2, \cdots, n\),那么就有\(n\)个约束条件。
最大熵模型定义
假设知足全部约束条件的模型集合为:
$$
\mathcal{C} = \{P \in \mathcal{P} | E_{P}(f_i) = E_{\tilde{P}}(f_i), i=1,2, \cdots, n\} \qquad (ml.1.2.10)
$$
定义在条件几率分布\(P(y|x)\)上的条件熵为:
$$
H(P) = - \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot \log {P(y|x)} \qquad (ml.1.2.11)
$$
模型集合\(\mathcal{C}\)中条件熵\(H(P)\)最大的模型称为最大熵模型。
注:最大熵模型中\(\log\)是指以\(e\)为底的对数,与信息熵公式中以2为底不一样。本文如无特殊说明,\(\log\)均指天然对数。
最大熵模型学习过程即为求解最大熵模型的过程,最大熵模型的学习问题能够表示为带有约束的最优化问题。
示例:学习《最大熵原理》示例中的最大熵模型
为了简便,这里分别以\(y_1,y_2,y_3,y_4,y_5\)表示\(A,B,C,D和E\),最大熵模型学习的最优化问题能够表示为:
$$
\begin{align}
& min \quad -H(P) = \sum_{i=1}^{5} P(y_i) \cdot log{P(y_i)} \\
& s.t. \quad P(y_1) + P(y_2) = \tilde{P}(y_1) + \tilde{P}(y_2) = \frac{3}{10} \\
& \qquad \sum_{i=1}^{5} P(y_i) = \sum_{i=1}^{5} \tilde{P}(y_i) = 1
\end{align} \qquad\quad (exp.ml.1.2.5)
$$
提示:这里面没有特征\(x\)和特征函数\(f_i(x,y)\)的约束。
将带约束优化问题转化为无约束优化问题:引入拉格朗日乘子\(w_0,w_1\),定义朗格朗日函数:
$$
L(P,w) = \sum_{i=1}^{5} P(y_i) log{P(y_i)} + w_1 \left( P(y_1) + P(y_2) - \frac{3}{10} \right) + w_0 \left(\sum_{i=1}^{5} P(y_i) - 1 \right) \;(exp.ml.1.2.6)
$$
根据拉格朗日对偶性,能够经过求解对偶最优化问题获得原始最优化问题的解,因此求解(对偶问题):\(\max_{w} \min_{P} L(P,w) \)。求解过程以下:
首先求解\(L(P,w)\)关于\(P\)的极小化问题。为此,固定\(w_0,w_1\),求偏导数:
$$
\begin{align}
& \frac{\partial L(P,w)}{\partial P(y_1)} = 1 + log_2 P(y_1) + w_1 + w_0 \\
& \frac{\partial L(P,w)}{\partial P(y_2)} = 1 + log_2 P(y_2) + w_1 + w_0 \\
& \frac{\partial L(P,w)}{\partial P(y_3)} = 1 + log_2 P(y_3) + w_0 \\
& \frac{\partial L(P,w)}{\partial P(y_4)} = 1 + log_2 P(y_4) + w_0 \\
& \frac{\partial L(P,w)}{\partial P(y_5)} = 1 + log_2 P(y_5) + w_0 \\
\end{align}
$$令各偏导数等于0,可解得:
$$
\begin{align}
& P(y_1) = P(y_2) = e^{-w_1 - w_0 - 1} \\
& P(y_3) = P(y_4) = P(y_5) = e^{-w_0 -1}
\end{align}
$$因而,极小化结果为:
$$
\min_{P} \; L(P,w) = L(P_w, w) = -2 e^{-w_1 - w_0 - 1} -3 e^{-w_0 - 1} - \frac{3}{10} w_1 - w_0
$$下面再求解对偶函数\(L(P_w,w)\)关于\(w\)的极大化问题:
$$
\max_{w} \; L(P_w, w) = -2 e^{-w_1 - w_0 - 1} -3 e^{-w_0 - 1} - \frac{3}{10} w_1 - w_0 \qquad(exp.ml.1.2.7)
$$分别求\(L(P_w,w)\)对\(w_0,w_1\)的偏导数,并令其为0,获得:
$$
\begin{align}
& e^{-w_1 - w_0 - 1} = \frac{3}{20} \\
& e^{-w_0 - 1} = \frac{7}{30}
\end{align}
$$因而获得所求的几率分布为:
$$
\begin{align}
& P(y_1) = P(y_2) = \frac{3}{20} \\
& P(y_3) = P(y_4) = P(y_5) = \frac{7}{30}
\end{align}
$$
最大熵模型学习通常流程
对于给定的训练\(D=\{(x^{(1)},y^{(1)}), (x^{(2)},y^{(2)}), \cdots, (x^{(N)},y^{(N)})\}\)以及特征函数\(f_i(x,y),i=1,2,\cdots,n\),最大熵模型的学习等价于带约束的最优化问题:
$$
\begin{align}
& \max_{P \in \mathcal{C}} \quad H(P) = -\sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot log P(y|x) \\
& s.t. \quad E_P(f_i) = E_{\tilde{P}} (f_i), \; i=1,2,\cdots,n \\
& \qquad \sum_{y} P(y|x) = 1
\end{align} \qquad\quad(ml.1.2.12)
$$
按照最优化问题的习惯思路,将求最大值问题改写为求等价的最小值问题,即:
$$
\begin{align}
& \min_{P \in \mathcal{C}} \quad -H(P) = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot log P(y|x) \\
& s.t. \quad E_P(f_i) - E_{\tilde{P}} (f_i) = 0, \; i=1,2,\cdots,n \\
& \qquad \sum_{y} P(y|x) = 1
\end{align} \qquad\quad(ml.1.2.13)
$$
求解约束最优化问题\((ml.1.2.13)\)所得出的解,就是最大熵模型学习的解。
将约束最优化的原始问题转换为无约束最优化的对偶问题。具体推导过程以下:
首先,引入拉格朗日乘子\(w_0,w_1,\cdots,w_n\),定义拉格朗日函数\(L(P,w)\)
表达式为:
$$
\begin{align}
L(P,w) & = -H(P) + w_0 \cdot \left( 1- \sum_{y} P(y|x) \right) + \sum_{i=1}^{n} w_i \cdot \left( E_{\tilde{P}}(f_i) - E_P (f_i) \right) \\
& = \sum_{x,y} \tilde{P}(x) \cdot P(y|x) \cdot log {P(y|x)} + w_0 \cdot \left( 1- \sum_{y} P(y|x) \right) \\
& \qquad + \sum_{i=1}^{n} w_i \cdot \left(\sum_{x,y} \tilde{P}(x,y) \cdot f_i(x,y) - \sum_{x.y} \tilde{P}(x) \cdot P(y|x) \cdot f_i(x,y) \right)
\end{align} \quad(ml.1.2.14)
$$
最优化的原始问题是:
$$
\min_{P \in \mathcal{C}} \max_{w} L(P,w) \qquad\qquad(ml.1.2.15)
$$
对偶问题是:
$$
\max_{w} \min_{P \in \mathcal{C}} L(P,w) \qquad\qquad(ml.1.2.16)
$$
通俗的讲,由_最小最大问题_转化为_最大最小问题_。
因为最大熵模型对应的朗格朗日函数\(L(P,w)\)是参数\(P\)的凸函数,因此原始问题\((ml.1.2.15)\)的解与对偶问题\((ml.1.2.16)\)的解是等价的。所以,能够经过求解对偶问题来获得原始问题的解。
其次,求对偶问题\((ml.1.2.16)\)内部的极小化问题\(\min_{P \in \mathcal{C}} L(P,w)\)
\(\min_{P \in \mathcal{C}} L(P,w)\)是乘子\(w\)的函数,将其记做:
$$
\Psi(w) = \min_{P \in \mathcal{C}} L(P,w) = L(P_w, w) \qquad(ml.1.2.17)
$$
\(\Psi(w)\)称为对偶函数(\(Latex: \Psi\) =
\Psi
)。将其解记做:$$
P_w = arg \min_{P \in \mathcal{C}} L(P,w) = P_w (y|x) \qquad(n.ml.1.2.11)
$$具体地,固定\(w_i\),求\(L(P,w)\)对\(P(y|x)\)的偏导数:
$$
\begin{align}
\frac{\partial L(P,w)} {\partial P(y|x)} & = \sum_{x,y} \tilde{P}(x) \cdot \left(logP(y|x) + 1 \right) - \sum_{y} w_0 - \sum_{x,y} \left( \tilde{P}(x) \cdot \sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \\
& = \sum_{x,y} \tilde{P}(x) \cdot \left(logP(y|x) + 1 - w_0 - \sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \qquad(n.ml.1.2.12)
\end{align}
$$令偏导数等于0,在\(\tilde{P}(x) > 0\)的状况下,求得:
$$
P(y|x) = \exp {\left( \sum_{i=1}^{n} w_i \cdot f_i(x,y) + w_0 - 1 \right)} = \frac {\exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y) \right)} {\exp(1-w_0)} \quad(n.ml.1.2.13)
$$因为 \(\sum_{y} P(y|x) = 1\),可得:
$$
P_w (y|x) = \frac{1}{Z_w(x)} \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \qquad\quad(n.ml.1.2.14)
$$其中,
$$
Z_w(x) = \sum_{y} \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y) \right) \qquad\quad(n.ml.1.2.15)
$$
\(Z_w(x)\)称为归一化因子;\(f_i(x,y)\)是特征函数;\(w_i\)是第\(i\)个参数(特征权值)。公式\((n.ml.1.2.14)\)、\((n.ml.1.2.15)\) 表示的模型\(P_w = P_w(y|x)\)就是最大熵模型(\(w\)是最大熵模型中的参数向量)。
最后,求解对偶问题外部的极大化问题
对偶问题外部极大化表达式:
$$
\max_{w} \Psi(w) \qquad\qquad(ml.1.2.18)
$$
将其解记做\(w^@\),即: \(w^@ = arg \max_{w} \Psi(w)\)。
也就是说,能够应用最优化算法求对偶函数\(\Psi(w)\)的极大化,获得\(w^@\),用其表示\(P^@ = P_{w^@} = P_{w^@}(y|x)\)是学习到的最优模型(最大熵模型)。
最大熵模型的学习归结为对偶函数\(\Psi(w)\)的极大化。
从最大熵模型的学习过程能够看出,最大熵模型是由\(n.ml.1.2.14\)和\(n.ml.1.2.15\)表示的条件几率分布。下面证实:对偶函数的极大化等价于最大熵模型的极大似然估计。
对偶函数极大化=极大似然估计
已知训练数据的经验几率分布\(\tilde{P}(x,y)\),条件几率分布分布\(P(y|x)\)的对数似然函数表示为:
$$
L_{\tilde{P}}(P_w) = \log \prod_{x,y} P(y|x)^{\tilde{P}(x,y)} = \sum_{x,y} \tilde{P}(x,y) \cdot \log P(y|x) \qquad(ml.1.2.19)
$$
当条件几率分布\(P(y|x)\)是最大熵模型(公式\((n.ml.1.2.14)和n(.ml.1.2.15)\))时,对数似然函数\(L_{\tilde{P}}(P_w)\)为:
$$
\begin{align}
L_{\tilde{P}}(P_w) & = \sum_{x,y} \tilde{P}(x,y) \cdot \log P(y|x) \\
& = \sum_{x,y} \left (\tilde{P}(x,y) \cdot \sum_{i=1}^{n} w_i f_i(x,y)\right) - \sum_{x,y} \tilde{P}(x,y) \cdot log Z_w(x) \\
& = \sum_{x,y} \left (\tilde{P}(x,y) \cdot \sum_{i=1}^{n} w_i f_i(x,y)\right) - \sum_{x} \tilde{P}(x) \cdot log Z_w(x)
\end{align} \quad(ml.1.2.20)
$$
再看对偶函数\(\Psi(w)\),由公式\((ml.1.2.14)\)和公式\((ml.1.2.17)\)可得:
$$
\begin{align}
\Psi(w) & = \sum_{x,y} \tilde{P}(x) \cdot P_w(y|x) \cdot \log P_w(y|x) \\
& \qquad\quad + \sum_{i=1}^{n} w_i \cdot \left(\sum_{x,y} \tilde{P}(x,y) f_i(x,y) - \sum_{x,y} \tilde{P}(x) P_w(y|x)f_i(x,y) \right) \\
& = \sum_{x,y} \tilde{P}(x,y) \sum_{i=1}^{n} w_i f_i(x,y) + \sum_{x,y} \tilde{P}(x)P_w(y|x) \left(\underline{log P_w(y|x) - \sum_{i=1}^{n} w_i f_i (x,y)}\right) \\
& = \sum_{x,y} \tilde{P}(x,y) \sum_{i=1}^{n} w_i f_i(x,y) - \sum_{x,y} \tilde{P}(x) P_w(y|x) \cdot \underline{\log Z_w(x)} \\
& = \sum_{x,y} \tilde{P}(x,y) \sum_{i=1}^{n} w_i f_i(x,y) - \sum_{x} \tilde{P}(x) \log Z_w(x)
\end{align} \quad(ml.1.2.21)
$$
其中, 第二步推导第三步中用到了:
$$
\sum_{i=1}^{n} w_i \cdot f_i(x,y) = \log P_w(y|x) \cdot Z_w(x) \qquad(n.ml.1.2.16)
$$根据公式\((n.ml.1.2.14)\)获得。在最后一步用到了\(\sum_{y} P(y|x) = 1\)的性质。即:
$$
\begin{align}
\sum_{x,y} \tilde{P}(x) P_w(y|x) \log Z_w(x) & = \sum_{x} \tilde{P}(x) \left( \sum_{y} P_w(y|x) \right) \log Z_w(x) \\
& = \sum_{x} \tilde{P}(x) \log Z_w(x)
\end{align} \qquad(n.ml.1.2.17)
$$
比较公式\((ml.1.2.20)\)和\((ml.1.2.21)\),能够发现:
$$
\Psi(w) = L_{\tilde{P}}(P_w) \qquad\qquad(ml.1.2.22)
$$
即对偶函数\(\Psi(w)\)等价于对数似然函数\(L_{\tilde{P}}(P_w)\),因而最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计的结论得以证实。
总结:最大熵模型的学习问题就转化为具体求解对数似然函数极大化或对偶函数极大化的问题。
能够将最大熵模型写成更为通常的形式:
$$
\begin{align}
P_w(y|x) &= \frac{1}{Z_w(x)} \cdot \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y)\right) \\
Z_w(x) &= \sum_{y} \exp \left(\sum_{i=1}^{n} w_i \cdot f_i(x,y)\right)
\end{align} \qquad(ml.1.2.23)
$$
这里,\(x \in R^n\)为输入(向量),\(y \in \{1,2, \cdots, K\}\)为输出,\(w \in R^n\)为权值向量,\(f_i(x,y), i=1,2, \cdots, n\)为任意实值特征函数。
小结:
①. 最大熵模型与LR模型有相似的形式,它们又称为对数线性模型(Log Linear Model)。②. 模型学习就是在给定的训练数据条件下对模型进行极大似然估计或正则化的极大似然估计。