CS229: 3

广义线性模型, Generalized Linear Model

广义线性模型

来试图寻找一些常见分布的共性。

之前我们看到的线性回归,还是逻辑回归,实际上其有效性都依赖于预先假设了一个概率分布,那么,如果其他实际问题有什么概率分布(比如泊松,伽马),能不能把它们全部统一起来呢?

指数族分布

P(y;η)=b(y)exp⁡(ηTT(y)−a(η))P(y;\eta)=b(y)\exp(\eta^T T(y)-a(\eta))

称为指数族分布,这里的分号表示该概率用参数η\eta表示,可以理解为η\eta决定了这个分布。

T(y)T(y)被称作统计充分量,一般是yy,或者是和yy有关的向量。严谨的定义是包含了分布的全部信息的量。

一些练习

证明伯努利分布可以写成指数族分布

P(y;η)=ϕy(1−ϕ)1−yln⁡P(y;η)=yln⁡ϕ+(1−y)ln⁡(1−ϕ)ln⁡P(y;η)=yln⁡ϕ1−ϕ+ln⁡(1−ϕ)P(y;η)=exp⁡(yln⁡ϕ1−ϕ+ln⁡(1−ϕ))η=ln⁡ϕ1−ϕ,ϕ=11+e−ηP(y∣x;η)=exp⁡(ηy−ln⁡(eη+1))T(y)=y,η=ln⁡ϕ1−ϕ,b(y)=1,a(η)=ln⁡(eη+1)P(y;\eta)=\phi^y(1-\phi)^{1-y}\\ \ln P(y;\eta)=y\ln \phi+(1-y)\ln(1-\phi)\\ \ln P(y;\eta)=y \ln\frac{ \phi}{1-\phi}+\ln(1-\phi)\\ P(y;\eta)=\exp (y \ln\frac{ \phi}{1-\phi}+\ln(1-\phi))\\ \eta=\ln\frac{ \phi}{1-\phi},\phi=\frac{1}{1+e^{-\eta}}\\ P(y|x;\eta)=\exp(\eta y-\ln(e^{\eta}+1))\\ T(y)=y,\eta=\ln\frac{ \phi}{1-\phi},b(y)=1,a(\eta)=\ln(e^{\eta}+1)

证明正态分布可以写成指数族分布

假设标准差是1

P(y;η)=12πexp⁡(−(y−μ)22)=12πexp⁡(−y2−2μy+μ22)=12πexp⁡(−y22+μy−μ22)=12πexp⁡(−y22)exp⁡(μy−μ22)\begin{aligned} P(y;\eta)&=\frac{1}{\sqrt{2\pi}}\exp(-\frac{(y-\mu)^2}{2})\\ &=\frac{1}{\sqrt{2\pi}}\exp(-\frac{y^2-2\mu y+\mu^2}{2})\\ &=\frac{1}{\sqrt{2\pi}}\exp(-\frac{y^2}{2}+\mu y-\frac{\mu^2}{2})\\ &=\frac{1}{\sqrt{2\pi}}\exp(-\frac{y^2}{2})\exp(\mu y -\frac{\mu^2}{2})\\ \end{aligned}

故这里的η\eta实际上就是μ\mu

η=μT(y)=y,b(y)=12πexp⁡(−y22),a(η)=η22\eta=\mu \\ T(y)=y, \\ b(y)=\frac{1}{\sqrt{2\pi}}\exp(-\frac{y^2}{2}), \\ a(\eta)=\frac{\eta^2}{2}

构造广义线性模型(GLM)

  1. 假设 y∣x;θ∼expotenialfamily(η)y|x;\theta \sim expotenialfamily(\eta),给定了x,θx,\theta,yy的分布由η\eta决定
  2. 给定xx,目标是要预测T(y)T(y)(一般T(y)=yT(y)=y),假设h(x)=E(y∣x)h(x)=E(y|x)
  3. 假设η=θTx\eta=\theta^Tx

