机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

时间:2024-03-25 17:09:24

1.为什么是高斯分布?是什么让高斯分布变得有用而且重要呢?

a.描述高斯分布只需要俩个参数,它们是均值和方差,它们就是该分布的本质信息。(Only two parameters)
b.高斯分布具有一些很好的数学性质,例如:多个高斯分布的乘积可以形成另一个高斯分布。(Good mathematical properties)
c.中心极限定理告诉我们任何随机变量的样本均值的期望都收敛于高斯分布。(Central limit theorem)
以上说明高斯分布是一个为噪声和不确定性建模的合适选择。

2.最大似然估计(MLE)

似然(Likelihood)的定义:似然是当给定模型参数时,随机变量取到观测值的概率,下标 i 表示一次特定的观察,在x的多个测量值中,这次观察结果被记为xi

Likelihoodp({xi}|μ,σ),其中 {xi}为观测数据(observed data),μ,σ为未知参数(unknown parameters) (代表着给定参数,观测到所有数据可能性,所以越大越好)

假如我们有一个小球,如下面图片所示,那我们怎么来用高斯模型(要求确定μ,σ)来描述其像素值的分布,可以用极大似然法的方法来估计。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

怎么通过观察到的数据来估计高斯模型的均值和方差?

(1) 这里需要强调的是,我们拥有数据,而我们需要去估计的是模型的参数。我们对于给定观测数据时,能将似然函数最大化的参数很感兴趣。

如果用数学的方式来表达刚才讲的,我们可以这么写:
μ^,σ^=arg maxμ,σ({xi}|μ,σ)
其中 μ^,σ^ 表示对 μ,σ的估计 。

我们需要最大化的似然函数是所有样本数据的联合概率,如果每个观测不是独立的,问题将很棘手。如果我们假设每一个观测之间都是相互独立的,联合似然概率就可以表达为关于每个样本的似然函数的乘积,公式如下所示:
p({xi}|μ,σ)=i=1Np(xi|μ,σ)

在这种情况下,我们试着计算μσ的极大似然估计。

由于对数具有单调递增的性质,所以我们最大化似然函数的时候,可以利用对数函数的性质,通过最大化对数似然函数就能找到参数值的极大似然估计,虽然函数值是不同的,但是使目标函数达到最大值的参数值却是一样的。

arg maxμ,σi=1Np(xi|μ,σ)=arg maxμ,σ ln{i=1Np(xi|μ,σ)}=arg maxμ,σi=1N ln p(xi|μ,σ)

从上面公式中,利用对数函数的性质,我们将最大化似然函数转化为每个测量量的似然取对数后的和。

因此,问题就转换为找到μ,σ,使得每个测量量的似然的对数和最大。

(2) 这里值得注意的是,我们的所用的似然函数为高斯模型:
p(xi|μ,σ)=12π σexp{(xiμ)2σ2}

利用对数的形式,我们可以转换为:
ln p(xi|μ,σ)=ln12π σexp{(xiμ)2σ2}={(xiμ)2σ2lnσln2π}

因此,
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
μ^,σ^=arg maxμ,σi=1N {(xiμ)2σ2lnσln2π}=arg maxμ,σi=1N {(xiμ)2σ2lnσ}(ln2π)=arg minμ,σi=1N {(xiμ)2σ2+lnσ}()
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
我们令 J(μ,σ)=i=1N {(xiμ)2σ2+lnσ},故优化问题变为μ^,σ^=arg minμ,σJ(μ,σ)

在优化过程中,
1.我们先对μ求偏导,并令其等于0,得到μ^Jμ=0u^
2. 用μ^代替μ再对σ求偏导,令其等于0,得到σ^ Ju^,σσ=0σ^

最后得到一个很简单的结果(具体详细推导这里省略):
μ^=1N i=1Nxi, 样本的均值
σ^2=1N i=1N(xiμ^)2, 样本的方差

通过以上推导,我们就可以确定小球像素的分布了。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

