news 2026/2/6 0:57:10

视觉SLAM十四讲(v2)-6.1.2非线性优化的最小二乘引出.高斯分布取负对数

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
视觉SLAM十四讲(v2)-6.1.2非线性优化的最小二乘引出.高斯分布取负对数

对高斯分布取负对数的详细推导过程如下,结合数学公式与代码验证:

1. 高斯分布概率密度函数

对于NNN维随机变量x∼N(μ,Σ)\mathbf{x} \sim \mathcal{N}(\boldsymbol{\mu}, \Sigma)xN(μ,Σ),其概率密度函数为:
P(x)=1(2π)N/2∣Σ∣1/2exp⁡(−12(x−μ)TΣ−1(x−μ))P(\mathbf{x}) = \frac{1}{(2\pi)^{N/2} |\Sigma|^{1/2}} \exp\left( -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right)P(x)=(2π)N/2∣Σ1/21exp(21(xμ)TΣ1(xμ))
其中:
-μ\boldsymbol{\mu}μ是均值向量,
-Σ\SigmaΣ是协方差矩阵(正定),
-∣Σ∣|\Sigma|∣Σ∣是协方差矩阵的行列式,
-Σ−1\Sigma^{-1}Σ1是协方差矩阵的逆。

2. 取自然对数

P(x)P(\mathbf{x})P(x)取自然对数:
ln⁡P(x)=ln⁡(1(2π)N/2∣Σ∣1/2)+ln⁡(exp⁡(−12(x−μ)TΣ−1(x−μ)))\ln P(\mathbf{x}) = \ln \left( \frac{1}{(2\pi)^{N/2} |\Sigma|^{1/2}} \right) + \ln \left( \exp\left( -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right) \right)lnP(x)=ln((2π)N/2∣Σ1/21)+ln(exp(21(xμ)TΣ1(xμ)))

分解为两部分计算

(1)系数部分(常数项)
ln⁡(1(2π)N/2∣Σ∣1/2)=−ln⁡((2π)N/2∣Σ∣1/2)=−N2ln⁡(2π)−12ln⁡∣Σ∣\ln \left( \frac{1}{(2\pi)^{N/2} |\Sigma|^{1/2}} \right) = -\ln \left( (2\pi)^{N/2} |\Sigma|^{1/2} \right) = -\frac{N}{2} \ln(2\pi) - \frac{1}{2} \ln|\Sigma|ln((2π)N/2∣Σ1/21)=ln((2π)N/2∣Σ1/2)=2Nln(2π)21ln∣Σ∣

(2)指数部分(二次型)
ln⁡(exp⁡(−12(x−μ)TΣ−1(x−μ)))=−12(x−μ)TΣ−1(x−μ)\ln \left( \exp\left( -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu}) \right) \right) = -\frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu})ln(exp(21(xμ)TΣ1(xμ)))=21(xμ)TΣ1(xμ)

合并结果

ln⁡P(x)=−N2ln⁡(2π)−12ln⁡∣Σ∣−12(x−μ)TΣ−1(x−μ)\ln P(\mathbf{x}) = -\frac{N}{2} \ln(2\pi) - \frac{1}{2} \ln|\Sigma| - \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu})lnP(x)=2Nln(2π)21ln∣Σ∣21(xμ)TΣ1(xμ)

3. 取负对数

ln⁡P(x)\ln P(\mathbf{x})lnP(x)取负号:
−ln⁡P(x)=N2ln⁡(2π)+12ln⁡∣Σ∣+12(x−μ)TΣ−1(x−μ)-\ln P(\mathbf{x}) = \frac{N}{2} \ln(2\pi) + \frac{1}{2} \ln|\Sigma| + \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu})lnP(x)=2Nln(2π)+21ln∣Σ∣+21(xμ)TΣ1(xμ)

合并常数项

注意到:
N2ln⁡(2π)+12ln⁡∣Σ∣=12ln⁡((2π)N∣Σ∣)\frac{N}{2} \ln(2\pi) + \frac{1}{2} \ln|\Sigma| = \frac{1}{2} \ln \left( (2\pi)^N |\Sigma| \right)2Nln(2π)+21ln∣Σ∣=21ln((2π)N∣Σ∣)
因此最终形式为:
−ln⁡P(x)=12ln⁡((2π)N∣Σ∣)+12(x−μ)TΣ−1(x−μ)-\ln P(\mathbf{x}) = \frac{1}{2} \ln \left( (2\pi)^N |\Sigma| \right) + \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu})lnP(x)=21ln((2π)N∣Σ∣)+21(xμ)TΣ1(xμ)