至于为什么要做这些假设呢?首先,有一个先验的概率模型是重要的,然后,用线性来表示概率模型的参数是方便的,所以有了这种方法。

一些练习

构建逻辑回归的GLM

用上面的结果

hθ(x)=E(y∣x;θ)=ϕ=11+e−η=11+e−θTx\begin{aligned} h_\theta(x)=E(y|x;\theta)=\phi=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^Tx}} \end{aligned}

构建线性回归的GLM

用上面的结果,假设均值是0,标准差是1

hθ(x)=E(y∣x;θ)=μ=η=θTx h_\theta(x)=E(y|x;\theta)=\mu=\eta=\theta^Tx

构建泊松分布的GLM

作业代码里有

多分类和softmax

现在用GLM的思想来建模多分类问题。

假设一共有kk个类别。

借鉴逻辑回归的思想,用概率来表示ϕk=P(y=k)\phi_k=P(y=k),哪个概率最大就取哪个值。

那么借鉴逻辑回归中概率是二项分布,类似地可以写成

P(y;η)=ϕ1[y=1]ϕ2[y=2]...ϕk[y=k](∑i=1kϕi=1)ln⁡P(y;η)=∑i=1k[y=i]ln⁡ϕiP(y;\eta)=\phi_1^{[y=1]}\phi_2^{[y=2]}...\phi_k^{[y=k]}(\sum_{i=1}^{k}\phi_i=1)\\ \ln P(y;\eta)=\sum_{i=1}^{k}[y=i]\ln \phi_i \\

发现不太好处理,但是指数族分布中可以将T(y),ηT(y),\eta都写成向量的形式,所以设

T(y)=[0...1...0]T(y)=\left[\begin{matrix} 0 \\ ... \\ 1 \\ ...\\ 0 \end{matrix}\right]

若y=ky=k,则第kk个位置为11,其余位置都是00

瞪眼观察,取

η=[ln⁡ϕ1ln⁡ϕ2...ln⁡ϕk]\eta=\left[\begin{matrix} \ln \phi_1 \\ \ln \phi_2 \\ ... \\ \ln \phi_k \end{matrix}\right]

ln⁡P(y;η)=ηTT(y)\ln P(y;\eta)=\eta^TT(y)\\

是不是就可以了呢?

但是套用GLM,ηi=θiTx\eta_i=\theta_i^Tx,也就是说此时η\eta是自由的,不能满足概率和为1的限制。

我们换一个思路,发现所有[y=i][y=i]的和是1

ln⁡P(y;η)=[y=k]ln⁡ϕk+∑i=1k−1[y=i]ln⁡ϕiln⁡P(y;η)=(1−∑i=1k−1[y=i])ln⁡ϕk+∑i=1k−1[y=i]ln⁡ϕiln⁡P(y;η)=ln⁡ϕk+∑i=1k−1[y=i]ln⁡ϕiϕk\ln P(y;\eta)=[y=k]\ln \phi_k+\sum_{i=1}^{k-1}[y=i]\ln \phi_i \\ \ln P(y;\eta)=(1-\sum_{i=1}^{k-1}[y=i])\ln \phi_k+\sum_{i=1}^{k-1}[y=i]\ln \phi_i \\ \ln P(y;\eta)=\ln \phi_k+\sum_{i=1}^{k-1}[y=i]\ln \frac{\phi_i}{\phi_k} \\

而且实际上确定了前k−1k-1个ϕ\phi,就可以完全确定了,所以实际上η\eta只需要k−1k-1维。

那么

T(y)=[0...1...0](1≤y≤k−1),T(k)=[0...0...0]η=[ln⁡ϕ1ϕk...ln⁡ϕiϕk...ln⁡ϕk−1ϕk]a(η)=−ln⁡ϕkb(y)=1P(y;η)=b(y)exp⁡(ηTT(y)−a(η))T(y)=\left[\begin{matrix} 0 \\ ... \\ 1 \\ ...\\ 0 \end{matrix}\right](1\leq y\leq k-1),T(k)=\left[\begin{matrix} 0 \\ ... \\ 0 \\ ...\\ 0 \end{matrix}\right]\\ \eta=\left[\begin{matrix} \ln \frac{\phi_1}{\phi_k} \\ ... \\ \ln \frac{\phi_i}{\phi_k} \\ ...\\ \ln \frac{\phi_{k-1}}{\phi_k} \end{matrix}\right]\\ a(\eta)=-\ln \phi_k\\ b(y)=1\\ P(y;\eta)=b(y)\exp(\eta^TT(y)-a(\eta))

