广义线性回归

指数分布族

指数分布族指概率分布满足以下形式的分布

p ( y ; η ) = b ( y ) exp ⁡ ( η T T ( y ) − a ( η ) ) p(y;\eta)=b(y)\exp(\eta^T T(y)-a(\eta)) p(y;η)=b(y)exp(ηTT(y)a(η))

y是随机变量
η为自然参数(nature parameter),也称为标准参数(canonical parameter)
T(y)是充分统计量(sufficient statistic),通常T(y)=y。
a(η)被称为对数配分函数(partition function ),实际上它是归一化因子的对数形式。它使得概率分布积分为1的条件得到满足。
当参数A,h,T都固定以后,就定义了一个以η为参数的函数族。

许多其他分部也属于指数分布族,例如:伯努利分布(Bernoulli)、高斯分布(Gaussian)、多项式分布(Multinomial)、泊松分布(Poisson)、伽马分布(Gamma)、指数分布(Exponential)、β分布、Dirichlet分布、Wishart分布。

伯努利分布

伯努利分布是对0,1分布的问题进行建模。对于\(Bernouli(\phi),y\in{0,1}\),其概率密度函数如下:

{ p ( y = 0 ; ϕ ) = 1 − ϕ p ( y = 1 ; ϕ ) = ϕ \begin{cases} p(y=0;\phi) = 1-\phi \\ p(y=1;\phi) = \phi \end{cases} {p(y=0;ϕ)=1ϕp(y=1;ϕ)=ϕ

把伯努利分布可以写成指数族分布的形式

p ( y , ϕ ) = ϕ y ( 1 − ϕ ) ( 1 − y ) = e x p ( l o g ϕ 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 − ϕ ) ) p(y,\phi) = \phi^y (1 - \phi)^{(1-y)} \\ = exp(log\phi^y(1-\phi)^{(1-y)}) \\ = exp(ylog\phi + (1-y)log(1-\phi)) \\ = exp(ylog\frac{\phi}{1-\phi} + log(1-\phi)) p(y,ϕ)=ϕy(1ϕ)(1y)=exp(logϕy(1ϕ)(1y))=exp(ylogϕ+(1y)log(1ϕ))=exp(ylog1ϕϕ+log(1ϕ))

将上式与指数族分布形式比对,可知:

T ( y ) = y η = log ⁡ ϕ 1 − ϕ a ( η ) = − log ⁡ ( 1 − ϕ ) = log ⁡ ( 1 + e η ) b ( y ) = 1 T(y) = y \\ \eta=\log \frac{\phi}{1-\phi} \\ a(\eta) = -\log(1-\phi)=\log(1+e^\eta) \\ b(y)=1 T(y)=yη=log1ϕϕa(η)=log(1ϕ)=log(1+eη)b(y)=1

高斯分布

高斯分布也可以写为指数族分布的形式如下:

p ( y ; μ ) = 1 2 π exp ⁡ ( − 1 2 ( y − μ ) 2 ) = 1 2 π exp ⁡ ( − 1 2 y 2 ) exp ⁡ ( μ y − 1 2 μ 2 ) 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(\mu y-\frac{1}{2} \mu^2) p(y;μ)=2π 1exp(21(yμ)2)=2π 1exp(21y2)exp(μy21μ2)

将上式与指数族分布形式比对,可知:

η = μ T ( y ) = y a ( η ) = μ 2 / 2 = η 2 / 2 b ( y ) = 1 2 π exp ⁡ ( − 1 2 y 2 ) \eta = \mu \\ T(y) = y \\ a(\eta) = \mu^2/2 = \eta^2 /2 \\ b(y)=\frac{1}{\sqrt{2\pi}} \exp(-\frac{1}{2} y^2) η=μT(y)=ya(η)=μ2/2=η2/2b(y)=2π 1exp(21y2)

广义线性模型

通过上面两个例子我们可以看出,在伯努利的指数分布族形式中,θ 与伯努利分布中的参数φ是一个logistic函数。而在高斯分布的指数分布族形式中,θ是与μ相等的一个 表达式 (前提是我们假设了σ=1)。通过以上的例子,θ以不同的映射函数与其它概率分布函数中的参数发生联系,从而得到不同的模型,广义线性模型正是将指数分布族中的所有成员(每个成员正好有一个这样的联系)都作为线性模型的扩展,通过各种非线性的连接函数将线性函数映射到其他空间,从而大大扩大了线性模型可解决的问题。

下面我们看 GLM 的形式化定义,GLM 有三个假设:

  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) yx;θExponentialFamily(η):固定参数θ,在给定x的情况下,y服从指数分布族(The exponential family)中以η为参数的某个分布。
  2. 给定一个x,我们需要的目标函数为 h θ ( x ) = E [ T ( y ) ∣ x ] h_{\theta}(x)=E[T(y)|x] hθ(x)=E[T(y)x],后者为该分布的期望。
    η = θ T x \eta=\theta^Tx η=θTx
  3. 自然参数η与输入特征x呈线性相关,即
    实数时, η = θ T x \eta=\theta^Tx η=θTx
    向量时, η i = θ i T x \eta_i=\theta_i^Tx ηi=θiTx

