最大熵模型原理介绍与python实现

1. 引言

    最大熵原理认为,学习概率模型时,在满足约束条件的模型集合中,熵最大的模型是最好的模型,因为在没有更多信息的情况下,我们一般会认为不确定的部分都是等可能的,而在前面决策树的介绍时我们知道,熵最大时刚好是要求概率的分布满足均匀分布,即等可能分布,因此,可以通过熵的最大化来表示等可能分布。

2. 最大熵模型原理介绍

2.1 最大熵模型的定义

    对于分类模型,假设我们要学习的模型是一个条件概率分布 P ( Y ∣ X ) P(Y | X) P(YX) X ∈ X ⊆ R n X \in \mathcal{X} \subseteq \mathbf{R}^{n} XXRn表示输入, Y ∈ Y Y \in \mathcal{Y} YY表示输出。则对于一个训练数据集 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 ) = ν ( X = x , Y = y ) N P ~ ( X = x ) = v ( X = x ) N \begin{array}{l}{\tilde{P}(X=x, Y=y)=\frac{\nu(X=x, Y=y)}{N}} \\ \\{\tilde{P}(X=x)=\frac{v(X=x)}{N}}\end{array} P~(X=x,Y=y)=Nν(X=x,Y=y)P~(X=x)=Nv(X=x)其中, v ( X = x , Y = y ) v(X=x, Y=y) v(X=x,Y=y) v ( X = x ) v(X=x) v(X=x)分别表示样本中 ( x , y ) (x, y) (x,y) 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 和 y 满 足 某 一 事 实 0 , 否 则 f(x, y)=\left\{\begin{array}{l}{1, x和y满足某一事实} \\ {0, 否则}\end{array}\right. f(x,y)={ 1,xy0,即当 x x x y y y满足这个事实时,取值为1,否则取值为0。

    特征函数 f ( x , y ) f(x, y) f(x,y)关于经验分布 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y)的期望值为:
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,yP~(x,y)f(x,y)

    特征函数 f ( x , y ) f(x, y) f(x,y)关于模型 P ( Y ∣ X ) P(Y | X) P(YX)和经验分布 P ~ ( X ) \tilde{P}(X) P~(X)的期望值为:
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,yP~(x)P(yx)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,yP~(x)P(yx)f(x,y)=x,yP~(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{ PPEP(fi)=EP~(fi),i=1,2,,n}定义在条件概率分布 P ( Y ∣ X ) P(Y | X) P(YX)上的条件熵为:
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,yP~(x)P(yx)logP(yx)则模型集合 C \mathcal{C} C中条件熵 H ( P ) H(P) H(P)最大的模型称为最大熵模型。

2.2 最大熵模型的求解

    最大熵模型其实可以转化为约束最优化问题,具体表示如下:
min ⁡ P ∈ C      − H ( P ) = ∑ x , y P ~ ( x ) P ( y ∣ x ) log ⁡ P ( y ∣ x )  s.t.             E P ( f i ) − E P ~ ( f i ) = 0 , i = 1 , 2 , ⋯   , n ∑ y P ( y ∣ x ) = 1 \begin{array}{c}{\min _{P \in C}\space\space\space\space-H(P)=\sum_{x, y} \tilde{P}(x) P(y | x) \log P(y | x)} \\ \\ {\text { s.t. } \space \space\space\space\space\space\space\space\space\space\space E_{P}\left(f_{i}\right)-E_{\tilde{P}}\left(f_{i}\right)=0, \quad i=1,2, \cdots, n} \\ \\ {\sum_{y} P(y | x)=1}\end{array} minPC    H(P)=x,yP~(x)P(yx)logP(yx) s.t.            EP(fi)EP~(fi)=0,i=1,2,,nyP(yx)=1 利用拉格朗日乘子法可以将该问题转化为无约束的对偶问题,具体如下:
max ⁡ w min ⁡ P ∈ C 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} \max _{w} \min _{P \in \mathbf{C}} 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} wmaxPCminL(P,w)=H(P)+w0(1yP(yx))+i=1nwi(Ep~(fi)EP(fi))x,yP~(x)P(yx)logP(yx)+w0(1yP(yx))+i=1nwi(x,yP~(x,y)fi(x,y)x,yP~(x)P

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值