指数分布族
指数分布族指概率分布满足以下形式的分布
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−ϕ)(1−y)=exp(logϕy(1−ϕ)(1−y))=exp(ylogϕ+(1−y)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(μy−21μ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 有三个假设:
- 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的情况下,y服从指数分布族(The exponential family)中以η为参数的某个分布。
- 给定一个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。 - 自然参数η与输入特征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(y∥x;θ)∼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[y∣x;θ]=μ=η=θ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[y∣x]=p(y=1∣x;θ)=ϕ=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=1−∑i=1k−1ϕ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=1−i=1∑k−1ϕ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)=⎣⎢⎢⎢⎢⎢⎡100⋮0⎦⎥⎥⎥⎥⎥⎤,T(2)=⎣⎢⎢⎢⎢⎢⎡010⋮0⎦⎥⎥⎥⎥⎥⎤,⋯,T(k−1)=⎣⎢⎢⎢⎢⎢⎡000⋮1⎦⎥⎥⎥⎥⎥⎤,T(k)=⎣⎢⎢⎢⎢⎢⎡000⋮0⎦⎥⎥⎥⎥⎥⎤
和之前的不一样,这里我们的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}=1,T(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=1∑kT(y)iϕi=y=1∑kI{y=i}ϕi=ϕi
∑ i = 1 k I { y = i } = 1 \sum_{i=1}^{k}I\begin{Bmatrix} y=i \end{Bmatrix} =1 i=1∑kI{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}⋯ϕk1−∑i=1k−1I{y=i}=ϕ1T(y)1ϕ2T(y)2⋯ϕk1−∑i=1k−1T(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⋯ϕk1−∑i=1k−1T(y)i=exp(T(y)1logϕ1+T(y)2logϕ2+⋯+((1−i=1∑k−1T(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(η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ϕ2⋮logϕkϕk−1⎦⎥⎥⎥⎥⎤a(η)=−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ϕi⟹eη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=1∑keηi=ϕk∑i=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;θ]=E⎣⎢⎢⎢⎡p(y=1∣x;θ)p(y=2∣x;θ)⋮p(y=k−1∣x;θ)⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎡ϕ1ϕ2⋮ϕk−1⎦⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎡∑i=1keηieη1∑i=1keηieη2⋮∑i=1keηieηk−1⎦⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎡∑i=1keθiTxeθ1Tx∑i=1keθiTxeθ2Tx⋮∑i=1keθiTxeθk−1Tx⎦⎥⎥⎥⎥⎥⎥⎥⎤
那么如何根据假设函数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=1∏mp(y(i)∣x(i);θ)=i=1∏mj=1∏kϕ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=1∏mp(y(i)∣x(i);θ)=i=1∑mlog(p(y(i)∣x(i);θ))=i=1∑mj=1∑kI{y(i)=j}⋅log∑l=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=1∑mj=1∑kI{y(i)=j}⋅log∑l=1keθlTx(i)eθjTx(i)
对该式子可以使用梯度下降算法或者牛顿方法求得参数θ后,使用假设函数h对新的样例进行预测,即可完成多类分类任务。这种多种分类问题的解法被称为 softmax regression.
参考
线性回归、logistic回归、广义线性模型——斯坦福CS229机器学习个人总结(一)
指数分布族(The Exponential Family)与广义线性回归(Generalized Linear Model GLM)