统计

  • 随笔 - 5
  • 文章 - 8
  • 评论 - 2
  • 阅读 - 99601

认识最大熵模型

星云*

我们不只是代码的搬运工,我们还生产代码

信息熵

X是取有限个值的随机变量,X{x1,x2,,xn}, i=1,2,,n,则随机变量X的熵定义为:

H(X)=i=1nP(X=xi)logaP(X=xi)

H(X)作为X对应的随机场的不确定性的度量,代表了X所包含的信息量,也就是各个基本事件{X=xi}的平均信息量。

与热力学中的熵不同,信息熵只能降低,不确定性被消除的过程不能逆向进行。

X{x1,x2,,xn}, i=1,2,,n, Y{y1,y2,,ym}, j=1,2,,m,已知X条件下Y条件熵为:

H(Y|X)=i=1nP(X=xi)H(Y|X=xi)=i=1n(P(X=xi)j=1mP(yj|xi)logP(yj|xi))

最大熵模型

如果已知所有信息(熵小)就不需要模型去预测了。在所有可能的模型(就是概率分布)中,熵最大的模型是最好的模型,正如我们会想要模型能够识别各种龙飞凤舞而不是只能识别特定字体的文字,能够从各种阴阳怪气而不是简单固定的文本提取有用的信息。模型的输出永远是确定的,要求模型能处理熵大的X,用最少的信息(不确定性大,熵大)得到确定的结果。

对于训练数据{(xi,yi), i=1,2,,n}y是标签。经验分布P~(x)=1ni=1n1(Xi=x),即n次实验中x出现的次数占实验次数的比例。特征函数f(x,y)描述形参xy满足某个事实,其返回值为boolean类型,当形参满足事实时返回true否则返回false。那么:

  • f(x,y)基于P~(x,y)的期望EP~(f)=P~(x,y)f(x,y),也就是预测分布;
  • f(x,y)基于P(Y|X)的期望EP(f)=P~(x)P(y|x)f(x,y),真实分布。

训练过程

最大熵模型试图求P=maxPH(P),其中:

H(P)=i=1nP~(xi)P(yi|xi)logP(yi|xi)

但是想要计算熵,我们虽然需要P~(x)P(y|x)的值,但通过训练模型时计算的是P~(x,y),每次选取一对(x,y)只能得到xy同时发生时的经验概率而不能x发生时y的概率。而且标签集合y一定要包含x的所有可能的类别,即yP(y|x)=1。训练过程等价于条件极值问题:

P=maxP(i=1nP~(xi)P(yi|xi)logP(yi|xi))s.t. EP(fi)=EP~(fi), yP(y|x)=1

为将条件极值问题转化成无条件极值问题,定义拉格朗日函数:

L(P,θ)=H(P)+θ0(1yP(y|x))+i=1nθi(EP~(fi)EP(fi))

L(P,θ)P(y|x)=(x,y)P~(x)(logP(y|x)+1θ0i=1nθifi(x,y))=0

原始优化问题minPPmaxθL(P,θ)的对偶问题为maxθminPPL(P,θ),令L(P,θ)P(y|x)=0也就是L(P,θ)取到极小值Pθ(y|x)时,得logP(y|x)+1θ0i=1nθifi(x,y)=0,这时:

yP(y|x)=eθ01yei=1nθifi(x,y)

Pθ(y|x)=eθ01ei=1nθifi(x,y)eθ01yei=1nθifi(x,y)=ei=1nθifi(x,y)yei=1nθifi(x,y)

所以θ=argmaxθPθ(y|x),只留下分子指数部分,得到最大熵模型的最优参数θ=argmaxθi=1nθifi(x,y)

posted on   星云*  阅读(72)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示