PRML读书笔记(二)

二值变量

伯努利分布

对于 x{0,1},p(x=1|μ)=μ x 的概率分布有

Bern(x|μ)E[x]var[x]===μx(1μ)1xμμ(1μ)

假设一个数据集 D={x1,x2,,xN} xi 服从伯努利分布,并且独立同分布,那么

p(D|μ)=n=1Nμxn(1μ)1xn(1)

我们能够通过最大化似然函数来求解 μ

lnp(D|μ)lnpμμMLμML====n=1Nxnlnμ+(1xn)ln(1μ)01Nn=1NxnmN

由于 xi{0,1} ,如果设 D m 个值为1的观测值,那么上式可以写成

μML=mN

假设我们抛一枚有损的硬币 p(x=1|μ)=μ 可以不为0.5,如果 D 有3个观测值,而且全部为1,即头部向上,那么我们由最大似然函数得到的结果就是 μML=1 ,如果我们用这个值去预测以后的结果,明显准确率会十分差,这就是所谓的过拟合。

二项分布

假设我们已经知道观测值中总共有 m 个值为1的观测值,那么对 m 的概率分布有

Bin(x|N,μ)=(Nm)μm(1μ)Nm(2)

(Nm)E[m]var[m]===N!(Nm)!m!NμNμ(1μ)

以上关于期望与方差的计算可以重新计算,或者用第一章习题1.10的结论直接得出。

贝塔分布

前面我们知道最大似然函数会容易过拟合,那么可以用贝叶斯分析来减小这个问题,但是之前我们先介绍一下贝塔分布

Beta(μ|a,b)=Γ(a+b)Γ(a)Γ(b)μa1(1μ)b1(3)

Γ(x)E[μ]var[μ]===0μx1expμdμaa+bab(a+b)2(a+b+1)

其中 a,b 是超参数,当 a,b 取不同值时,分布图如下所示:

beta plot

贝叶斯分析

贝叶斯公式: p(y|x)p(x|y)p(y)

为了使过程简化,我们希望后验概率 p(y|x) 与先验概率 p(y) 有同样的形式,这个先验被称为共轭先验(conjugate prior)。对于抛硬币问题(服从伯努利分布),由式(2)我们知道似然函数 p(m|N,μ)μm(1μ)Nm ,那么我们可以取贝塔分布作为共轭先验,那么

p(μ|m,l,a,b)m+lp(μ|m,l,a,b)p(x=1|D)======μm+a1(1μ)l+b1NΓ(a+b+l+m)Γ(a+m)Γ(b+l)μa+m1(1μ)b+l110p(x=1|μ)p(μ|D)dμ10μp(μ|D)dμE[μ|D]a+ma+m+b+l

假设我们设 a=1,b=1 D 有三个观测值,并且都为1,那么在贝叶斯分析中去预测为 45 ,直觉上至少要比最大似然函数的预测 1 要靠谱。

N 越来越大时,先验知识就会被逐渐弱化, limNa+ma+m+b+lmN ,最大后验与最大似然具有相同的预测值。但是对于数据量较少的应用,使用最大后验往往会比最大似然要好。

而且最大后验能够充当下一次观测数据的先验知识,从而达到顺序学习(sequential learning),能够更好的应用于大规模数据。比如我们将 D 划分数据集大小为 N0,N1 的两个子数据集 D0,D1 ,刚开始我们观测到数据集 D1 ,先验知识为 p(μ|a0,b0) ,那么对于数据集 D0 的后验为

p(μ|m0,l0,a0,b0)==Γ(a0+b0+l0+m0)Γ(a0+m0)Γ(b0+l0)μa0+m01(1μ)b0+l01Beta(μ|a0+m0,b0+l0)

然后我们观测到数据集 D1 ,此时以 D0 的后验作为其先验,那么同理我们有
p(μ|m1,l1,m0,l0,a0,b0)===Γ(a0+b0+l0+m0+l1+m1)Γ(a0+m0+m1)Γ(b0+l0+l1)μa0+m0+m11(1μ)b0+l0+l11Beta(μ|a0+m0+m1,b0+l0+l1)Beta(μ|a0+m,b0+l)

