标签: 机器学习
概率分布
这章主要介绍一些常用的分布模型。
对于变量x的N次观测形成独立同分布的向量 x⃗ =(x1,...,xN) ,以此对x做一个密度估计,求出 p(x) .
密度估计⎧⎩⎨⎪⎪⎪⎪参数方法⎧⎩⎨⎪⎪给出分布形式,通过最大似然、最大后验等调整参数大小(多为指数族分布) 离散变量:二项式、多项式分布 连续变量:Gauss分布非参数方法:直方图、最近邻、核函数等
参数方法
由最基本的概率模型可以给出函数表达式,而其中的参数则由样本数据训练出来。
二项式分布
自变量只能取0或1
- 伯努利分布
Bern(x|μ)=μx(1−μ)1−x
在设定参数 μ 后,x的概率密度如上。解决了投掷一次硬币的问题。由经典概率论中求最大似然的方法可知
μML=1N∑xn
因此这个求和就是该分布下的充分统计量1。
- 二项分布
Bin(m|N,μ)=CmNμm(1−μ)N−m
是伯努利分布的扩展,相当于做了N次投掷操作,且每次的值是独立同分布的。令 m=1N∑xn ,可以通过样本空间来推出上面公式,并由期望的加法操作得到m的期望 E[m]=Nμ 。
但在小数据时,这些由经典概率论得到的参数容易过拟合。例如只投了三次硬币且恰好都为正,那么之后每次投正的概率是1。然而这和常理不符。因此需要贝叶斯的方法来重新解决这个问题。
- Beta分布2
Beta(μ|a,b)=Γ(a+b)Γ(a)Γ(b)μa−1(1−μ)b−1
这里先给定似然是正比于 μx(1−μ)1−x 的,再有先验是正比于 μa−1(1−μ)b−1 的,那么由于共轭性,后验正比于 μm+a−1(1−μ)l+b−1 ,而前面的归一化参数则可以通过积分确定。其中 l=N−m 。
由于一开始可以初始化参数a,b,可以减少过拟合的发生。数据集越大,参数方差越小,参数也越来越确定。前一个实验的后验会作为后一个实验的先验,逐步提高准确性。并且这种顺序方法只依赖于数据的独立性,不必存储数据,只需要流水线地处理数据修正参数即可。
在平均意义上,频率学同样可以解释参数的方差为什么越来越小
varθ[θ]=ED[varθ[θ|D]]+varθ[Eθ[θ|D]]≥ED[varθ[θ|D]]
即前验参数方差大于后验参数方差的均值。
多项式分布
变量取值可以有K个但每次只能取一个,则可以用K维向量来表示,取第k个结果则将对应第k维标1,其余标0。满足 x⃗ =(0,...,1,...,0)T且∑xk=1 ,可得先验
p(x⃗ |μ⃗ )=Πμxkk
且∑μk=1 ,这里不要求
μk 必须取0或1,而是0到1之间任意的实数。退化到二元即K=2,
μ⃗ =(μ,1−μ)且p(x|μ⃗ )=μx(1−μ)1−x
同样可以得到似然
p(D|μ⃗ )=Πμmkk
其中
mk 是每个向量
x⃗ 第k维的求和。因此第k维的参数
μk=mkN 。
扩展到多次实验,则假设
似然∝Πμmkk且 先验∝Πμαk−1k⇒后验∝Πμmk+αk−1k
给定超参数 α⃗ 由归一化得到先验
Dir(μ⃗ |α⃗ )=Γ(∑αi)Γ(α1)...Γ(αk)Πμαk−1k
给定参数 μ⃗ 得到似然
Mult(m⃗ |μ⃗ ,N)=CNm1,m2,...,mkΠμmkk
则后验为
p(μ⃗ |D,α⃗ )=Dir(μ⃗ |α⃗ +m⃗ )
连续变量高斯分布
- 单变量
单变量x的高斯分布,即正态分布为
(x|μ,σ2)=1(2πσ2)12exp{−12σ2(x−μ)2}
中心极限定理 设从均值为
μ 、方差为
σ2 (有限)的任意一个总体中抽取样本量为n的样本;当n充分大时,样本均值的抽样分布近似服从
μ 、方差为
σ2n 的正态分布。
因此正态分布具有广泛的应用。
- 多变量
D维多变量 x⃗ 的高斯分布为
(x⃗ |μ⃗ ,Σ)=1(2π)D21|Σ|12exp{−12(x⃗ −μ⃗ )TΣ−1(x⃗ −μ⃗ )}
其中 Σ 为协方差矩阵3,它的每个元素是各个向量元素之间的协方差。要证明积分和为1,需要用到许多矩阵的性质,尤其是特征向量这方面的内容。通过对 Σ 列出特征方程解出特征向量,定义了一个新的旋转、平移的坐标系
y⃗ =U(x⃗ −μ⃗ )
其中U是特征向量为各行的正交矩阵。在这个坐标系中联合概率分布可以分解成独立分布的乘积,归结到了一元高斯分布
p(y⃗ )=p(x⃗ )||=ΠDj=11(2πλj)12exp{−y2j2λj}
其中 是从x到y坐标系的Jacobian矩阵,可以看作是多元函数的导数
Jij=∂xi∂yj=Uji
恰好是U的转置。对于微元dx,dy有 dx=|x→y|dy , λ 则是当初列特征方程解出的特征值,且为了之后可以正确归一化,这里要求特征值均大于0,使得 Σ 正定。求一阶、二阶矩时,主要利用了换元和奇函数的对称性,求得 E[x⃗ ]=μ⃗ ,E[x⃗ x⃗ T]=μ⃗ μ⃗ T+Σ ,得 cov[x⃗ ]=Σ .
局限性
计算 Σ 和 μ 会产生的独立变量数量正比于 D2 ,计算量比较大。特殊的对角 Σ 和单值 Σ 可以让独立变量数量降到D,但又限制了分布的形式。
高斯分布是单峰模型,难以拟合多峰分布。后面解决的方式是引入潜变量。特别地,通过引入离散型潜在变量,相当多的多峰分布可以使用混合高斯分布来描述;引入连续型潜在变量可以产生出一种模型,其自由参数与维度D无关,模型数据集的相关性不变。
条件高斯模型
已知多元变量 x⃗ ,y⃗ 的联合分布是高斯分布,在其中一者是高斯分布的条件下,另一者也是高斯分布。将其中的y作为观测变量,求x的分布即得到条件分布。求法并不是直接积分,而是得到高斯分布指数的形式
exp{−12x⃗ TΣ−1x⃗ +x⃗ TΣ−1μ⃗ +const}
类似于
待定系数法,将x用x+y代替展开,可以直接对比得到
μx|y 与
Σx|y 。
引入了精度矩阵 Λ=Σ−1 方便结果的表示。
书上直接把多元变量 x⃗ 分为前M个变元 x⃗ a 与后N-M个变元 x⃗ b ,并将后者作为观测变量可得
μa|bΣa|b=μa−Λ−1aaΛab(xb−μb)=Λ−1aa
利用
舒尔补(Schur complement)解出
μa|bΣa|b=μa+ΣabΣ−1bb(xb−μb)=Σaa−ΣabΣ−1bbΣba
可见
μa|b 与
xb 有关,
Σa|b 与
xb 无关,条件分布
p(xa|xb) 是
xb 的线性函数,并且结果用精度矩阵表示更简单。
其中, Λ−1aa=(Σ/Σbb)=Σaa−ΣabΣ−1bbΣba ,即 Σ 关于 Σbb 的舒尔补,记为 (Σ/Σbb) 。且有
|Σ|=|Σbb|×|Σ/Σbb|
恰好对应着
p(ab)=p(b)p(a|b)
从舒尔补可以推出
Woodbury恒等式,将两侧同时乘以
(A+BD−1C) 即可证明其成立
(A+BD−1C)−1=A−1−A−1B(D+CA−1B)−1CA−1
假设 A 是一个很大的对角矩阵(因此很容易求逆矩阵), B行多列少( C 恰好相反),此时计算右侧的代价就远远小于计算左侧的代价。
边缘高斯模型
这里把多元变量 x⃗ 分为前M个变元 x⃗ a 与后N-M个变元 x⃗ b ,再将后者积分,得到关于前者的边缘分布,依然是高斯分布。通过高斯分布指数的二次项拆分,与其固定形式对比求出
E[xa]cov[xa]=μa=Σaa
与
xb 无关,用协方差矩阵表示更简单。
这里可以对比一下边缘、条件两种情况的分布
p(xa)p(xa|xb)=(xa|μa,=(xa|μa−Λ−1aaΛab(xb−μb),Σaa)Λ−1aa)
第一章的时候说过它们分别对应了变量概率里的加和乘,这暗示着贝叶斯又要来搞事了。
高斯变量的贝叶斯定理
给定 x 的一个边缘高斯分布,以及在给定 x 的条件下 y 的条件高斯分布,形式为
p(x)p(y|x)=(x|μ,=(y|Ax+b,Λ−1)L−1)
y的边缘分布以及给定y的条件下x的条件分布为
p(y)p(x|y)=(y|Aμ+b,=(x|Σ{ATL(y−b)+Λμ},L−1+AΛ−1AT)Σ)
其中
Σ=(Λ+ATLA)−1
贝叶斯推断时,似然函数的形式为μ的二次型的指数形式。因此如果我们把先验分布 p(μ) 选成高斯分布,那么它就是似然函数的一个共轭分布。因为对应的后验概率是两个 μ 的二次函数的指数的乘积,因此也是一个高斯分布。
精度是可以相加的,因此后验概率的精度等于先验的精度加上每一个观测数据点所贡献的一个精度。当我们增加观测数据点的数量时,精度持续增加(波峰概率密度增加),对应于后验分布的方差持续减少(锁定区域减小)。
在顺序更新的框架下,观测到N个数据点后的均值表达为:观测到N-1个数据点之后的均值以及数据点 xN 的贡献。
高斯混合模型(GMM)
解决前面说的高斯分布不能描述单峰分布,故研究基本高斯分布的线性组合。
p(x)=∑k=1Kπk(x|μk,Σk)
且
∑k=1Kπk=1
即给每个基本的高斯分布赋予权重,即混合系数,权重的分布是概率分布问题,故一开始对权重的设置为先验概率p(k),即
πk ,后验为p(k|x),记为
γk(x) 。最大似然来求最优参数
ln p(X|π,μ,Σ)=∑n=1Nln {∑k=1Kπk(xn|μk,Σk)}
但由于是多元问题得不到闭势解,不能直接求出表达式。之后会介绍两种方法求解:
1. 迭代数值优化
2. 期望最大化
指数族分布
其形式为
p(x|η)=h(x)g(η)exp{ηTu(x)}
总满足
g(η)∫h(x)exp{ηTu(x)}dx=1
其中变量x可以为标量/向量、离散/连续,η为自然参数,g(η)为归一化系数。除了最后的GMM,前面提到的分布均为指数族分布,并能调整后化出该形式。因此只要讨论一般性质即可。
求期望
对一般形式的积分式关于 μ 求导与带入,即可得
−∇ln g(η)=E[u(x)]
u(x) 的协方差可以根据g(η)的二阶导数表达,对于高阶矩的情形也类似。
充分统计量
对一般形式求最大似然下的参数
−∇ln g(ηML)=1N∑u(xn)
因此充分统计量只与
∑u(xn) 相关,具体的会有
u(x)=x或(x,x2)T ,在观测中只需取数据集中的这些量。
共轭先验
一般情况下,对于一个给定的概率分布p(x|μ),我们能够寻找一个先验p(η)使其与似然函数共轭,从而后验分布的函数形式与先验分布相同,因此使得贝叶斯分析得到了极大的简化。
例如,多项式分布的参数的共轭先验被叫做狄利克雷分布(Dirichlet distribution),而高斯分布的均值的共轭先验是另一个高斯分布。所有这些分布都是指数族( exponential family )分布的特例。
非参数方法
并不能预测一个模型是符合何种分布时,就不能套用上面的参数方法了。这时候更需要一般化的方法。
直方图
将D维空间中的每一维都均分M份,每当有数据被观测到,对应的小体元数值就加一。最后通过归一化操作得到概率分布。
缺点:M不能太大,容易造成维度灾难,或者过拟合。M也不能太小,否则块太大,边界粗糙,难以光滑拟合。
核方法
假设 D 维空间的某个未知的概率密度分布p(x),包含x的某个小区域R的概率质量为P,有N次观测,落在该区域内K次,区域体积为V,则
P=p(x)V=KN⇒p(x)=KNV
区域 R 要足够小,使得这个区域内的概率密度近似为常数,表达式才成立,但小了噪声和抖动大;但是R也要足够大,使得落在这个区域内的数据点的数量 K 能够足够让二项分布达到尖峰,但可能平滑后丧失了部分有特征的值。
核方法是令V固定,计算被划入该区域的点数个数。用来判定x是否落入该区域的函数即为核函数,记为k(x),例如Parzen窗中认为x在 u 为中心的超立方体内时,k(x)=1,否则为0.为了使得边界光滑,可以让k(x)具有中心高边缘低的高斯核函数,则有
p(x)=1N∑n=1N1(2πh2)D2exp{−||x−xn||22σ2}
其中h为超立方体的高,
V=hD ,控制h的大小即是区域R的大小,适中最好。
获得观测数据后不需计算,只需要投进小体元中存储即可。
近邻方法
近邻方法是对p(x)表达式中的K固定,再计算投到的V有多大。即先确认一点为中心的球体内要有K个点,逐步扩大球体体积直到刚好包括了K个点,此时即为目标V。
在分类问题中用到的K-means算法常根据最近的K个点中同类数量最多的作为该点的类别,即最大后验类别。
从课后留的作业来看,这章的重点内容是:
- 能够推算出变量线性变换后的高斯分布的参数
- 数学知识:舒尔补、Woodbury等式、拼接的矩阵的逆
- 指数族、充分统计量、无信息先验的概念