统一分布:指数模型家族
本文讲解和「指数分布族」有关的统计计算。机器学习中应用的诸多概率模型都可以统一到「指数族分布」下,这样的统一省去了一些不必要的重复,也为「广义线性模型」(GLM) 奠定了基础。
本文md源码地址:AnBlog/统计和机器学习
如果你已经了解「指数族分布」,那就来看看「广义线性模型吧」。可以说,指数族分布的计算就是为了「广义线性模型」作准备!
广义线性模型
文章目录
是什么
很多分布的概率密度函数可以写成如下形式:
p
(
x
∣
θ
)
=
1
Z
(
θ
)
h
(
x
)
exp
(
θ
T
ϕ
(
x
)
)
p(x|\theta)=\frac{1}{Z(\theta)}h(x)\exp(\theta^T\phi(x))
p(x∣θ)=Z(θ)1h(x)exp(θTϕ(x))
其中
θ
,
x
,
ϕ
\theta,x,\phi
θ,x,ϕ等都是「向量」。也许公式很复杂,但是思想很简单,分布函数可以写成相同形式,使用相同的处理方法。
字母的含义
表达式字母有点多,这里详细介绍一下。
θ \theta θ代表「自然参数」, x x x代表「特征」。模型训练阶段应该「估计参数」,使用模型进行预测时应该给模型「输入特征」。
exp \exp exp指数中的函数 ϕ \phi ϕ,把样本特征 x x x映射到另一个空间,以获得更强的拟合能力。如 ϕ ( x ) = [ x 1 2 , x 1 x 2 , x 2 2 ] \phi(x)=[x_1^2,x_1x_2,x_2^2] ϕ(x)=[x12,x1x2,x22],把 x x x映射到了“二次”的空间。常用的映射是不映射, ϕ ( x ) = x \phi(x)=x ϕ(x)=x。函数的结果一定要可以和 θ \theta θ「内积」,一定要返回维度相同的向量。
exp \exp exp指数中的 θ \theta θ,是把原分布中的参数映射后的结果。如伯努利分布常把参数 θ \theta θ这样映射 θ = [ ln μ , ln ( 1 − μ ) ] \theta=[\ln\mu,\ln(1-\mu)] θ=[lnμ,ln(1−μ)]。在后面的例子中有更详细体现。
h ( x ) h(x) h(x)是可能出现的「缩放常数」(Scaling Constant),在把原分布函数化成指数形式的时候,按需出现,写在这里提醒可能出现的情况,由于不涉及参数,训练时具体意义小。
Z ( θ ) Z(\theta) Z(θ)是参数的归一化系数,称为「分配函数」(Partition Function),涉及到参数,十分重要!
归一化系数可以通过积分求得:
Z
(
θ
)
=
∫
d
x
h
(
x
)
exp
(
η
(
θ
)
T
ϕ
(
x
)
)
Z(\theta)=\int dx\;h(x)\exp(\eta(\theta)^T\phi(x))
Z(θ)=∫dxh(x)exp(η(θ)Tϕ(x))
我们更喜欢它的对数
A
(
θ
)
=
ln
Z
(
θ
)
A(\theta)=\ln Z(\theta)
A(θ)=lnZ(θ),称为「分配函数对数」(Log Partition Function)。使用
A
A
A而不使用
Z
Z
Z,原来的概率密度函数的统一形式写成:
p
(
x
∣
θ
)
=
h
(
x
)
exp
(
η
(
θ
)
T
ϕ
(
x
)
−
A
(
θ
)
)
p(x|\theta)=h(x)\exp(\eta(\theta)^T\phi(x)-A(\theta))
p(x∣θ)=h(x)exp(η(θ)Tϕ(x)−A(θ))
有时候还不写倒数形式:
g
(
θ
)
=
1
Z
(
θ
)
g(\theta)=\frac{1}{Z(\theta)}
g(θ)=Z(θ)1
把一些分布的概率密度函数化成指数分布族形式
这里举例把一些分布函数化成指数族的形式,同一个分布可能有不同的写法。
伯努利分布
原分布函数:
p
(
x
∣
μ
)
=
μ
x
(
1
−
μ
)
1
−
x
p(x|\mu)=\mu^x(1-\mu)^{1-x}
p(x∣μ)=μx(1−μ)1−x
取对数:
ln
p
(
x
∣
μ
)
=
x
ln
μ
+
(
1
−
x
)
ln
(
1
−
μ
)
\ln p(x|\mu)=x\ln\mu+(1-x)\ln(1-\mu)
lnp(x∣μ)=xlnμ+(1−x)ln(1−μ)
取指数:
p
(
x
∣
μ
)
=
exp
(
x
ln
μ
+
(
1
−
x
)
ln
(
1
−
μ
)
)
=
exp
(
θ
T
ϕ
(
x
)
)
,
θ
=
[
ln
μ
,
ln
(
1
−
μ
)
]
,
ϕ
(
x
)
=
[
x
,
1
−
x
]
p(x|\mu)=\exp(x\ln\mu+(1-x)\ln(1-\mu))=\exp(\theta^T\phi(x)),\theta=[\ln\mu,\ln(1-\mu)],\phi(x)=[x,1-x]
p(x∣μ)=exp(xlnμ+(1−x)ln(1−μ))=exp(θTϕ(x)),θ=[lnμ,ln(1−μ)],ϕ(x)=[x,1−x]
这个形式「冗余」了,
μ
\mu
μ和
1
−
μ
1-\mu
1−μ「不是相互独立」的。由于
μ
+
(
1
−
μ
)
=
1
\mu+(1-\mu)=1
μ+(1−μ)=1,不需要二维的向量也可以表达伯努利分布,只需要修改「取对数」:
ln
p
(
x
∣
μ
)
=
x
ln
μ
+
(
1
−
x
)
ln
(
1
−
μ
)
=
x
ln
μ
1
−
μ
+
ln
(
1
−
μ
)
\ln p(x|\mu)=x\ln\mu+(1-x)\ln(1-\mu)=x\ln\frac{\mu}{1-\mu}+\ln(1-\mu)
lnp(x∣μ)=xlnμ+(1−x)ln(1−μ)=xln1−μμ+ln(1−μ)
再取指数:
p
(
x
∣
μ
)
=
(
1
−
μ
)
exp
(
x
ln
μ
1
−
μ
)
,
1
Z
=
1
−
μ
,
ϕ
(
x
)
=
x
,
θ
=
ln
μ
1
−
μ
p(x|\mu)=(1-\mu)\exp(x\ln\frac{\mu}{1-\mu}),\frac{1}{Z}=1-\mu,\phi(x)=x,\theta=\ln\frac{\mu}{1-\mu}
p(x∣μ)=(1−μ)exp(xln1−μμ),Z1=1−μ,ϕ(x)=x,θ=ln1−μμ
这里的
θ
\theta
θ用原有参数
μ
\mu
μ表达,就是把原分布的参数映射成了
θ
\theta
θ。模型训练后,得到参数
θ
\theta
θ,可以通过参数
θ
\theta
θ得到参数
μ
\mu
μ:
μ
=
1
1
+
e
−
θ
\mu=\frac{1}{1+e^{-\theta}}
μ=1+e−θ1
带入
A
A
A:
A
=
−
ln
(
1
−
μ
)
=
ln
(
1
+
e
θ
)
A=-\ln(1-\mu)=\ln(1+e^\theta)
A=−ln(1−μ)=ln(1+eθ)
如果你对伯努利分布的实际应用感兴趣,请看:Logistic回归
多项伯努利分布 (Multinoulli)
原分布函数:
p
(
x
∣
μ
)
=
∏
c
μ
c
x
c
p(x|\mu)=\prod_c\mu_c^{x_c}
p(x∣μ)=c∏μcxc
其中
x
c
=
I
(
x
=
c
)
x_c=I(x=c)
xc=I(x=c),表示
x
x
x是否取某个离散的值。
取对数:
ln
p
(
x
∣
μ
)
=
∑
c
x
c
ln
μ
c
\ln p(x|\mu)=\sum_cx_c\ln\mu_c
lnp(x∣μ)=c∑xclnμc
取指数:
p
(
x
∣
μ
)
=
exp
(
∑
c
x
c
ln
μ
c
)
,
θ
=
ln
μ
,
ϕ
(
x
)
=
x
p(x|\mu)=\exp(\sum_cx_c\ln\mu_c),\theta=\ln\mu,\phi(x)=x
p(x∣μ)=exp(c∑xclnμc),θ=lnμ,ϕ(x)=x
这个形式也冗余了。由于
∑
c
μ
c
=
1
\sum_c\mu_c=1
∑cμc=1,可将其中一个参数用其他表示,做如下修改:
μ
C
=
1
−
∑
c
=
1
C
−
1
μ
c
,
ln
p
(
x
∣
μ
)
=
∑
c
=
1
C
−
1
x
c
ln
μ
c
+
(
1
−
∑
c
=
1
C
−
1
x
c
)
ln
(
1
−
∑
c
=
1
C
−
1
μ
c
)
=
∑
c
=
1
C
−
1
x
c
ln
μ
c
+
(
1
−
∑
c
=
1
C
−
1
x
c
)
ln
μ
C
\mu_C=1-\sum_{c=1}^{C-1}\mu_c,\ln p(x|\mu)=\sum_{c=1}^{C-1}x_c\ln\mu_c+(1-\sum_{c=1}^{C-1}x_c)\ln(1-\sum_{c=1}^{C-1}\mu_c)=\sum_{c=1}^{C-1}x_c\ln\mu_c+(1-\sum_{c=1}^{C-1}x_c)\ln\mu_C
μC=1−c=1∑C−1μc,lnp(x∣μ)=c=1∑C−1xclnμc+(1−c=1∑C−1xc)ln(1−c=1∑C−1μc)=c=1∑C−1xclnμc+(1−c=1∑C−1xc)lnμC
提出
∑
c
=
1
C
−
1
x
c
\sum_{c=1}^{C-1}x_c
∑c=1C−1xc:
ln
p
(
x
∣
μ
)
=
ln
μ
C
+
∑
c
=
1
C
−
1
x
c
ln
μ
c
μ
C
\ln p(x|\mu)=\ln\mu_C+\sum_{c=1}^{C-1}x_c\ln\frac{\mu_c}{\mu_C}
lnp(x∣μ)=lnμC+c=1∑C−1xclnμCμc
取指数:
p
(
x
∣
μ
)
=
μ
C
exp
(
∑
c
=
1
C
−
1
x
c
ln
μ
c
μ
C
)
p(x|\mu)=\mu_C\exp(\sum_{c=1}^{C-1}x_c\ln\frac{\mu_c}{\mu_C})
p(x∣μ)=μCexp(c=1∑C−1xclnμCμc)
带入指数形式
exp
(
θ
T
ϕ
(
x
)
−
A
(
θ
)
)
\exp(\theta^T\phi(x)-A(\theta))
exp(θTϕ(x)−A(θ)),各个部分:
θ
=
[
ln
μ
1
μ
C
,
.
.
.
,
ln
μ
C
−
1
μ
C
]
,
ϕ
(
x
)
=
[
I
(
x
=
1
)
,
.
.
.
,
I
(
x
=
C
−
1
)
]
,
A
(
θ
)
=
−
ln
μ
C
\theta=[\ln\frac{\mu_1}{\mu_C},...,\ln\frac{\mu_{C-1}}{\mu_C}],\phi(x)=[I(x=1),...,I(x=C-1)],A(\theta)=-\ln\mu_C
θ=[lnμCμ1,...,lnμCμC−1],ϕ(x)=[I(x=1),...,I(x=C−1)],A(θ)=−lnμC
从
θ
\theta
θ变回
μ
\mu
μ:
μ
c
=
e
θ
c
1
+
∑
c
′
=
1
C
−
1
e
θ
c
′
,
μ
C
=
1
−
∑
c
=
1
C
−
1
e
θ
c
1
+
∑
c
=
1
C
−
1
e
θ
c
=
1
1
+
∑
c
=
1
C
−
1
e
θ
c
\mu_c=\frac{e^{\theta_c}}{1+\sum_{c'=1}^{C-1}e^{\theta_{c'}}},\mu_C=1-\frac{\sum_{c=1}^{C-1}e^{\theta_c}}{1+\sum_{c=1}^{C-1}e^{\theta_c}}=\frac{1}{1+\sum_{c=1}^{C-1}e^{\theta_c}}
μc=1+∑c′=1C−1eθc′eθc,μC=1−1+∑c=1C−1eθc∑c=1C−1eθc=1+∑c=1C−1eθc1
带入
A
A
A:
A
(
θ
)
=
ln
(
1
+
∑
c
=
1
C
−
1
e
θ
c
)
A(\theta)=\ln(1+\sum_{c=1}^{C-1}e^{\theta_c})
A(θ)=ln(1+c=1∑C−1eθc)
如果你对多项伯努利分布的实际应用感兴趣,请看:朴素贝叶斯分类器
单变量的正态分布
正态分布本身就具有指数形式,比较方便:
p
(
x
∣
μ
,
σ
2
)
=
1
2
π
σ
2
exp
(
−
1
2
σ
2
(
x
−
μ
)
2
)
=
1
2
π
σ
2
exp
(
−
1
2
σ
2
x
2
+
μ
σ
2
x
−
1
2
σ
2
μ
2
)
p(x|\mu,\sigma^2)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp(-\frac{1}{2\sigma^2}(x-\mu)^2)=\frac{1}{\sqrt{2\pi\sigma^2}}\exp(-\frac{1}{2\sigma^2}x^2+\frac{\mu}{\sigma^2}x-\frac{1}{2\sigma^2}\mu^2)
p(x∣μ,σ2)=2πσ21exp(−2σ21(x−μ)2)=2πσ21exp(−2σ21x2+σ2μx−2σ21μ2)
可以直接看出结果:
θ
=
[
μ
σ
2
,
−
1
2
σ
2
]
,
ϕ
(
x
)
=
[
x
,
x
2
]
,
A
(
θ
)
=
1
2
σ
2
μ
2
+
1
2
ln
2
π
σ
2
\theta=[\frac{\mu}{\sigma^2},-\frac{1}{2\sigma^2}],\phi(x)=[x,x^2],A(\theta)=\frac{1}{2\sigma^2}\mu^2+\frac{1}{2}\ln2\pi\sigma^2
θ=[σ2μ,−2σ21],ϕ(x)=[x,x2],A(θ)=2σ21μ2+21ln2πσ2
从
θ
\theta
θ到
μ
,
σ
\mu,\sigma
μ,σ:
σ
2
=
−
2
θ
2
,
μ
=
θ
1
σ
2
=
−
2
θ
1
θ
2
\sigma^2=-\frac{2}{\theta_2},\mu=\theta_1\sigma^2=-\frac{2\theta_1}{\theta_2}
σ2=−θ22,μ=θ1σ2=−θ22θ1
带回
A
A
A:
A
(
θ
)
=
1
2
θ
1
μ
+
1
2
ln
2
π
(
−
2
θ
2
)
=
−
θ
1
2
θ
2
+
1
2
ln
4
π
−
1
2
ln
(
−
θ
2
)
A(\theta)=\frac{1}{2}\theta_1\mu+\frac{1}{2}\ln2\pi(-\frac{2}{\theta_2})=-\frac{\theta^2_1}{\theta_2}+\frac{1}{2}\ln4\pi-\frac{1}{2}\ln(-\theta_2)
A(θ)=21θ1μ+21ln2π(−θ22)=−θ2θ12+21ln4π−21ln(−θ2)
操作总结
以上操作非常固定:
- 取对数,化简。
- 利用参数已经存在的依赖关系进一步化简。
- 取指数,从指数形式中看出 θ , ϕ , A \theta,\phi,A θ,ϕ,A。
- 求从 θ \theta θ到原参数的映射,带回 A A A。
举个反例
反例有很多,这里用「单变量的均匀分布」。
概率密度函数:
p
(
x
∣
l
,
r
)
=
1
r
−
l
p(x|l,r)=\frac{1}{r-l}
p(x∣l,r)=r−l1
概率密度函数和
x
x
x无关,故无法化成完整指数形式。
这个分布的参数对数据极端敏感,最大似然估计的结果是 l = min x ( i ) , r = max x ( i ) l=\min x^{(i)},r=\max x^{(i)} l=minx(i),r=maxx(i)。数据最值改变时,参数的估计随最值变化,这样的变化不能用「初等函数」的组合表达。
分配函数 (Partition Function)
此处推导分配函数的重要性质:
对分配函数的对数求导,得到统计累计量 (Cumulant)。
所以分配函数又叫「累计量生成函数」。直观地说,就是分配函数的一阶导数(梯度)是「均值」,二阶导数(厄米矩阵)是「协方差矩阵」。对于多变量情况,得到二阶导数后,通常不再继续求导了。
计算
求一阶导数:
求二阶导数,求导的
θ
\theta
θ是同一个,得到协方差矩阵的对角线上元素:
当两次求导的
θ
\theta
θ不是同一个,得到非对角线元素:
∂
2
A
∂
θ
i
∂
θ
j
=
E
[
ϕ
i
(
x
)
ϕ
j
(
x
)
]
−
E
[
ϕ
i
(
x
)
]
E
[
ϕ
j
(
x
)
]
=
c
o
v
(
ϕ
(
x
)
)
\frac{\partial^2A}{\partial\theta_i\partial\theta_j}=E[\phi_i(x)\phi_j(x)]-E[\phi_i(x)]E[\phi_j(x)]=cov(\phi(x))
∂θi∂θj∂2A=E[ϕi(x)ϕj(x)]−E[ϕi(x)]E[ϕj(x)]=cov(ϕ(x))
以上分别计算了对角线和非对角线情况,只是为了更清晰地讲解,可以直接计算一般情况。建议自己算一遍,练习一下简单的加减乘除微积分。
伯努利分布举个例子
一阶导数:
d
A
d
θ
=
d
d
θ
ln
(
1
+
e
θ
)
=
e
θ
1
+
e
θ
=
1
1
+
e
−
θ
=
μ
\frac{dA}{d\theta}=\frac{d}{d\theta}\ln(1+e^\theta)=\frac{e^\theta}{1+e^\theta}=\frac{1}{1+e^{-\theta}}=\mu
dθdA=dθdln(1+eθ)=1+eθeθ=1+e−θ1=μ
二阶导数:
d
2
A
d
θ
2
=
e
θ
(
1
+
e
θ
)
−
e
θ
⋅
e
θ
(
1
+
e
θ
)
2
=
1
1
+
e
θ
⋅
e
θ
1
+
e
θ
=
1
1
+
e
−
θ
⋅
e
−
θ
1
+
e
−
θ
=
μ
(
1
−
μ
)
\frac{d^2A}{d\theta^2}=\frac{e^\theta(1+e^\theta)-e^\theta\cdot e^\theta}{(1+e^\theta)^2}=\frac{1}{1+e^\theta}\cdot\frac{e^{\theta}}{1+e^\theta}=\frac{1}{1+e^{-\theta}}\cdot\frac{e^{-\theta}}{1+e^{-\theta}}=\mu(1-\mu)
dθ2d2A=(1+eθ)2eθ(1+eθ)−eθ⋅eθ=1+eθ1⋅1+eθeθ=1+e−θ1⋅1+e−θe−θ=μ(1−μ)
还是建议自己算一遍,练习一下简单的加减乘除微积分。
似然
表达似然
把所有概率乘起来:
p
(
D
∣
θ
)
=
g
(
θ
)
N
(
∏
i
h
(
x
(
i
)
)
)
exp
(
θ
T
∑
i
ϕ
(
x
(
i
)
)
)
p(D|\theta)=g(\theta)^N(\prod_ih(x^{(i)}))\exp(\theta^T\sum_i\phi(x^{(i)}))
p(D∣θ)=g(θ)N(i∏h(x(i)))exp(θTi∑ϕ(x(i)))
向量加法可以写成分量加法,并用新记号代替:
∑
i
ϕ
(
x
(
i
)
)
=
[
∑
i
ϕ
1
(
x
(
i
)
)
,
.
.
.
,
∑
i
ϕ
D
(
x
(
i
)
)
]
=
ϕ
(
D
)
\sum_i\phi(x^{(i)})=[\sum_i\phi_1(x^{(i)}),...,\sum_i\phi_D(x^{(i)})]=\phi(D)
i∑ϕ(x(i))=[i∑ϕ1(x(i)),...,i∑ϕD(x(i))]=ϕ(D)
取对数:
l
(
θ
)
=
ln
p
(
D
∣
θ
)
=
N
ln
g
(
θ
)
+
θ
T
ϕ
(
D
)
+
∑
i
ln
h
(
x
(
i
)
)
=
−
N
A
(
θ
)
+
θ
T
ϕ
(
D
)
+
∑
i
ln
h
(
x
(
i
)
)
l(\theta)=\ln p(D|\theta)=N\ln g(\theta)+\theta^T\phi(D)+\sum_i\ln h(x^{(i)})=-NA(\theta)+\theta^T\phi(D)+\sum_i\ln h(x^{(i)})
l(θ)=lnp(D∣θ)=Nlng(θ)+θTϕ(D)+i∑lnh(x(i))=−NA(θ)+θTϕ(D)+i∑lnh(x(i))
最大似然估计
求导:
∇
l
=
−
N
∇
A
+
ϕ
(
D
)
=
−
N
E
(
ϕ
(
x
)
)
+
ϕ
(
D
)
\nabla l=-N\nabla A+\phi(D)=-NE(\phi(x))+\phi(D)
∇l=−N∇A+ϕ(D)=−NE(ϕ(x))+ϕ(D)
结果惊人地简单:
E
(
ϕ
(
x
)
)
=
1
N
ϕ
(
D
)
=
1
N
∑
i
ϕ
(
x
(
i
)
)
E(\phi(x))=\frac{1}{N}\phi(D)=\frac{1}{N}\sum_i\phi(x^{(i)})
E(ϕ(x))=N1ϕ(D)=N1i∑ϕ(x(i))
只要分布的均值确定,就可以输入数据,获得最大似然估计。求均值
E
[
ϕ
(
x
)
]
E[\phi(x)]
E[ϕ(x)]不是统计学过程,是概率论过程,和样本数据无关。
伯努利分布举个例子
伯努利分布的特征变换:
ϕ
(
x
)
=
x
⇒
E
[
ϕ
(
x
)
]
=
E
[
x
]
=
μ
\phi(x)=x\Rightarrow E[\phi(x)]=E[x]=\mu
ϕ(x)=x⇒E[ϕ(x)]=E[x]=μ
参数的最大似然估计:
μ
=
1
N
∑
i
ϕ
(
x
(
i
)
)
=
1
N
∑
i
x
(
i
)
\mu=\frac{1}{N}\sum_i\phi(x^{(i)})=\frac{1}{N}\sum_ix^{(i)}
μ=N1i∑ϕ(x(i))=N1i∑x(i)
就是我们熟悉的!
多项伯努利分布举个例子
多项伯努利分布的特征变换:
ϕ
(
x
)
=
[
I
(
x
=
1
)
,
.
.
.
,
I
(
x
=
C
−
1
)
]
\phi(x)=[I(x=1),...,I(x=C-1)]
ϕ(x)=[I(x=1),...,I(x=C−1)]
求均值:
E
(
ϕ
(
x
)
)
=
[
E
[
I
(
x
=
1
)
]
,
.
.
.
,
E
[
I
(
x
=
C
−
1
)
]
]
E(\phi(x))=[E[I(x=1)],...,E[I(x=C-1)]]
E(ϕ(x))=[E[I(x=1)],...,E[I(x=C−1)]]
求分量,带入概率论中求均值的公式:
E
[
I
(
x
=
c
)
]
=
∑
x
=
1
C
(
I
(
x
=
c
)
(
∏
c
′
μ
c
′
I
(
x
=
c
)
)
)
=
μ
c
E[I(x=c)]=\sum_{x=1}^C(I(x=c)(\prod_{c'}\mu_{c'}^{I(x=c)}))=\mu_c
E[I(x=c)]=x=1∑C(I(x=c)(c′∏μc′I(x=c)))=μc
带入最大似然估计:
μ
c
=
1
N
∑
i
I
(
x
(
i
)
=
c
)
=
N
c
N
\mu_c=\frac{1}{N}\sum_iI(x^{(i)}=c)=\frac{N_c}{N}
μc=N1i∑I(x(i)=c)=NNc
就是我们熟悉的!
先验和后验
假设先验
选取和似然具有相同形式的先验。
p
(
θ
∣
ν
0
,
τ
0
)
∝
g
(
θ
)
ν
0
exp
(
θ
T
τ
0
)
p(\theta|\nu_0,\tau_0)\propto g(\theta)^{\nu_0}\exp(\theta^T\tau_0)
p(θ∣ν0,τ0)∝g(θ)ν0exp(θTτ0)
此处
g
(
θ
)
g(\theta)
g(θ)和之前的相同。比较在似然中的变量位置,标量
ν
0
\nu_0
ν0为「初始数据个数」,向量
τ
0
\tau_0
τ0为「初始数据」。
求解后验
似然中
ϕ
(
D
)
\phi(D)
ϕ(D)是一系列的求和。为了强调这一点,我们采用记号,表示从
1
1
1到
N
N
N的
ϕ
\phi
ϕ求和,这是个向量求和,结果还是向量。
s
N
=
∑
i
=
1
N
ϕ
(
x
(
i
)
)
s_N=\sum_{i=1}^N\phi(x^{(i)})
sN=i=1∑Nϕ(x(i))
将具有相同形式的先验,和似然相乘,得到后验:
p
(
θ
∣
D
)
∝
p
(
θ
∣
ν
0
,
τ
0
)
p
(
D
∣
θ
)
∝
g
(
θ
)
ν
0
+
N
(
∏
i
h
(
x
(
i
)
)
)
exp
(
θ
T
(
τ
0
+
∑
i
ϕ
(
x
(
i
)
)
)
)
p(\theta|D)\propto p(\theta|\nu_0,\tau_0)p(D|\theta)\propto g(\theta)^{\nu_0+N}(\prod_ih(x^{(i)}))\exp(\theta^T(\tau_0+\sum_i\phi(x^{(i)})))
p(θ∣D)∝p(θ∣ν0,τ0)p(D∣θ)∝g(θ)ν0+N(i∏h(x(i)))exp(θT(τ0+i∑ϕ(x(i))))
直接看出后验的形式:
先验、后验都具有和指数分布族相同的形式,上面的书写省略了一些归一化系数。先验参数
ν
0
,
τ
0
\nu_0,\tau_0
ν0,τ0的意义也更加明确了。
最大后验估计
求最大后验估计的过程和求最大似然估计的过程相同。
取对数:
l
(
θ
)
=
ln
p
(
θ
∣
D
)
=
−
ln
Z
+
ν
N
ln
g
(
θ
)
+
θ
T
τ
N
=
−
ln
Z
−
ν
N
A
(
θ
)
+
θ
T
τ
N
l(\theta)=\ln p(\theta|D)=-\ln Z+\nu_N\ln g(\theta)+\theta^T\tau_N=-\ln Z-\nu_NA(\theta)+\theta^T\tau_N
l(θ)=lnp(θ∣D)=−lnZ+νNlng(θ)+θTτN=−lnZ−νNA(θ)+θTτN
求导:
∇
l
(
θ
)
=
−
ν
N
E
[
τ
0
+
ϕ
(
x
)
]
+
τ
N
=
τ
N
−
ν
N
(
τ
0
+
E
[
ϕ
(
x
)
]
)
\nabla l(\theta)=-\nu_NE[\tau_0+\phi(x)]+\tau_N=\tau_N-\nu_N(\tau_0+E[\phi(x)])
∇l(θ)=−νNE[τ0+ϕ(x)]+τN=τN−νN(τ0+E[ϕ(x)])
注意
E
[
]
E[]
E[]中的是「随机变量」,外面的
τ
0
,
τ
N
\tau_0,\tau_N
τ0,τN是由样本数据和超参数决定的「常数」。
最终给出结果:
E
[
ϕ
(
x
(
i
)
)
]
=
τ
N
ν
N
−
τ
0
=
τ
0
+
∑
i
ϕ
(
x
(
i
)
)
ν
0
+
N
−
τ
0
E[\phi(x^{(i)})]=\frac{\tau_N}{\nu_N}-\tau_0=\frac{\tau_0+\sum_i\phi(x^{(i)})}{\nu_0+N}-\tau_0
E[ϕ(x(i))]=νNτN−τ0=ν0+Nτ0+∑iϕ(x(i))−τ0
取特殊情况
ν
0
=
0
,
τ
0
=
0
\nu_0=0,\tau_0=0
ν0=0,τ0=0,就是最大似然估计的结果!
预测分布
p ( x ∣ D ) = ∫ d θ p ( x ∣ θ ) p ( θ ∣ D ) = ∫ d θ 1 Z ( θ ) h ( x ) exp ( θ T ϕ ( x ) ) ( ∏ i h ( x ( i ) ) ) 1 Z ( ν N , τ N ) g ( θ ) ν N exp ( θ T τ N ) p(x|D)=\int d\theta\;p(x|\theta)p(\theta|D)=\int d\theta\;\frac{1}{Z(\theta)}h(x)\exp(\theta^T\phi(x))(\prod_ih(x^{(i)}))\frac{1}{Z(\nu_N,\tau_N)}g(\theta)^{\nu_N}\exp(\theta^T\tau_N) p(x∣D)=∫dθp(x∣θ)p(θ∣D)=∫dθZ(θ)1h(x)exp(θTϕ(x))(i∏h(x(i)))Z(νN,τN)1g(θ)νNexp(θTτN)
进一步求解需要带入具体分布和数值。
后续
学会了「指数族分布」之后,快来看看它最重要的应用吧。可以说,指数族分布的计算就是为了「广义线性模型」作准备!