最大熵原则与最大熵模型


首先看熵的定义

熵是信息论中的概念,首先需要定义一个事件 X = x X=x X=x的信息量,要求满足以下两个条件:

  1. 越不可能发生的事情,信息越大
  2. 几个独立事件同时发生的信息量=每一个事件的信息量之和
    个满足以上两个条件的且最为简单的函数就是对数函数了,s.t. I ( x ) = − l o g P ( x ) I(x) = -logP(x) I(x)=logP(x)
    Proof: P ( x ) P(x) P(x)越大, I ( x ) = − l o g P ( x ) I(x) = -logP(x) I(x)=logP(x)越小
    I ( x 1 , x 2 , x 3 ) = − l o g P ( x 1 , x 2 , x 3 ) = − l o g P ( x 1 ) P ( x 2 ) P ( x 3 ) = − ( l o g P ( x 1 ) + l o g P ( x 2 ) + l o g P ( x 3 ) ) = I ( x 1 ) + I ( x 2 ) + I ( x 3 ) \begin{aligned} I(x_1,x_2,x_3) &= -logP(x_1,x_2,x_3)\\ &= -logP(x_1)P(x_2)P(x_3)\\ &= -(logP(x_1)+logP(x_2)+logP(x_3))\\ &= I(x_1)+I(x_2)+I(x_3) \end{aligned} I(x1,x2,x3)=logP(x1,x2,x3)=logP(x1)P(x2)P(x3)=(logP(x1)+logP(x2)+logP(x3))=I(x1)+I(x2)+I(x3)

有了事件的信息量之后,可以定义为满足分布P的事件所产生的期望信息量:
H ( P ) = E x ∼ P [ I ( x ) ] = − E x ∼ P [ l o g P ( x ) ] = − ∑ i P ( x i ) l o g P ( x i ) H(P) = E_{x\sim P}[I(x)]= -E_{x\sim P}[logP(x)] = -\sum_{i}P(x_i)logP(x_i) H(P)=ExP[I(x)]=ExP[logP(x)]=iP(xi)logP(xi)


最大熵原则与最大熵模型

最大熵原则 的含义是在 满足约束的情况下,对未知的信息不做任何假设,尽量保持可能性最大

下面证明对于一个离散变量 X X X,在没有任何其他先验的情况下,根据最大熵原则 X X X 满足均匀分布:


Proof: 假设 X X X 为离散变量且取值范围是 { 1 , ⋯   , k } \{1,\cdots,k\} {1,,k},记 P ( X = i ) = p i P(X = i) = p_i P(X=i)=pi,那么根据最大熵原则:

max − ∑ i = 1 k p i log p i    ⟺    min ∑ i = 1 k p i log p i s . t . ∑ i = 1 k p i = 1 \begin{aligned} \text{max} -\sum_{i=1}^k p_i \text{log}p_i &\iff \text{min} \sum_{i=1}^k p_i \text{log}p_i\\ s.t. &\sum_{i=1}^k p_i =1 \end{aligned} maxi=1kpilogpis.t.mini=1kpilogpii=1kpi=1

由拉格朗日对偶法:
L ( p , λ ) = ∑ i = 1 k p i log p i + λ ( 1 − ∑ i = 1 k p i ) ∂ L ( p , λ ) ∂ p i = log p i + p i ∗ 1 p i − λ = 0 ⇒ p i = 1 λ − 1 ∀ i \begin{aligned} L(p,\lambda) &= \sum_{i=1}^k p_i \text{log}p_i + \lambda(1-\sum_{i=1}^k p_i)\\ \frac{\partial L(p,\lambda)}{\partial p_i} &= \text{log}p_i + p_i * \frac{1}{p_i} - \lambda = 0\\ & \Rightarrow p_i = \frac{1}{\lambda -1} \quad \forall i \end{aligned} L(p,λ)piL(p,λ)=i=1kpilogpi+λ(1i=1kpi)=logpi+pipi1λ=0pi=λ11i

所有的 p i p_i pi 是相等的常值,因此 X X X 服从均匀分布。得证。


