广义线性模型 GLMs
指数分布族 Exponential Family Distributions
如果一类分布可以写成如下形式,我们就说它是指数分布族的:
$$
p(y; \eta) = b(y) \exp(\eta^T T(y) - a(\eta)) \quad (3.1)
$$
- $\eta$ 被称为该分布的 自然参数 (natural parameter,也称为正则参数 canonical parameter)。
- $T(y)$ 是 充分统计量 (sufficient statistic)。在我们考虑的分布中,通常有 $T(y) = y$。
- $a(\eta)$ 是 对数配分函数 (log partition function)。
- 量 $e^{-a(\eta)}$ 本质上起到了归一化常数的作用,确保分布 $p(y; \eta)$ 对 $y$ 的求和或积分等于 1。
一旦固定了 $T, a$ 和 $b$ 的选择,就定义了一个由 $\eta$ 参数化的分布族;随着我们改变 $\eta$,我们就能得到该家族中不同的分布。
伯努利分布(Bernoulli Distribution)
我们现在证明伯努利分布和高斯分布都是指数分布族的例子。均值为 $\phi$ 的伯努利分布(记作 $\text{Bernoulli}(\phi)$)定义在 $y \in {0, 1}$ 上,使得 $p(y = 1; \phi) = \phi$ 且 $p(y = 0; \phi) = 1 - \phi$。随着 $\phi$ 的变化,我们得到不同均值的伯努利分布。我们现在通过选择合适的 $T, a$ 和 $b$,将伯努利分布改写为等式 (3.1) 的形式:
$$
\begin{aligned}
p(y; \phi) &= \phi^y (1 - \phi)^{1-y} \
&= \exp(y \log \phi + (1 - y) \log(1 - \phi)) \
&= \exp \left( \left( \log \left( \frac{\phi}{1 - \phi} \right) \right) y + \log(1 - \phi) \right)
\end{aligned}
$$
由此可见,自然参数为 $\eta = \log(\phi/(1 - \phi))$。有趣的是,如果我们反解出 $\phi$ 关于 $\eta$ 的函数,可以得到:
$$
\phi = \frac{1}{1 + e^{-\eta}}
$$
这就是我们熟悉的 Sigmoid 函数!当我们之后将逻辑回归推导为一种 GLM 时,这一点会再次出现。为了完成伯努利分布的指数族表述,我们还有:
- $T(y) = y$
- $a(\eta) = -\log(1 - \phi) = \log(1 + e^\eta)$
- $b(y) = 1$
这表明伯努利分布可以通过适当选择 $T, a$ 和 $b$ 写成等式 (3.1) 的形式。
高斯分布(Gaussian Distribution)
接下来考虑高斯分布。回顾一下,在推导线性回归时,$\sigma^2$ 的取值对我们最终选择的 $\theta$ 和 $h_\theta(x)$ 没有影响。因此,我们可以选择一个任意值给 $\sigma^2$ 而不改变任何结论。为了简化推导,我们设 $\sigma^2 = 1$。则有:
$$
\begin{aligned}
p(y; \mu) &= \frac{1}{\sqrt{2\pi}} \exp \left( -\frac{1}{2}(y - \mu)^2 \right) \
&= \frac{1}{\sqrt{2\pi}} \exp \left( -\frac{1}{2}y^2 \right) \cdot \exp \left( \mu y - \frac{1}{2}\mu^2 \right)
\end{aligned}
$$
由此可见,高斯分布也属于指数分布族,其中:
- $\eta = \mu$
- $T(y) = y$
- $a(\eta) = \mu^2/2 = \eta^2/2$
- $b(y) = \frac{1}{\sqrt{2\pi}} \exp(-y^2/2)$
还有许多其他分布也是指数分布族的成员:例如 多项式分布 (我们稍后会看到)、 泊松分布 (用于计数数据建模)、伽马分布和 指数分布 (用于建模连续的正随机变量,如时间间隔)、Beta 分布和 狄利克雷分布 (用于概率的分布)等等。在下一节中,我们将描述一种通用的“配方”,用于构建 $y$(给定 $x$ 和 $\theta$)符合上述任何分布的模型。
构建广义线性模型
假设你想要建立一个模型,根据某些特征 $x$(如商店促销、近期广告、天气、星期几等)来估算每小时光顾商店的顾客数量 $y$(或者是你网站的页面浏览量)。我们知道,泊松分布通常能很好地模拟访客数量。既然如此,我们该如何为这个问题建立模型呢?幸运的是,泊松分布属于指数分布族,因此我们可以应用广义线性模型(GLM)。在本节中,我们将介绍一种为这类问题构建 GLM 模型的方法。
更一般地,考虑一个分类或回归问题,我们希望预测某个随机变量 $y$ 关于 $x$ 的值。为了推导该问题的 GLM,我们将对给定 $x$ 下 $y$ 的条件分布以及我们的模型做出以下 三个假设 :
- $y | x; \theta \sim \text{ExponentialFamily}(\eta)$ 。即:在给定 $x$ 和 $\theta$ 的情况下,$y$ 的分布服从某个以 $\eta$ 为自然参数的指数分布族。
- 给定 $x$,我们的目标是预测 $T(y)$ 在给定 $x$ 下的期望值。在大多数例子中,我们有 $T(y) = y$,这意味着我们希望学习到的假设函数 $h$ 输出的预测值 $h(x)$ 满足 $h(x) = E[y|x]$ 。(注意,在逻辑回归和线性回归中,对 $h_\theta(x)$ 的选择都满足这一假设。例如在逻辑回归中,$h_\theta(x) = p(y=1|x; \theta) = 0 \cdot p(y=0|x; \theta) + 1 \cdot p(y=1|x; \theta) = E[y|x; \theta]$。)
- 自然参数 $\eta$ 与输入 $x$ 呈线性关系: $\eta = \theta^T x$ 。(如果 $\eta$ 是向量,则 $\eta_i = \theta_i^T x$。)
普通最小二乘法 (Ordinary Least Squares)
为了展示普通最小二乘法是 GLM 家族的一个特例,考虑目标变量 $y$(在 GLM 术语中也称为 响应变量 )是连续的,并且我们将给定 $x$ 时 $y$ 的条件分布建模为高斯分布 $\mathcal{N}(\mu, \sigma^2)$(此处 $\mu$ 可能依赖于 $x$)。因此,我们令上述指数分布族为高斯分布。正如我们之前所见,在高斯分布的指数族形式中,有 $\mu = \eta$。因此:
$$
\begin{aligned}
h_\theta(x) &= E[y|x; \theta] \
&= \mu \
&= \eta \
&= \theta^T x
\end{aligned}
$$
第一个等号根据假设 2;第二个等号根据 $y|x; \theta \sim \mathcal{N}(\mu, \sigma^2)$ 及其期望值为 $\mu$;第三个等号根据假设 1(以及之前推导的高斯分布中 $\mu = \eta$);最后一个等号根据假设 3。
逻辑回归 (Logistic Regression)
现在考虑逻辑回归。这里我们关注二元分类,所以 $y \in {0, 1}$。既然 $y$ 是二值化的,选择伯努利分布族来建模给定 $x$ 时 $y$ 的条件分布是很自然的。在伯努利分布的指数族形式中,我们有 $\phi = 1/(1 + e^{-\eta})$。此外,如果 $y|x; \theta \sim \text{Bernoulli}(\phi)$,那么 $E[y|x; \theta] = \phi$。遵循与普通最小二乘法类似的推导:
$$
\begin{aligned}
h_\theta(x) &= E[y|x; \theta] \
&= \phi \
&= 1/(1 + e^{-\eta}) \
&= 1/(1 + e^{-\theta^T x})
\end{aligned}
$$
这给出了形式为 $h_\theta(x) = 1/(1 + e^{-\theta^T x})$ 的假设函数。如果你之前好奇我们是如何得出逻辑函数 $1/(1 + e^{-z})$ 这种形式的,这就是答案:一旦我们假设 $y$ 在给定 $x$ 下服从伯努利分布,它就是 GLM 定义和指数分布族属性的必然结果。
再引入一些术语:将分布的均值表示为自然参数的函数($g(\eta) = E[T(y); \eta]$)称为 正则响应函数 (canonical response function) 。它的反函数 $g^{-1}$ 称为 正则联系函数 (canonical link function) 。因此,高斯分布族的正则响应函数是恒等函数;而伯努利分布族的正则响应函数是逻辑函数(Sigmoid 函数)。
Softmax 回归 (Softmax Regression)
让我们再看一个 GLM 的例子。考虑一个分类问题,响应变量 $y$ 可以取 $k$ 个值中的任意一个,即 $y \in {1, 2, \dots, k}$。例如,我们可能想将电子邮件分为三类:垃圾邮件、个人邮件和工作相关邮件,而不仅仅是二元分类。响应变量仍然是离散的,但现在可以取两个以上的值。因此,我们将建模它服从 多项式分布 (Multinomial Distribution) 。
我们要为多项式数据推导一个 GLM。首先,将多项式分布表示为指数分布族。
为了参数化具有 $k$ 种可能结果的多项式分布,可以使用 $k$ 个参数 $\phi_1, \dots, \phi_k$ 来指定每个结果的概率。然而,这些参数是冗余的(因为 $\sum_{i=1}^k \phi_i = 1$,知道其中 $k-1$ 个就能确定最后一个)。因此,我们只用 $k-1$ 个参数 $\phi_1, \dots, \phi_{k-1}$,其中 $\phi_i = p(y=i; \phi)$,$p(y=k; \phi) = 1 - \sum_{i=1}^{k-1} \phi_i$。
为了将多项式分布表达为指数分布族,我们定义 $T(y) \in \mathbb{R}^{k-1}$ 如下(独热编码形式):
$T(1) = [1, 0, 0, \dots, 0]^T, T(2) = [0, 1, 0, \dots, 0]^T, \dots, T(k-1) = [0, 0, 0, \dots, 1]^T, T(k) = [0, 0, 0, \dots, 0]^T$。
这里 $T(y)$ 是一个 $k-1$ 维向量。我们使用指示函数 $1{\cdot}$,可以写成 $(T(y))_i = 1{y = i}$。此外,$E[(T(y))_i] = P(y=i) = \phi_i$。
经过代数推导(详见原文公式),多项式分布可以写成:
$$
p(y; \phi) = b(y) \exp(\eta^T T(y) - a(\eta))
$$
其中,自然参数为:
$$
\eta_i = \log(\phi_i / \phi_k)
$$
反解出 $\phi$ 关于 $\eta$ 的函数(响应函数),我们得到:
$$
\phi_i = \frac{e^{\eta_i}}{\sum_{j=1}^k e^{\eta_j}}
$$
这个从 $\eta$ 到 $\phi$ 的映射函数被称为 Softmax 函数。
根据假设 3,令 $\eta_i = \theta_i^T x$,我们的模型假设条件概率为:
$$
p(y = i|x; \theta) = \frac{e^{\theta_i^T x}}{\sum_{j=1}^k e^{\theta_j^T x}}
$$
这个模型被称为 Softmax 回归。它是逻辑回归的推广。
最后,关于参数拟合,我们可以通过最大化对数似然函数 $\ell(\theta)$ 来学习参数 $\theta_i$:
$$
\ell(\theta) = \sum_{i=1}^n \log \prod_{l=1}^k \left( \frac{e^{\theta_l^T x^{(i)}}}{\sum_{j=1}^k e^{\theta_j^T x^{(i)}}} \right)^{1{y^{(i)}=l}}
$$
我们可以使用梯度上升法或牛顿法来求解使该式最大化的参数。
统一梯度上升法
在 GLM 中,所有分布都可以写成:
$$
p(y; \eta) = b(y) \exp(\eta^T T(y) - a(\eta))
$$
那么,通用的对数似然函数直接就是:
$$
\ell(\eta) = \sum_{i=1}^n [ \log b(y^{(i)}) + \eta^{(i)T} T(y^{(i)}) - a(\eta^{(i)}) ]
$$
第一步:利用链式法则拆解
对于第 $i$ 个样本的对数似然 $\ell^{(i)}$,我们有:
$$
\frac{\partial \ell^{(i)}}{\partial \theta_j} = \frac{\partial \ell^{(i)}}{\partial \eta} \cdot \frac{\partial \eta}{\partial \theta_j}
$$
第二步:对 $\eta$ 求导
观察对数似然公式:$\ell^{(i)} = \log b(y^{(i)}) + \eta^T T(y^{(i)}) - a(\eta)$
- $\log b(y^{(i)})$ 与 $\eta$ 无关,导数为 $0$。
- $\eta^T T(y^{(i)})$ 对 $\eta$ 求导,结果是 $T(y^{(i)})$ 。
- $a(\eta)$ 对 $\eta$ 求导,这是指数分布族的一个 核心性质 :
性质: 对数配分函数 $a(\eta)$ 的一阶导数等于充分统计量的期望值。
$$
\frac{da}{d\eta} = E[T(y) | x; \theta]
$$
所以:
$$
\frac{\partial \ell^{(i)}}{\partial \eta} = T(y^{(i)}) - E[T(y^{(i)}) | x^{(i)}; \theta]
$$
第三步:对 $\theta$ 求导
根据假设 $\eta = \theta^T x = \sum_{j=0}^d \theta_j x_j$,那么:
$$
\frac{\partial \eta}{\partial \theta_j} = x_j
$$
第四步:合并结果
将上述两步合并:
$$
\frac{\partial \ell^{(i)}}{\partial \theta_j} = \left( T(y^{(i)}) - E[T(y^{(i)}) | x^{(i)}; \theta] \right) x_j^{(i)}
$$
在大多数常见模型(线性回归、逻辑回归)中,$T(y) = y$,且根据 GLM 假设,期望值 $E[y|x]$ 就是我们的预测函数 $h_\theta(x)$。
所以公式简化为:
$$
\frac{\partial \ell^{(i)}}{\partial \theta_j} = (y^{(i)} - h_\theta(x^{(i)})) x_j^{(i)}
$$