在这三个假设(也可以理解为一种设计)的前提下,我们可以推导出一系列学习算法,称之为广义线性模型(GLM)。下面我们可以推导出一系列算法,称之为广义线性模型GLM. 下面举两个例子:

最小二乘法

假设 p ( y ∥ x ; θ ) ∼ N ( μ , σ 2 ) p(y \| x;\theta) \sim N(\mu,\sigma^2) p(yx;θ)N(μ,σ2), u 可能依赖于x,那么

h θ ( x ) = E [ y ∣ x ; θ ] = μ = η = θ T x h_\theta(x) = E[y|x;\theta] \\ =\mu \\ =\eta \\ = \theta^T x hθ(x)=E[yx;θ]=μ=η=θTx

逻辑回归 LR

考虑LR二分类问题,y∈0,1, 因为是二分类问题,我们很自然的选择p(y|x;θ)~Bernoulli(ϕ),即服从伯努利分布。那么

h θ ( x ) = E [ T ( y ) ∣ x ] = E [ y ∣ x ] = p ( y = 1 ∣ x ; θ ) = ϕ = 1 1 + e − η = 1 1 + e − θ T x h_\theta(x) = E[T(y)|x] \\ = E[y|x] \\ = p(y = 1 |x;\theta) \\ = \phi \\ = \frac{1}{1 + e^{-\eta}} \\ = \frac{1}{1 + e^{-\theta^T}x} hθ(x)=E[T(y)x]=E[yx]=p(y=1x;θ)=ϕ=1+eη1=1+eθTx1

总之,广义线性模型通过拟合响应变量的条件均值的一个函数(不是响应变量的条件均值),并假设响应变量服从指数分布族中的某个分布(不限于正态分布),从而极大地扩展了标准线性模型。模型参数估计的推导依据是极大似然估计,而非最小二乘法。

多分类模型 Softmax Regression

下面再给出GLM的一个例子——Softmax Regression.

假设一个分类问题,y可取k个值,即 y ϵ { 1 , 2 , . . . , k } y \epsilon\{1,2,...,k\} yϵ{1,2,...,k}。现在考虑的不再是一个二分类问题,现在的类别可以是多个。如邮件分类:垃圾邮件、个人邮件、工作相关邮件。下面要介绍的是多项式分布(multinomial distribution)。

多项式分布推导出的GLM可以解决多类分类问题,是 logistic 模型的扩展。对于多项式分布中的各个y的取值,我们可以使用k个参数 ϕ 1 , ϕ 2 , . . . , ϕ k \phi_{1},\phi_{2},...,\phi_{k} ϕ1,ϕ2,...,ϕk来表示这k个取值的概率。即

p ( y = i ) = ϕ i p(y=i) = \phi_{i} p(y=i)=ϕi

但是,这些参数可能会冗余,更正式的说可能不独立,因为 ∑ ϕ i = 1 \sum\phi_{i}=1 ϕi=1,知道了前k-1个,就可以通过 ϕ k = 1 − ∑ i = 1 k − 1 ϕ i \phi_{k} = 1- \sum_{i=1}^{k-1}\phi_{i} ϕk=1i=1k1ϕi计算出第k个概率。所以,我们只假定前k-1个结果的概率参数 ϕ 1 , ϕ 2 , . . . , ϕ k \phi_{1},\phi_{2},...,\phi_{k} ϕ1,ϕ2,...,ϕk,第k个输出的概率通过下面的式子计算得出:

ϕ k = 1 − ∑ i = 1 k − 1 ϕ i \phi_{k} = 1- \sum_{i=1}^{k-1}\phi_{i} ϕk=1i=1k1ϕi

