cs229 笔记 3:广义线性模型

前两节分别介绍了一个回归模型和一个分类模型,其中线性回归中假设概率分布为 y|x;θN(μ,σ2),二分类中假设概率分布为 y|x;θBernoulli(ϕ)。这两种模型都是广义线性模型 (Generalized Linear Models) 的特殊情况。

指数分布族

在讲广义线性模型之前先介绍下指数族分布,指数族分布是指概率分布可以写如下形式的分布

(1)p(y;η)=b(y)exp(ηTT(y)a(η))

其中 η 是自然参数 (natural parameter),也可以叫做 canonical parameter 。T(y) 是充分统计量 (sufficient statistic),a(η) 是 log partition function。ea(η) 是归一化常量

给定 T、a、b 的定义,可以得到一族以 η 为参数的分布,变化 η 的值可以得到不同的分布

伯努利分布

均值为 ϕ 的伯努利分布记为: Bernoulli(ϕ),满足 y(0,1)。变化 ϕ 的取值可以得到不同均值的分布。

(2)p(y=1;ϕ)=ϕ(3)p(y=0;ϕ)=1ϕ

可以将其概率写成如下形式

(4)p(y;ϕ)=ϕy(1ϕ)(1y)(5)=exp(ylogϕ+(1y)log(1ϕ))(6)=exp((logϕ1ϕ)y+log(1ϕ))

令自然参数 η=logϕ1ϕ,如果对 ϕ 求解可以得到 ϕ=11+eη。对照指数族分布的形式可以得到 T、a、b 如下

(7)T(y)=y

(8)a(η)=log(1ϕ)(9)=log(1+eη)

(10)b(y)=1

高斯分布

根据之前线性回归 概率解释 的推导过程可知,σ2 不影响 θh(θ) 的选择。为简化推导过程,这里令 σ2=1,因此可得

(11)p(y;μ)=12πexp(12(yμ)2)(12)=12πexp(12y2)exp(μy12μ2)

令 T、a、b、η 如下

(13)η=μ

(14)T(y)=y

(15)a(η)=μ22=η22

(16)b(y)=12πexp(y22)

还有很多其他的分布也属于指数族分布,比如多项式分布、泊松分布、伽马分布、指数分布、beta 分布、Dirichlet 分布等

构造 GLMs

广义线性模型基于指数族分布。为了构造广义线性模型,首先给出关于条件概率分布 y|x 的 3 个假设

  1. y|x;θExponentialFamily(η)。给定 xθy 服从参数为 η 的指数族分布

  2. 给定 x,目标是输出 T(y) 的期望值 (E[T(y)|x]),也就是学习算法的输出 h(x)=E[T(y)|x]。在之前的例子中,T(y)=y,所以上式为 h(x)=E[y|x]。比如在逻辑回归中 hθ(x)=p(y=1|x;θ)=0p(y=0|x;θ)+1p(y=1|x;θ)=E[y|x;θ]

  3. 自然参数 η 和输入变量 x 是线性关系:η=θTx (如果 η 是向量,则 ηi=θiTx)

最小二乘法

最小二乘法 (Ordinary Least Squares) 是 GLM 的一种特殊情况。目标变量 y 是连续的,对 y|x 使用高斯分布建模,即 y|xN(μ,σ2)。根据之前的推导可知

(17)y|x;θExpFamily(η)

根据假设

(18)hθ(x)=E[y|x;θ](19)=μ(20)=η(21)=θx

逻辑回归

目标变量取值范围为 y(0,1),对 y|x 使用伯努利分布建模,推导如下

(22)hθ(x)=E[y|x;θ](23)=ϕ(24)=11+eη(25)=11+eθTx

引入 g(η)=E[T(y);η],它叫做 canonical response function,而 g(1) 称为 canonical link function

Softmax Regression

假设分类问题中,输出变量 y 的取值范围为 1,2,,k,考虑使用多项分布对其建模。首先将多项分布表示为指数族分布

使用 k 个参数 ϕ1,,ϕi 表示取到每个值的概率。因为总的概率为 1 (i=1kϕi=1),所以可以使用 k-1 个参数来表示多项分布。其中前 k-1 个参数表示为 ϕi=p(y=i;ϕ),第 k 个参数表示为 p(y=k;ϕ)=1i=1k1ϕi

定义 T(y)R(k1) 如下

引入指示函数 I {.},如果括号内取值为 True 则结果为 1 (I {True} = 1),否则结果为 0 (I {False} = 0)。T (y) 和 y 之间的关系可以表示为

(26)(T(y))i=Iy=i

因此 E[(T(y))i]=p(y=i)=ϕi。将多项分布表示为指数族分布

link function 可表示为

(27)ηi=logϕiϕk

为方便表示,定义

(28)ηk=logϕkϕk=0

可以得到

(29)eηi=ϕiϕk(30)ϕkeηi=ϕi(31)ϕki=1keηi=i=1kϕi=1

因此 ϕk=1i=1keηi,由此可得

(32)ϕi=eηij=1keηj

这个函数将 η 映射到 ϕ,称为 softmax function

根据假设 3,ηix 线性相关,因此可得 ηi=θiTx (i=1,…,k-1),其中 θi,,θk1Rn+1。为方便表示,定义 θk=0,因此 ηk=θkTx=0

(33)p(y=i|x;θ)=ϕi(34)=eηij=1keηj(35)=eθiTxj=1keθjTx

该模型用于解决多分类问题,叫做 softmax regression,它是逻辑回归的一般化。这里学习函数的输出如下

i=1,,k 的每一个值,这个公式输出对应的 p(y=i|x;θ) 的预测概率。注意 p(y=k|x;θ) 可根据前 k-1 个概率得到。

根据以上结论,可以得到 log 似然函数如下。据此可以求出最大似然估计值 (可以使用梯度上升或牛顿方法)