7. 广义线性模型

广义线性模型,英文名为Generalized Linear Model,简称GLM。

之前,涉及到两种的两种模型:

  1. 线性拟合模型,假设了$P(y|x;\theta)$是高斯分布
  2. 二分类问题,假设了$P(y|x;\theta)$满足伯努利分布

但以上两者知识一种更广泛的,被称为『指数分布族』(The Exponential Family)的特例。

指数分布族

$$
P(y;\eta)=b(y)exp(\eta^TT(y)-a(\eta))
$$

可以被表示为以上形式的分布,都是指数分布族的某个特定分布,给定$a, b, T$,就可以定义一个概率分布的集合,以$\eta$为参数,就可以得到不同的概率分布。

在广义线性模型中,会假设$\eta=\theta^Tx$,也就是$\eta$和特征$x$线性相关。

伯努利分布

首先,我们给出$y=1$的概率:
$$
P(y=1;\phi)=\phi
$$
于是:
$$
\begin{align}
P(y;\phi)
&= \phi^y(1-\phi)^T\\
&= exp(log(\phi^T(1-\phi^T)))\\
&= exp(ylog(\phi)+(1-y)log(1-\phi))\\
&= exp(log\frac{\phi}{1-\phi} \cdot y + log(1-\phi))
\end{align}
$$
比较我们上面的概率形式和指数分布族的标准形式,可以得到:
$$
\begin{cases}
\eta &= log\frac{\phi}{1-\phi}, \text{于是} \phi=\frac{1}{1+e^{-\eta}}\\
a(\eta) &= -log(1-\phi)=log(1+e^\eta)\\
T(y) &= y\\
b(y) &= 1
\end{cases}
$$

这里的$\phi$一般会被称为正则响应函数(canonic response function):
$$
g(\eta) = E[y|\eta]=\frac{1}{1+e^{-\eta}}
$$
相对的,正则关联函数(canonic link function)则是$g^{-1}$。

高斯分布

$$
N(\mu,\sigma^2)=\frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}(y-\mu)^2)
$$

这里,出于简洁考虑,假设$\sigma=1$,经过一系列化简后,可以表示成:
$$
\frac{1}{\sqrt{2\pi}} \cdot exp(-\frac{1}{2}y^2) \cdot exp(\mu y-\frac{1}{2}\mu^2)
$$
那么,
$$
\begin{cases}
\eta &= \mu\\
a(\eta) &= \frac{1}{2}\mu^2=\frac{1}{2}\eta^2\\
T(y) &= y\\
b(y) &= \frac{1}{\sqrt{2\pi}} \cdot exp(-\frac{1}{2}y^2)
\end{cases}
$$

多项式分布

建模

在二项分布中,$y\in \lbrace 1, 2 \rbrace$

而多项式分布,$y \in \lbrace 1,\cdots, k \rbrace$

一般会被用来进行邮件分类或者进行病情分类等等

我们假设
$$
P(y=i)=\phi_i
$$
也即,邮件属于$i$类的概率是$\phi_i$,是关于特征$x$的一个函数。

那么,可以用$k$个参数来建模多项式分布
$$
P(y)=\prod_{i=1}^k\phi_i^{1\lbrace y=i \rbrace}
$$

其中,$1 \lbrace \cdots \rbrace$的含义为,检验$\cdots$是否为真命题,若为真命题,则取1,否则取0。

因为所有概率和为1,所以最后一个参数
$$
\begin{align}
\phi_k &= 1-\sum_{j=1}^{k-1}\phi_j \\
1 \lbrace y=k \rbrace &=1-\sum_{j=1}^{k-1}1 \lbrace y=j \rbrace
\end{align}
$$
经过化简,也可以表示成:
$$
P(y)=exp[\sum_{i=1}^{k-1}(log(\frac{\phi_i}{\phi_k}) \cdot 1\lbrace y=i \rbrace )] + log(\phi_k)
$$
故而
$$
\eta = \begin{bmatrix}
log(\frac{\phi_1}{\phi_k}) \\
\vdots \\
log(\frac{\phi_{k-1}}{\phi_k})
\end{bmatrix} \in \Bbb R^{k-1}
$$
$$
a(\eta) = -log(\phi_k)
$$
$$
T(y)= \begin{bmatrix}
1 \lbrace y=1 \rbrace \\
\vdots \\
1 \lbrace y=k-1 \rbrace
\end{bmatrix} \in (0, 1)^{k-1}
$$
$$
b(y) = 1
$$

根据$\eta$可得:
$$
\phi_i = e^{\eta_i} \cdot \phi_k
$$
又因为:
$$
\sum_{i=1}^{k}\phi_i=\sum_{i=1}^k\phi_ke^{\eta_i}=1
$$
故而:
$$
\phi_k = \frac{1}{\sum_{i=1}^ke^{\eta_i}}=\frac{1}{e^{\eta_k}+\sum_{i=1}^{k-1}e^{\eta_i}} = \frac{1}{1+\sum_{i=1}^{k-1}e^{\eta_i}}
$$
所以:
$$
\begin{align}
\phi_i &= e^{\eta_i} \cdot \phi_k \\
&= \frac{e^{\eta_i}}{1 + \sum_{j=1}^{k-1}e^{\eta_j}} \\
&= \frac{e^{\theta_i^Tx_i}}{1 + \sum_{j=1}^{k-1}e^{\theta_j^Tx_j}}
\end{align}
$$
上述函数,被称为『softmax』函数,这个函数的作用经常用于进行归一化。

经过上述步骤,假设函数可以被写成如下形式:
$$
h_\theta(x)=
\left[
\begin{array}{c}
1\lbrace y=1 \rbrace \\
\vdots \\
1\lbrace y=k-1 \rbrace
\end{array} | x;\theta
\right]=
\begin{bmatrix}
\phi_1\\
\vdots\\
\phi_{k-1}
\end{bmatrix}
$$

回归

在经过上述推导,当我们有一堆训练集($(x^{(1)}, y^{(1)}), \cdots, (x^{(m)}, y^{(m)})$)用于训练的时候,则可以进行极大似然估计:
$$
L(\theta) = \prod_{i=1}^mP(y^{(i)} | x^{(i)};\theta) = \prod_{i=1}^m\prod_{j=1}^k\phi_j^{1\lbrace y^{(i)}=j \rbrace }
$$