为什么要引入GLM?
我们知道了”回归“一般是用于预测样本的值,这个值通常是连续的。但是受限于其连续的特性,一般用它来进行分类的效果往往很不理想。为了保留线性回归”简单效果又不错“的特点,又想让它能够进行分类,因此需要对预测值再做一次处理。这个多出来的处理过程,就是GLM所做的最主要的事。而处理过程的这个函数,我们把它叫做连接函数。
如下图是一个广义模型的流程:
图中,当一个处理样本的回归模型是线性模型,且连接函数满足一定特性(特性下面说明)时,我们把模型叫做广义线性模型。因为广义模型的最后输出可以为离散,也可以为连续,因此,用广义模型进行分类、回归都是可以的。
但是为什么线性回归是广义线性模型的子类呢,因为连接函数是 f ( x ) = x f(x)=x f(x)=x 本身的时候,也就是不做任何处理时,它其实就是一个线性回归。
所以模型的问题就转化成获得合适的连接函数?以及有了连接函数,怎么求其预测函数 h θ ( x ) h_\theta(x) hθ(x) ?
定义
刚才说了,只有连接函数满足一定特性才属于广义线性模型。特性是什么呢?先简单描述下背景。
在广义线性模型中,为了提高可操作性,因此限定了概率分布必须满足指数族分布:
p
(
y
;
η
)
=
b
(
y
)
e
η
T
T
(
y
)
−
a
(
η
)
p(y;\eta) = b(y)e^{{\eta^T}{T(y)-a(\eta)}}
p(y;η)=b(y)eηTT(y)−a(η)
- η \eta η 称为这个分布的 自然参数(natural parameter) 或者 规范参数(canonical parameter)。 η = θ T X \eta=\theta^TX η=θTX ,即自然参数=参数与自变量X的线性组合。
- T ( y ) T(y) T(y) 称为 充分统计量(sufficient statistic)。
- a ( η ) a(\eta) a(η) 称为 对数分割函数(log partition function), e − a ( η ) e^{-a(\eta)} e−a(η) 是分布 p ( y ; η ) p(y;\eta) p(y;η) 的归一化常数,用来确保该分布对 y y y 的积分为 1。
- 当 T , a , b T,a,b T,a,b 固定之后,也就确定了这样一个以 η \eta η 为参数的分布族。
广义线性模型的三个假设
- ( y ∣ x ; θ ) ∼ E x p o n e n t i a l F a m i l y ( η ) (y|x;\theta)\sim Exponential Family(\eta) (y∣x;θ)∼ExponentialFamily(η):给定样本 x x x 和 参数 θ \theta θ ,样本分类 y y y 服从指数分布。
- 给定一个 x x x ,我们需要的目标函数为 h θ ( x ) = E [ T ( y ) ∣ x ] h_\theta(x) = E[T(y) | x] hθ(x)=E[T(y)∣x] 。
- η = ( θ ⃗ ) T X ⃗ \eta = (\vec \theta)^T \vec X η=(θ)TX ,即自然参数 η \eta η 和 输入 X ⃗ \vec X X 满足线性关系。
连接函数的获取
从上图可以看到
η
\eta
η 为函数的输入,而
h
θ
(
x
)
h_\theta(x)
hθ(x) 为函数的输出,所以有公式:
h
θ
(
x
)
=
f
(
η
)
h_\theta(x) = f(\eta)
hθ(x)=f(η)
但是我们会把
f
f
f 的逆
f
−
1
f^{-1}
f−1 称为连接函数 , 也即以
h
θ
(
x
)
h_\theta(x)
hθ(x) 为自变量,
η
\eta
η 为因变量的函数为连接函数:
η
=
f
−
1
(
h
θ
(
x
)
)
\eta = f^{-1}(h_\theta(x))
η=f−1(hθ(x))
所以求连接函数的步骤也就变成:
- 将 Y ⃗ \vec Y Y 、 X ⃗ \vec X X 所满足的分布转换成指数分布形式。
- 在指数分布形式中获得 T ( y ) T(y) T(y) 的函数形式和 η \eta η 的值。
- 算出 E [ T ( y ) ∣ x ] E[T(y)|x] E[T(y)∣x] 和 η \eta η 的关系,并把 ( θ ⃗ ) T (\vec \theta)^T (θ)T 代入到 η \eta η 中,获得连接函数。
常见连接函数求解及对应回归
伯努利分布 —> Logistic 回归
伯努利分布只有0、1两种情况,因此它的概率分布可以写成:
p
(
y
;
ϕ
)
=
ϕ
y
(
1
−
ϕ
)
1
−
y
y
=
[
0
,
1
]
ϕ
:
实
验
为
1
发
生
的
概
率
p(y;\phi) = \phi^y(1-\phi)^{1-y} \qquad y=[0,1] \qquad \phi: 实验为1发生的概率
p(y;ϕ)=ϕy(1−ϕ)1−yy=[0,1]ϕ:实验为1发生的概率
下面是逻辑回归的推导过程:
多项分布 —> softmax 回归
前面说过的分类问题都是处理那些分两类的问题。比如区分猫或者狗的问题,就是一类是或者否的问题。但是现实生活中还有更加多的多类问题。比如猫分类,有田园猫,布偶猫,暹罗猫各种猫,这里就不能够用两分类来做了。
这里先设问题需要区分
k
k
k 类,即
y
∈
{
1
,
2
,
3
,
.
.
.
,
k
}
y \in \lbrace1, 2, 3, ..., k\rbrace
y∈{1,2,3,...,k} 。此处无疑使用多项式来建模。多项式分布是二项分布的一个扩展,其取值可以从
{
1
,
2
,
3
,
.
.
.
,
k
}
\lbrace1, 2, 3, ..., k\rbrace
{1,2,3,...,k} 中取,可以简单建模如下:
[
1
0
⋯
0
0
1
⋯
0
⋮
⋮
⋱
⋮
0
0
⋯
1
]
\left[ \begin{matrix} 1 & 0 & \cdots & 0 \\ 0 & 1 & \cdots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & 1 \\ \end{matrix} \right]
⎣⎢⎢⎢⎡10⋮001⋮0⋯⋯⋱⋯00⋮1⎦⎥⎥⎥⎤
例如当
y
=
2
y=2
y=2 时,第二个数为1,其它数为0,因此它的概率分布如下:
参考自: