PRML读书笔记(2)——Probability Distribution

2 Probability Distributions

本章主要介绍了机器学习中常用的一些分布,以及分布的性质,包括:二元变量分布、多元变量分布、高斯分布、指数族以及非参方法(核密度方法以及最近邻方法)。

2.1 伯努利分布

设二元变量 x0,1 服从伯努利分布,则有伯努利分布:

Bern[x|u]=ux(1u)1x

该分布的期望和方差分别为:
E[x]=u
var[x]=u(1u)

多次伯努利分布叫二项分布,即:
Bin[m|N,u]=(Nm)um(1u)Nm

其期望和方差分别为:
E[m]=Nu
var[m]=Nu(1u)

根据贝叶斯公式, P(Y|X)P(X|Y)P(Y) ,其中 P(Y) 是先验概率, P(X|Y) 是似然函数, P(Y|X) 是后验概率。为了计算方便或者其他需要,我们有时会希望先验概率和后验概率在形式上相同,因此对于一个给定的后验概率和似然函数,我们希望找出一个先验概率形式和后验概率相同,这样的先验概率叫共轭先验。这里Y一般是控制分布的参数 u ,而X代表数据。
二项分布的共轭先验叫beta分布,形式如下:
Beta(ua,b)=Γ(a+b)Γ(a)Γ(b)ua1(1u)b1

其中, Γ(a) 是gamma函数,即 Γ(a)=0ux1eudu 。Beta分布的期望和方差如下:
E[x]=aa+b
var[x]=ab(a+b)2(a+b+1)

其中, a b被称为超参数,即控制参数的参数,这里 a b控制了 u 。这样,如果将beta分布作为二项分布的先验概率,变量x的分布会始终保持包含um(1u)Nm的形式。我们可以根据贝叶斯公式更新经过似然计算之后的分布参数,具体结果不赘述。当观察到越来越多的数据后,变量的方差会下降。

2.2 多项分布

将伯努利分布中的随机变量 x 扩展为多个离散值,则可以有如下概率:

P(xu)=Kk=1uxkk

其中, u1+u2++uK=1 uk>0 。其期望为:

E[xu]=u

重复多次该实验,则称为多项分布,其分布如下:
Mult(m1,m2,mKN,u)=(Nm1m2mK)Kk=1umkk

其中, m1+m2++mK=N
同二项分布一样,我们也希望为多项分布找到一个共轭先验分布,这个分布是狄利克雷分布。狄利克雷分布如下:
Beta(ua,b)=Γ(a0)Γ(a1)Γ(ak)Kk=1uak1k

我们同样可以根据贝叶斯公式计算给定先验和似然函数的后验分布,具体公式略过。

2.3 高斯分布

这本书中高斯分布讲的比较多,主要介绍了高斯分布的性质、统计量、条件分布、边缘分布,并从贝叶斯的角度进行了一些介绍。高斯分布的形式为:

N(xu,σ)=12πσe(xu)22σ2

在多维下的形式为:
N(xu,Σ)=1(2π)2D1|Σ|1/2exp{12(x-u)TΣ1(x-u)}

其中, u 是均值,σ Σ 分别是方差和协方差矩阵。可以注意到的是,如果令yi=uTi(x-u)其中 uTiΣ1 的特征向量,则该分布可以写成关于 y 的正态分布,且该正态分布各分量独立,即:
p(y)=Dj=112πλj1/2exp{y2j2λj}

另外,高斯分布的期望和方差为:
E[x]=u
cov[x]=σ2

高斯分布常用来作为密度模型来拟合数据,但它也存在很多不足,例如这个分布是单峰的等,有很多其他方法来解决这一问题,例如混合高斯分布等,这将在之后提到。
2.3.1 条件分布
给定一个多维高斯分布 N(xu,Σ) ,将该高斯分布的分量划分为 a b两个部分:
x=(xaxb)

它们的均值和方差为:
u=(uaub)

Σ=(ΣaaΣbaΣabΣbb)

则有:
ua|b=ua+ΣabΣ1bb(xbub)
Σa|b=ΣaaΣabΣ1bbΣba

推导过程略。
2.3.2 边缘分布
同样按照2.3.1的划分方式,可以推导出高斯分布的边缘分布:
p(xa)=N(xa|ua,Σaa)

2.3.3 贝叶斯理论在高斯分布中的应用
这一小节主要解决了如下问题:给定
p(x)=N(x|u,Λ1)
p(y|x)=N(xAx+b,L1)

p(y) p(x|y) 的分布。推导过程省略,结果是:
p(y)=N(y|Au+b,L1+AΛ1AT)
p(xy)=N(x|Σ{ATL(yb)+Λu},Σ)

其中,
Σ=(Λ+ATLA)1

2.3.4 最大似然估计
对于高斯分布的参数,从频率学派的角度出发,可以使用最大似然估计分布的参数,即先对分布求对数,再对目标参数求导,使求导结果为0,得到解析解:
uML=1NNn=1xn

ΣML=1NNn=1(uMLxn)(uMLxn)T

2.3.5 序贯估计
在在线的情况下,数据不是一次到达的,而是连续地不停地到达,这需要我们在原来参数的基础上根据新来的数据连续不断地更新参数,这叫序贯估计。这里以均值为例,将最后一个数据和之前的数据分开,可以得到以下结果:
x(N)ML=u(N1)ML+1N(xnu(N1)ML)

从这个公式可以看出,变量 x 的均值u是第 N1 轮的值加上该值与新数据的偏差(error signal),并且当 N 逐步增大,之后的数据对u的贡献会慢慢变弱。
这可以看做序贯估计的一个例子,对于一般的其他的参数而言,我们需要一种算法框架来实现序贯估计,其中之一叫Robbins-Monro算法。该算法的核心在于,对于联合分布 p(x,θ) 假设 f(θ) x 的条件期望:
f(θ)=E[xθ]=xp(x|θ)dx

则希望寻找到一个 θ 使得 f(θ)=0 ,即求 f(θ) 的根,为此,使用如下的迭代公式迭代:
θ(N)=θ(N1)+aN1z(θ(N1))

例如在高斯分布的均值估计中, f(θ) 即对高斯分布的似然函数求导,并交换计算期望和偏导的次序,由于最大似然估计的目标也是令该式为0,故可使用Robbins-Monro算法框架。需要注意的是 aN 需满足以下条件:
limNaN=0
N=1aN=
N=1a2N<

其中,第一个条件保证了变化会不断变小,最终收敛。第二个条件保证了算法不会收敛不到根的值,第三个条件保证了累积的噪声具有一个有限的方差,不会导致收敛失败。
2.3.6 高斯分布中的贝叶斯推理
该小节主要考虑的是如何寻找高斯分布的共轭先验,如果分布的方差 σ2 是已知的,则选择高斯分布作为高斯分布的共轭先验,如果分布的均值 u 是已知的,则高斯分布的共轭先验是Gamma分布:
Gam(λa,b)=1Γ(a)baλa1ebλ

Gamma分布的均值和方差为:
E[λ]=ab

var[λ]=ab2

对于指数族而言,把先验分布看做是有效的数据观测点是一个非常有用的假设,有效数据点的数量取决于先验分布的参数。
如果均值和方差都不知道,则高斯分布的共轭先验分布是Gaussian-gamma分布。在多维的情况下,已知方差的先验分布依旧是多维高斯分布,已知均值的先验分布则是Wishart分布,如果两者都不知道,则其共轭先验是Gaussian-Wishart分布。
由于t分布和周期分布在现阶段几乎没有用过,这里略过不做笔记,之后如果有需要再回来看。
2.3.7 混合高斯分布
高斯分布是单峰的,但数据的分布可能是多峰的,因此可以使用一种叫混合分布的方法去拟合这些数据,混合高斯分布的概率分布函数如下:
p(x)=Nn=1πnN(un,Σn)

其中, N(un,Σn) 是成员分布, πn 可以看成是权重,并且 Nn=1πn=1 。由于求导的时候可以发现这些参数相互依赖,因此在给定数据的情况下,需要用EM算法求解。

2.4 指数族

指数族指的是这样一类函数,它们拥有如下的分布:

p(xη)=h(x)g(η)exp{ηTu(x)}

一大批分布都可以写成该形式,包括伯努利分布,多项分布,高斯分布等。在参数估计方面,参数 η 的最大似然估计如下:
η=1NNn=1u(xn)

之后书上介绍了指数族的先验选取上的一些事,包括共轭先验、无信息先验。一般来说,如果先验分布的方差比较大,则该先验对后验分布的影响比较小。

2.5 非参方法

这里介绍了两种非参的概率密度估计方法,一是最邻近法,而是核方法。首先对概率分布进行离散分箱操作:

pi=niN

对应地,设一个很小的区域(一个区域对应一个箱子)中有 K 个数据点,则对于这个区域内的点而言,其概率分布可以使用期望进行估计:
P=KN

那么这个区域的密度则为该区域内的所有点的概率分布之和,即区域体积乘以概率分布:
P=p(x)V

带入之前的式子,则:
p(x)=KNV

从直觉上来看,这可以看成是区域内的总概率为 K/N ,将其细分到区域内的每一个点之后得到了每一个点的概率密度。从这个式子出发,我们可以控制 K ,根据对应V的大小来得到概率密度,这种方法称为最近邻方法。也可以控制 V 来看看K有多大,这种方法叫核方法。
2.5.1 核方法
正如上所述,核方法的重点在于在给定的 V 内得到K的大小。举个例子的话,给了一个大小 V 的空间,我们数这个空间内有几个数据点,假设一共N个数据点,我们数到了 K 个,则这个V空间内的概率密度就是
p(x)=KNV

形象的来说,我们可以令
K=Nn=1k(xxnh)

其中, h 是控制空间大小V的参数,我们根据 k(x) 来决定空间中 x 这个点附近有多少个数据点,也就是说,我们要数以x为中心的超矩形内有多少个数据点,因此,对于 k(u) 而言,如果 u 的绝对值小于1/2,则记数到了一个数据点,反之没数到。具体公式不写了。这个 k(u) 也未必是要非 1 0,更常用的是以 h 为方差,xn为均值的高斯核。
2.5.2 近邻方法
根据另一个思路,控制 K ,然后查看V的大小来决定概率大小。也就是说,对于 x 给定一个近邻数量K,然后调整以 x 为中心的超球半径,使得超球恰好包含K个近邻,最后计算这个超球的体积 V 。但需要注意的是,这样做不能得到真正的概率,因为空间的大小通常是不收敛的,因此很难将结果正确归一化。
另外近邻方法可以用来做分类问题,也就是KNN了。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值