广义线性模型
我们已经学习了线性回归和逻辑回归模型,在这两种模型中,我们分别假设线性模型 y ∣ x ; θ ∼ N ( μ , σ 2 ) y|x;\theta \sim \mathcal{N}(\mu, \sigma^2) y∣x;θ∼N(μ,σ2)和逻辑回归模型 y ∣ x ; θ ∼ B e r n o u l l i ( ϕ ) y|x;\theta \sim Bernoulli(\phi) y∣x;θ∼Bernoulli(ϕ),其中将参数 μ \mu μ和 ϕ \phi ϕ定义为关于 x x x和 θ \theta θ的函数,在本节中我们将说明这两种模型都属于广义线性模型(GLM)并对其进行讲解。
1 指数族
为了对GLM进行讲解,我们需要先介绍指数族,其中的分布定义为
p
(
y
;
η
)
=
b
(
y
)
e
x
p
(
η
T
T
(
y
)
−
a
(
η
)
)
p(y;\eta)=b(y)exp(\eta^TT(y)-a(\eta))
p(y;η)=b(y)exp(ηTT(y)−a(η))
在该式中,
η
\eta
η称为分布的自然参数(正则参数),
T
(
y
)
T(y)
T(y)为充分统计量,在我们的研究中
T
(
y
)
=
y
T(y)=y
T(y)=y,
a
(
η
)
a(\eta)
a(η)为对数分配函数,其中
e
−
a
(
η
)
e^{-a(\eta)}
e−a(η)通常为一个归一化常数,使得该分布的求和为1.
T
T
T、
a
a
a和
b
b
b的选择定义了一个由
η
\eta
η参数化的分布族;随着
η
\eta
η的变化,我们在该族中得到的分布也不同,接下来我们会介绍高斯分布和伯努利分布是该指数族分布中的一个例子。
伯努利分布给定参数
ϕ
\phi
ϕ,其中
y
∈
{
0
,
1
}
y \in \{0,1\}
y∈{0,1},因此
p
(
y
=
1
;
ϕ
)
=
ϕ
;
p
(
y
=
0
;
ϕ
)
=
1
−
ϕ
p(y=1;\phi)=\phi;p(y=0;\phi)=1-\phi
p(y=1;ϕ)=ϕ;p(y=0;ϕ)=1−ϕ,随着参数
ϕ
\phi
ϕ的变化,我们可以得到不同均值的伯努利分布,接下来描述如何通过选择指数族分布中的
T
T
T、
a
a
a和
b
b
b来得到参数为
ϕ
\phi
ϕ的伯努利分布。
p
(
y
;
ϕ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
=
e
x
p
(
y
l
o
g
(
ϕ
)
+
(
1
−
y
)
l
o
g
(
1
−
ϕ
)
)
=
e
x
p
(
y
l
o
g
(
ϕ
1
−
ϕ
)
+
l
o
g
(
1
−
ϕ
)
)
\begin{aligned} p(y;\phi) &= \phi^y(1-\phi)^{1-y} \\ &= exp(y\, log(\phi) + (1-y)\,log(1-\phi))\\ &=exp(y\,log(\frac{\phi}{1-\phi})+log(1-\phi)) \end{aligned}
p(y;ϕ)=ϕy(1−ϕ)1−y=exp(ylog(ϕ)+(1−y)log(1−ϕ))=exp(ylog(1−ϕϕ)+log(1−ϕ))
在上式中,
η
=
l
o
g
(
ϕ
1
−
ϕ
)
\eta=log(\frac{\phi}{1-\phi})
η=log(1−ϕϕ),因此可以得到
ϕ
=
1
1
+
e
−
η
\phi=\frac{1}{1+e^{-\eta}}
ϕ=1+e−η1,这就是我们之前使用sigmoid函数的格式。将得到的
ϕ
\phi
ϕ代入可以得到
b
(
y
)
=
1
T
(
y
)
=
y
a
(
η
)
=
−
l
o
g
(
1
−
ϕ
)
=
−
l
o
g
(
e
−
η
1
+
e
−
η
)
=
l
o
g
(
1
+
e
η
)
\begin{aligned} b(y)&=1\\ T(y)&=y \\ a(\eta)&=-log(1-\phi) \\ &=-log(\frac{e^{-\eta}}{1+e^{-\eta}}) \\ &=log(1+e^{\eta}) \end{aligned}
b(y)T(y)a(η)=1=y=−log(1−ϕ)=−log(1+e−ηe−η)=log(1+eη)
接下来我们介绍如何从指数族中获取高斯分布,在我们之前介绍的线性回归模型中,方差
σ
2
\sigma^2
σ2对于模型参数
θ
\theta
θ没有影响,因此我们可以随意选择方差,为了简化运算,我们将方差
σ
2
\sigma^2
σ2定为1,运算过程如下
p
(
y
;
μ
)
=
1
2
π
e
x
p
(
−
1
2
(
y
−
μ
)
2
)
=
1
2
π
e
x
p
(
−
1
2
y
2
)
e
x
p
(
y
μ
−
1
2
μ
2
)
\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(y\mu-\frac{1}{2}\mu^2) \end{aligned}
p(y;μ)=2π1exp(−21(y−μ)2)=2π1exp(−21y2)exp(yμ−21μ2)
在上式中可以得到
η
=
μ
T
(
y
)
=
y
b
(
y
)
=
1
2
π
e
x
p
(
−
1
2
y
2
)
a
(
η
)
=
1
2
η
2
\begin{aligned} \eta &= \mu \\ T(y) &= y \\ b(y) &= \frac{1}{\sqrt{2\pi}}exp(-\frac{1}{2}y^2) \\ a(\eta) &= \frac{1}{2}\eta^2 \end{aligned}
ηT(y)b(y)a(η)=μ=y=2π1exp(−21y2)=21η2
除了高斯分布、伯努利分布之外,还有其他的分布也属于指数族分布,包括多项式分布、泊松分布、指数分布、beta分布等。
2 构造GLM
接下来我们将介绍如何构造GLM,考虑一个分类或回归问题,我们希望利用
x
x
x的函数的值来预测某个随机变量
y
y
y。为了得到这个问题的GLM,我们将对给定
x
x
x条件下的
y
y
y的条件分布和我们的模型做出以下三个假设:
1.
y
∣
x
;
θ
∼
E
x
p
o
n
e
n
t
i
a
l
F
a
m
i
l
y
(
η
)
y|x;\theta \sim ExponentialFamily(\eta)
y∣x;θ∼ExponentialFamily(η),即给定
x
x
x和
θ
\theta
θ后,变量
y
y
y满足参数为
η
\eta
η的指数族分布。
2.给定
x
x
x,我们需要来预测
T
(
y
)
T(y)
T(y)的期望值,在我们的大部分实验中,我们设置
T
(
y
)
=
y
T(y)=y
T(y)=y,因此我们希望我们学习的hypothesis的输出能满足
h
(
x
)
=
E
[
y
∣
x
]
h(x)=E[y|x]
h(x)=E[y∣x]。
3.自然参数
η
\eta
η与输入数据
x
x
x的关系为
η
=
θ
T
x
\eta=\theta^Tx
η=θTx
这三个假设/设计选择将使我们派生出一个非常优雅的学习算法,即GLMs,它具有许多好的特性,例如易于学习,此外生成的模型对于建模
y
y
y上不同类型的分布通常非常有效,我们将介绍逻辑回归和普通最小二乘如何导出为GLM。
2.1 普通最小二乘法
为了证明普通最小二乘法是GLM的一个例子,我们进行如下设置:目标变量
y
y
y是连续的,并且我们在给定
x
x
x的情况下将
y
y
y建模为高斯分布
N
(
μ
,
σ
2
)
\mathcal{N}(\mu,\sigma^2)
N(μ,σ2)(在这里的
μ
\mu
μ由
x
x
x决定),在之前关于指数族分布和高斯分布的分析中我们得到了
μ
=
η
\mu=\eta
μ=η,因此我们可以得到
h
θ
(
x
)
=
E
[
y
∣
x
;
θ
]
=
μ
=
η
=
θ
T
x
\begin{aligned} h_{\theta}(x)&=E[y|x;\theta] \\ &=\mu\\ &=\eta \\ &=\theta^Tx \end{aligned}
hθ(x)=E[y∣x;θ]=μ=η=θTx
2.2逻辑回归
对于逻辑回归,我们针对二分类问题进行分析
y
∈
{
0
,
1
}
y\in\{0,1\}
y∈{0,1},使用伯努利分布进行建模。对于伯努利分布,我们给定参数
ϕ
\phi
ϕ,在之前关于伯努利分布和指数族的关系描述中可以得到
ϕ
=
1
1
+
e
−
η
\phi=\frac{1}{1+e^{-\eta}}
ϕ=1+e−η1,并且当给定
x
x
x时变量
y
y
y满足伯努利分布,即
y
∣
x
;
θ
∼
B
e
r
n
o
u
l
l
i
(
ϕ
)
y|x;\theta \sim Bernoulli(\phi)
y∣x;θ∼Bernoulli(ϕ),可以得到
E
[
y
∣
x
;
θ
]
=
ϕ
E[y|x;\theta]=\phi
E[y∣x;θ]=ϕ,因此我们可以得到
h
θ
(
x
)
=
E
[
y
∣
x
;
θ
]
=
ϕ
=
1
1
+
e
−
η
=
1
1
+
e
−
θ
T
x
\begin{aligned} h_{\theta}(x) &= E[y|x;\theta]\\ &= \phi\\ &= \frac{1}{1+e^{-\eta}}\\ &= \frac{1}{1+e^{-\theta^Tx}} \end{aligned}
hθ(x)=E[y∣x;θ]=ϕ=1+e−η1=1+e−θTx1
因此我们得到了模型
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}}
hθ(x)=1+e−θTx1,在之前我们将
g
(
z
)
g(z)
g(z)函数定义为sigmoid函数是GLM和指数族分布定义的结果。
2.3 Softmax回归
接下来考虑一个多分类的GLM例子,其中的变量
y
∈
{
1
,
2
,
.
.
.
,
k
}
y\in \{1,2,...,k\}
y∈{1,2,...,k}有
k
k
k个值,对于这种问题,我们会使用多项式分布来对其进行建模。
为了使用GLM来建模这类数据,我们需要先使用指数族分布来表述多项式分布。我们使用变量
ϕ
1
,
ϕ
2
,
.
.
.
,
ϕ
k
\phi_1,\phi_2,...,\phi_k
ϕ1,ϕ2,...,ϕk分别表示
k
k
k个输出各自的概率,因为
∑
i
=
1
k
ϕ
i
=
1
\sum_{i=1}^k\phi_i=1
∑i=1kϕi=1,因此我们可以只适用
k
−
1
k-1
k−1个参数来表示该多项式分布,其中
p
(
y
=
i
;
ϕ
)
=
ϕ
i
,
p
(
y
=
k
;
ϕ
)
=
1
−
∑
i
=
1
k
−
1
ϕ
i
p(y=i;\phi)=\phi_i,p(y=k;\phi)=1-\sum_{i=1}^{k-1}\phi_i
p(y=i;ϕ)=ϕi,p(y=k;ϕ)=1−∑i=1k−1ϕi。
为了将多项式分布表示为指数族分布,我们会定义
T
(
y
)
∈
R
k
−
1
T(y)\in \mathbb{R}^{k-1}
T(y)∈Rk−1,其中
T
(
1
)
=
[
1
0
0
⋮
0
]
,
T
(
2
)
=
[
0
1
0
⋮
0
]
,
.
.
.
,
T
(
k
−
1
)
=
[
0
0
0
⋮
1
]
,
T
(
k
)
=
[
0
0
0
⋮
0
]
T(1)=\begin{bmatrix}1 \\ 0 \\ 0 \\ \vdots \\ 0\end{bmatrix},T(2)=\begin{bmatrix}0 \\ 1 \\ 0 \\ \vdots \\ 0\end{bmatrix},...,T(k-1)=\begin{bmatrix}0 \\ 0 \\ 0 \\ \vdots \\ 1\end{bmatrix},T(k)=\begin{bmatrix}0 \\ 0 \\ 0 \\ \vdots \\ 0\end{bmatrix}
T(1)=⎣⎢⎢⎢⎢⎢⎡100⋮0⎦⎥⎥⎥⎥⎥⎤,T(2)=⎣⎢⎢⎢⎢⎢⎡010⋮0⎦⎥⎥⎥⎥⎥⎤,...,T(k−1)=⎣⎢⎢⎢⎢⎢⎡000⋮1⎦⎥⎥⎥⎥⎥⎤,T(k)=⎣⎢⎢⎢⎢⎢⎡000⋮0⎦⎥⎥⎥⎥⎥⎤
不像之前我们定义
T
(
y
)
=
y
T(y)=y
T(y)=y,在这里的
T
(
y
)
T(y)
T(y)也是一个向量,我们使用
(
T
(
y
)
)
i
(T(y))_i
(T(y))i代表该向量中的第i个元素。为了方便之后的介绍,我们定义一个新的符号
1
{
.
}
1\{.\}
1{.},其中的条件为真则该值为1,否则该值为0,基于该定义我们可以得到
(
T
(
y
)
)
i
=
1
{
y
=
i
}
(T(y))_i=1\{y=i\}
(T(y))i=1{y=i},并且有
E
[
(
T
(
y
)
)
i
]
=
P
(
y
=
i
)
=
ϕ
i
E[(T(y))_i]=P(y=i)=\phi_i
E[(T(y))i]=P(y=i)=ϕi。
接下来分析多项式分布为指数族分布的一个例子,即
p
(
y
;
ϕ
)
=
ϕ
1
1
{
y
=
1
}
ϕ
2
1
{
y
=
2
}
.
.
.
ϕ
k
1
{
y
=
k
}
=
ϕ
1
1
{
y
=
1
}
ϕ
2
1
{
y
=
2
}
.
.
.
ϕ
k
1
−
∑
i
=
1
k
−
1
1
{
y
=
i
}
=
ϕ
1
(
T
(
y
)
)
1
ϕ
2
(
T
(
y
)
)
2
.
.
.
ϕ
k
1
−
∑
i
=
1
k
−
1
(
T
(
y
)
)
i
=
e
x
p
(
(
T
(
y
)
)
1
l
o
g
(
ϕ
1
)
+
(
T
(
y
)
)
2
l
o
g
(
ϕ
2
)
+
.
.
.
+
(
1
−
∑
i
=
1
k
−
1
(
T
(
y
)
)
i
)
l
o
g
(
ϕ
k
)
)
=
e
x
p
(
(
T
(
y
)
)
1
l
o
g
(
ϕ
1
ϕ
k
)
+
(
T
(
y
)
)
2
l
o
g
(
ϕ
2
ϕ
k
)
+
.
.
.
+
(
T
(
y
)
)
k
−
1
l
o
g
(
ϕ
k
−
1
ϕ
k
)
+
l
o
g
(
ϕ
k
)
)
=
b
(
y
)
e
x
p
(
η
T
(
y
)
−
a
(
η
)
)
\begin{aligned} p(y;\phi)&=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}...\phi_k^{1\{y=k\}} \\ &=\phi_1^{1\{y=1\}}\phi_2^{1\{y=2\}}...\phi_k^{1-\sum_{i=1}^{k-1}1\{y=i\}} \\ &=\phi_1^{(T(y))_1}\phi_2^{(T(y))_2}...\phi_k^{1-\sum_{i=1}^{k-1}(T(y))_i} \\ &= exp((T(y))_1log(\phi_1)+(T(y))_2log(\phi_2)+...+(1-\sum_{i=1}^{k-1}(T(y))_i)log(\phi_k))\\ &=exp((T(y))_1log(\frac{\phi_1}{\phi_k})+(T(y))_2log(\frac{\phi_2}{\phi_k})+...+(T(y))_{k-1}log(\frac{\phi_{k-1}}{\phi_k})+log(\phi_k)) \\ &=b(y)exp(\eta T(y)-a(\eta)) \end{aligned}
p(y;ϕ)=ϕ11{y=1}ϕ21{y=2}...ϕk1{y=k}=ϕ11{y=1}ϕ21{y=2}...ϕk1−∑i=1k−11{y=i}=ϕ1(T(y))1ϕ2(T(y))2...ϕk1−∑i=1k−1(T(y))i=exp((T(y))1log(ϕ1)+(T(y))2log(ϕ2)+...+(1−i=1∑k−1(T(y))i)log(ϕk))=exp((T(y))1log(ϕkϕ1)+(T(y))2log(ϕkϕ2)+...+(T(y))k−1log(ϕkϕk−1)+log(ϕk))=b(y)exp(ηT(y)−a(η))
其中的
η
=
[
l
o
g
(
ϕ
1
ϕ
k
)
l
o
g
(
ϕ
2
ϕ
k
)
⋮
l
o
g
(
ϕ
k
−
1
ϕ
k
)
]
a
(
η
)
=
−
l
o
g
(
η
k
)
b
(
y
)
=
1
\begin{aligned} \eta &= \begin{bmatrix}log(\frac{\phi_1}{\phi_k}) \\ log(\frac{\phi_2}{\phi_k}) \\ \vdots \\log(\frac{\phi_{k-1}}{\phi_k})\end{bmatrix} \\ a(\eta) &= -log(\eta_k) \\ b(y)&=1 \end{aligned}
ηa(η)b(y)=⎣⎢⎢⎢⎢⎡log(ϕkϕ1)log(ϕkϕ2)⋮log(ϕkϕk−1)⎦⎥⎥⎥⎥⎤=−log(ηk)=1
这样就顺利将多项式分布映射到指数族分布中,并且得到
η
i
=
l
o
g
(
ϕ
i
ϕ
k
)
\eta_i=log(\frac{\phi_i}{\phi_k})
ηi=log(ϕkϕi),因此
e
η
i
=
ϕ
i
ϕ
k
,
ϕ
i
=
ϕ
k
e
η
i
,
ϕ
k
∑
i
=
1
k
e
η
i
=
∑
i
=
1
k
ϕ
i
=
1
e^{\eta_i}=\frac{\phi_i}{\phi_k},\phi{_i}=\phi_ke^{\eta_i},\phi_k\sum_{i=1}^ke^{\eta_i}=\sum_{i=1}^k\phi_i=1
eηi=ϕkϕi,ϕi=ϕkeηi,ϕk∑i=1keηi=∑i=1kϕi=1,故
ϕ
i
=
e
η
i
∑
j
=
1
k
e
η
j
\phi_i=\frac{e^{\eta_i}}{\sum_{j=1}^ke^{\eta_j}}
ϕi=∑j=1keηjeηi,这将
η
\eta
η映射
ϕ
\phi
ϕ的函数就是softmax函数。
为了完成建模,根据之前设置的假设3,我们有
η
i
=
θ
i
T
x
\eta_i=\theta_i^Tx
ηi=θiTx,其中
θ
1
,
θ
2
,
.
.
.
,
θ
k
∈
R
n
+
1
\theta_1,\theta_2,...,\theta_k \in \mathbb{R}^{n+1}
θ1,θ2,...,θk∈Rn+1为模型的参数,因为
η
k
=
0
\eta_k=0
ηk=0,所以我们将参数
θ
k
\theta_k
θk设置为0向量。给定
x
x
x后,我们的模型为
p
(
y
=
i
∣
x
;
θ
)
=
ϕ
i
=
e
η
i
∑
j
=
1
k
e
η
j
=
e
θ
i
T
x
∑
j
=
1
k
e
θ
j
T
x
p(y=i|x;\theta)=\phi_i=\frac{e^{\eta_i}}{\sum_{j=1}^ke^{\eta_j}}=\frac{e^{\theta_i^Tx}}{\sum_{j=1}^ke^{\theta_j^Tx}}
p(y=i∣x;θ)=ϕi=∑j=1keηjeηi=∑j=1keθjTxeθiTx
这个应用于解决多分类问题的模型称为softmax模型,我们定义的hypothesis的输出为
h
θ
(
x
)
=
E
[
T
(
y
)
∣
x
;
θ
]
=
[
ϕ
1
ϕ
2
⋮
ϕ
k
−
1
]
=
[
e
x
p
(
θ
1
T
x
)
∑
i
=
1
k
e
x
p
(
θ
i
T
x
)
e
x
p
(
θ
2
T
x
)
∑
i
=
1
k
e
x
p
(
θ
i
T
x
)
⋮
e
x
p
(
θ
k
−
1
T
x
)
∑
i
=
1
k
e
x
p
(
θ
i
T
x
)
]
\begin{aligned} h_{\theta}(x)&=E[T(y)|x;\theta]\\& =\begin{bmatrix}\phi_1 \\ \phi_2 \\ \vdots \\ \phi_{k-1}\end{bmatrix} \\ &=\begin{bmatrix}\frac{exp(\theta_1^Tx)}{\sum_{i=1}^kexp(\theta_i^Tx)} \\ \frac{exp(\theta_2^Tx)}{\sum_{i=1}^kexp(\theta_i^Tx)} \\ \vdots \\ \frac{exp(\theta_{k-1}^Tx)}{\sum_{i=1}^kexp(\theta_i^Tx)}\end{bmatrix} \end{aligned}
hθ(x)=E[T(y)∣x;θ]=⎣⎢⎢⎢⎡ϕ1ϕ2⋮ϕk−1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎡∑i=1kexp(θiTx)exp(θ1Tx)∑i=1kexp(θiTx)exp(θ2Tx)⋮∑i=1kexp(θiTx)exp(θk−1Tx)⎦⎥⎥⎥⎥⎥⎥⎤
也就是说我们的模型会输出
p
(
y
=
i
∣
x
;
θ
)
p(y=i|x;\theta)
p(y=i∣x;θ)的所有概率(
i
=
1
,
2
,
.
.
.
,
k
i=1,2,...,k
i=1,2,...,k)。
最后,讨论参数拟合,我们假设总共有
m
m
m个数据样本,即
{
(
x
(
i
)
,
y
(
i
)
)
;
i
=
1
,
.
.
.
,
m
}
\{(x^{(i)},y^{(i)});i=1,...,m\}
{(x(i),y(i));i=1,...,m},其中的log似然函数为
l
(
θ
)
=
∑
i
=
1
m
p
(
y
(
i
)
∣
x
;
θ
)
=
∑
i
=
1
m
l
o
g
∑
l
=
1
k
(
e
x
p
(
θ
l
T
x
)
/
∑
j
=
1
k
e
x
p
(
θ
j
T
x
)
)
1
{
y
(
i
)
=
l
}
l(\theta)=\sum_{i=1}^m p(y^{(i)}|x;\theta)=\sum_{i=1}^mlog\sum_{l=1}^k(exp(\theta_l^Tx)/\sum_{j=1}^kexp(\theta_j^Tx))^{1\{y^{(i)}=l\}}
l(θ)=i=1∑mp(y(i)∣x;θ)=i=1∑mlogl=1∑k(exp(θlTx)/j=1∑kexp(θjTx))1{y(i)=l}
我们可以使用梯度上升法或牛顿法进行最大似然估计求值。