然后套用GLM,ηi=θiTx,ϕiϕk=eθiTx\eta_i=\theta_i^Tx,\frac{\phi_i}{\phi_k}=e^{\theta_i^Tx}

规定ηk=0,θk=0\eta_k=0,\theta_k=0

再代入

∑i=1k−1ϕk−1+ϕk=1∑i=1k−1ϕkeθiTx+ϕk=1ϕk∑i=1keθiTx=1ϕieθiTx∑i=1keθiTx=1ϕi=eθiTx∑i=1keθiTx\sum_{i=1}^{k-1}\phi_{k-1}+\phi_k=1\\ \sum_{i=1}^{k-1}\phi_ke^{\theta_i^Tx}+\phi_k=1\\ \phi_k \sum_{i=1}^{k}e^{\theta_i^Tx}=1\\ \frac{\phi_i}{e^{\theta_i^Tx}}\sum_{i=1}^{k}e^{\theta_i^Tx}=1\\ \phi_i=\frac{e^{\theta_i^Tx}}{\sum_{i=1}^{k}e^{\theta_i^Tx}}

也就得到了softmax函数

然后做极大似然估计

L(θ)=∏i=1nP(y(i)∣x(i))l(θ)=∑i=1nln⁡P(y(i)∣x(i))l(θ)=∑i=1nln⁡∏j=1kϕj[y(i)=j]l(θ)=∑i=1n∑j=1k[y(i)=j]ln⁡eθjTx(i)∑t=1keθtTx(i)L(\theta)=\prod_{i=1}^{n}P(y^{(i)}|x^{(i)})\\ l(\theta)=\sum_{i=1}^{n} \ln P(y^{(i)}|x^{(i)})\\ l(\theta)=\sum_{i=1}^{n} \ln \prod_{j=1}^{k}\phi_j^{[y^{(i)}=j]}\\ l(\theta)=\sum_{i=1}^{n} \sum_{j=1}^{k}[y^{(i)}=j]\ln \frac{e^{\theta_j^Tx^{(i)}}}{\sum_{t=1}^{k}e^{\theta_t^Tx^{(i)}}}\\

然后这里就抽象出来了一个函数,交叉熵(cross entrophy)函数,

lce((t1,t2,...,tk),y)=−ln⁡ety∑i=1keti∂lce∂ti=−[y=i]+eti∑j=1ketjl_{ce}((t_1,t_2,...,t_k),y)=-\ln \frac{e^{t_y}}{\sum_{i=1}^{k}e^{t_i}}\\ \frac{\partial{l_{ce}}}{\partial{t_i}}=-[y=i]+\frac{e^{t_i}}{\sum_{j=1}^{k}e^{t_j}}

