再看高斯
高斯分布 在机器学习中是如此重要,我们必须对其进行透彻的理解和掌握。
1 定义
对于单变量随机变量高斯分布可以写为:
N(x|μ,σ2)=1√2πσ2exp{−(x−μ)22σ2}我们在 之前的博文 中证明过这个形式的分布确实是概率分布,此处略去证明。
对于D维的高斯随机矢量x,则:
N(x|μ,Σ)=1(2π)D/21|Σ|1/2exp{−12(x−μ)TΣ−1(x−μ)}其中μ是D维的均值矢量,Σ是D×D的协方差矩阵。|Σ|是Σ的行列式。
高斯分布如同幽灵一样无处不在。比如,对于单变量随机变量,最大化熵的分布是高斯分布,同样对于多变量随机矢量亦是如此。再比如,假设我们考虑多个随机变量和的分布,根据中心极限定理,满足一定条件后(这些条件都是很容易满足的条件),这些随机变量的和服从高斯分布。在机器学习中更是如此。实际上,对高斯分布的处理需要相当的数学基础,但是在以后的学习中,我们会发现这种投入是值得的。
2 高斯分布的形状
对单变量高斯分布我们早已熟悉其钟形曲线。对于高斯矢量,我们从式(2)可以看到起形状依赖于二次型:
Δ2=(x−μ)TΣ−1(x−μ)这个Δ叫做μ到x的 Mahalanobis距离。当Σ是单位阵时,这个距离退化为欧几里得距离。当这个二次型是常量的时候,高斯分布在x面上是常量。
不失一般性,对于Σ我们可以假设其为实的对称的。对于实的对称的Σ,其特征值也一定是实的。
Σui=λiui其中i=1,…,D。因为Σ是实的对称的,所以其特征向量可以从一个正交基中选取,即:
uTiuj=σij协方差矩阵Σ可以表示为特征向量的扩展:
Σ=D∑i=1λiuiuTi同理,协方差矩阵的逆矩阵也可以表示为:
Σ−1=D∑i=11λiuiuTi我们定义:
yi=uTi(x−μ)则式 (3)可以简化为:
Δ2=D∑i=1y2iλi我们可以把yi解释为一个新的坐标系统,该坐标由正交矢量ui通过相对于原来的坐标xi移位和旋转得到。为了生成y=(y1,…,yD)T,我们有:
y=U(x−μ)其中U是一个矩阵,其每一行是uTi,根据式 (5)我们知道U是一个正交矩阵,即UUT=I。 从式 (8)我们可以知道二次型 (3) 在平面上是一个常量。如果所有的特征值λi是正数,那么这些二次型是椭圆, 其中心在μ,其轴的方向是ui的方向,轴的长度与特征值λi有关。如图1所示:
Figure 1: 二维高斯矢量在exp(−1/2)时的图形
为了使得高斯随机变量有比较严格的定义,要求所有的特征值λi是正数,否则这个分布的积分就不会是1,也就是说这个分布没有归一化。对于非正定矩阵(有至少一个特征值为0或者负数),高斯分布会降维为低维的子空间。
现在我们在新的坐标系下考虑高斯分布。从x到y的转化过程,我们有一个Jacobian矩阵J,
Jij=∂xi∂yj=Uji其中Uji是矩阵UT的元素。根据U的正交性,我们得到:
|J|2=|UT|2=|UT||U|=|I|=1所以:
|Σ|1/2=D∏j=1λ1/2j所以在yj坐标系中,高斯分布的形式是:
p(y)=p(x)|J|=D∏j=11(2πλ)1/2exp{−y2j2λj}这个形式非常的简洁:可以看做是多个独立的高斯随机变量的乘积。特征向量定义了移位和旋转的规则,基于这个规则联合概率密度分解为独立随机变量的乘积。显然:
∫p(y)dy=D∏j=11(2π)1/2exp{−y2j2λj}dyj=13 二维高斯随机变量的形状
我们从几何角度观察多维高斯随机变量的形状,为便于观察,我们观察二维的高斯随机变量的形状。
首先,假设:
μ=[00]当然μ和Σ也可以选择为其他的量,但是注意Σ必须是非奇异矩阵,这样Σ−1存在。否则就要采取降维处理,变为一维随机变量。
我们首先画出这样的二维高斯随机变量的图形:
Figure 2: Σ为一般矩阵时固定概率值x的分布
从图中可以看出,对于固定的概率值,x的分布是个椭圆。此时高斯分布图形如下所示。
Figure 3: Σ为一般矩阵时高斯分布的图形
然后我们对这个二维高斯随机变量进行类似于式 (10)的坐标轴转换。把Σ转换为一个对角矩阵。对Σ进行SVD分解,则:
U=[−0.7070.7070.7070.707]且有对角矩阵:
Σ∗=[2006]此时,固定概率值的分布图和二维高斯分布图分别如图4和图5所示:
Figure 4: Σ为对角矩阵时固定概率值的分布图形
Figure 5: Σ为对角矩阵时二维高斯分布图形
更进一步,如果Σ是一个单位矩阵,或者是一个单位矩阵的标量倍,则固定概率值的分布图和二维高斯分布图分别如图6和图7所示::
Figure 6: Σ为单位矩阵时固定概率值的分布图形
Figure 7: Σ为对角矩阵时二维高斯分布图形
4 多变量高斯分布的期望和方差
接下来我们通过观察多变量高斯分布的矩赋予μ和Σ特定的数学意义。高斯随便量x的期望:
E[x]=1(2π)D/21|Σ|1/2∫exp{−12(x−μ)TΣ−1(x−μ)}xdx=1(2π)D/21|Σ|1/2∫exp{−12(z)TΣ−1(z)}(x−μ)dz我们实用了变量替换z=x−μ。我们注意到指数函数部分是一个偶函数所以在积分过程中z+μ中的z会变为0(奇函数在(−∞,∞)上的积分为0),只剩下μ,因此:
E[x]=μ我们称μ为x的均值。 接下来,我们考虑高斯分布的二阶矩。在单变量场景下,二阶矩定义为E[x2],在多变量时,有D2个二阶矩E[xixj],我们把这些二阶矩合在一起构成一个矩阵E[xxT],这个矩阵的计算过程为:
E[xxT]=1(2π)D/21|Σ|1/2∫exp{−12(x−μ)TΣ−1(x−μ)}xxTdx=1(2π)D/21|Σ|1/2∫exp{−12(z)TΣ−1(z)}(z+μ)(z+μ)Tdz这里我们再一次的实用了变量替换z=x−μ。(z+μ)(z+μ)T中的μzT和μTz在积分过程中会变为0,只剩下μμT和zzT。对于μμT,这是个常量,在积分的过程中仍然会以常量的形式留下来。对于zzT我们可以采用z的特征向量展开的形式处理。
z=D∑j=1yjuj其中yj=uTjz, 则:
1(2π)D/21|Σ|1/2∫exp{−12(z)TΣ−1(z)}(z)(z)Tdz=1(2π)D/21|Σ|1/2D∑i=1D∑j=1uiuTj∫exp{−D∑k=1y2k2λk}yiyjdy=D∑i=1uiuTiλi=Σ综上,我们有:
E[xxT]=μμT+Σ对于单变量,我们通过E[(x−μ)(x−μ)]来定义方差。同样的在多变量情况下,仍然可以减去军区,定义一个随机矢量的协方差:
cov[x]=E[(x−E[x])(x−E[x])T]对于高斯分布,我们有:
cov[x]=Σ又因为参数Σ控制着x的协方差。所以我们称Σ为协方差矩阵。
5 高斯分布的局限
尽管高斯分布用途广泛,但其也不是放之四海而皆准的真理。高斯分布有其独有的缺陷。考虑一个一般的对称协方差矩阵Σ,其有D(D+1)/2个独立的参数。对于μ,又有D个独立的参数。多以一共有D(D+3)/2个参数。当D变大时,其独立的参数个数以D的二次方增长。计算这么大矩阵的逆矩阵是一件非常困难的事情。解决办法?一个有效的办法是限制协方差矩阵的形式,如果我们只考虑Σ是对角阵,即Σ=diag(σ2i),我们就只用关心2D个独立的参数。对应的概率密度图像是一系列同心的且轴与坐标轴平行的椭圆。当我们限制协方差矩阵Σ=σ2I时,这个协方差矩阵叫做各向同性协方差。这个时候我们只需要处理D+1个独立的参数。三个类型的高斯分布,在固定概率密度下的形状如图8所示。
Figure 8: 高斯分布在固定概率时的形状
有得必有失。图8 中对高斯分布的近似限制了分布中的自由变量个数使得求逆变得异常简单,但是也限制了概率密度函数的形式,使我们很难捕捉到数据中的可能有用的相关性。
另一个高斯分布的限制是:高斯分布是单峰分布,只有一个最大值。所以高斯分布对于多峰分布的模拟能力有限。所以高斯分布一方面可能由于过多的参数而过于灵活,一方面由于其具有单封特性而只有有限的近似能力。我们在以后的学习中会看到,通过引入隐藏变量可以很好的解决这个问题。特别是,通过引入离散的隐式变量到混合高斯模型(mixtures of Gaussians)中,我们可以获得丰富多彩的多峰分布(multimodal distributions)。通过引入连续的隐式变量,对模型的控制可以独立于D维的数据空间。实际上,通过引入离散的或者连续的隐式随机变量,我们获得了非常多的有用模型,这些模型在机器学习的方方面面都发挥了重要的作用。比如,基于高斯模型的马尔科夫随机场(Markov Random field, MRF)在图像处理方面的应用。比如,线性动态系统(linear dynamical system,LDS)在时间序列建模方面也非常重要。