下面介绍 最大熵模型,对于给定数据集 { X , Y } \{X,Y\} {X,Y},不失一般性,可以用特征函数 f ( x , y ) f(x,y) f(x,y)来描述,特征函数可以是任何形式,例如:
f ( x , y ) = { 1 ( x , y ) 满 足 某 一 事 实 0 否 则 f(x,y)= \left\{ \begin{array}{c} 1& (x,y)满足某一事实\\ 0 & 否则\end{array}\right. f(x,y)={10(x,y)

如果模型可以获取训练数据中的信息,那么对于任意特征函数,我们可以假设: f ( x , y ) f(x,y) f(x,y)关于经验分布 P ~ ( x , y ) \tilde{P}(x,y) P~(x,y)的期望值= f ( x , y ) f(x,y) f(x,y)关于预测分布 P ( x , y ) P(x,y) P(x,y)的期望值

E ( x , y ) − P ~ ( x , y ) ( f ) = ∑ x , y P ~ ( x , y ) f ( x , y ) E_{(x,y)-\tilde{P}(x,y)}(f) = \sum_{x,y}\tilde{P}(x,y)f(x,y) E(x,y)P~(x,y)(f)=x,yP~(x,y)f(x,y)
E ( x , y ) − P ( x , y ) ( f ) = ∑ x , y P ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) E_{(x,y)-P(x,y)}(f) = \sum_{x,y}P(x,y)f(x,y) = \sum_{x,y} \tilde{P}(x)P(y|x)f(x,y) E(x,y)P(x,y)(f)=x,yP(x,y)f(x,y)=x,yP~(x)P(yx)f(x,y)
⇒ ∑ x , y P ~ ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) \Rightarrow \sum_{x,y}\tilde{P}(x,y)f(x,y) = \sum_{x,y} \tilde{P}(x)P(y|x)f(x,y) x,yP~(x,y)f(x,y)=x,yP~(x)P(yx)f(x,y)

根据 最大熵原则,首先给出条件熵:
H ( Y ∣ X ) = ∑ i P ( x i ) H ( Y ∣ X = x i ) = − ∑ i P ( x i ) ∑ j P ( y i ∣ x i ) l o g P ( y i ∣ x i ) H(Y|X) = \sum_i P(x_i)H(Y|X=x_i) = -\sum_{i}P(x_i)\sum_j P(y_i|x_i)logP(y_i|x_i) H(YX)=iP(xi)H(YX=xi)=iP(xi)jP(yixi)logP(yixi)

那么,最大熵模型 的目标函数就是:
m i n P ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) s . t . ∑ x , y P ~ ( x , y ) f ( x , y ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) ∑ y P ( y ∣ x ) = 1 \begin{aligned} min_P \sum_{x,y}\tilde{P}(x)P(y|&x)logP(y|x)\\ s.t. \sum_{x,y}\tilde{P}(x,y)f(x,y) &= \sum_{x,y} \tilde{P}(x)P(y|x)f(x,y)\\ \sum_{y}P(y|x)& =1 \end{aligned} minPx,yP~(x)P(ys.t.x,yP~(x,y)f(x,y)yP(yx)x)logP(yx)=x,yP~(x)P(yx)f(x,y)=1

求解带约束的最小化问题可以用拉格朗日对偶法。首先定义Lagrange函数:
L ( P , w ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) + w 0 ( 1 − ∑ y P ( y ∣ x ) ) + ∑ i w i ( ∑ x , y P ~ ( x , y ) f ( x , y ) − ∑ x , y P ~ ( x ) P ( y ∣ x ) f ( x , y ) ) L(P,w) = \sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x) + w_0 (1-\sum_{y}P(y|x))+ \\ \sum_i w_i(\sum_{x,y}\tilde{P}(x,y)f(x,y)-\sum_{x,y} \tilde{P}(x)P(y|x)f(x,y)) L(P,w)=x,yP~(x)P(yx)logP(yx)+w0(1yP(yx))+iwi(x,yP~(x,y)f(x,y)x,yP~(x)P(yx)f(x,y))
则有:

L ( P , w ) = { ∑ x , y P ~ ( x ) P ( y ∣ x ) l o g P ( y ∣ x ) 当 P 满 足 所 有 约 束 条 件 + ∞ 否 则 L(P,w)= \left\{ \begin{array}{c} \sum_{x,y}\tilde{P}(x)P(y|x)logP(y|x)& 当P满足所有约束条件\\ +\infty & 否则\end{array}\right. L(P,w)={x,yP~(x)P(yx)logP(yx)+P

所以求解目标函数等价于求解 m i n P m a x w L ( P , w ) min_P max_w L(P,w) minPmaxwL(P,w)又由于 L ( P , w ) L(P,w) L(P,w)是关于P的凸函数,因此可以通过解对偶问题 m a x w m i n P L ( P , w ) max_w min_P L(P,w) maxwminPL(P,w)来得到原始问题的解。首先求 m i n P L ( P , w ) min_P L(P,w) minPL(P,w),记 P w ( y ∣ x ) = a r g m i n P L ( P , w ) P_w(y|x) = argmin_P L(P,w) Pw(yx)=argminPL(P,w) L ( P , w ) L(P,w) L(P,w)关于 P ( y ∣ x ) P(y|x) P(yx)求导:
∂ L ( P , w ) ∂ P ( y ∣ x ) = ∑ x , y P ~ ( x ) ( l o g P ( y ∣ x ) + 1 ) − ∑ y w 0 − ∑ i w i ∑ x , y P ~ ( x ) f i ( x , y ) = ∑ x , y P ~ ( x ) [ l o g P ( y ∣ x ) + 1 − w 0 − ∑ i w i f i ( x , y ) ] \begin{aligned} \frac{\partial L(P,w)}{\partial P(y|x)}& = \sum_{x,y} \tilde{P}(x)(logP(y|x)+1) -\sum_{y} w_0 -\sum_iw_i\sum_{x,y}\tilde{P}(x)f_i(x,y)\\ & = \sum_{x,y} \tilde{P}(x)[logP(y|x)+1-w_0-\sum_iw_if_i(x,y)] \end{aligned} P(yx)L(P,w)=x,yP~(x)(logP(yx)+1)yw0iwix,yP~(x)fi(x,y)=x,yP~(x)[logP(yx)+1w0iwifi(x,y)]

∂ L ( P , w ) ∂ P ( y ∣ x ) = 0 ⇒ P ( y ∣ x ) = e x p ( ∑ i w i f i ( x , y ) + w 0 − 1 ) = e x p ( ∑ i w i f i ( x , y ) ) e x p ( 1 − w 0 ) \frac{\partial L(P,w)}{\partial P(y|x)} = 0 \Rightarrow P(y|x) = exp(\sum_iw_if_i(x,y)+w_0-1) = \frac{exp(\sum_iw_if_i(x,y))}{exp(1-w_0)} P(yx)L(P,w)=0P(yx)=exp(iwifi(x,y)+w01)=exp(1w0)exp(iwifi(x,y))
由于 ∑ y P ( y ∣ x ) = 1 \sum_{y}P(y|x) =1 yP(yx)=1
⇒ P w ( y ∣ x ) = e x p ( ∑ i w i f i ( x , y ) ) Z w \Rightarrow P_w(y|x) = \frac{exp(\sum_iw_if_i(x,y))}{Z_w} Pw(yx)=Zwexp(iwifi(x,y))
其中 Z w Z_w Zw为归一化因子。

在这一步我们发现 满足约束条件的函数形式有很多种,但是还要满足最大熵原则这个条件,就只能是指数函数形式!! 因此之后的很多通过特征函数来定义目标函数的算法例如CRF,MEMM都用到了最大熵的这个思想,因此它们的目标函数也是指数形式的!

再深究一下,最后结果中的指数函数 e x p exp exp,其实是来自于熵定义中的对数函数 l o g log log,而这个 l o g log log的形式又来自于信息量的定义,而 l o g log log正是可以满足信息量两个要求的最简单的函数了!很奇妙有木有~

言归正传,现在还需要求解 m a x w ϕ ( w ) max_w\phi(w) maxwϕ(w),其中 ϕ ( w ) = m i n P L ( P , w ) = L ( P w , w ) \phi(w) = min_P L(P,w) = L(P_w,w) ϕ(w)=minPL(P,w)=L(Pw,w),因此
ϕ ( w ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) l o g P w ( y ∣ x ) + ∑ i w i ( ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) ( l o g P w ( y ∣ x ) − ∑ i w i f i ( x , y ) ) + ∑ x , y P ~ ( x , y ) ∑ i w i f i ( x , y ) = − ∑ x , y P ~ ( x ) P w ( y ∣ x ) l o g Z w + ∑ x , y P ~ ( x , y ) ∑ i w i f i ( x , y ) \begin{aligned} \phi(w) & = \sum_{x,y}\tilde{P}(x)P_w(y|x)logP_w(y|x)+ \sum_iw_i(\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))\\ & = \sum_{x,y}\tilde{P}(x)P_w(y|x)(logP_w(y|x)-\sum_{i}w_if_i(x,y))+ \sum_{x,y}\tilde{P}(x,y)\sum_{i}w_if_i(x,y)\\ & = -\sum_{x,y}\tilde{P}(x)P_w(y|x)logZ_w + \sum_{x,y}\tilde{P}(x,y)\sum_{i}w_if_i(x,y) \end{aligned} ϕ(w)=x,yP~(x)Pw(yx)logPw(yx)+iwi(x,yP~(x,y)fi(x,y)x,yP~(x)Pw(yx)fi(x,y))=x,yP~(x)Pw(yx)(logPw(yx)iwifi(x,y))+x,yP~(x,y)iwifi(x,y)=x,yP~(x)Pw(yx)logZw+x,yP~(x,y)iwifi(x,y)

与此同时,我们可以来看一下最大熵函数的似然函数,由上面说到的最大似然的第二种形式:
L ( P ; w ) = l o g ∏ x , y P ( x , y ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) l o g P ( x , y ) = ∑ x , y P ~ ( x , y ) l o g P ~ ( x ) P ( y ∣ x ) = ∑ x , y P ~ ( x , y ) l o g P ( y ∣ x ) + ∑ x , y P ~ ( x , y ) l o g P ~ ( x ) \begin{aligned} L(P;w) &= log\prod_{x,y}P(x,y)^{\tilde{P}(x,y)}\\ & = \sum_{x,y}\tilde{P}(x,y)logP(x,y)\\ & =\sum_{x,y}\tilde{P}(x,y) log\tilde{P}(x)P(y|x)\\ & =\sum_{x,y}\tilde{P}(x,y)logP(y|x)+\sum_{x,y}\tilde{P}(x,y)log\tilde{P}(x) \end{aligned} L(P;w)=logx,yP(x,y)P~(x,y)=x,yP~(x,y)logP(x,y)=x,yP~(x,y)logP~(x)P(yx)=x,yP~(x,y)logP(yx)+x,yP~(x,y)logP~(x)
后面一项 ∑ x , y P ~ ( x , y ) l o g P ~ ( x ) \sum_{x,y}\tilde{P}(x,y)log\tilde{P}(x) x,yP~(x,y)logP~(x)为固定项,因此
L ( P w ; w ) = ∑ x , y P ~ ( x , y ) l o g P w ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ( ∑ i w i f i ( x , y ) − l o g Z w ) = ∑ x , y P ~ ( x , y ) ∑ i w i f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) l o g Z w \begin{aligned} L(P_w;w) &=\sum_{x,y}\tilde{P}(x,y)logP_w(y|x)\\ & = \sum_{x,y}\tilde{P}(x,y) (\sum_{i}w_if_i(x,y)-logZ_w)\\ & = \sum_{x,y}\tilde{P}(x,y)\sum_{i}w_if_i(x,y) - \sum_{x,y}\tilde{P}(x)P_w(y|x)logZ_w \end{aligned} L(Pw;w)=x,yP~(x,y)logPw(yx)=x,yP~(x,y)(iwifi(x,y)logZw)=x,yP~(x,y)iwifi(x,y)x,yP~(x)Pw(yx)logZw

因此 m a x w ϕ ( w ) = m a x w L ( P w ; w ) max_w\phi(w) = max_w L(P_w;w) maxwϕ(w)=maxwL(Pw;w)

所以最优化最大熵模型,等价于最大化最大似然函数 L ( P w ; w ) L(P_w;w) L(Pw;w)


最大熵模型与指数族分布的关系

首先介绍指数族分布,满足以下形式的分布称为指数族分布:
P ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) P(y;\eta) = b(y) exp(\eta^T T(y) - a(\eta)) P(y;η)=b(y)exp(ηTT(y)a(η))

