最大熵模型
最大熵原理
最大熵原理:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型
通常用约束条件来确定概率模型的集合,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
设离散随机变量 X X X的概率分布是 P ( X ) P(X) P(X),其熵是 H ( P ) = − ∑ x P ( x ) log P ( x ) H(P)=-\sum_{x} P(x) \log P(x) H(P)=−x∑P(x)logP(x)满足不等式 0 ⩽ H ( P ) ⩽ log ∣ X ∣ 0 \leqslant H(P) \leqslant \log |X| 0⩽H(P)⩽log∣X∣
∣ X ∣ |X| ∣X∣是 X X X的取值个数,当 X X X为均匀分布右边不等式成立,也即 X X X服从均匀分布时,熵最大.
最大熵模型的定义
假设分类模型是一个条件概率分布 P ( Y ∣ X ) P(Y|X) P(Y∣X), X ∈ X ⊆ R n X \in \mathcal{X} \subseteq \mathbf{R}^{n} X∈X⊆Rn表示输入, Y ∈ Y Y \in \mathcal{Y} Y∈Y表示输出, X \mathcal{X} X和 Y \mathcal{Y} Y分别表示输入和输出的集合,这个模型表示的是对于给定的输入 X X X,以及条件概率 P ( Y ∣ X ) P(Y|X) P(Y∣X)输出 Y Y Y
给定一个训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={
(x1,y1),(x2,y2),⋯,(xN,yN)}学习的目标是用最大熵原理选择最好的分类模型
给定训练数据集,可以确定联合分布 P ( X , Y ) P(X, Y) P(X,Y)的经验分布和边缘分布 P ( X ) P(X) P(X)的经验分布,分布以 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y)和 P ~ ( X ) \tilde{P}(X) P~(X)表示,这里 P ~ ( X = x , Y = y ) = v ( X = x , Y = y ) N \tilde{P}(X=x, Y=y)=\frac{v(X=x, Y=y)}{N} P~(X=x,Y=y)=Nv(X=x,Y=y) P ~ ( X = x ) = v ( X = x ) N \tilde{P}(X=x)=\frac{v(X=x)}{N} P~(X=x)=Nv(X=x)其中 v ( X = x , Y = y ) v(X=x, Y=y) v(X=x,Y=y)表示训练数据中样本 ( x , y ) (x, y) (x,y)出现的频数, v ( X = x ) v(X=x) v(X=x)表示训练数据中输入 x x x出现的频数, N N N表示训练样本的容量
用特征函数 f ( x , y ) f(x, y) f(x,y)描述输入 x x x和输出 y y y之间的某一个事实.其定义是 f ( x , y ) = { 1 , x and y satisfy the fact 0 , else f(x, y)=\left\{\begin{array}{l}{1, x \text { and } y \text { satisfy the fact }} \\ {0, \text { else }}\end{array}\right. f(x,y)={
1,x and y satisfy the fact 0, else 它是一个二值函数,当 x x x和 y y y满足这个事实时取值为 1 1 1,否则取值为 0 0 0
特征函数 f ( x , y ) f(x, y) f(x,y)关于经验分布 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y)的期望,用 E p ~ ( f ) E_{\tilde{p}}(f) Ep~(f)表示 E P ~ ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{\tilde{P}}(f)=\sum_{x, y} \tilde{P}(x, y) f(x, y) EP~(f)=x,y∑P~(x,y)f(x,y)特征函数 f ( x , y ) f(x, y) f(x,y)关于模型 P ~ ( Y ∣ X ) \tilde{P}(Y|X) P~(Y∣X)与经验分布 P ~ ( X ) \tilde{P}(X) P~(X)的期望值,用 E P ( f ) E_{P}(f) EP(f)表示 E P ( f ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_{P}(f)=\sum_{x, y} \tilde{P}(x) P(y | x) f(x, y) EP(f)=x,y∑P~(x)P(y∣x)f(x,y)如果模型能够获取训练数据中的信息,那么就可以假设这两个期望值相等,即 E P ( f ) = E p ~ ( f ) E_{P}(f)=E_{\tilde{p}}(f) EP(f)=Ep~(f)或 ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) = ∑ x , y P ~ ( x , y ) f ( x , y ) \sum_{x, y} \tilde{P}(x) P(y | x) f(x, y)=\sum_{x, y} \tilde{P}(x, y) f(x, y) x,y∑P~(x)P(y∣x)f(x,y)=x,y∑P~(x,y)f(x,y)假设有 n n n个特征函数 f i ( x , y ) , i = 1 , 2 , ⋯   , n f_{i}(x, y), \quad i=1,2, \cdots, n fi(x,y),i=1,2,⋯,n,那么就有 n n n个约束条件
定义(最大熵模型) 假设满足所有约束条件的模型集合为 C ≡ { P ∈ P ∣ E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , ⋯   , n } \mathcal{C} \equiv\left\{P \in \mathcal{P} | E_{P}\left(f_{i}\right)=E_{\tilde{P}}\left(f_{i}\right), \quad i=1,2, \cdots, n\right\} C≡{
P∈P∣EP(fi)=EP~(fi),i=1,2,⋯,n}定义在条件概率分布 P ( Y ∣ X ) P(Y | X) P(Y∣X)上的条件熵为 H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) H(P)=-\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x) H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)则模型集合 C \mathcal{C} C中条件熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型。
最大熵模型的学习
对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\} T={
(x1,y1),(x2,y2),⋯,(xN,yN)}以及特征函数 f i ( x , y ) , i = 1 , 2 , ⋯   , n f_{i}(x, y),i=1,2, \cdots, n fi(x,y),i=1,2,⋯,n
最大熵模型的学习等价于约束优化问题: max P ∈ C H ( P ) = − ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) \max _{P \in \mathbf{C}} \quad H(P)=-\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x) P∈CmaxH(P)=−x,y∑P~(x)P(y∣x)logP(y∣x) s.t. E P ( f i ) = E P ~ ( f i ) , i = 1 , 2 , ⋯   , n \text { s.t. } \quad E_{P}\left(f_{i}\right)=E_{\tilde{P}}\left(f_{i}\right), \quad i=1,2, \cdots, n s.t. EP(fi)=EP~(fi),i=1,2,⋯,n ∑ y P ( y ∣ x ) = 1 \sum_{y} P(y | x)=1 y∑P(y∣x)=1等价于 min P ∈ C − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) \min _{P \in \mathbf{C}}-H(P)=\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x) P∈Cmin−H(P)=x,y∑P~(x)P(y∣x)logP(y∣x) s.t. E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , 2 , ⋯   , n \text { s.t. } \quad E_{P}\left(f_{i}\right)-E_{\tilde{P}}\left(f_{i}\right)=0, \quad i=1,2, \cdots, n s.t. EP(fi)−EP~(fi)=0,i=1,2,⋯,n ∑ y P ( y ∣ x ) = 1 \sum_{y} P(y | x)=1 y∑P(y∣x)=1具体推导: w 0 , w 1 , w 2 , ⋯   , w n w_{0}, w_{1}, w_{2}, \cdots, w_{n} w0,w1,w2,⋯,wn,定义拉格朗日函数 L ( P , w ) L(P, w) L(P,w): L ( P , w ) ≡ − H ( P ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 n w i ( E p ~ ( f i ) − E P ( f i ) ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log P ( y ∣ x ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i = 1 n w i ( ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) f i ( x , y ) ) \begin{aligned} L(P, w) \equiv &-H(P)+w_{0}\left(1-\sum_{y} P(y | x)\right)+\sum_{i=1}^{n} w_{i}\left(E_{\tilde{p}}\left(f_{i}\right)-E_{P}\left(f_{i}\right)\right) \\=& \sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x)+w_{0}\left(1-\sum_{y} P(y | x)\right) \\ &+\sum_{i=1}^{n} w_{i}\left(\sum_{x, y} \tilde{P}(x, y) f_{i}(x, y)-\sum_{x, y} \tilde{P}(x) P(y | x) f_{i}(x, y)\right) \end{aligned} L(P,w)≡=