Generalized Linear Models
在线性回归模型的推导中,我们用到了高斯分布;逻辑回归模型的介绍中用到了伯努利分布,今天我们将讲到,这两中分布都是在一个更广义的模型里面——Generalized Linear Models。
我们在建模的时候,关心的目标变量 y y 可能服从很多种分布。像线性回归,我们会假设目标变量 y y 服从正态分布;而逻辑回归,则假设服从伯努利分布。在广义线性模型的理论框架中,则假设目标变量 y y 则是服从指数族分布 ,正态分布和伯努利分布都属于指数族分布,因此线性回归和逻辑回归可以看作是广义线性模型的特例。
构建GLMs
考虑一个分类或回归问题,我们希望将某个随机变量 y y 的值预测为 x x 的函数。为了推导GLM,我们有以下三个假设:
- y|x;θ∼ExponentialFamily(η) y | x ; θ ∼ E x p o n e n t i a l F a m i l y ( η ) ,i.e. 给定 x x 和 θ θ , y y 的分布遵循带参数为 η η 的指数族分布。
- 给定 x x ,我们的目标是要预测 T(y) T ( y ) 的期望值,大多数情况下 T(y)=y T ( y ) = y ,那么我们实际上要找一个已知的函数 h(x) h ( x ) ,使得 h(x)=E[y|x] h ( x ) = E [ y | x ] 。(线性回归和逻辑回归中的 hθ(x) h θ ( x ) 也是满足这个条件的,比如逻辑回归中,
hθ(x)=p(y=1|x;θ)=0∗p(y=0|x;θ)+1∗p(y=1|x;θ)=E[y|x]) h θ ( x ) = p ( y = 1 | x ; θ ) = 0 ∗ p ( y = 0 | x ; θ ) + 1 ∗ p ( y = 1 | x ; θ ) = E [ y | x ] )
- 自然参数 η η 和 x x 是线性相关的, η=θTx η = θ T x 。如果 η η 是向量, ηi=θTix η i = θ i T x
这三个假设将使我们能够得到一种非常优雅的学习算法,即GLM,它具有许多理想的属性,如易于学习。 此外,所得到的模型通常非常有效地对 y y 上的不同类型的分布进行建模; 例如,我们将很快可以知道逻辑回归和普通最小二乘都属于GLM的特例。
(1) 普通最小二乘法
为了表明普通最小二乘是GLM模型族的一个特例,假设目标变量 y y 也称为GLM术语中的响应变量)是连续的,并且我们将 y y 对 x x 的条件分布建模为高斯分布 N(μ,σ2) N ( μ , σ 2 ) 。(这里 μ μ 可能取决于 x x 。)因此我们有:
hθ(x)====E[y|x;θ]μηθTx(22)(23)(24)(25) (22) h θ ( x ) = E [ y | x ; θ ] (23) = μ (24) = η (25) = θ T x
第一个等式是由假设2得到的,第二个等式是因为
y|x;θ∼N(μ,σ2) y | x ; θ ∼ N ( μ , σ 2 ) ,第三个等式是由第一个假设得到的,第四个等式是由假设3得到的。
(2) 逻辑回归
假设我们只对二进制分类感兴趣,so y∈{0,1} y ∈ { 0 , 1 } 。因为 y y 是二进制值,所以我们自然而然地选择伯努利分布族作为 y|x y | x 的分布, y|x;θ∼Bernoulli(ϕ) y | x ; θ ∼ B e r n o u l l i ( ϕ ) 。因为伯努利分布属于指数族分布,所以有 ϕ=11+e−η ϕ = 1 1 + e − η
hθ(x)====E[y|x;θ]ϕ11+e−η11+e−θTx(26)(27)(28)(29) (26) h θ ( x ) = E [ y | x ; θ ] (27) = ϕ (28) = 1 1 + e − η (29) = 1 1 + e − θ T x
(3) Softmax回归
Let’s look at one more example of a GLM.假设现在分类问题不再是讨论是(y=1)或否(y=0)的问题,而是可以分为 k k 类,即 y∈1,2,…,k y ∈ 1 , 2 , … , k
假设 y y 服从推广的伯努利分布,总共有 k k 个类别,用 k−1 k − 1 个参数
ϕ1,ϕ2,…,ϕk−1.(ϕk=1−∑i=1k−1ϕi) ϕ 1 , ϕ 2 , … , ϕ k − 1 . ( ϕ k = 1 − ∑ i = 1 k − 1 ϕ i )
代表
y y 属于每一类的概率。接着,我们要把y的分布写成指数分布族的形式。首先,先考虑伯努利分布的表达式为
p(y;ϕ)=ϕy(1−ϕ)1−y p ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y
这是
y y 只有2个分类的情况。现在
y y 有k个情况。我们引入一个示性函数
1{.} 1 { . }
s.t.1{True}=1,1{False}=0 s . t . 1 { T r u e } = 1 , 1 { F a l s e } = 0
那么这时候
y y 服从分布
p(y;ϕ)=ϕ1{y=1}1ϕ1{y=2}2…ϕ1{y=k}k p ( y ; ϕ ) = ϕ 1 1 { y = 1 } ϕ 2 1 { y = 2 } … ϕ k 1 { y = k }
我们把它写成指数分布族的形式:
p(y,ϕ)====ϕ1{y=1}1ϕ1{y=2}2…ϕ1{y=k}kϕ1{y=1}1ϕ1{y=2}2…ϕ1−∑i=1k−11{y=i}kexp[1{y=1}ln(ϕ1)+⋯+(1−∑i=1k−11{y=i})ln(ϕk)]exp[1{y=1}ln(ϕ1/ϕk)+⋯+1{y=k−1}ln(ϕk−1/ϕk)+ln(ϕk)] 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 } = e x p [ 1 { y = 1 } l n ( ϕ 1 ) + ⋯ + ( 1 − ∑ i = 1 k − 1 1 { y = i } ) l n ( ϕ k ) ] = e x p [ 1 { y = 1 } l n ( ϕ 1 / ϕ k ) + ⋯ + 1 { y = k − 1 } l n ( ϕ k − 1 / ϕ k ) + l n ( ϕ k ) ]
⇒ ⇒
b(y)=1η=⎡⎣⎢⎢⎢⎢⎢ln(ϕ1/ϕk)ln(ϕ2/ϕk)⋮ln(ϕk−1/ϕk)⎤⎦⎥⎥⎥⎥⎥T(y)=⎡⎣⎢⎢⎢⎢⎢1{y=1}1{y=2}⋮1{y=k−1}⎤⎦⎥⎥⎥⎥⎥a(η)=−ln(ϕk)(30)(31)(32)(33) (30) b ( y ) = 1 (31) η = [ l n ( ϕ 1 / ϕ k ) l n ( ϕ 2 / ϕ k ) ⋮ l n ( ϕ k − 1 / ϕ k ) ] (32) T ( y ) = [ 1 { y = 1 } 1 { y = 2 } ⋮ 1 { y = k − 1 } ] (33) a ( η ) = − l n ( ϕ k )
这时候, T(y) T ( y ) 是一组 k−1 k − 1 维的向量,不再是 y y ,如下所示:
T(1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢100⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(2)=⎡⎣⎢⎢⎢⎢⎢⎢⎢010⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(3)=⎡⎣⎢⎢⎢⎢⎢⎢⎢001⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥,⋯,T(k−1)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮1⎤⎦⎥⎥⎥⎥⎥⎥⎥,T(k)=⎡⎣⎢⎢⎢⎢⎢⎢⎢000⋮0⎤⎦⎥⎥⎥⎥⎥⎥⎥ T ( 1 ) = [ 1 0 0 ⋮ 0 ] , T ( 2 ) = [ 0 1 0 ⋮ 0 ] , T ( 3 ) = [ 0 0 1 ⋮ 0 ] , ⋯ , T ( k − 1 ) = [ 0 0 0 ⋮ 1 ] , T ( k ) = [ 0 0 0 ⋮ 0 ]
构建
hθ(x) h θ ( x ) :
hθ(x)===E[T(y)|x;θ]E⎡⎣⎢⎢⎢⎢⎢1{y=1}1{y=2}|x;θ⋮1{y=k−1}⎤⎦⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢ϕ1ϕ2⋮ϕk−1⎤⎦⎥⎥⎥⎥(34)(35)(36) (34) h θ ( x ) = E [ T ( y ) | x ; θ ] (35) = E [ 1 { y = 1 } 1 { y = 2 } | x ; θ ⋮ 1 { y = k − 1 } ] (36) = [ ϕ 1 ϕ 2 ⋮ ϕ k − 1 ]
再用自然参数
η η 来表示
ϕ ϕ
eηiϕkeηiϕk∑i=1keηi⇒ϕk====ϕiϕkϕi∑i=1kϕi=11∑i=1kϕi(37)(38)(39)(40) (37) e η i = ϕ i ϕ k (38) ϕ k e η i = ϕ i (39) ϕ k ∑ i = 1 k e η i = ∑ i = 1 k ϕ i = 1 (40) ⇒ ϕ k = 1 ∑ i = 1 k ϕ i
将式(22)代入式(19)得:
ϕi=eηi∑j=1keηj ϕ i = e η i ∑ j = 1 k e η j
最后,用特征的线性组合去表示自然参数
η1η2⋮ηk===θT1XθT2XθTkX η 1 = θ 1 T X η 2 = θ 2 T X ⋮ η k = θ k T X
hθ(x)==⎡⎣⎢⎢⎢⎢ϕ1ϕ2⋮ϕk−1⎤⎦⎥⎥⎥⎥=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢eη1∑j=1keηjeη2∑j=1keηj⋮eηk∑j=1keηj⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢eθT1x∑j=1keθTjxeθT2x∑j=1keθTjx⋮eθTkx∑j=1keθTjx⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥(43)(44) (43) h θ ( x ) = [ ϕ 1 ϕ 2 ⋮ ϕ k − 1 ] = [ e η 1 ∑ j = 1 k e η j e η 2 ∑ j = 1 k e η j ⋮ e η k ∑ j = 1 k e η j ] (44) = [ e θ 1 T x ∑ j = 1 k e θ j T x e θ 2 T x ∑ j = 1 k e θ j T x ⋮ e θ k T x ∑ j = 1 k e θ j T x ]
那么就建立了假设函数,最后就获得了最大似然估计
ℓ(θ)=∑i=1mlnp(y(i)|x(i);θ)=∑i=1mln∏l=1k(eθTlx(i)∑j=1keθTjx(i))1{y(i)=l} ℓ ( θ ) = ∑ i = 1 m l n p ( y ( i ) | x ( i ) ; θ ) = ∑ i = 1 m l n ∏ l = 1 k ( e θ l T x ( i ) ∑ j = 1 k e θ j T x ( i ) ) 1 { y ( i ) = l }
对该式子可以使用梯度下降算法或者牛顿方法求得参数
θ θ 后,使用假设函数
h h 对新的样例进行预测,即可完成多类分类任务。对于互斥的多分类问题,这种模型比较合适,而对于非互斥的多分类问题,构建
k k 个one-vs-all逻辑回归模型更为合适。
斯坦福机器学习课程Lecture 1(cs229-notes1)
广义线性模型(Generalized Linear Model)