为了使多项式分布能够写成指数分布族的形式,我们首先定义 T(y),如下所示:

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)=\left[ \begin{matrix}1\\0\\0\\\vdots\\0\end{matrix}\right], T(2)=\left[ \begin{matrix}0\\1\\0\\\vdots\\0\end{matrix}\right],\cdots, T(k-1)=\left[ \begin{matrix}0\\0\\0\\\vdots\\1\end{matrix}\right], T(k)=\left[ \begin{matrix}0\\0\\0\\\vdots\\0\end{matrix}\right] T(1)=1000,T(2)=0100,,T(k1)=0001,T(k)=0000

和之前的不一样,这里我们的T(y)不等y,T(y)现在是一个k−1维的向量,而不是一个真实值。接下来,我们将使用(T(y))i表示T(y)的第i个元素。

下面我们引入指数函数I,使得:

I { T r u e } = 1 , I { F a l s e } = 0 I\begin{Bmatrix} True \end{Bmatrix} =1,I\begin{Bmatrix}False \end{Bmatrix}=0 I{True}=1,I{False}=0

这样T(y)中的某个元素可以表示成:

T ( y ) i = I { y = i } T(y)_i=I\begin{Bmatrix} y=i \end{Bmatrix} T(y)i=I{y=i}

举例来说,当y=2时, T ( 2 ) 2 = I { 2 = 2 } = 1 , T ( 2 ) 3 = I { 2 = 3 } = 0 T(2)_2=I\begin{Bmatrix}2=2\end{Bmatrix}=1,T(2)_3=I\begin{Bmatrix}2=3\end{Bmatrix}=0 T(2)2=I{2=2}=1T(2)3=I{2=3}=0。我们还可以得到

E [ T ( y ) i ] = ∑ y = 1 k T ( y ) i ϕ i = ∑ y = 1 k I { y = i } ϕ i = ϕ i E[T(y)_{i}]=\sum_{y=1}^{k}T(y)_{i}{\phi}_i=\sum_{y=1}^{k}I\begin{Bmatrix}y=i\end{Bmatrix}\phi_i=\phi_i E[T(y)i]=y=1kT(y)iϕi=y=1kI{y=i}ϕi=ϕi

∑ i = 1 k I { y = i } = 1 \sum_{i=1}^{k}I\begin{Bmatrix} y=i \end{Bmatrix} =1 i=1kI{y=i}=1

于是我们进一步得到具体的多项式分布的概率分布:

p ( y ; ϕ ) = ϕ 1 I { y = 1 } ϕ 2 I { y = 2 } ⋯ ϕ k I { y = k } = ϕ 1 I { y = 1 } ϕ 2 I { y = 2 } ⋯ ϕ k 1 − ∑ i = 1 k − 1 I { y = i } = ϕ 1 T ( y ) 1 ϕ 2 T ( y ) 2 ⋯ ϕ k 1 − ∑ i = 1 k − 1 T ( y ) i p(y;\phi)=\phi_1^{I\begin{Bmatrix} y=1\end{Bmatrix}}\phi_2^{I\begin{Bmatrix} y=2\end{Bmatrix}}\cdots\phi_k^{I\begin{Bmatrix} y=k \end{Bmatrix}}\\ =\phi_1^{I\begin{Bmatrix} y=1\end{Bmatrix}}\phi_2^{I\begin{Bmatrix} y=2\end{Bmatrix}}\cdots\phi_k^{1-\sum_{i=1}^{k-1}I\begin{Bmatrix} y=i\end{Bmatrix}}\\ =\phi_1^{T(y)_1}\phi_2^{T(y)_2}\cdots\phi_k^{1-\sum_{i=1}^{k-1}T(y)_i} p(y;ϕ)=ϕ1I{y=1}ϕ2I{y=2}ϕkI{y=k}=ϕ1I{y=1}ϕ2I{y=2}ϕk1i=1k1I{y=i}=ϕ1T(y)1ϕ2T(y)2ϕk1i=1k1T(y)i

将概率分布表示成指数分布族的形式:

p ( y ; ϕ ) = ϕ 1 T ( y ) 1 ϕ 2 T ( y ) 2 ⋯ ϕ k 1 − ∑ i = 1 k − 1 T ( y ) i = exp ⁡ ( T ( y ) 1 log ⁡ ϕ 1 + T ( y ) 2 log ⁡ ϕ 2 + ⋯ + ( ( 1 − ∑ i = 1 k − 1 T ( y ) i ) log ⁡ ϕ k ) = exp ⁡ ( T ( y ) 1 log ⁡ ϕ 1 ϕ k + T ( y ) 2 log ⁡ ϕ 2 ϕ k + ⋯ + T ( y ) k − 1 log ⁡ ϕ k − 1 ϕ k + log ⁡ ϕ k ) = b ( y ) exp ⁡ ( η T T ( y ) − a ( η ) ) p(y;\phi)=\phi_1^{T(y)_1}\phi_2^{T(y)_2}\cdots\phi_k^{1-\sum_{i=1}^{k-1}T(y)_i}\\ =\exp(T(y)_1\log\phi_1+T(y)_2\log\phi_2+\cdots+((1-\sum_{i=1}^{k-1}T(y)_i)\log\phi_k)\\ =\exp(T(y)_1\log\frac{\phi_1}{\phi_k}+T(y)_2\log\frac{\phi_2}{\phi_k}+\cdots+T(y)_{k-1}\log\frac{\phi_{k-1}}{\phi_k}+\log\phi_k)\\ =b(y)\exp(\eta^TT(y)-a(\eta)) p(y;ϕ)=ϕ1T(y)1ϕ2T(y)2ϕk1i=1k1T(y)i=exp(T(y)1logϕ1+T(y)2logϕ2++((1i=1k1T(y)i)logϕk)=exp(T(y)1logϕkϕ1+T(y)2logϕkϕ2++T(y)k1logϕkϕk1+logϕk)=b(y)exp(ηTT(y)a(η))

我们有:

η = [ log ⁡ ϕ 1 ϕ k log ⁡ ϕ 2 ϕ k ⋮ log ⁡ ϕ k − 1 ϕ k ] a ( η ) = − log ⁡ ϕ k b ( y ) = 1 \eta=\left[ \begin{matrix}\log\frac{\phi_1}{\phi_k}\\\log\frac{\phi_2}{\phi_k}\\\vdots\\\log\frac{\phi_{k-1}}{\phi_k}\end{matrix}\right]\\ a(\eta)=-\log\phi_k\\ b(y)=1 η=logϕkϕ1logϕkϕ2logϕkϕk1a(η)=logϕkb(y)=1

向量η的第i个元素为:

η i = log ⁡ ϕ i ϕ k ⟹ e η i = ϕ i ϕ k \eta_i=\log\frac{\phi_i}{\phi_k}\Longrightarrow e^{\eta_i}=\frac{\phi_i}{\phi_k} ηi=logϕkϕieηi=ϕkϕi

令其累加,得到:

∑ i = 1 k e η i = ∑ i = 1 k ϕ i ϕ k = 1 ϕ k ⟹ ϕ k = 1 ∑ i = 1 k e η i \sum_{i=1}^ke^{\eta_i}=\frac{\sum_{i=1}^k\phi_i}{\phi_k}=\frac{1}{\phi_k}\Longrightarrow \phi_k=\frac{1}{\sum_{i=1}^ke^{\eta_i}} i=1keηi=ϕki=1kϕi=ϕk1ϕk=i=1keηi1

多项式分布的期望:

ϕ i = e η i ∑ i = 1 k e η i \phi_i=\frac{e^{\eta_i}}{\sum_{i=1}^ke^{\eta_i}} ϕi=i=1keηieηi

注意到,上式中的每个参数 η i \eta_i ηi都是一个可用线性向量 η = θ T x \eta=\theta^Tx η=θTx表示出来的,因而这里的 θ \theta θ其实是一个二维矩阵。
于是,我们可以得到假设函数 h 如下:

h θ ( x ) = E [ T ( y ) ∣ x ; θ ] = E [ p ( y = 1 ∣ x ; θ ) p ( y = 2 ∣ x ; θ ) ⋮ p ( y = k − 1 ∣ x ; θ ) ] = [ ϕ 1 ϕ 2 ⋮ ϕ k − 1 ] = [ e η 1 ∑ i = 1 k e η i e η 2 ∑ i = 1 k e η i ⋮ e η k − 1 ∑ i = 1 k e η i ] = [ e θ 1 T x ∑ i = 1 k e θ i T x e θ 2 T x ∑ i = 1 k e θ i T x ⋮ e θ k − 1 T x ∑ i = 1 k e θ i T x ] h_\theta(x)=E\left[T(y)\mid x;\theta\right]\\ =E\left[ \begin{matrix}p(y=1\mid x;\theta)\\p(y=2\mid x;\theta)\\\vdots\\p(y={k-1}\mid x;\theta)\end{matrix}\right]\\ =\left[ \begin{matrix}\phi_1\\\phi_2\\\vdots\\\phi_{k-1}\end{matrix}\right]\\ =\left[ \begin{matrix}\frac{e^{\eta_1}}{\sum_{i=1}^ke^{\eta_i}}\\\frac{e^{\eta_2}}{\sum_{i=1}^ke^{\eta_i}}\\\vdots\\\frac{e^{\eta_{k-1}}}{\sum_{i=1}^ke^{\eta_i}}\end{matrix}\right]\\ =\left[ \begin{matrix}\frac{e^{\theta_1^Tx}}{\sum_{i=1}^ke^{\theta_i^Tx}}\\\frac{e^{\theta_2^Tx}}{\sum_{i=1}^ke^{\theta_i^Tx}}\\\vdots\\\frac{e^{\theta_{k-1}^Tx}}{\sum_{i=1}^ke^{\theta_i^Tx}}\end{matrix}\right] hθ(x)=E[T(y)x;θ]=Ep(y=1x;θ)p(y=2x;θ)p(y=k1x;θ)=ϕ1ϕ2ϕk1=i=1keηieη1i=1keηieη2i=1keηieηk1=i=1keθiTxeθ1Txi=1keθiTxeθ2Txi=1keθiTxeθk1Tx

那么如何根据假设函数h求得参数 θ \theta θ,当然还是最大似然函数的方法,最大似然函数如下:

l ( θ ) = ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∏ i = 1 m ∏ j = 1 k ϕ j I { y ( i ) = j } l(\theta)=\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta)=\prod_{i=1}^{m}\prod_{j=1}^{k}\phi_j^{I\begin{Bmatrix}y^{(i)}=j\end{Bmatrix}} l(θ)=i=1mp(y(i)x(i);θ)=i=1mj=1kϕjI{y(i)=j}

取对数

L ( θ ) = l o g ∏ i = 1 m p ( y ( i ) ∣ x ( i ) ; θ ) = ∑ i = 1 m l o g ( p ( y ( i ) ∣ x ( i ) ; θ ) ) = ∑ i = 1 m ∑ j = 1 k I { y ( i ) = j } ⋅ l o g e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) L(\theta)=log\prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta) \\ = \sum_{i=1}^{m}log(p(y^{(i)}|x^{(i)};\theta)) \\ =\sum_{i=1}^{m}\sum_{j=1}^{k}{I\begin{Bmatrix}y^{(i)}=j\end{Bmatrix}}{\cdot}log{\frac{e^{\theta_j^{T}x^{(i)}}}{\sum_{l=1}^{k}e^{\theta_l^{T}x^{(i)}}}} L(θ)=logi=1mp(y(i)x(i);θ)=i=1mlog(p(y(i)x(i);θ))=i=1mj=1kI{y(i)=j}logl=1keθlTx(i)eθjTx(i)

代价函数为:

J ( θ ) = − 1 m ∑ i = 1 m ∑ j = 1 k I { y ( i ) = j } ⋅ l o g e θ j T x ( i ) ∑ l = 1 k e θ l T x ( i ) J(\theta)=-\frac{1}{m}\sum_{i=1}^{m}\sum_{j=1}^{k}{I\begin{Bmatrix}y^{(i)}=j\end{Bmatrix}}{\cdot}log{\frac{e^{\theta_j^{T}x^{(i)}}}{\sum_{l=1}^{k}e^{\theta_l^{T}x^{(i)}}}} J(θ)=m1i=1mj=1kI{y(i)=j}logl=1keθlTx(i)eθjTx(i)

对该式子可以使用梯度下降算法或者牛顿方法求得参数θ后,使用假设函数h对新的样例进行预测,即可完成多类分类任务。这种多种分类问题的解法被称为 softmax regression.

参考

线性回归、logistic回归、广义线性模型——斯坦福CS229机器学习个人总结(一)

牛顿方法、指数分布族、广义线性模型—斯坦福ML公开课笔记4

指数分布族(The Exponential Family)与广义线性回归(Generalized Linear Model GLM)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值