信息熵
设X是取有限个值的随机变量,X∈{x1,x2,⋯,xn}, i=1,2,⋯,n,则随机变量X的熵定义为:
H(X)=−n∑i=1P(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)=n∑i=1P(X=xi)H(Y|X=xi)=−n∑i=1(P(X=xi)m∑j=1P(yj|xi)logP(yj|xi))
最大熵模型
如果已知所有信息(熵小)就不需要模型去预测了。在所有可能的模型(就是概率分布)中,熵最大的模型是最好的模型,正如我们会想要模型能够识别各种龙飞凤舞而不是只能识别特定字体的文字,能够从各种阴阳怪气而不是简单固定的文本提取有用的信息。模型的输出永远是确定的,要求模型能处理熵大的X,用最少的信息(不确定性大,熵大)得到确定的结果。
对于训练数据{(xi,yi), i=1,2,⋯,n},y是标签。经验分布~P(x)=1n∑ni=11(Xi=x),即n次实验中x出现的次数占实验次数的比例。特征函数f(x,y)描述形参x、y满足某个事实,其返回值为boolean
类型,当形参满足事实时返回true
否则返回false
。那么:
- f(x,y)基于~P(x,y)的期望E~P(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)=−n∑i=1~P(xi)P(yi|xi)logP(yi|xi)
但是想要计算熵,我们虽然需要~P(x)P(y|x)的值,但通过训练模型时计算的是~P(x,y),每次选取一对(x,y)只能得到x和y同时发生时的经验概率而不能x发生时y的概率。而且标签集合y一定要包含x的所有可能的类别,即∑yP(y|x)=1。训练过程等价于条件极值问题:
P∗=maxP(−n∑i=1~P(xi)P(yi|xi)logP(yi|xi))s.t. EP(fi)=E~P(fi), ∑yP(y|x)=1
为将条件极值问题转化成无条件极值问题,定义拉格朗日函数:
L(P,θ)=−H(P)+θ0(1−∑yP(y|x))+n∑i=1θi(E~P(fi)−EP(fi))
∂L(P,θ)∂P(y|x)=∑(x,y)~P(x)(logP(y|x)+1−θ0−n∑i=1θifi(x,y))=0
原始优化问题minP∈PmaxθL(P,θ)的对偶问题为maxθminP∈PL(P,θ),令∂L(P,θ)∂P(y|x)=0也就是L(P,θ)取到极小值Pθ(y|x)时,得logP(y|x)+1−θ0−∑ni=1θifi(x,y)=0,这时:
∑yP(y|x)=eθ0−1∑ye∑ni=1θifi(x,y)
Pθ(y|x)=eθ0−1e∑ni=1θifi(x,y)eθ0−1∑y′e∑ni=1θifi(x,y′)=e∑ni=1θifi(x,y)∑y′e∑ni=1θifi(x,y′)
所以θ∗=argmaxθPθ(y|x),只留下分子指数部分,得到最大熵模型的最优参数θ∗=argmaxθ∑ni=1θifi(x,y)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异