模式识别与机器学习——概率分布
二元变量
伯努利分布
似然函数为
对数似然函数为
如果我们令关于u的导数等于零,我们就得到了最大似然的估计值
现在假设我们扔一个硬币3次,碰巧3次都是正面朝上。那么N=m= 3,且uML= 1。这种情况下,最大似然的结果会预测所有未来的观测值都是正面向上。常识告诉我们这个是不合理的。事实上,这是最大似然中过拟合现象的一个极端例子。
二项分布
Beta分布
如果我们选择一个正比于u和(1-u)的幂指数的先验概率分布,那么后验概率分布(正比于先验和似然函数的乘积)就会有着与先验分布相同的函数形式。
其中前面的系数用于保证Beta分布是归一化的
u的后验概率
后验概率是一个Beta分布,对于x= 1和x= 0的观测总数(先验的和实际的)由参数a和b给出。观测到一个x= 1仅仅对应于把a的值增加1,而观测到x= 0会使b增加1。图2.3说明了这个过程中的一个步骤。
预测可以表示为
在数据集无限大的极限情况下,此时公式(2.20)的结果变成了最大似然的结果(2.8)
多项式变量
那么分布可以表示为
似然函数
拉格朗日求解带约束的最大似然函数
多项式分布
狄利克雷分布
后验概率
高斯分布
一维形式
高维形式
我们考虑高斯分布的几何形式
首先,我们注意到协方差矩阵可以取为对称矩阵,而不失一般性。这是因为任何非对称项都会从指数中消失。现在考虑协方差矩阵的特征向量方程
特征值可以选为正交的
协方差矩阵可以表示成特征向量的展开的形式(特征值分解)
把公式(2.49)代入公式(2.44),二次型就变成了
这个坐标变换也可以表示为
现在考虑在由yi定义的新坐标系下高斯分布的形式。
其行列式为
协方差矩阵的行列式可以写成特征值的乘积
所以y坐标下的高斯分布可以表示为
这是D个独立一元高斯分布的乘积。特征向量因此定义了一个新的旋转、平移的坐标系,在这个坐标系中联合概率分布可以分解成独立分布的乘积。
一阶矩
二阶矩
可以化简得到
条件高斯分布
多元高斯分布的一个重要性质是,如果两组变量是联合高斯分布,那么以一组变量为条件,另一组变量同样是高斯分布。类似地,任何一个变量的边缘分布也是高斯分布。
我们把x划分成两个不相交的子集xa和xb
首先,我们来寻找条件概率分布p(xa|xb)的表达式。根据概率的乘积规则,我们看到,条件分布可以根据联合分布p(x) =p(xa;xb)很容易地计算出来。我们只需把xb固定为观测值,然后对得到的表达式进行归一化,得到xa的一个合法的概率分布。我们不显示地进行归一化,相反,我们可以用一种更有效率的方式求解。我们首先考虑由公式(2.44)给出的高斯分布指数项中出现的二次型,然后在计算的最后阶段重新考虑归一化系数。
可以表示为
因此可以得到
由于
所以可以得到
边缘高斯分布
首先考虑涉及到xb的项,然后配出平方项,使得积分能够更方便地计算。选出涉及到xb的项,我们有
唯一剩余的与xa相关的项就是公式(2.84)的右侧的最后一项,其中m由公式(2.85)给出。把这一项与公式(2.70)中余下的与xa相关的项结合,我们有
高斯变量的贝叶斯定理
我们令边缘概率分布和条件概率分布的形式如下
考虑一个联合分布z
为了找到这个高斯分布的精度,我们考虑公式(2.102)的第二项,它可以写成
找到(2.102)中的线性项,采用前面类似的方法可以得到
同时利用前文边缘分布、条件分布的结论
小结
高斯分布的最大似然估计
顺序估计
考虑公式(2.121)给出的均值的最大似然估计结果uML。当它依赖于第N次观察时,将被记作u(N)ML。如果我们想分析最后一个数据点xN的贡献,我们有
Robbins-Monro算法
考虑一对随机变量Θ和z,它们由一个联合概率分布p(z;Θ)所控制。已知Θ的条件下,z的条件期望定义了一个确定的函数f(Θ),形式如下
我们的目标是寻找Θ*使得f(Θ*) = 0。
我们假定z的条件方差是有穷的,因此
高斯分布的贝叶斯推断
假设方差是已知的
令u服从先验分布
花一点时间来研究后验概率分布的均值和方差是很有意义的。首先,我们注意到由公式(2.141)给出的后验分布的均值是先验均值u0和最大似然解uML的折中。如果观测数据点的数量N= 0,那么与我们想的一样,公式(2.141)就变成了先验均值。
如果从一个顺序的观点来看,那么贝叶斯方法就变得非常自然了。为了在高斯分布均值推断的问题中说明这一点,我们把后验分布中最后一个数据点xN的贡献单独写出来,即
现在假设均值是已知的,我们要推断方差
对应的共轭先验因此应该正比于λ的幂指数,也正比于λ的线性函数的指数。这对应于Gamma分布,定义为
所以我们得到后验分布
现在假设均值和精度都是未知的。为了找到共轭先验
我们现在想找到一个先验分布,它对于u和精度的依赖与似然函数有着相同的函数形式
这就是高斯-Gamma分布
在多维的情况下有些不一样
学生t分布
对高斯-Gamma分布积分
这就是student-t分布,参数lamda有时被称为t分布的精度(precision),即使它通常不等于方差的倒数。参数v被称为自由度(degrees of freedom),当自由度无穷的时候student-t分布变为高斯分布。
整理一下student-t的表示形式
周期变量
高斯分布不适合对周期变量建模,例如:我们可以测量许多天的风向值,然后希望使用一个参数分布来总结风向的规律。选择一个方向作为原点,然后应用传统的概率分布(例如高斯分布)。但是,这种方法的结果将会强烈依赖于原点的选择。
所以我们考虑下面的方法
我们现在考虑高斯分布对于周期变量的一个推广:von Mises分布
设一个二维的高斯分布
根据前面的方法有
代入二维高斯分布中
混合高斯模型
我们考虑K个高斯概率密度的叠加,形式为
对数似然函数
我们立刻看到现在的情形比一元高斯分布复杂得多,因为对数中存在一个求和式。这就导致参数的最大似然解不再有一个封闭形式的解析解。一种最大化这个似然函数的方法是使用迭代数值优化方法(Fletcher, 1987; Nocedal and Wright, 1999; Bishop andNabney, 2008)。另一种方法是使用一个被称为期望最大化(expectation maximization)的强大的框架,这将在第9章详细讨论。
指数族分布
伯努利分布转换为指数族分布形式
多项式分布转换为指数分布族形式
整理后可表示为
一元高斯分布转换为指数分布族形式
最大似然与充分统计量
让我们考虑用最大似然法估计公式(2.194)给出的一般形式的指数族分布的参数向量u的问题。
对公式(2.195)的两侧取梯度
共轭先验
我们已经多次遇到共轭先验的概念。例如在伯努利分布中,共轭先验是Beta分布。在高斯分布中,均值的共轭先验是高斯分布,精度的共轭先验是Wishart分布。一般情况下,对于一个给定的概率分布p(x|u),我们能够寻找一个先验p(η)使其与似然函数共轭,从而后验分布的函数形式与先验分布相同。对于指数族分布(2.194)的任何成员,都存在一个共轭先验,可以写成下面的形式
无信息先验
我们可以寻找一种形式的先验分布,被称为无信息先验(noninformativeprior)。这种先验分布的目的是尽量对后验分布产生尽可能小的影响(Jeffreys, 1946; Box andTiao, 1973; Bernardo and Smith, 1994)。这有时被称为“让数据自己说话”。
并且由于这必须对于任意的A和B的选择都成立,因此我们有
可以看出p(u)是常数,并且u的共轭先验分布是一个高斯分布。
根据公式(2.141)和公式(2.142),并且在标准差取无穷的情况下,在u的后验分布中,先验的贡献消失了。
非参数化方法
本章中,我们已经关注过的概率分布都有具体的函数形式,并且由少量的参数控制。这些参数的值可以由数据集确定。这被称为概率密度建模的参数化(parametric)方法。这种方法的一个重要局限性是选择的概率密度可能对于生成数据来说,是一个很差的模型,从而会导致相当差的预测表现。例如,如果生成数据的过程是多峰的,那么这种分布不可能被高斯分布描述,因为它是单峰的。
首先让我们讨论密度估计的直方图方法。
在实际应用中,直方图方法对于快速地将一维或者二维的数据可视化很有用,但是并不适用于大多数概率密度估计的应用。一个明显的问题是估计的概率密度具有不连续性,这种不连续性是因为箱子的边缘造成的,而不是因为生成数据的概率分布本身的性质造成。
核密度估计
让我们假设观测服从D维空间的某个未知的概率密度分布p(x)。我们把这个D维空间选择成欧几里得空间,并且我们想估计p(x)的值。区域R的概率质量为
在我们假设我们收集了服从p(x)分布的N次观测。由于每个数据点都有一个落在区域R中的概率P,因此位于区域R内部的数据点的总数K将服从二项分布
但是,如果我们也假定区域R足够小,使得在这个区域内的概率密度p(x)大致为常数,那么我们有
其中V是区域R的体积。把公式(2.244)和公式(2.245)结合,我们得到概率密度的估计,形式为
注意,公式(2.246)的成立依赖于两个相互矛盾的假设,即区域R要足够小,使得这个区域内的概率密度近似为常数,但是也要足够大,使得落在这个区域内的数据点的数量K能够足够让二项分布达到尖峰。
我们有两种方式利用(2.246)的结果。我们可以固定K然后从数据中确定V的值,这就是K近邻方法。我们还可以固定V然后从数据中确定K,这就是核方法。
这表示一个以原点为中心的单位立方体。函数k(u)是核函数(kernel function)的一个例子,在这个问题中也被称为Parzen窗(Parzen window)。根据公式(2.247),如果数据点xn位于以x为中心的边长为h的立方体中,那么量k(x - xn/h)的值等于1,否则它的值为0。
于是,位于这个立方体内的数据点的总数为
把这个表达式代入公式(2.246),可以得到点x处的概率密度估计
核密度估计(2.249)有一个问题,这个问题也是直方图方法具有的问题中的一个。这个问题就是人为带来的非连续性。在之前所述的核密度估计方法中就是立方体的边界。如果我们选择一个平滑的核函数,那么我们就可以得到一个更加光滑的模型。
其中h表示高斯分布的标准差。
近邻方法
核方法进行概率密度估计的一个困难之处是控制核宽度的参数h对于所有的核都是固定的。在高数据密度的区域,大的h值可能会造成过度平滑,并且破坏了本应从数据中提取出的结构。但是,减小h的值可能导致数据空间中低密度区域估计的噪声。因此,h的最优选择可能依赖于数据空间的位置。这个问题可以通过概率密度的近邻方法解决。
因此我们回到局部概率密度估计的一般结果(2.246)。与之前固定V然后从数据中确定K的值不同,我们考虑固定K的值然后使用数据来确定合适的V值。为了完成这一点,我们考虑一个以x为中心的小球体,然后我们想估计概率密度p(x)。并且,我们允许球体的半径可以自由增长,直到它精确地包含K个数据点。这样,概率密度p(x)的估计就由公式(2.246)给出,其中V等于最终球体的体积。这种方法被称为K近邻方法。
如果应用于分类问题