这个优点能够使我们更容易的训练大规模数据。

在贝叶斯学习中,当我们观测的数据越来越多的时候,后验分布的不确定性就会越来越小。
todo

多元变量

前面一节我们介绍的是变量只有两个状态(要么是1,要么是0),当变量有多个状态的时候,我们可以扩展成 x=(0,,1,,0)T,Kk=1xk=1,p(xk)=μk ,那么

p(x|μ)=k=1Kμxkk

其中 μ=(μ1,,μK)T,Kk=1μk=1 ,同之前的伯努利分布一样,对于 D={x1,,xN} 的似然函数有
p(D|μ)===n=1Nk=1Kμxnkkk=1KμNn=1(xnk)kk=1Kμmkk

求其最大值与二值变量是基本类似的,只是多了一个约束条件 Kk=1μk=1 ,我们可以用拉格朗日乘子法来进行求解

L(μ,λ)Lμkmkμk+λμkLλλμk=======k=1Kmklnμk+λ(k=1Kμk1)00mk/λ0NmkN

多项式分布

Mult(m1,m2,,mK|μ,N)(Nm1m2K)k=1Kmk=N==(Nm1m2K)k=1KμmkkN!m1!m2!mK!

 狄利克雷(Dirichlet)分布

多项分布的共轭先验是狄利克雷分布,如下

p(μ|α)Dir(μ|α)α0==k=1Kμαk1kΓ(α0)Γ(α1)Γ(αK)k=1Kμαk1kk=1Kαk

那么多项分布的后验

p(μ|D,α)p(μ|D,α)=p(D|μ)p(μ|α)k=1Kμαk+mk1kΓ(α0+N)Γ(α1+m1)Γ(αK+mK)k=1Kμαk+mk1k

以上都是离散变量的分布,下面介绍连续型变量中最常用的分布,高斯(Gaussian)分布

高斯分布

对于单一变量: N(x|μ,σ2)=12πσ2exp{(xμ)22σ2}

对于D维向量 x N(x|μ,Σ)=1(2π)D/2|Σ|1/2exp{12(xμ)TΣ1(xμ)} ,其中 μ,Σ 分别是D维均值向量和 D×D 协方差矩阵, |Σ| 是协方差矩阵的行列式。

对于单一变量,使其熵最大化的分布是高斯分布(PRML p54),这个性质同样适用于多元(multivariate)高斯分布。中心极限定理告诉我们独立同分布的随机变量序列的和近似高斯分布。

central limit theorem

下面考虑一下高斯分布的几何形态

Δ2=(xμ)TΣ1(xμ)

概率相等的点分布在一个 x 空间的曲面上。 需要注意的是 Σ 是一个对称矩阵,那么其特征向量形成一个正交向量集

ΣuiuTiujΣΣ1yi=uTi(xμ)Δ2y=(y1,,yD)Ty======λiuiIiji=1DλiuTiuii=1D1λiuiuTii=1Dy2iλiU(xμ)

其中: U 第i行为 uTi UTU=I

gaussian_geo_form

对于当前的高斯分布,协方差矩阵的特征值 λi 必须严格正(全部大于0),否则不能够合适地规范化,之后我们可能会遇到有些特征值为0的高斯分布,这些分布能够限制在更低的维度空间上。

之前我们考虑的是高斯分布的几何形态,由第一章p18我们知道 p(y)=px(g(y))|g(y)|,x=g(y) ,那么先求高斯分布 x 关于 y 的导数

yiJij|J|2===uTi(xμ)xixj=Uij|UTU|=|I|=1

而对称矩阵的行列式等于其特征值的连乘: |Σ|1/2=Dj=1λ1/2j ,那么
p(y)=p(x)|J|=j=1D12πλjexp{y2j2λj}

多元高斯分布的期望与协方差

