最近宾大在 Coursera 上开了一个机器人系列课程,包含了视觉、运动规划、机械设计等课题。我对 SLAM 很感兴趣,于是就选了 Robotics Estimation and Learning 这门课,课程主页是https://www.coursera.org/learn/robotics-learning/。第一周的内容是高斯分布。
一元高斯分布
给定数据集 {xi},可以通过最大似然 (Maximum Likelihood Estimate) 来估计均值 μ 和标准差 σ ^μ,^σ=argmaxμ,σp({xi}|μ,σ)
假设所有观测数据独立分布,则有
p({xi}|μ,σ)=N∏i=1p(xi|μ,σ)
解这个优化函数:
^μ,^σ=argmaxμ,σN∏i=1p(xi|μ,σ)=argmaxμ,σN∏i=1lnp(xi|μ,σ)=argmaxμ,σN∏i=1ln(1√2πσexp(−(xi−μ)22σ2))
设损失函数 J(μ,σ)=∑Ni=1((xi−μ)22σ2+lnσ),则有 ^μ,^σ=argminμ,σJ(μ,σ)
∂J∂μ=∂∂μN∑i=1((xi−μ)22σ2+lnσ)=N∑i=1(∂∂μ(xi−μ)22σ2)∂J∂σ=∂∂σN∑i=1((xi−μ)22σ2+lnσ)=(∂∂σ12σ2)(N∑i=1(xi−μ)2)+Nσ)
求极值令两式都为 0,可以解得 ^μ=1NN∑i=1xi^σ2=1NN∑i=1(xi−^μ)2
多元高斯分布
p(x)=1(2π)D2|Σ|12exp(−12(xx−μμ)TΣ−1(xx−μμ))
- D: 维数
- XX: 数据集
- μμ: 均值向量
- Σ: 协方差矩阵 (covariance matrix),对角线元素表示方差,非对角线元素表示变量相关性
用最大似然估计多元高斯分布:
^μμ,^Σ=argmaxμμ,Σp({xxi}|μμ,Σ) 类似于一元高斯分布,假设所有观测独立,则有 ^μμ,^Σ=argmaxμμ,Σ∏p(xxi|μμ,Σ)=argmaxμμ,σN∏i=1lnp(xi|μμ,σ)=argmaxμμ,σN∑i=1(−12(xxi−μμ)TΣ−1(xxi−μμ)−12ln|Σ|+C)=argminμμ,σN∑i=1(12(xxi−μμ)TΣ−1(xxi+μμ)+12ln|Σ|)
设损失函数 J(μ,Σμ,Σ)=∑Ni=1(12(xxi−μμ)TΣ−1(xxi+μμ)+12ln|Σ|)),用类似估计一元高斯分布的方法,令 ∂J∂μμ 和 ∂J∂Σ 为 0,可以解得 ^μμ=1NN∑i=1xxi^Σ=1NN∑i=1(xxi−^μμ)(xxi−^μμ)T
高斯混合模型 (Gaussian Mixture Model)
GMM 就是多个高斯模型的加权和:
p(x)=K∑k=1wkgk(xx|uuk,Σk)
- gk: 单个高斯分布函数
- wk: 权值函数,总和为 1
解 GMM 的方法之一就是 EM (Expectation-Maximization)。
EM 法解 GMM
引入隐含变量 zik=gk(xxi)|uuk,Σk∑Kk=1gk(xxi)|uuk,Σk
zik 的表示第 i 个观测数据中,第 k 个高斯函数占全体的比重,直观表示如下图
zik 的直观表示
均值向量和协方差矩阵可以通过 zk 估计 ^μμk=1zk∑i=1Nzikxxi^Σk=1zk∑i=1Nzik(xxi−^μkμk)(xxi−^μkμk)Tzk=N∑i=1zik
EM 法具体过程
- 初始化 μμ and Σ
- 固定 μμ 和 Σ,并更新 zik 的值 (E-step)
- 固定 zik,并更新 μμ 和 Σ 的值 (M-step)
- 重复第 2、3 步,直到稳定
全课程的笔记链接