第六章 最大熵原理

最大熵模型

最大熵原理

最大熵原理:学习概率模型时,在所有可能的概率模型(分布)中,熵最大的模型是最好的模型
通常用约束条件来确定概率模型的集合,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。
设离散随机变量 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)=xP(x)logP(x)满足不等式 0 ⩽ H ( P ) ⩽ log ⁡ ∣ X ∣ 0 \leqslant H(P) \leqslant \log |X| 0H(P)logX
∣ X ∣ |X| X X X X的取值个数,当 X X X为均匀分布右边不等式成立,也即 X X X服从均匀分布时,熵最大.

最大熵模型的定义
假设分类模型是一个条件概率分布 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表示输出, X \mathcal{X} X Y \mathcal{Y} Y分别表示输入和输出的集合,这个模型表示的是对于给定的输入 X X X,以及条件概率 P ( Y ∣ X ) P(Y|X) P(YX)输出 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,yP~(x,y)f(x,y)特征函数 f ( x , y ) f(x, y) f(x,y)关于模型 P ~ ( Y ∣ X ) \tilde{P}(Y|X) P~(YX)与经验分布 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,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)最大的模型称为最大熵模型。

最大熵模型的学习

对于给定的训练数据集 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) PCmaxH(P)=x,yP~(x)P(yx)logP(yx)  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 yP(yx)=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) PCminH(P)=x,yP~(x)P(yx)logP(yx)  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 yP(yx)=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)=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(yx)fi(x,y))最优化的原始问题是 min ⁡ P ∈ C max ⁡ w L ( P , w ) \min _{P \in \mathbf{C}} \max _{w} L(P, w) PCminwmaxL(P,w)
对偶问题是 max ⁡ w min ⁡ P ∈ C L ( P , w ) \max _{w} \min _{P \in \mathbf{C}} L(P, w) wmaxPCminL(P,w)由于拉格朗日函数 L ( P , w ) L(P,w) L(P,w) P P P的凸函数,原始问题的解与对偶问题的解是等价的
首先解对偶问题内部的极小化问题 min ⁡ P ∈ C L ( P , w ) \min _{P \in \mathbf C} L(P, w) minPCL(P,w) min ⁡ P ∈ C L ( P , w ) \min _{P \in \mathbf C} L(P, w) minPCL(P,w) w w w的函数,将其记作 Ψ ( w ) = min ⁡ P ∈ C L ( P , w ) = L ( P w , w ) \Psi(w)=\min _{P \in \mathbf{C}} L(P, w)=L\left(P_{w}, w\right) Ψ(w)=PCminL(P,w)=L(Pw,w) Ψ ( w ) \Psi(w) Ψ(w)称为对偶函数,同时,将其解记作 P w = arg ⁡ min ⁡ P ∈ C L ( P , w ) = P w ( y ∣ x ) P_{w}=\arg \min _{P \in \mathbf{C}} L(P, w)=P_{w}(y | x) Pw=argPCminL(P,w)=Pw(yx)具体地,求 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 ) ( log ⁡ P ( y ∣ x ) + 1 ) − ∑ y w 0 − ∑ x , y ( P ~ ( x ) ∑ i = 1 n w i f i ( x , y ) ) = ∑ x , y P ~ ( x ) ( log ⁡ P ( y ∣ x ) + 1 − w 0 − ∑ i = 1 n w i f i ( x , y ) ) \begin{aligned} \frac{\partial L(P, w)}{\partial P(y | x)} &=\sum_{x, y} \tilde{P}(x)(\log P(y | x)+1)-\sum_{y} w_{0}-\sum_{x, y}\left(\tilde{P}(x) \sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) \\ &=\sum_{x, y} \tilde{P}(x)\left(\log P(y | x)+1-w_{0}-\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) \end{aligned} P(yx)L(P,w)=x,yP~(x)(logP(yx)+1)yw0x,y(P~(x)i=1nwifi(x,y))=x,yP~(x)(logP(yx)+1w0i=1nwifi(x,y))令偏导数等于 0 0 0,在 P ~ ( x ) > 0 \tilde{P}(x)>0 P~(x)>0的情况下,解得 P ( y ∣ x ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) + w 0 − 1 ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) exp ⁡ ( 1 − w 0 ) P(y | x)=\exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)+w_{0}-1\right)=\frac{\exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right)}{\exp \left(1-w_{0}\right)} P(yx)=exp(i=1nwifi(x,y)+w01)=exp(1w0)exp(i=1nwifi(x,y))由于 ∑ y P ( y ∣ x ) = 1 \sum_{y} P(y | x)=1 yP(yx)=1,得 P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_{w}(y | x)=\frac{1}{Z_{w}(x)} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))其中, Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_{w}(x)=\sum_{y} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) Zw(x)=yexp(i=1nwifi(x,y)) Z w ( x ) Z_{w}(x) Zw(x)称为规范化因子; f i ( x , y ) f_{i}(x, y) fi(x,y)是特征函数; w i w_{i} wi是特征的权值,由上两式表示的模型 P w = P w ( y ∣ x ) P_{w}=P_{w}(y | x) Pw=Pw(yx)就是最大熵模型,这里 w w w是最大熵模型中的参数向量之后,求解对偶问题外部的极大化问题 max ⁡ w Ψ ( w ) \max _{w} \Psi(w) wmaxΨ(w)将其解记 w ∗ w^* w为 ,即 w ∗ = arg ⁡ max ⁡ w Ψ ( w ) w^{*}=\arg \max _{w} \Psi(w) w=argwmaxΨ(w)这就是说可以应用最优化算法求对偶函数 Ψ ( w ) {\Psi}(w) Ψ(w)的极大化,得到 w ∗ w^* w,用来表示 P ∗ ∈ C P^{*} \in \mathcal{C} PC,这里 P ∗ = P w ∗ = P w ∗ ( y ∣ x ) P^{*}=P_{w^{*}}=P_{w^*} (y | x) P=Pw=Pw(yx)是学习到的最优模型(最大熵模型),最大熵模型的学习归结为对偶函数 Ψ ( w ) {\Psi}(w) Ψ(w)的极大化。

