广义线性模型 GLM
Logistic Regression 同 Liner Regression 均属于广义线性模型,Liner Regression 假设 y|x;θ 服从 Gaussian 分布,而 Logistic Regression 假设 y|x;θ 服从 Bernoulli 分布.
这里来看线性回归,给定数据集 {(xi,yi)}Ni=1 ,xi 与 yi 的关系可以写成 yi=θTxi+ε 的形式,这里 ε 为一个误差项 且满足 ε∼N(0,σ2) ,这意味着对于相应变量 yi∼N(θTxi,σ2) ,即 有:
p(yi|xi;θ)=1√2πσexp(−(y−θTxi)22σ2)
现在可以用 MLE 的方式来对线性回归做一个似然估计,联合概率分布为
N∏i=11√2πσexp(−(yi−θTxi)22σ2)
因此可以得到似然函数:
L(θ)=N∑i=1log1√2πσexp(−(yi−θTxi)22σ2)=mlog1√2πσ−1σ2(12N∑i=1(yi−θTxi)2)
也就是说,极大化似然函数 等价于极小化 12∑Ni=1(yi−θTxi)2 即可,这便是最小均方的由来了.至于 Logistic Regression 更是显而易见的可以通过极大似然得到,可见这两种模型之间自有一些联系。
广义线性模型中的因变量 y 都是 exponential family 分布,exponential family 是啥呢,其形式如下:
p(y;η)=b(y)exp(ηTT(y)−a(η))
指数族分布的参数 η ,T(y) 为关于 y 的函数,e−a(η) 为归一化常量,使得 ∑yp(y;η)=1.可见当固定参数 T,a,b 便确定了一个参数为 η 的 exponential family 分布,且一般有 T(y)=y 。指数族分布有一堆优良的性质,在 MLAPP 里都有列出,这里只列出两个能看懂的,1)The exponential family is the only family of distributions for which conjugate priors exist, which simplifies the computation of the posterior; 这个是在说只有指数分布族才存在共轭先验.2) The exponential family can be shown to be the family of distributions that makes the least set of assumptions subject to some user-chosen constraints。这个是在说这个分布性质良好,MaxEnt性质的.
Bernoulli 与 Gaussian 均是 exponential family 中的一员。对于参数为 ϕ 的Bernoulli 分布:
p(y=1;ϕ)=ϕ; p(y=0;ϕ)=1−ϕ
为了写成 exponential family 的形式:
p(y;ϕ)=ϕy(1−ϕ)1−y=exp(ylogϕ+(1−y)log(1−ϕ))=exp(ylogϕ1−ϕ+log(1−ϕ))
将Bernoulli 与 指数分布族对应起来:
T(y)=y
η=log(ϕ1−ϕ)
a(\eta) = –log(1-\phi) =log(1+e^{\eta})
b(y) = 1
接下来看 Gaussian 分布,这里先做一个简单的假设 即另 \sigma = 1 ,因为 \sigma 的取值第最后的结果没有任何影响:
\begin{aligned} p(y;\mu)& =\frac{1}{\sqrt{2\pi}}\exp(-\frac{1}{2}(y-\mu)^2) \\ &=\frac{1}{\sqrt{2\pi}} \exp(-\frac{1}{2} y^2)\exp(\mu y-\frac{1}{2} \mu^2) \end{aligned}
可见 Gaussian 与指数分布族的对应关系:
\eta = \mu
T(y) = y
a(\eta) = \frac{1}{2} \mu^2 = \frac{1}{2} \eta^2
b(y) = \frac{1}{\sqrt{2\pi}}exp \left( –\frac{1}{2} y^2 \right)
还有许多其他的分布也属于 exponential family ,比如 Multinomial、Possion 、Gamma、exponential、Beta、 Dirchlet 等分布 ,有了 exponential family 的概念之后,现在来看 GLM,考虑一个分类或者回归问题,我们的目标是预测 y 的取值 ,这里 y 是关于 x 的函数,为了得到广义线性模型,我们要对模型做如下三个假设:
1)[y|x; \theta] \sim p(\eta),这里的 p 即为某种 exponential family.
2)由于通常有 T(y) = y,所以只要建立一个假设函数 y = h(x) =E[y|x; \theta].这里 h(x)即为得到的模型.
3)参数 \eta 与 x 是线性相关的, 即 \eta = \theta^T x.
这三个假设使得我们可以推导出一类有良好性质的学习算法,因为这可以帮助我们建立许多概率判别模型,因为以上三个条件联合起来就是说 y \sim ExponentialFamily(\theta^Tx) ,所以 y 的期望变为 \theta^Tx 的函数即 E[y|x] = h(x) :
对于 p(y|x;\theta) \sim N( \mu ,\sigma^2) ,x 的取值会导致不同的 \mu ,则可以得到模型:
h(x) = E[y|x; \theta ] = \mu = \eta = \theta^Tx
因为 y 是服从 exponential family 中的正态分布,所以有 \mu = \eta
而对于 p(y|x;\theta) \sim Brenoulli( \phi):
h(x) = E[y|x; \theta ] = \phi =\frac{1}{1+e^{- \eta}} =\frac{1}{1+e^{-\theta^Tx}}
还有当 p(y|x;\theta) \sim Multinomial ( \phi_1,\phi_2,…,\phi_k) 时,得到的 h(x) 即为 softmax 了,所以不同的分布得到不同的模型,另外注意这些 MaxEnt 推倒得到的模型与极大似然估计得到的是一致的,详见最大熵模型 Maximum Entropy Model ,应该就是说对 exponential family 中的分布进行 MLE 得到的结果 是满足 Maxent 性质的,关于 MaxEnt 与 exponential family 还有待进一步多查阅资料。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
· 程序员常用高效实用工具推荐,办公效率提升利器!