其中 T ( y ) T(y) T(y) 称为充分统计量,该函数可以包含样本的完整特征;
a ( η ) a(\eta) a(η) 称为对数配分函数,或 归一化因子,用来保证概率质量函数 P ( y ; η ) P(y;\eta) P(y;η) 满足 ∑ i P ( y i ; η ) = 1 \sum_{i}P(y_i;\eta) = 1 iP(yi;η)=1

广义线性模型推导 线性回归模型,Logistic模型,多项Logistic模型 一文中,我们已经证明过常见的 高斯分布,伯努利分布都属于指数族分布。这里我们要证明 最大熵模型也满足指数族分布形式

观察上一节中由最大熵原则得到的概率密度函数 P w ( y ∣ x ) P_w(y|x) Pw(yx)
P w ( y ∣ x ) = e x p ( ∑ i w i f i ( x , y ) + w 0 − 1 ) = e x p ( w T f ( x , y ) + w 0 − 1 ) P_w(y|x) = exp(\sum_iw_if_i(x,y)+w_0-1) = exp(w^Tf(x,y)+w_0-1) Pw(yx)=exp(iwifi(x,y)+w01)=exp(wTf(x,y)+w01)

不难发现 P w ( y ∣ x ) P_w(y|x) Pw(yx) 满足指数族分布形式,且:

  • b ( y ) = 1 b(y) = 1 b(y)=1
  • T ( y ) = f ( x , y ) T(y) = f(x,y) T(y)=f(x,y)
  • η = w \eta = w η=w
  • a ( η ) = 1 − w 0 a(\eta) = 1-w_0 a(η)=1w0

因此 最大熵模型也属于指数族分布,且其充分统计量就是特征函数本身

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值