l(θ)=∑i=1n−lce((θ1Tx(i),θ2Tx(i),...,θkTx(i)),y(i))∇θil(θ)=−∑j=1n∂lce((θ1Tx(j),θ2Tx(j),...,θkTx(j)),y(j))∂θiTx(j)∇θiθiTx(j)∇θil(θ)=−∑j=1n(−[y=i]+eθiTx(j)∑l=1keθlTx(j))x(j)∇θil(θ)=−∑j=1n(ϕi(j)−[y=i])x(j)l(\theta)=\sum_{i=1}^{n} -l_{ce}((\theta_1^Tx^{(i)},\theta_2^Tx^{(i)},...,\theta_k^Tx^{(i)}),y^{(i)})\\ \nabla_{\theta_i}l(\theta)=-\sum_{j=1}^{n}\frac{\partial{l_{ce}((\theta_1^Tx^{(j)},\theta_2^Tx^{(j)},...,\theta_k^Tx^{(j)}),y^{(j)})}}{\partial{\theta_i^Tx^{(j)}}} \nabla_{\theta_i}\theta_i^Tx^{(j)}\\ \nabla_{\theta_i}l(\theta)=-\sum_{j=1}^{n}(-[y=i]+\frac{e^{\theta_i^Tx^{(j)}}}{\sum_{l=1}^{k}e^{\theta_l^Tx^{(j)}}})x^{(j)}\\ \nabla_{\theta_i}l(\theta)=-\sum_{j=1}^{n}(\phi_{i}^{(j)}-[y=i])x^{(j)}\\

然后就可以梯度下降了,每次对每个θi\theta_i更新。

why GLM?

核心的思想还是要线性化。

但主要还是因为良好的性质。

1

E(Y∣X)=∂a(η)∂ηE(Y|X)=\frac{\partial{a(\eta)}}{\partial{\eta}}

考虑概率律

P(y∣x)=b(y)exp⁡(ηTT(y)−a(η))∫P(y)dy=1∫b(y)exp⁡(ηTT(y))dy=exp⁡(a(η))P(y|x)=b(y)\exp(\eta^TT(y)-a(\eta))\\ \int P(y)\mathrm{d}y=1\\ \int b(y)\exp(\eta^TT(y))\mathrm{d}y=\exp(a(\eta))\\

考虑最简单的情况,η∈R,T(y)=y\eta\in \mathbb{R},T(y)=y

然后使用一点积分技巧

E(Y∣X)=∫yP(y)dy=1exp⁡(a(η))∫yb(y)exp⁡(ηTT(y))dy=1exp⁡(a(η))∫∂b(y)exp⁡(ηy)∂ηdy=1exp⁡(a(η))∂∂η∫b(y)exp⁡(ηy)dy=1exp⁡(a(η))∂∂ηexp⁡(a(η))=a′(η)=∂a∂η\begin{aligned} E(Y|X)&=\int yP(y)\mathrm{d}y\\&=\frac{1}{\exp(a(\eta))}\int yb(y)\exp(\eta^TT(y))\mathrm{d}y\\&=\frac{1}{\exp(a(\eta))}\int \frac{\partial{b(y)\exp(\eta y)}}{\partial{\eta}}\mathrm{d}y\\ &=\frac{1}{\exp(a(\eta))}\frac{\partial{}}{\partial{\eta}}\int b(y)\exp(\eta y)\mathrm{d}y\\&=\frac{1}{\exp(a(\eta))}\frac{\partial{}}{\partial{\eta}}\exp(a(\eta))\\&=a'(\eta)\\&=\frac{\partial{a}}{\partial{\eta}} \end{aligned}

2

Var(Y∣X)=∂2a(η)∂η2Var(Y|X)=\frac{\partial^2{a(\eta)}}{\partial{\eta}^2}

考虑方差和均值的关系,还是用类似的技巧。

3

GLM是凸的。

做极大似然估计,对l(θ)l(\theta)求海森矩阵即可

Hj,k=∑a′′(θTx(i))xj(i)xk(i)vTHv=∑a′′(θTx(i))xj(i)xk(i)vjvk=∑i=1na′′(θTx(i))(∑jxj(i)vj)2≥0H_{j,k}=\sum_{}^{}a''(\theta^Tx^{(i)})x^{(i)}_jx^{(i)}_k\\ v^THv=\sum_{}^{}a''(\theta^Tx^{(i)})x^{(i)}_jx^{(i)}_kv_jv_k=\sum_{i=1}^{n}a''(\theta^Tx^{(i)})(\sum_{j}^{}x^{(i)}_jv_j)^2\geq 0


CS229: 3
http://llz3724.github.io/2025/04/22/2025-04-22-cs229_3/
作者
llz3724
发布于
2025年4月22日
许可协议