3.多变量高斯分布(Multivariate Guassian)

多变量高斯分布使用了多个变量,因此它能够使用更丰富的特征对目标建模,让我们重新思考之前的小球颜色的例子,在那个例子中,我们使用单变量μ,然而颜色本身可以从多个维度来描述,例如,彩色照片经常通过三个颜色通道定义红、绿、蓝。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)
如果我们在3D图中画出所有像素的RGB值,就能得到如下的色彩分布:
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

现在考虑使用RGB三通道模型来对红球色彩进行建模。让我们来讨论下在这个例子中高斯分布是怎么工作的。

数学上,多变量高斯分布表示为指数形式(exponential)和比例因子相乘的形式,

p(x)=1(2π)D/2||1/2exp{12(xμ)T1(xμ)}

其中:
D表示维度的数量,如果为RGB,那么D=3。
x 表示样本变量,同时也是一个向量(元素代表各个维度样本的值),我希望获得它们的概率模型。
我们希望得到在高斯分布(Gaussian distribution) x 的概率。
μ 表示均值,同时也是向量。
表示协方差矩阵(covariance matrix),是一个方阵(square matrix)。对于协方差矩阵,由俩个部分组成:对角的项(Diagonal terms)和非对角的项(off-diagonal terms)。对于RGB三个通道的图片,其协方差矩阵是3x3的一个矩阵,如下所示:
=[σx12σx1σx2σx1σx3σx2σx1σx22σx2σx3σx3σx1σx3σx2σx32]

对角线代表变量 x1x2x3各自的独立方差,非对角项σx1σx2σx2σx3 等代表了俩个变量的相关性。相关性部分代表了一个变量相对于另一个变量的相关程度。
|| 代表协方差矩阵的行列式。

让我们来用蓝色的球举一个例子,我们现在正在处理3维变量RGB,变量的向量包含了我们在红色、绿色、蓝色通道的样本像素值。因此,其均值将是3x1的向量,协方差矩阵将会是3x3的矩阵。

p(x)是指某个样本像素(向量,为x)在假设我们知道了小球RGB模型的均值和方差的条件下从小球RGB模型(三维高斯模型)抽出的概率。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

对于2D的情况,我们令x=[x y]Tμ=[0 0]T=[1001 ], 则如下所示,其中,当从上面往下看的时候,我们会发现其等高线上的概率是一样的。由于协方差是个对角矩阵且对角线上的值是一样的,所以等高线是一个圆。

最里面的圆代表着概率的峰值,外面的圆代表这概率较小的区域
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

以下列举几种当参数变化时高斯分布的变化情况:
1. 均值发生变化:x维度均值变大,y维度均值变小
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)
2. 协方差矩阵中随机变量的独立方差的值发生变化:σ2变大
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)
3. 当协方差矩阵中非对角线上的值不同时,即俩个随机变量具有相关性(这时侯模型的有些性质在2D投影其实是看不到的)。其中分为σxσy>0σxσy<0
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

其中有俩个特殊的性质:
1.协方差矩阵必须是特殊的正定对称矩阵,这意味着协方差矩阵的元素是关于对角线对称的,因此,的特征值(eigen value)必须为正的。
2.即使矩阵有非0的相关项,我们总可以找到一种坐标变换让分布的形状变成对称的。我们可以使用特征值分解算法,来将协方差进行矩阵分解进而得到这些变换。可以被分解成UDUT的形式,其中D是对角矩阵。

4.多变量高斯分布下的最大似然估计(MLE of Multivariate Gausssian)

如何从观测数据计算和估计多维高斯模型的参数。

多维高斯模型拥有俩个参数:μ

Likelihood(似然): 是一个给定的参数未知的模型产生这个观测数据{xi}(请注意这里是xi的集合)的概率。

根据上面一维高斯函数的推导,同样的,我们可以利用其思想,最后得到 (详细推导):

μ^=1N i=1Nxi

^=1Ni=1N(xiμ^)(xiμ^)T

回到小球的例子,我们可以得到其更加具体的分布,如下图所示,红色和蓝色随机变量呈现的是负相关关系。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

5. 高斯混合模型(Gaussians mixture model, GMM)

高斯混合模型的优点和缺点?
如何从数学上描述高斯混合模型?

在实际中,一个随机变量的分布不一定是只有一个峰值且对称的,这时候我们可以用多个高斯分布来代表这样一个随机变量的分布。若只用一个高斯分布来表示,则结果可能不会满意,如下图所示:

机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

多个高斯分布相加得到一个新的分布:
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

首先,我们令 g 代表一个有某均值和协方差的单纯高斯模型的密度函数,则混合高斯模型(GMM)可以被写成:

p(x)=k=1Kwkgk(x|uk,k),

其中 gk(x|uk,k)代表参数为(μk,k)的单纯高斯分布。

混合高斯模型由这些有不同参数的高斯模型的加权求和,其中 wk都是正的,且他们的和为1,即k=1Kwk=1,wk>0

这保证了混合高斯模型的密度函数积分仍然为1,理论上可以用多个高斯分布表示任意形状的分布。

但是混合高斯模型也有以下的缺点:
1. 参数变多:
μ={μ1,μ2,...,μk}
={1,2,...,k}
w
K
2. 参数没有解析解
3. 过拟合

6. 利用期望最大化算法估计混合高斯模型参数(GMM Parameter Estimation via EM)

不同于纯高斯模型,对于混合高斯模型,我们很难求出令人满意的解析解(analytics solution)。相反,通过期望最大化迭代算法(Expectation Maximization)可以得到局部的优化解。

純高斯模型只有俩个参数,u, 而混合高斯模型多个μw 和 高斯模型的个数 K

在接下来的计算中,我们令w=1K,这可以让我们把重心放在怎样估计均值和方差矩阵的参数。

简单回顾一下,最大似然估计(maximum likelihood estimation)意味着我们要寻找模型的参数来使得模型最可能产生观察到的数据。

对于最大似然估计,从前面可得:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
μ^,Σ^=arg maxμ,Σi=1Np(xi|μ,Σ)=arg maxμ,Σ ln{i=1Np(xi|μ,Σ)}=arg maxμ,Σi=1N ln p(xi|μ,Σ)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
由于 p(x)=k=1Kwkgk(x|uk,k)

故得到:μ^,Σ^=arg maxμ,Σi=1N ln{1Kk=1Kgk(xi|uk,Σk)} (不能再继续简化了,因为在log函数中对純高斯模型进行了求和,所以不能通过求导来求得最小值)。

在特定的条件下,我们可以通过EM算法来得到合理的结果,首先就求解高斯混合模型(GMM)参数,引入EM。

  1. μΣ进行初始化猜测。
  2. 新的变量Z,我们称之为潜在变量(latent variable)

首先我们需要先估计需要求解的参数。对于这类非凸优化(non-convex optimization)的复杂问题,有许多的次优解(suboptimal solutions),我们称之为局部最小值(local minimum)。同时,初始化的值将会影响到最后的结果,因此初始值对该问题而言是十分重要的。

接着我们讨论潜在变量 Z。潜在变量Z为关于第K个高斯模型的第i个数据点的潜在变量,定义为第k个高斯模型在该数据点处的相对比。本质上,Z表明了第i个点是由第k个高斯模型产生的概率。 表达如下:

zki=gk(xi|uk,Σk)k=1Kgk(xi|uk,Σkg)

让我们来探讨下在1维情况下的例子,其中K=2。在一维情况下,我们有一系列点,其中有俩个高斯模型g1和g2,且g1在xi处的概率为p1, g2在xi处的概率为p2, 则我们可以计算z1iz2i, 分别代表在第i点中,属于g1和g2模型的概率。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