极大似然估计

下证对偶函数的极大化等价于最大熵模型的极大似然估计
已知训练数据的经验分布概率 P ~ ( X , Y ) \tilde{P}(X, Y) P~(X,Y),条件概率分布 P ( Y ∣ X ) P(Y | X) P(YX)的对数似然函数表示为 L P ~ ( P w ) = log ⁡ ∏ x , y P ( y ∣ x ) P ~ ( x , y ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) L_{\tilde{P}}\left(P_{w}\right)=\log \prod_{x, y} P(y | x)^{\tilde{P}(x, y)}=\sum_{x, y} \tilde{P}(x, y) \log P(y | x) LP~(Pw)=logx,yP(yx)P~(x,y)=x,yP~(x,y)logP(yx)当条件概率分布 P ( y ∣ x ) P(y | x) P(yx)是最大熵模型时,对数似然函数 L P ~ ( P w ) L_{\tilde{P}}\left(P_{w}\right) LP~(Pw) L P ~ ( P w ) = ∑ x , y P ~ ( x , y ) log ⁡ P ( y ∣ x ) L_{\tilde{P}}\left(P_{w}\right)=\sum_{x, y} \tilde{P}(x, y) \log P(y | x) LP~(Pw)=x,yP~(x,y)logP(yx) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y P ~ ( x , y ) log ⁡ Z w ( x ) =\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} w_{i} f_{i}(x, y)-\sum_{x, y} \tilde{P}(x, y) \log Z_{w}(x) =x,yP~(x,y)i=1nwifi(x,y)x,yP~(x,y)logZw(x) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) 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) =x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)再看对偶函数 Ψ ( w ) {\Psi}(w) Ψ(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)=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(yx)fi(x,y)) Ψ ( w ) = min ⁡ P ∈ C L ( P , w ) = L ( P w , w ) \Psi(w)=\min _{P \in \mathbf{C}} L(P, w)=L\left(P_{w}, w\right) Ψ(w)=minPCL(P,w)=L(Pw,w)可得 Ψ ( w ) = ∑ x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ P w ( y ∣ x ) + ∑ i = 1 n w i ( ∑ x , y P ~ ( x , y ) f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) ) \begin{aligned} \Psi(w)=& \sum_{x, y} \tilde{P}(x) P_{w}(y | x) \log P_{w}(y | x) \\ &+\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_{w}(y | x) f_{i}(x, y)\right) \end{aligned} Ψ(w)=x,yP~(x)Pw(yx)logPw(yx)+i=1nwi(x,yP~(x,y)fi(x,y)x,yP~(x)Pw(yx)fi(x,y)) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) + ∑ x , y P ~ ( x ) P w ( y ∣ x ) ( log ⁡ P w ( y ∣ x ) − ∑ i = 1 n w i f i ( x , y ) ) =\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(\log P_{w}(y | x)-\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) =x,yP~(x,y)i=1nwifi(x,y)+x,yP~(x)Pw(yx)(logPw(yx)i=1nwifi(x,y)) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x , y P ~ ( x ) P w ( y ∣ x ) log ⁡ Z w ( x ) =\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) \log Z_{w}(x) =x,yP~(x,y)i=1nwifi(x,y)x,yP~(x)Pw(yx)logZw(x) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) 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) =x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)最后一步用到 ∑ y P ( y ∣ x ) = 1 \sum_{y} P(y | x)=1 yP(yx)=1
比较 L P ~ ( P w ) L_{\tilde{P}}\left(P_{w}\right) LP~(Pw) Ψ ( w ) \Psi(w) Ψ(w),可得 Ψ ( w ) = L P ~ ( P w ) \Psi(w)=L_{\tilde{P}}\left(P_{w}\right) Ψ(w)=LP~(Pw)对偶函数等价于对数似然函数 L P ~ ( P w ) L_{\tilde{P}}\left(P_{w}\right) LP~(Pw)于是证明了最大熵模型学习中的对偶函数极大化等价于最大熵模型的极大似然估计
最大熵模型一般形式
P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_{w}(y | x)=\frac{1}{Z_{w}(x)} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))其中, Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_{w}(x)=\sum_{y} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) Zw(x)=yexp(i=1nwifi(x,y))这里, x ∈ R n x \in \mathbf{R}^{n} xRn为输入, y ∈ { 1 , 2 , ⋯   , K } y \in\{1,2, \cdots, K\} y{1,2,,K}为输出, w ∈ R n w \in \mathbf{R}^{n} wRn为权值向量, f i ( x , y ) , i = 1 , 2 , ⋯   , n f_{i}(x, y), i=1,2, \cdots, n fi(x,y),i=1,2,,n为任意实值特征函数.

