深入理解边缘高斯分布与条件高斯分布

多元高斯分布在统计学和机器学习领域中扮演着关键的角色。在这个分布的框架下,我们经常会遇到边缘高斯分布和条件高斯分布,它们分别涉及了从原始分布中选择一部分变量和在已知条件下计算其他变量的概率分布。本文将深入研究这两个概念,探讨它们的核心思想、数学表示以及在实际问题中的应用。

边缘高斯分布(Marginal Gaussian Distribution)

边缘高斯分布指的是多元高斯分布中部分变量的概率分布。当我们考虑一个多元高斯分布,其中包含多个随机变量,边缘高斯分布就是在该多元分布中选择其中一部分变量形成的概率分布。假设有一个 n-维的多元高斯分布,其随机变量为X=[X1​,X2​,…,Xn​]T,均值向量为 μ=[μ1​,μ2​,…,μn​]T,协方差矩阵为 Σ。那么,X 的概率密度函数为:

f_{\mathbf{X}}(\mathbf{x})=\frac{1}{(2 \pi)^{n / 2}|\boldsymbol{\Sigma}|^{1 / 2}} \exp \left(-\frac{1}{2}(\mathbf{x}-\boldsymbol{\mu})^{T} \boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu})\right)

现在,我们想要考虑其中的一部分变量,例如,我们关心的是 Xa​=[X1​,X2​,…,Xk​]T,其中 k

f_{\mathbf{X}_{a}}\left(\mathbf{x}_{a}\right)=\frac{1}{(2 \pi)^{k / 2}\left|\boldsymbol{\Sigma}_{a}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(\mathbf{x}_{a}-\boldsymbol{\mu}_{a}\right)^{T} \boldsymbol{\Sigma}_{a}^{-1}\left(\mathbf{x}_{a}-\boldsymbol{\mu}_{a}\right)\right)

其中,

  • xa​ 是 Xa​ 的取值。
  • μa​ 是 Xa​ 的均值向量。
  • Σa​ 是 Xa​ 的协方差矩阵。

边缘高斯分布的核心思想在于从多元高斯分布中边缘化(marginalization)得到。通过对多元高斯分布中未关心的变量进行积分,我们得到了新的概率分布。在实际问题中,当我们只关心随机变量的一部分时,可以使用边缘高斯分布简化模型,降低计算复杂度。

Key Points:

  1. 维度的降低: 边缘概率分布允许我们从高维随机变量中提取关心的部分,使得问题的复杂性得到降低。在实际应用中,许多问题中只关心某些变量的分布,边缘化允许我们将注意力集中在重要的部分上。

  2. 简化问题: 通过边缘化,我们可以将原问题简化为更易处理的子问题。这在统计推断、机器学习模型的开发以及贝叶斯推理中都是常见的操作。

  3. 独立性的建模: 边缘概率分布允许我们对随机变量的独立性进行建模。如果两个变量在边缘分布下是独立的,那么它们的联合分布可以通过简单地将各自的边缘分布相乘得到。

条件高斯分布(Conditional Gaussian Distribution):

条件高斯分布是在给定部分变量的取值的条件下,其他变量的概率分布。设有一个 n-维多元高斯分布 X=[X1​,X2​,…,Xn​]T,我们感兴趣的是在已知Xk​=xk​ 的条件下,其余变量的概率分布,即 P(X−k​∣Xk​=xk​)。

条件高斯分布的表达式为:

\begin{array}{l}f_{\mathbf{X}_{k} \mid \mathbf{X}_{k}}\left(\mathbf{x}_{-k} \mid \mathbf{x}_{k}\right)= \\ \frac{1}{(2 \pi)^{(n-1) / 2}\left|\boldsymbol{\Sigma}_{k|k|}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(\mathbf{x}_{-k}-\boldsymbol{\mu}_{-k \mid k}\right)^{T} \boldsymbol{\Sigma}_{-k \mid k}^{-1}\left(\mathbf{x}_{-k}-\boldsymbol{\mu}_{-k \mid k}\right)\right)\end{array}

其中,

  • X−k​ 表示将 Xk​ 从 X 中移除后的变量集合。
  • x−k​ 是对应的取值。
  • μ−k∣k​ 是在已知Xk​=xk​ 的条件下,X−k​ 的均值向量。
  • Σ−k∣k​ 是在已知 Xk​=xk​ 的条件下,X−k​ 的协方差矩阵。

条件高斯分布的计算涉及到在已知条件下的条件概率计算。通过对多元高斯分布的联合概率密度函数进行归一化,我们得到了条件概率的表达式。条件高斯分布在很多领域都有着重要的应用,特别是在贝叶斯推断和滤波问题中。通过给定一些观测值,我们可以更新我们对未观测变量的信念,得到条件高斯分布。