E[x]E[xxT]cov[x]==z=xμ=odd===z=xμ=odd==yi=uiTz====1(2π)D/2|Σ|1/2xexp{12(xμ)TΣ1(xμ)}dx1(2π)D/2|Σ|1/2(z+μ)exp{12zTΣ1z}dz1(2π)D/2|Σ|1/2μexp{12zTΣ1z}dzμ1(2π)D/2|Σ|1/2xxTexp{12(xμ)TΣ1(xμ)}dx1(2π)D/2|Σ|1/2(z+μ)(z+μ)Texp{12zTΣ1z}dz1(2π)D/2|Σ|1/2(μμT+zzT)exp{12zTΣ1z}dzμμT+1(2π)D/2|Σ|1/2zzTexp{12zTΣ1z}dzμμT+1(2π)D/2|Σ|1/2i=1Dj=1DuiuTjexp{k=1Dy2k2λk}yiyjdyμμT+i=1DλiuiuTiμμT+ΣE[(xE[x])(xE[x])T]Σ

μ,Σ 共同控制了高斯分布的形态,在D维空间中,一般情况下, μ 有D个参数,而 Σ D(D+1)/2 个参数(对称矩阵),那么为了决定一个高斯分布的形态我们要有 D(D+3)/2 个参数。对于低维空间来说这个参数是可以接受的;但是对于非常大的 D ,计算量就会变得十分昂贵(协方差的逆矩阵)。

一个方法是限制协方差矩阵的形态:1. Σ=diag(σ2i),此时只有 2D 个参数;2. Σ=σ2I ,此时有 D+1 个参数。

confined_gaussian

由上图知道,虽然限制协方差矩阵的形态能够使计算协方差矩阵的逆更加快速,但是这也限制了高斯函数的分布从而影响高斯分布拟合数据的能力。

条件高斯分布与边缘高斯分布

条件高斯分布与边缘高斯分布的推导可以参考PRML p86。

xμΣΛ====(xaxb)(μaμb)(ΣaaΣbaΣabΣbb)(ΛaaΛbaΛabΛbb)

p(x)=p(xa,xb) ,当我们固定 xb 就得到 xa 关于 xb 的条件概率

12(xμ)TΣ1(xμ)=12(xaμa)TΛaa(xaμa)12(xaμa)TΛab(xbμb)12(xbμb)TΛba(xaμa)12(xbμb)TΛbb(xbμb)

由上面的推导我们知道,当 xb 固定时,上式是关于 xa 的二项式,因此 p(xa|xb) 是干死分布。下面介绍知道一个高斯分布的指数的二项式之后,求它的期望与协方差矩阵。

12(xμ)TΣ1(xμ)=12xTΣ1x+xTΣ1μ+const

上式的const是指与 x 无关的项。根据上式我们就得到 p(xa|xb) 的均值与协方差矩阵

12(xμ)TΣ1(xμ)Σ1a|bΣ1a|bμa|bμa|b=====12(xaμa)TΛaa(xaμa)12(xaμa)TΛab(xbμb)12(xbμb)TΛba(xaμa)12(xbμb)TΛbb(xbμb)12xTaΛaaxa+xTa(ΛaaμaaΛab(xbμb))+constΛaaΛaaμaaΛab(xbμb)μaaΛ1aaΛab(xbμb)

条件高斯分布 p(xa|xb) 的均值是 xb 的线性函数

至于边缘函数则可以由积分求得: p(xa)=p(xa,xb)dxb ,与条件高斯分布的推导基本类似都是,详细请看书P88,下面只给出结果

E[xa]cov[xa]==μaΣaa

高斯条件分布 p(y|x) 的均值是 x 的线性函数那么,

p(x)p(y|x)p(y)p(x|y)Σ=====N(x|μ,Λ1)N(y|Ax+b,L1)N(y|Aμ+b,L1+AΛ1AT)N(y|Σ{ATL(yb)+Λμ},Σ)(Σ+ALA)1

需要注意的是,书中的推导是先求出 p(x,y) ,然后再根据高斯条件分布与高斯边缘分布的结论直接得出 p(y),p(x|y)

高斯分布的最大似然

X={x1,,xN},{xn} 独立同分布。

lnp(X|μ,Σ)lnpμ=00μMLlnpΣ=00ΣML=====ND2ln(2π)N2ln|Σ|+12n=1N(xnμ)TΣ1(xnμ)12n=1T{Σ1(xnμ)+{(xnμ)Σ1}T}1Nn=1NxnN2Σ112n=1T{(xnμ)(xnμ)T(Σ2)}1Nn=1N(xnμML)(xnμML)T

由于 μML 不依赖于 ΣML ,可以先求 μML 再求 ΣML

E[μML]p(x,y)=p(x)p(y)E[μML]p(xm,xn)=p(xn)p(xm),p(x)N(x|μ,σ2)E[ΣML]===E[1Nn=1Nxn]E[x+y]=E[x]+E[y]1Nn=1NE[xn]=μE[xnxm]=μ2+σ2InmN1NΣ

顺序估计(sequential estimation)

首先对于高斯分布的均值(mean)估计: μML=1NNn=1xn

μNML====1Nn=1Nxn1NxN+1Nn=1N1xn1NxN+N1NμN1MLμN1ML+1N(xNμN1ML)

在我们估计了 N1 个观测值的 μN1ML 后又来了一个新的观测数据,我们能够很轻松的利用先前的 μN1ML 来估计 μNML ,大大减小了计算量。对于拥有 μMLNn=1xn ,我们可以利用上式来进行sequential estimation。如果更一般的话,我们可以利用Robbins-Monro算法推导更一般的形式

θ(N)=θ(N1)+aN1θ(N1)lnp(xN|θ(N1))

如单一变量的高斯分布, μMLlnp(x|μML,σ2)=1σ2(xμML) ,此时令 aN=σ2/N

高斯分布的贝叶斯推理

前面我们大致介绍了在贝叶斯推理中,最重要的是选择共轭先验。在高斯分布中,共轭先验的选择相对于多项分布更复杂,主要分为以下三种情况,先考虑单一变量的高斯分布
1 σ2 已知, μ 未知:取高斯分布作为先验 N(μ|μ0,σ2)
2 σ2 未知, μ 已知:取伽马分布作为先验

Gam(λ|a,b)E[λ]var[λ]===1Γ(a)baλa1exp(bλ)abab2

3 当 σ2,μ 都未知,取Normal-Gamma分布做为先验

p(μ,λ)=N(μ|μ0,(βλ)1)Gam(λ|a,b)

共轭先验的选取主要是考察似然函数的形式,这个推导就不详细叙述。对于D维变量的高斯分布的共轭先验,大致与单一变量的高斯分布一样
1 Λ 已知, μ 未知:取高斯分布作为先验 N(μ|μ0,Λ)

2 Λ 未知, μ 已知:取Wishart分布作为先验

W(Λ|W,ν)B(W,ν)==B|Λ|(νD1)/2exp(12Tr(W1Λ))|W|ν/2(2νD/2πD(D1)/4i=1DΓ(ν+1i2))1

3 当 Λ,μ 都未知,取Normal-Wishart分布做为先验

p(μ,λ)=N(μ|μ0,(βΛ)1)W(Λ|W,ν)

Student’s t-distribution

p(x|μ,a,b)St(x|μ,λ,ν)==0N(x|μ,τ1)Gam(τ|a,b)dτ]Γ(ν/2+1/2)Γ(ν/2)(λπν)1/2[1+λ(xμ)2ν]ν/21/2

t-分布是由无穷个具有相同 μ 不同 λ 的高斯分布累加而成的,t-分布比高斯分布具有更长的尾巴,从而使其对离群点更加鲁棒。

gaussian_vs_t-dist

ν 时,t-分布就变成了 N(x|μ,λ1)

t-dist_plot

St(x|μ,Λ,ν)Δ2E[x]cov[x]mode[x]=====Γ(ν/2+D/2)Γ(ν/2)(|Λ|1/2(πν)D/2)[1+Δ2ν]ν/2D/2(xμ)TΛ(xμ)μ,                 if    ν>1νν2Λ1,  if    ν>2μ

周期变量

从笛卡尔坐标系转到极坐标系。von Mises分布

p(θ|θ0,m)I0(m)==12πI0(m)exp(mcos(θθ0))12π2π0exp(mcosθ)dθ

混合高斯(Mixtures of Gaussians)

我们知道高斯分布是一个单峰分布,对于实际应用如果用单一高斯分布会存在很大的限制

pld_faithful_plot

上图中的左子图明显不能捕捉到数据的真实分布,我们希望能得到右子图的模型。因此提出混合高斯模型

p(x)k=1Kπk==k=1KπkN(x|μk,Σk)1

下图是3个高斯分布的混合模型

mixtures_gaussian_1

假如我们将混合系数 πk 泛化

p(x)γk(x)=k=1Kp(k)p(x|k)p(k|x)=p(k)p(x|k)lp(l)p(x|l)

对混合高斯模型的最大化似然函数采用EM模型

指数族分布

加入一个分布满足以下条件,则称其属于指数族分布

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

下面从指数族分布来考虑先前我们介绍过的一些分布

伯努利分布

p(x|μ)η=lnμ1μμp(x|η)=====Bern(x|μ)=μx(1μ)(1x)exp{xlnμ+(1x)ln(1u)}(1μ)exp{xlnμ1μ}σ(η)=11+exp(η)σ(η)exp(ηx)

对照指数族分布的形式,我们有

u(x)h(x)g(η)===x1σ(η)

这就是为什么我在二分类的逻辑回归问题中我们用logistics sigmoid function的原因。

多项式分布

p(x|μ)ηk=lnμkp(x|η)u(x)h(x)g(η)=====k=1Kμxkk=exp{k=1Kxklnμk}exp(ηTx)x11

我们知道 ηk 不是独立的,因为 Kk=1μk=1 ,加入我们只保留 K1 个参数,那么就会得到类似伯努利分布的指数形态。

exp{k=1Kxklnμk}ηk=lnμk1K1k=1μkμkp(x|η)u(x)h(x)g(η)=======exp{k=1K1xklnμk+(1k=1K1xk)ln(1k=1K1μk)}exp{k=1K1xklnμk1K1k=1μk+ln(1k=1K1μk)}exp(ηk)1+K1j=1exp(ηj)(1+j=1K1exp(ηj))1exp(ηTx)x1(1+j=1K1exp(ηj))1

μk=exp(ηk)1+K1j=1exp(ηj) 即softmax函数。

高斯分布

p(x|μ,σ2)ηu(x)h(x)g(η)======12πσ2exp((xμ)22σ2)12πσ2exp(x22xμ+μ22σ2)(μ/σ21/2σ2)(xx2)(2π)1/2(2η2)1/2exp(η214η2)

指数族分布的最大似然

在介绍指数族分布的最大似然之前,我们先求一下指数族分布的真实 η

 h(x)g(η)exp{ηTu(x)}dx=1

上式两边对 η 求导,得

 g(η)h(x)exp{ηTu(x)}dx+h(x)g(η)exp{ηTu(x)}u(x)dxlng(η)=h(x)g(η)exp{ηTu(x)}u(x)dx==0E[u(x)]

X={x1,,xN},p(xn|η)=h(xn)g(η)exp(ηTu(x)} ,那么它的似然函数为

p(X|η)lnpη=0lng(ηML)=={n=1Nh(xn)}g(η)Nexp{n=1N{ηTu(x)}}1Nn=1Nu(x)

从而当 N 时, ηML 等于真实的 η

共轭先验

由似然函数的形式我们得到指数族的共轭先验

p(η|χ,ν)=f(χ,ν)g(η)νexp{νηTχ}

其中 f(χ,ν) 是归一化系数

p(η|X,χ,ν)g(η)ν+Nexp{ηT(n=1Nxn+νχ)}

无信息(noninformative)先验

由于 p(y|x)p(x|y)p(y) ,如果先验在某些点上概率为0,就算我们之后观测到这些点,但是后验的概率也为0。而通常情况下,我们并不知道数据的概率分布函数,因此为解决上述问题,引入了noninformative prior。(也没太理解PRML这节的组织形式,先放着之后再看)

非参数(nonparametric)法

之前的概率分布都是一些具有特定形式的函数,并且能有少数的参数来控制这个函数的形态,但是采用这种方法会很大的局限性,因为我们选取的概率分布函数有可能不能捕捉数据的潜在概率分布。比如说高斯分布中,数据的潜在概率分布可能具有多个峰值,但是高斯分布是个单峰函数,因此在预测新的数据的时候,预测性能会很差,这种问题可以用混合高斯分布等扩展方法来解决。我们下面介绍另一个方法:非参数法。

假设观测值是从一个未知的概率分布 p(x) 中选取的, x 是D维空间的点,那么对于一个很小的区域 R ,这个区域的概率质量为

P=Rp(x)dx

现在假设我们从 p(x) 中选取N个观测值,那么落在区域 R 的观测值个数 K 服从二项分布

Bin(K|N,P)E[K/N]var[K/N]===N!K!(NK)!PK(1P)NKPP(1P)/N(E[K]=P)(var[K]=NP(1P))

当N很大的时候,由 var[K/N]=P(1P)/N 知道分布会集中分布中均值上,此时的均值 KNP

R 足够小,那么在这个区域上 p(x) 近似为一个常数,那么 Pp(x)V 。从而有 p(x)=KNV (两个假设,在实际应用中会不会导致结果相差太大?)。这个估计公式主要由 K,V 两个值决定

核密度估计(kernel density estimation)

固定 V ,从数据中决定 K。为了简化,我们使 R 是待估计值 x 上的边长为h超立方体(hypercube)在。当 xn x 满足一定条件时, xn 就落在该超立方体里。我们介绍Parzen window

k(u)={1,0,|ui|1/2,i=1,,D,otherwise

我们取 k((xxn)/h) ,那么 K=Nn=1k(xxnh) ,那么对于 p(x) ,我们就得到

p(x)=1NhDn=1Nk(xxnh)

Parzen window核函数会导致求出的 p(x) 人为的不连续性,而不是因为 p(x) 本身引起的。因此采用另一个核函数——高斯核函数

p(x)=1N2πh2n=1Nexp(||xxn||22h2)

gaussian_kernel

我们可以看到从现在的超参数就变成了 h

最邻近法(Nearest-neighbour methods)

核方法的一个局限性是,它对于大部分空间上具有相同的密度,但是有些数据集可能在某些区域密度较为集中,而另一些区域密度相对较小,那么核方法中的 h 就难以选择。此时我们考虑固定 K ,而使用数据去找到合适的 V.

nearest_neighbour

假设一个数据集一共有N个实例,其中有 Nk 个属于类 Ck kNk=N 。如果我们想分类一个新的实例 x ,我们以 x 为中心选取 K 个实例。那么在这里面有 Kk 个实例属于类 Ck

p(x|Ck)p(x)p(Ck)p(Ck|x)====KkNkVKNVKkNkp(x|Ck)p(Ck)p(x)=KkK

K-近邻算法的概率解释,通俗解释就是选取与测试实例最近的 K 个实例,如果这 K 个实例大多数都属于某个类 Ck ,就讲测试实例分类到 Ck

KNN_example

从上图的例子我们知道, K <script type="math/tex" id="MathJax-Element-422">K</script> 值选取会决定分类算法的性能。K-近邻算法需要保存整个数据集,当数据量很大时,计算十分昂贵,所以为了解决这个问题,可以构造树形搜索结构来加速计算。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值