模型学习的最优化算法

常用的方法有改进的迭代尺度法、梯度下降法、牛顿法或拟牛顿法
改进的迭代尺度法
最大熵模型为 P w ( y ∣ x ) = 1 Z w ( x ) exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_{w}(y | x)=\frac{1}{Z_{w}(x)} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) Pw(yx)=Zw(x)1exp(i=1nwifi(x,y))其中, Z w ( x ) = ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) Z_{w}(x)=\sum_{y} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right) Zw(x)=yexp(i=1nwifi(x,y))对数似然函数为 L ( w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w ( x ) L(w)=\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) L(w)=x,yP~(x,y)i=1nwifi(x,y)xP~(x)logZw(x)目标是通过极大似然函数学习模型的参数,即求对数似然函数的极大值 w ^ \hat{{w}} w^
I I S \mathrm{IIS} IIS的想法是:假设最大熵模型当前的参数向量是 w = ( w 1 , w 2 , ⋯   , w n ) T w=\left(w_{1}, w_{2}, \cdots, w_{n}\right)^{\mathrm{T}} w=(w1,w2,,wn)T,我们希望找到一个新的参数向量 w + δ = ( w 1 + δ 1 , w 2 + δ 2 , ⋯   , w n + δ n ) T w+\delta=\left(w_{1}+\delta_{1}, w_{2}+\delta_{2}, \cdots, w_{n}+\delta_{n}\right)^{\mathrm{T}} w+δ=(w1+δ1,w2+δ2,,wn+δn)T,使得模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法 τ : w → w + δ \tau : w \rightarrow w+\delta τ:ww+δ,那么就可以重复使用这一方法,直至找到对数似然函数的最大值。
对于给定的经验分布 P ~ ( x , y ) \tilde{P}(x, y) P~(x,y),模型参数 w w w从到 w + δ w+\delta w+δ,对数似然函数的改变量是 L ( w + δ ) − L ( w ) = ∑ x , y P ~ ( x , y ) log ⁡ P w + δ ( y ∣ x ) − ∑ x , y P ~ ( x , y ) log ⁡ P w ( y ∣ x ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) − ∑ x P ~ ( x ) log ⁡ Z w + δ ( x ) Z w ( x ) \begin{aligned} L(w+\delta)-L(w) &=\sum_{x, y} \tilde{P}(x, y) \log P_{w+\delta}(y | x)-\sum_{x, y} \tilde{P}(x, y) \log P_{w}(y | x) \\ &=\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)-\sum_{x} \tilde{P}(x) \log \frac{Z_{w+\delta}(x)}{Z_{w}(x)} \end{aligned} L(w+δ)L(w)=x,yP~(x,y)logPw+δ(yx)x,yP~(x,y)logPw(yx)=x,yP~(x,y)i=1nδifi(x,y)xP~(x)logZw(x)Zw+δ(x)利用不等式 − log ⁡ α ⩾ 1 − α , α > 0 -\log \alpha \geqslant 1-\alpha, \quad \alpha>0 logα1α,α>0建立对数似然函数改变量的下界:
L ( w + δ ) − L ( w ) ⩾ ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) Z w + δ ( x ) Z w ( x ) L(w+\delta)-L(w) \geqslant \sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)+1-\sum_{x} \tilde{P}(x) \frac{Z_{w+\delta}(x)}{Z_{w}(x)} L(w+δ)L(w)x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)Zw(x)Zw+δ(x) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) exp ⁡ ∑ i = 1 n δ i f i ( x , y ) =\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)+1-\sum_{x} \tilde{P}(x) \sum_{y} P_{w}(y | x) \exp \sum_{i=1}^{n} \delta_{i} f_{i}(x, y) =x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)expi=1nδifi(x,y)将右端记为 A ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) exp ⁡ ∑ i = 1 n δ i f i ( x , y ) A(\delta | w)=\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)+1-\sum_{x} \tilde{P}(x) \sum_{y} P_{w}(y | x) \exp \sum_{i=1}^{n} \delta_{i} f_{i}(x, y) A(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)expi=1nδifi(x,y)于是有 L ( w + δ ) − L ( w ) ⩾ A ( δ ∣ w ) L(w+\delta)-L(w) \geqslant A(\delta | w) L(w+δ)L(w)A(δw) A ( δ ∣ w ) A({\delta} | {w}) A(δw)是对数似然函数改变量的一个下界
如果能够找到适当的 δ \delta δ使下界 A ( δ ∣ w ) A({\delta} | {w}) A(δw)提高,那么对数似然函数也会提高,然而,函数 A ( δ ∣ w ) A({\delta} | {w}) A(δw)中的 δ \delta δ是一个向量,含有多个变量,不易同时优化。 I I S \mathrm{IIS} IIS试图一次只优化其中一个变量 δ i \delta_{i} δi,而固定其他变量 δ j , i ≠ j \delta_{j}, \quad i \neq j δj,i̸=j。为达到这一目的, I I S \mathrm{IIS} IIS进一步降低下界 A ( δ ∣ w ) A({\delta} | {w}) A(δw)。具体地,IIS引进一个量 f # ( x , y ) f^{\#}(x, y) f#(x,y) f # ( x , y ) = ∑ i f i ( x , y ) f^{\#}(x, y)=\sum_{i} f_{i}(x, y) f#(x,y)=ifi(x,y)因为 f i f_i fi是二值函数,故 f # ( x , y ) f^{\#}(x, y) f#(x,y)表示所有特征在 ( x , y ) (x,y) (x,y)出现的次数,这样 A ( δ ∣ w ) A({\delta} | {w}) A(δw)可以写成 A ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) exp ⁡ ( f # ( x , y ) ∑ i = 1 n δ i f i ( x , y ) f # ( x , y ) ) A({\delta} | w)=\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)+1-\sum_{x} \tilde{P}(x) \sum_{y} P_{w}(y | x) \exp \left(f^{\#}(x, y) \sum_{i=1}^{n} \frac{\delta_{i} f_{i}(x, y)}{f^{\#}(x, y)}\right) A(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)exp(f#(x,y)i=1nf#(x,y)δifi(x,y))
利用指数函数的凸性以及对任意 i i i,有 f i ( x , y ) f # ( x , y ) ⩾ 0 \frac{f_{i}(x, y)}{f^{\#}(x, y)} \geqslant 0 f#(x,y)fi(x,y)0 ∑ i = 1 n f i ( x , y ) f # ( x , y ) = 1 \sum_{i=1}^{n} \frac{f_{i}(x, y)}{f^{\#}(x, y)}=1 i=1nf#(x,y)fi(x,y)=1
根据Jensen不等式,得到 exp ⁡ ( ∑ i = 1 n f i ( x , y ) f # ( x , y ) δ i f # ( x , y ) ) ⩽ ∑ i = 1 n f i ( x , y ) f # ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) \exp \left(\sum_{i=1}^{n} \frac{f_{i}(x, y)}{f^{\#}(x, y)} \delta_{i} f^{\#}(x, y)\right) \leqslant \sum_{i=1}^{n} \frac{f_{i}(x, y)}{f^{\#}(x, y)} \exp \left(\delta_{i} f^{\#}(x, y)\right) exp(i=1nf#(x,y)fi(x,y)δif#(x,y))i=1nf#(x,y)fi(x,y)exp(δif#(x,y))
于是可改写为 A ( δ ∣ w ) ⩾ ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) exp ⁡ ( δ i f # ( x , y ) ) A({\delta} | w) \geqslant \sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)+1-\sum_{x} \tilde{P}(x) \sum_{y} P_{w}(y | x) \sum_{i=1}^{n}\left(\frac{f_{i}(x, y)}{f^{\#}(x, y)}\right) \exp \left(\delta_{i} f^{\#}(x, y)\right) A(δw)x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)i=1n(f#(x,y)fi(x,y))exp(δif#(x,y))记上式不等式右端为 B ( δ ∣ w ) = ∑ x , y P ~ ( x , y ) ∑ i = 1 n δ i f i ( x , y ) + 1 − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) ∑ i = 1 n ( f i ( x , y ) f # ( x , y ) ) exp ⁡ ( δ i f # ( x , y ) ) B(\delta | w)=\sum_{x, y} \tilde{P}(x, y) \sum_{i=1}^{n} \delta_{i} f_{i}(x, y)+1-\sum_{x} \tilde{P}(x) \sum_{y} P_{w}(y | x) \sum_{i=1}^{n}\left(\frac{f_{i}(x, y)}{f^{\#}(x, y)}\right) \exp \left(\delta_{i} f^{\#}(x, y)\right) B(δw)=x,yP~(x,y)i=1nδifi(x,y)+1xP~(x)yPw(yx)i=1n(f#(x,y)fi(x,y))exp(δif#(x,y))于是得到 L ( w + δ ) − L ( w ) ⩾ B ( δ ∣ w ) L(w+\delta)-L(w) \geqslant B(\delta | w) L(w+δ)L(w)B(δw)这里, B ( δ ∣ w ) B(\delta | w) B(δw)是对似然函数改变量的一个新的(相对不紧的)下界
B ( δ ∣ w ) B(\delta | w) B(δw) δ i \delta_{i} δi的偏导数: ∂ B ( δ ∣ w ) ∂ δ i = ∑ x y P ~ ( x , y ) f i ( x , y ) − ∑ x P ~ ( x ) ∑ y P w ( y ∣ x ) f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) \frac{\partial B({\delta} | w)}{\partial \delta_{i}}=\sum_{x y} \tilde{P}(x, y) f_{i}(x, y)-\sum_{x} \tilde{P}(x) \sum_{y} P_{w}(y | x) f_{i}(x, y) \exp \left(\delta_{i} f^{\#}(x, y)\right) δiB(δw)=xyP~(x,y)fi(x,y)xP~(x)yPw(yx)fi(x,y)exp(δif#(x,y))在上式里,除 δ i \delta_{i} δi外不含任何其他变量,令偏导数为 0 0 0得到 ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) exp ⁡ ( δ i f # ( x , y ) ) = E p ~ ( f i ) \sum_{x, y} \tilde{P}(x) P_{w}(y | x) f_{i}(x, y) \exp \left(\delta_{i} f^{\#}(x, y)\right)=E_{\tilde{p}}\left(f_{i}\right) x,yP~(x)Pw(yx)fi(x,y)exp(δif#(x,y))=Ep~(fi)于是,依次对 δ i \delta_{i} δi求解方上式程可以求出 δ \delta δ
这就给出了一种求 w w w的最优解的迭代算法,即改进的迭代尺度算法 I I S \mathrm{IIS} IIS
拟牛顿法
对最大熵模型而言, P w ( y ∣ x ) = exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) P_{w}(y | x)=\frac{\exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right)}{\sum_{y} \exp \left(\sum_{i=1}^{n} w_{i} f_{i}(x, y)\right)} Pw(yx)=yexp(i=1nwifi(x,y))exp(i=1nwifi(x,y))目标函数: min ⁡ w ∈ R n f ( w ) = ∑ x P ~ ( x ) log ⁡ ∑ y exp ⁡ ( ∑ i = 1 n w i f i ( x , y ) ) − ∑ x , y P ~ ( x , y ) ∑ i = 1 n w i f i ( x , y ) \min _{w \in \mathbf{R}^{n}} f(w)=\sum_{x} \tilde{P}(x) \log \sum_{y} \exp \left(\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) wRnminf(w)=xP~(x)logyexp(i=1nwifi(x,y))x,yP~(x,y)i=1nwifi(x,y)梯度: g ( w ) = ( ∂ f ( w ) ∂ w 1 , ∂ f ( w ) ∂ w 2 , ⋯   , ∂ f ( w ) ∂ w n ) T g(w)=\left(\frac{\partial f(w)}{\partial w_{1}}, \frac{\partial f(w)}{\partial w_{2}}, \cdots, \frac{\partial f(w)}{\partial w_{n}}\right)^{\mathrm{T}} g(w)=(w1f(w),w2f(w),,wnf(w))T其中 ∂ f ( w ) ∂ w i = ∑ x , y P ~ ( x ) P w ( y ∣ x ) f i ( x , y ) − E P ~ ( f i ) , i = 1 , 2 , ⋯   , n \frac{\partial f(w)}{\partial w_{i}}=\sum_{x, y} \tilde{P}(x) P_{w}(y | x) f_{i}(x, y)-E_{\tilde{P}}\left(f_{i}\right), \quad i=1,2, \cdots, n wif(w)=x,yP~(x)Pw(yx)fi(x,y)EP~(fi),i=1,2,,n

《统计学习方法》 李航

你可能感兴趣的:(统计机器学习)