Key Points:

  1. 数学上的可解性: 高斯条件概率分布的优势之一是数学上的可解性。在高斯条件概率分布中,给定条件下的分布仍然是高斯分布,这使得许多计算变得简单和高效。

  2. 参数化建模: 高斯分布通过均值和协方差两个参数来描述,而高斯条件概率分布在给定条件下仍然保持这种参数化建模的特性。这使得模型的参数可以通过训练数据来估计,进而用于预测和推断。

  3. 中心极限定理: 根据中心极限定理,多个独立随机变量的和趋近于高斯分布。因此,在许多实际问题中,通过条件化和边缘化操作,可以将复杂的分布逼近为高斯条件概率分布,从而更容易进行建模和分析。

边缘高斯分布和条件高斯分布的异同:

相同点:

  • 都涉及多元高斯分布: 两者都起源于多元高斯分布,都是在多元高斯分布的基础上进行的操作。

不同点:

  • 目的不同: 边缘高斯分布的目的是从多元高斯分布中选择一部分变量形成一个新的分布,而条件高斯分布的目的是在已知部分变量的条件下计算其他变量的概率分布。
  • 维度不同: 边缘高斯分布得到的分布维度较低,只包含所选取的变量;条件高斯分布得到的分布仍然在原高斯分布的维度上,但是在已知条件下的概率分布。
  • 计算方式不同: 边缘高斯分布的计算主要涉及边缘化操作,而条件高斯分布的计算涉及条件概率的计算。

在 MATLAB 中,我们可以通过生成随机样本和计算概率密度函数来演示边缘高斯分布和条件高斯分布。我将使用 MATLAB R2018a 的一些基本函数来说明这两者之间的异同。

mu = [0; 0];
Sigma = [1, 0.5; 0.5, 2];
rng(1);  % 设置随机种子以确保结果可重复性
X = mvnrnd(mu, Sigma, 1000);
% 提取 X 的第一个维度,即 X1
X1 = X(:, 1);
X2 = X(:, 2);
% 创建一个新的 figure
figure;
% 绘制原始分布
subplot(2, 1, 1);
scatter(X1, X2, 'b.');
title('原始多元高斯分布');
xlabel('X');
ylabel('Y');

% 绘制 X1 的边缘高斯分布的直方图
subplot(2, 2, 3);
histogram(X1, 'Normalization', 'pdf', 'EdgeColor', 'w');
title('边缘高斯分布示例 - X1');
xlabel('X1');
ylabel('概率密度');

% 计算边缘高斯分布的理论概率密度函数
mu_X1 = mu(1);
sigma_X1 = sqrt(Sigma(1, 1));
x_range = linspace(min(X1), max(X1), 100);
pdf_X1 = normpdf(x_range, mu_X1, sigma_X1);

% 绘制理论概率密度函数
hold on;
plot(x_range, pdf_X1, 'r', 'LineWidth', 2);
legend('样本直方图', '理论概率密度函数');

% 标出均值和标准差
text(mu_X1, 0.1, sprintf('均值: %.2f', mu_X1), 'Color', 'r', 'VerticalAlignment', 'top', 'HorizontalAlignment', 'center');
text(mu_X1 - sigma_X1, 0.15, sprintf('标准差: %.2f', sigma_X1), 'Color', 'g', 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right');
hold off;

% 在 Y=1 的条件下提取 X1 的样本
Y_condition = X(:, 2) <= 1;
X1_conditioned = X(Y_condition, 1);

% 绘制在 Y=1 条件下 X1 的直方图
subplot(2, 2, 4);
histogram(X1_conditioned, 'Normalization', 'pdf', 'EdgeColor', 'w');
title('条件高斯分布示例 - 在 Y<=1 条件下 X1');
xlabel('X1');
ylabel('概率密度');

% 计算条件高斯分布的理论概率密度函数
mu_X1_conditioned = mean(X1_conditioned);
sigma_X1_conditioned = std(X1_conditioned);
pdf_X1_conditioned = normpdf(x_range, mu_X1_conditioned, sigma_X1_conditioned);

% 绘制理论概率密度函数
hold on;
plot(x_range, pdf_X1_conditioned, 'r', 'LineWidth', 2);
legend('样本直方图', '理论概率密度函数');

% 标出均值和标准差
text(mu_X1_conditioned, 0.15, sprintf('均值: %.2f', mu_X1_conditioned), 'Color', 'r', 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'center');
text(mu_X1_conditioned - sigma_X1_conditioned, 0.2, sprintf('标准差: %.2f', sigma_X1_conditioned), 'Color', 'g', 'VerticalAlignment', 'bottom', 'HorizontalAlignment', 'right');
hold off;

深入理解边缘高斯分布与条件高斯分布_第1张图片

上面的 MATLAB 代码演示了如何生成和可视化二维多元高斯分布的样本,并展示了边缘高斯分布和在条件 Y<=1 下的 X1 的条件高斯分布。

你可能感兴趣的:(导航算法及滤波,算法,概率论,人工智能,机器学习)