4. 代码验证

通过以下Python代码验证推导的正确性:

importnumpyasnp# 定义高斯分布概率密度函数defgaussian_pdf(x,mu,Sigma):N=len(mu)det_Sigma=np.linalg.det(Sigma)inv_Sigma=np.linalg.inv(Sigma)coeff=1/(np.sqrt((2*np.pi)**N*det_Sigma))exponent=-0.5*np.dot((x-mu).T,np.dot(inv_Sigma,(x-mu)))returncoeff*np.exp(exponent)# 示例参数mu=np.array([0,0])Sigma=np.array([[1,0.5],[0.5,1]])x=np.array([1,1])# 计算概率密度p_x=gaussian_pdf(x,mu,Sigma)# 计算负对数neg_log_p=-np.log(p_x)# 手动计算验证公式N=len(mu)det_Sigma=np.linalg.det(Sigma)inv_Sigma=np.linalg.inv(Sigma)quadratic=np.dot((x-mu).T,np.dot(inv_Sigma,(x-mu)))manual_neg_log=0.5*(N*np.log(2*np.pi)+np.log(det_Sigma)+quadratic)print("概率密度 P(x):",p_x)print("负对数 -ln(P(x)):",neg_log_p)print("手动计算验证结果:",manual_neg_log)

输出结果

概率密度 P(x): 0.09435389770895924 负对数 -ln(P(x)): 2.3607026968501215 手动计算验证结果: 2.360702696850122

5. 关键结论

  • 负对数的物理意义:负对数将概率密度转化为“能量函数”,最小化负对数等价于最大化概率密度,这是最大似然估计(MLE)的核心思想。
  • 二次型的几何意义(x−μ)TΣ−1(x−μ)(\mathbf{x} - \boldsymbol{\mu})^T \Sigma^{-1} (\mathbf{x} - \boldsymbol{\mu})(xμ)TΣ1(xμ)是马哈拉诺比斯距离(Mahalanobis distance),衡量x\mathbf{x}x偏离均值的程度(考虑协方差结构)。
  • 应用场景:在SLAM中,通过最小化负对数构建最小二乘问题,实现状态估计(如位姿和地图的联合优化)。

通过数学推导与代码验证,我们完整解释了高斯分布取负对数的每一步过程,并验证了公式的正确性。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/3 10:59:01

计算机Java毕设实战-基于springboot的二手车交易平台系统基于springboot+vue的二手车交易平台系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/2/6 2:19:46

解密音频自由:qmc-decoder如何让你的加密音乐重获新生

解密音频自由:qmc-decoder如何让你的加密音乐重获新生 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 你是否曾经遇到过这样的情况:下载的音乐文件无…

作者头像 李华
网站建设 2026/1/30 0:00:32

3分钟快速解锁QQ音乐加密音频:QMC解码器完整使用指南

3分钟快速解锁QQ音乐加密音频:QMC解码器完整使用指南 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 还在为QQ音乐下载的加密音频无法在其他播放器上播放而烦恼…

作者头像 李华
网站建设 2026/2/3 7:11:25

如何轻松获取Sketchfab海量3D模型:免费获取终极指南

还在为Sketchfab平台上精美的3D模型无法获取而烦恼吗?这款专为Firefox浏览器设计的用户脚本工具将彻底改变你的3D资源获取方式。无论你是设计师、开发者还是数字艺术爱好者,只需简单配置,就能轻松获取完整的模型文件。 【免费下载链接】sketc…

作者头像 李华
网站建设 2026/1/30 2:47:45

轻松解锁Beyond Compare 5:本地授权密钥生成全攻略

轻松解锁Beyond Compare 5:本地授权密钥生成全攻略 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的评估期限制而烦恼吗?想要免费享受专业版的所…

作者头像 李华
网站建设 2026/2/6 2:17:12

unrpyc终极指南:5分钟学会Ren‘Py反编译的完整教程

unrpyc终极指南:5分钟学会RenPy反编译的完整教程 【免费下载链接】unrpyc A renpy script decompiler 项目地址: https://gitcode.com/gh_mirrors/un/unrpyc unrpyc是一款专业的RenPy脚本反编译工具,能够将编译后的.rpyc文件还原为可读的.rpy源代…

作者头像 李华