现在,给定所有数据点关于所有模型的潜在变量,我们可以重新定义带权的均值和协方差矩阵,该权重指的是Z。如果一个数据点属于第k个高斯模型的概率很小,则这个点对计算第k个模型的参数的贡献就越小。

=============================================================
u^k=1zki=1Nzkixi
Σ^k=1zki=1Nzki(xiuk^)(xiu^k)T
zk=i=1Nzki (这三条公式说明怎么通过潜在变量Z来更新μΣ)
============================================================

综合之前讨论的东西,我们可以迭代的计算参数和潜在变量,直到其值收敛为止。以下是计算的步骤:
1.初始化参数μΣ
2. 使用初始化的参数μΣ来计算潜在变量Z。
3. 一旦Z被更新,我们就保持Z不变用来更新μ Σ
4. 重复2.3步,直到参数的改变量变得很小为止。

7. 期望最大化(Expectation Maximization)

需要有一定的概率和凸优化基础。

让我们把EM算法看作是对目标函数下界的最大化过程。

EM算法的主要思想可以用 Jensen 不等式解释,考虑一个如下图的2维图所示的凸函数,我们在定义域中取俩点x1x2以及他们的中点x1+x22

现在我们将比较俩个值,首先是中点的函数值 f(x1+x22), 是曲线上的一个点,第二个是俩点函数值的平均值 f(x1)+f(x2)2, 落在fx1fx2 俩个点的连线上。

可以清楚的看到,直线在函数曲线的上方,因此f(x1)+f(x2)2 永远大于f(x1+x22)

机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

我们可以一般化这个想法,f(a1x1+a2x2)a1f(x1)+a2f(x2), 这个不等式在任意大于0的权值下都成立。其中 a1+a2=1,a10,a20

事实上,它同样适用于正权值下多个点的情况,可得f(aixi)aif(xi), 其中 ai=1,ai0

甚至在多维的情况下,只要我们的函数是凸的。如果函数是凹的,我们只需要翻转这个函数,即f(aixi)aif(xi)

由于我们接下来要处理的是对数函数,且它是凹函数,故有
1 ln(aixi)ailn xi

现在我们引入我们永远都无法确切知道的潜在变量(latent variable),潜在变量在一些特定的应用中是清楚的,例如前面提到的混合高斯模型的参数估计。我们需要在所有变量上取潜在变量的边缘概率(What we are going to do with this latent variable is to take the marginal probability over the variable)。

2p(X|θ)=Zp(X,Z|θ)

在之前,我们考虑概率的对数:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
ln p(X|θ)=ln Zp(X,Z|θ) (,loglikelihood)=ln Zq(Z)p(X,Z|θ)q(Z)(q(Z)Z) Zq(Z) ln p(X,Z|θ)q(Z)(,lowerbound)
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

正如我们无法直接最大化概率和的对数,但是我们可以利用函数的下界,对于它我们是可以计算的。获得下界意味着找到了潜在变量(latent variable) Z的一个分布q(Z)

假设我们有一个初始猜测的参数 θ0,并且我们通过利用猜测的参数 θ0得到了 q, 进而得到了下界 g

3(a) ln p(X|θ) Zq(Z) ln p(X,Z|θ)q(Z)
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

正如前面提到的,对数形式的概率可以被看做是参数的函数。假设f 和 g 是如图所示的 θ 的函数,f 和 g并不一样,但是它们在 θ0 附件有一些局部的相似性。别忘记我们是要求一个参数的最大似然估计,给定下界G,我们可以找到一个更好的参数θ, 这仍然不是F的最大值,但是它比之前的估计更优。
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

由于找到了θ,我们可以更新θ 的值,再重新找到新的下界,通过下界,通过求出下界的最大值是后的参数θ 进而又再次求出θ
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

不断更新,最后收敛为止:
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)

所以,EM 算法是一个相当强大的算法,其算法流程如下所示:
机器人学统计建模中的高斯分布(Gaussian distribution in robotics statistic model)