首先介绍逻辑斯谛模型,然后介绍最大熵模型,最后讲述逻辑斯谛回归与最大熵模型的学习算法,包括改进的迭代尺度算法和拟牛顿法
逻辑斯谛回归模型
逻辑斯谛分布
设X是连续随机变量,具有下列分布函数和密度函数:μ是位置参数,γ>0是形状参数,越小,分布函数在中心增长得越快
F(x)=P(X≤x)=11+e−(x−μ)/γf(x)=F′(x)=e−(x−μ)/γγ(1+e−(x−μ)/γ)2
曲线如下:

分布函数F(x)是一条S形曲线,该曲线以点(μ,12)为中心对称:
F(−x+μ)−12=−F(x+μ)+12
二项逻辑斯谛回归模型
- 二项逻辑斯谛回归模型是一种分类模型,x∈Rn是输入,Y∈{0,1},ω∈Rn,b∈R是参数,ω是权值向量,b是偏置,ω⋅x是ω,x的内积
模型是如下的条件概率分布:
P(Y=1|x)=exp(ω⋅x+b)1+exp(ω⋅x+b)P(Y=0|x)=11+exp(ω⋅x+b)
- 为了方便将权值向量和输入向量进行扩充:ω=(ω(1),ω(2),⋯,ω(n),b)T,x=(x(1),x(2),⋯,x(n),1)T,模型如下:
P(Y=1|x)=exp(ω⋅x)1+exp(ω⋅x)P(Y=0|x)=11+exp(ω⋅x)
- 一个事件的几率:该事件发生与不发生的概率的比值p1−p
- 该事件的对数几率是:logit(p)=logp1−p
- 逻辑斯谛回归模型输出Y=1的对数几率是logP(Y=1|x)1−P(Y=1|x)=ω⋅x,是输入x的线性函数,通过逻辑斯谛回归模型可以将线性函数ω⋅x转换为概率
模型参数估计
目的:逻辑斯谛回归模型学习ω的估计值,可以使用极大似然估计
给定训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈Rn,y∈{0,1}
设:
P(Y=1|x)=π(x),P(Y=0|x)=1−π(x)
似然函数为:
N∏i=1[π(xi)]yi[1−π(xi)]1−yi
对数似然函数为:
L(ω)=N∑i=1[yilogπ(xi)+(1−yi)log(1−π(xi))]=N∑i=1[yilogπ(xi)1−π(xi)+log(1−π(xi))]=N∑i=1[yi(ω⋅xi)−log(1+exp(ω⋅xi))]
对L(ω)求极大值,得到ω的估计值
问题转化为以对数似然函数为目标函数的最优化问题,可以采用梯度下降法及拟牛顿法
多项逻辑斯谛回归
此时离散型随机变量Y的取值集合是{1,2,⋯,K},模型为:
P(Y=k|x)=exp(ωk⋅x)1+∑K−1k=1exp(ωk⋅x),k=1,2,⋯,K−1P(Y=K|x)=11+∑K−1k=1exp(ωk⋅x)
x∈Rn+1,ωk∈Rn+1
最大熵模型
最大熵模型由最大熵原理推导完成,首先叙述一般的最大熵原理,然后讲解最大熵模型的推导,最后给出最大熵模型学习的形式
最大熵原理
学习概率模型时,在所有可能的概率模型中,熵最大的模型是最好的模型,假设离散随机变量X的概率分布是P(X),其熵是:
H(P)=−∑xP(x)logP(x)
熵满足0≤H(P)≤log|X|,|X|是X的取值个数,当X的分布是均匀分布时右边的等号成立,也就是说X服从均匀分布时熵最大;
直观的,最大熵原理认为要选择的概率模型首先必须满足已有的事实,即约束条件,在没有更多信息的情况下,那些不确定的部分必须是等可能的,最大熵原理通过熵的最大化来表示等可能性
最大熵模型的定义
假设分类模型是一个条件概率分布P(Y|X),X∈X⊆Rn表示输入,Y∈Y表示输出,X,Y分别是输入和输出的集合,这个模型表示的是对于给定的输入X,以条件概率P(Y|X)输出Y,训练数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},学习的目标是用最大熵原理选择最好的分类模型。
~P(X=x,Y=y)=ν(X=x,Y=y)N~P(X=x)=ν(X=x)N
ν(X=x,Y=y)表示的是训练样本中(x,y)出现的频数,ν(X=x)表示训练数据中输入x出现的频数,N表示样本容量。
特征函数f(x,y)描述输入x和输出y之间的某一个事实:
f(x,y)={1x和y满足某一事实0otherwise
特征函数f(x,y)关于经验分布~P(X,Y)的期望值:
E~P(f)=∑x,y~P(x,y)f(x,y)
特征函数f(x,y)关于模型P(Y|X)与经验分布~P(X)的期望值:
EP(f)=∑x,y~P(x)P(y|x)f(x,y)
如果模型能获取训练数据中的信息,那么就可以假设这两个期望值相等
E~P(f)=EP(f)∑x,y~P(x,y)f(x,y)=∑x,y~P(x)P(y|x)f(x,y)
我们将上式作为模型学习的约束条件,假如有n个特征函数fi(x,y),i=1,2,⋯,n,那么就有n个约束条件
假设满足所有约束条件的模型集合为:
C≡{P∈P|EP(fi)=E~P(fi),i=1,2,⋯,n}
定义在条件概率分布上的条件熵为:
H(P)=−∑x,y~P(x)P(y|x)logP(y|x)
集合模型C中条件熵H(P)最大的模型称为最大熵模型
最大熵模型的学习(P100例题值得一看)
最大熵模型的学习过程就是求解最大熵模型的过程,最大熵模型的学习等价于约束最优化问题:
maxP∈CH(P)=−∑x,y~P(x)P(y|x)logP(y|x)s.t. EP(fi)=E~P(fi),i=1,2,⋯,n∑yP(y|x)=1
转化为等价的求最小值问题:
minP∈C−H(P)=∑x,y~P(x)P(y|x)logP(y|x)s.t. EP(fi)−E~P(fi)=0,i=1,2,⋯,n∑yP(y|x)=1
将约束最优化的原始问题转换为无约束最优化的对偶问题,首先引进拉格朗日乘子ω0,ω1,ω2,⋯,ωn,定义拉格朗日函数L(P,ω):
L(P,ω)≡−H(P)+ω0(1−∑yP(y|x))+n∑i=1ωi(E~P(fi)−EP(fi))=∑x,y~P(x)P(y|x)logP(y|x)+ω0(1−∑yP(y|x))+n∑i=1ωi(∑x,y~P(x,y)fi(x,y)−∑x,y~P(x)P(y|x)fi(x,y))
最优化的原始问题是:
minP∈CmaxωL(P,ω)
对偶问题是:
maxωminP∈CL(P,ω)
由于拉格朗日函数是P的凸函数,原始问题的解与对偶问题的解是等价的
首先求解对偶问题内部的极小化问题minP∈CL(P,ω),minP∈CL(P,ω)是ω的函数,将其记作
Ψ(ω)=minP∈CL(P,ω)=L(Pω,ω)
将其解记作:
Pω=argminP∈CL(P,ω)=Pω(y|x)
具体地,求L(P,ω)对P(y|x)的偏导数
∂L(P,ω)∂P(y|x)=(∑x,y~P(x)P(y|x)logP(y|x)+ω0(1−∑yP(y|x))+n∑i=1ωi(∑x,y~P(x,y)fi(x,y)−∑x,y~P(x)P(y|x)fi(x,y)))′P(y|x)=∑x,y~P(x)(1+logP(y|x))+∑yω0+∑x,y(~P(x)n∑i=1ωifi(x,y))=∑x,y~P(x)(logP(y|x)+1−ω0−n∑i=1ωifi(x,y))
令偏导数等于0,在~P(x)>0的情况下解得
P(y|x)=exp(n∑i=1ωifi(x,y)+ω0−1)=exp(∑ni=1ωifi(x,y))exp(1−ω0)
由于∑yP(y|x)=1:
Pω(y|x)=1Zω(x)exp(n∑i=1ωifi(x,y))
其中:Zω(x)被称为规范化因子
Zω(x)=∑yexp(n∑i=1ωifi(x,y))
Pω=Pω(y|x)就是最大熵模型
之后将求解得到的最大熵模型带到拉格朗日函数中得到包含ω的函数,求关于ω的极大化问题,分别对ω1,ω2,⋯,ωn求导,令偏导数为0求出ω的值,将得出的ω值带到最大熵模型中得到最大熵模型的结果。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)