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ϕ)1ylnP(y;η)=ylnϕ+(1y)ln(1ϕ)lnP(y;η)=ylnϕ1ϕ+ln(1ϕ)P(y;η)=exp(ylnϕ1ϕ+ln(1ϕ))η=lnϕ1ϕ,ϕ=11+eηP(yx;η)=exp(ηyln(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(y22μ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. 假设 yx;θexpotenialfamily(η)y|x;\theta \sim expotenialfamily(\eta),给定了x,θx,\thetayy的分布由η\eta决定
  2. 给定xx,目标是要预测T(y)T(y)(一般T(y)=yT(y)=y),假设h(x)=E(yx)h(x)=E(y|x)
  3. 假设η=θTx\eta=\theta^Tx

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

一些练习

构建逻辑回归的GLM

用上面的结果

hθ(x)=E(yx;θ)=ϕ=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(yx;θ)=μ=η=θ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)lnP(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]

lnP(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

lnP(y;η)=[y=k]lnϕk+i=1k1[y=i]lnϕilnP(y;η)=(1i=1k1[y=i])lnϕk+i=1k1[y=i]lnϕilnP(y;η)=lnϕk+i=1k1[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} \\

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

那么

T(y)=[0...1...0](1yk1),T(k)=[0...0...0]η=[lnϕ1ϕk...lnϕiϕk...lnϕk1ϕ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=1k1ϕk1+ϕk=1i=1k1ϕkeθiTx+ϕk=1ϕki=1keθiTx=1ϕieθiTxi=1keθiTx=1ϕi=eθiTxi=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=1nlnP(y(i)x(i))l(θ)=i=1nlnj=1kϕj[y(i)=j]l(θ)=i=1nj=1k[y(i)=j]lneθ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)=lnetyi=1ketilceti=[y=i]+etij=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=1nlce((θ1Tx(i),θ2Tx(i),...,θkTx(i)),y(i))θil(θ)=j=1nlce((θ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(YX)=a(η)ηE(Y|X)=\frac{\partial{a(\eta)}}{\partial{\eta}}

考虑概率律

P(yx)=b(y)exp(ηTT(y)a(η))P(y)dy=1b(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(YX)=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(YX)=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)20H_{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日
许可协议