从线性回归,logistic回归,softmax回归,最大熵的概率解释来看,我们会发现线性回归是基于高斯分布+最大似然估计的结果,logistic回归是伯努利分布+对数最大似然估计的结果,softmax回归是多项分布+对数最大似然估计的结果,最大熵是基于期望+对数似然估计的结果。前三者可以从广义线性模型角度来看。
广义线性模型
广义线性模型建立在三个定义的基础上,分别为:
定义线性预测算子
η=θTx
定义y的估计值
h(x,θ)=E(y|x,θ)
定义 y 的估值概率分布属于某种指数分布族:
Pr(y|x,θ)=b(y)exp(ηTT(y)−a(η))
接下来详细解释各个定义
指数分布家族
指数分布家族是指可以表示为指数形式的概率分布,指数分布的形式如下:
p(y;η)=b(y)exp(ηTT(y)−a(η))
其中:
- η被称为自然参数(natural parameters)
- T(y)称为充分统计量,通常T(y)=y
- a(η)称为对数分割函数(log partition function);
- e−a(η)本质上是一个归一化常数,确保p(y;η)概率和为1。
当T(y)被固定时,a(η)、b(y)就定义了一个以η为参数的一个指数分布。我们变化η就得到这个分布的不同分布。
为什么要把$ y 的条件分布定义为这么奇怪的指数分布族?这是因为,在这样的定义下,我们可以证明:p(y|η)$ 的期望值满足:
E(y|η)=ddηa(η)
p(y|η)的方差满足:
Var(y|η)=d2dη2a(η)
如此简洁的期望和方差意味着:一旦待估计的y的概率分布写成了某种确定的指数分布族的形式(也就是给定了具体的 a,b,T),那么我们可以直接套用公式 h(x,θ)=E(y|x,θ)=ddηa(η) 构建回归模型。
实际上大多数的概率分布都属于指数分布家族,比如
1)伯努利分布 0-1问题
2)二项分布,多项分布 多取值 多次试验
3)泊松分布 计数过程
4)伽马分布与指数分布
5)β分布
6)Dirichlet分布
7)高斯分布
现在我们将高斯分布和伯努利分布用指数分布家族的形式表示:
Bernoulli分布的指数分布族形式:
p(y=1;ϕ)=ϕ;p(y=0;ϕ)=1−ϕ⟹p(y;ϕ)=ϕy(1−ϕ)1−y=exp(ylogϕ+(1−y)log(1−ϕ))=exp((log(ϕ1−ϕ))y+log(1−ϕ))
即:在如下参数下 广义线性模型是 Bernoulli 分布
η=log(ϕ/(1−ϕ))⟹ϕ=1/(1+e−η)T(y)=ya(η)=−log(1−ϕ)=log(1+eη)b(y)=1
Gaussian 分布的指数分布族形式:
在线性回归中,σ对于模型参数θ的选择没有影响,为了推导方便我们将其设为1:
p(y;μ)=1√2πexp(−12(y−μ)2)=1√2πexp(−12y2)⋅exp(μy−12μ2)
得到对应的参数:
η=μT(y)=ya(η)=μ2/2=η2/2b(y)=1√2πexp(−12y2)
用广义线性模型进行建模
想用 广义线性模型对一般问题进行建模首先需要明确几个 假设:
1.y|x;θ∼ExponentialFamily(η)的条件概率属于指数分布族
2.给定x 广义线性模型的目标是 求解 T(y)|x , 不过由于 很多情况下T(y)=y所以我们的目标变成了y|x , 也即 我们希望拟合函数为h(x)=E[y|x]
(NOTE: 这个条件在 线性回归 和 逻辑回归中都满足, 例如 逻辑回归中hθ(x)=p(y=1|x;θ))
3.自然参数η与 x是线性关系 : η=θTx (η为向量时,ηi=θTix )
有了如上假设 就可以进行建模和求解了:
广义线性模型 推导出 线性回归:
step1: p(y|x;theta)∼N(μ,θ)
step2: 由假设2h(x)=E[y|x]得到:
h(x)=E[y|x]=μ=η=θTx
广义线性模型 推导出 逻辑回归:
step1: p(y|x;theta)∼Bernoulli(ϕ)
step2: 由假设2h(x)=E[y|x]得到:
h(x)=E[y|x]=ϕ=11+e−η=11+e−θTx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)