Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • 线性代数

  • 概率论与数理统计

  • 矩阵

  • 分布

    • 统计量及其分布
    • 参数估计
    • 假设检验
    • 先验分布与后验分布
    • 分布度量
    • 交叉熵
    • 最优运输概述
    • Wasserstein距离
    • 基于最优传输的分类损失函数
    • 最优传输之生成模型
    • 最优传输之梯度流
    • 两个多元正态分布的KL散度巴氏距离和W距离
      • 正态分布
        • 概率密度
        • 高斯积分
      • 线性代数
        • 内积范数
        • 正定对称
        • 矩阵求导
      • KL散度
        • 计算结果
        • 推导过程
      • 巴氏距离
        • 计算结果
        • 推导过程
      • W距离
        • 计算结果
        • 版本1
        • 版本2
        • 等价性
        • 特殊时
        • 推导过程1
        • 去均值
        • 纯代数
        • 舒尔补
        • 分参数
        • 乘子法
        • 不等式
        • 推导过程2
        • 分块阵
        • 乘子法
      • 文章小结
  • 数学笔记
  • 分布
Geeks_Z
2025-01-18
目录

两个多元正态分布的KL散度巴氏距离和W距离

两个多元正态分布的KL散度、巴氏距离和W距离 (opens new window)

最佳排版请看原链接:

两个多元正态分布的KL散度、巴氏距离和W距离 - 科学空间|Scientific Spaces (opens new window)

正态分布是最常见的连续型概率分布之一。它是给定均值和协方差后的最大熵分布(参考**《“熵”不起:从熵、最大熵原理到最大熵模型(二)》 (opens new window)**),也可以看作任意连续型分布的二阶近似,它的地位就相当于一般函数的线性近似。从这个角度来看,正态分布算得上是最简单的连续型分布了。也正因为简单,所以对于很多估计量来说,它都能写出解析解来。

本文主要来计算两个多元正态分布的几种度量,包括KL散度、巴氏距离和W距离,它们都有显式解析解。

正态分布

这里简单回顾一下正态分布的一些基础知识。注意,仅仅是回顾,这还不足以作为正态分布的入门教程。

概率密度

正态分布,也即高斯分布,是定义在Rn 的连续型概率分布,其概率密度函数为

You can't use 'macro parameter character #' in math modep(\boldsymbol{x})=\frac{1}{\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma})}}\exp\left\{-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\top}\boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right\}\\$$ 这里的$\boldsymbol{x},\boldsymbol{\mu}\in\mathbb{R}^n$,$\boldsymbol{\mu}$ 均值向量(本文的向量默认情况下都为列向量),而$\boldsymbol{\Sigma}\in\mathbb{R}^{n\times n}$ 为协方差矩阵,它要求是正定对称的。可以看到,正态分布由$\boldsymbol{\mu}$ $\boldsymbol{\Sigma}$ 一确定,因此不难想象它的统计量都是$\boldsymbol{\mu}$ $\boldsymbol{\Sigma}$ 函数。当$\boldsymbol{\mu}=\boldsymbol{0}, \boldsymbol{\Sigma}=\boldsymbol{I}$ ,对应的分布称为“标准正态分布”。 ### 基本性质 通常来说,基本的统计量就是均值和方差了,它们对应着正态分布的两个参数: $$\begin{aligned} \mathbb{E}_{\boldsymbol{x}}\left[\boldsymbol{x}\right]=&\int p(\boldsymbol{x}) \boldsymbol{x} dx=\boldsymbol{\mu}\\ \mathbb{E}_{\boldsymbol{x}}\left[(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top}\right]=&\int p(\boldsymbol{x}) (\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top} dx=\boldsymbol{\Sigma}\\ \end{aligned}\\p(\boldsymbol{x})=\frac{1}{\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma})}}\exp\left\{-\frac{1}{2}(\boldsymbol{x}-\boldsymbol{\mu})^{\top}\boldsymbol{\Sigma}^{-1}(\boldsymbol{x}-\boldsymbol{\mu})\right\}\\$$ 这里的$\boldsymbol{x},\boldsymbol{\mu}\in\mathbb{R}^n$,$\boldsymbol{\mu}$ 均值向量(本文的向量默认情况下都为列向量),而$\boldsymbol{\Sigma}\in\mathbb{R}^{n\times n}$ 为协方差矩阵,它要求是正定对称的。可以看到,正态分布由$\boldsymbol{\mu}$ $\boldsymbol{\Sigma}$ 一确定,因此不难想象它的统计量都是$\boldsymbol{\mu}$ $\boldsymbol{\Sigma}$ 函数。当$\boldsymbol{\mu}=\boldsymbol{0}, \boldsymbol{\Sigma}=\boldsymbol{I}$ ,对应的分布称为“标准正态分布”。 ### 基本性质 通常来说,基本的统计量就是均值和方差了,它们对应着正态分布的两个参数: $$\begin{aligned} \mathbb{E}_{\boldsymbol{x}}\left[\boldsymbol{x}\right]=&\int p(\boldsymbol{x}) \boldsymbol{x} dx=\boldsymbol{\mu}\\ \mathbb{E}_{\boldsymbol{x}}\left[(\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top}\right]=&\int p(\boldsymbol{x}) (\boldsymbol{x}-\boldsymbol{\mu})(\boldsymbol{x}-\boldsymbol{\mu})^{\top} dx=\boldsymbol{\Sigma}\\ \end{aligned}\\

由此也可以推出二阶矩的结果:

Ex[xx⊤]=μμ⊤+Ex[(x−μ)(x−μ)⊤]=μμ⊤+Σ

还有一个常用的统计量是它的熵:

H=Ex[−log⁡p(x)]=n2(1+log⁡2π)+12log⁡det(Σ)

其计算过程可以参考后面KL散度的推导。

高斯积分

概率密度函数意味着∫p(x)dx=1,这就可以推出:

(2π)ndet(Σ)=∫exp⁡{−12(x−μ)⊤Σ−1(x−μ)}dx=∫exp⁡{−12x⊤Σ−1x+μ⊤Σ−1x−12μ⊤Σ−1μ}dx

设ω=Σ−1μ,那么得到高斯积分

∫exp⁡{−12x⊤Σ−1x+ω⊤x}dx=(2π)ndet(Σ)exp⁡{12ω⊤Σω}

利用它我们可以算出正态分布的特征函数

Ex[exp⁡(ω⊤x)]=exp⁡(ω⊤μ+12ω⊤Σω)

特征函数可以用来算正态分布的各阶矩。

线性代数

这里补充一些线性代数基础,它们在后面的推导中会频繁用到。同样地,这仅仅是“回顾”,并不能作为线性代数教程。

内积范数

首先,我们来定义内积和范数。对于向量x=(x1,⋯,xn) y=(y1,⋯,yn),内积按照

⟨x,y⟩=∑i=1nxiyi

来定义,而模长定义为‖x‖=⟨x,y⟩。对于m×n 矩阵A=(ai,j),B=(bi,j),我们按照类似的方式定义:

⟨A,B⟩F=∑i=1m∑j=1nai,jbi,j

这称为Frobenius内积,对应的‖A‖F=⟨A,B⟩F 为Frobenius范数。不难看到,Frobenius内积和范数,事实上就是把矩阵展平为向量后,当作常规的向量来运算。

关于Frobenius内积,最关键的性质之一是成立恒等式

⟨A,B⟩F=Tr(A⊤B)=Tr(BA⊤)=Tr(AB⊤)=Tr(B⊤A)

也就是说,矩阵的Frobenius内积可以转化为矩阵乘法的迹,并且交换相乘顺序不改变结果(不改变迹的结果,但是矩阵乘法的整体结果会改变)。

正定对称

接着,来看正定对称矩阵的一些性质。Σ 一个正定对称矩阵,对称说的是Σ⊤=Σ,正定说的是对于任意非零向量ξ∈Rn,都有ξ⊤Σξ>0。可以证明,如果Σ1,Σ2 是正定对称矩阵,那么Σ1−1,Σ2−1,Σ1+Σ2 都是正定对称矩阵。如果C=B⊤AB,B 可逆阵,那么C 正定对称的当且仅当A 正定对称的。

此外还有半正定的概念,指对于任意非零向量ξ∈Rn,都有ξ⊤Σξ≥0,也就是说可能存在非零向量ξ 得ξ⊤Σξ=0。不过考虑到正定矩阵在半正定矩阵中稠密,所以我们不严格区分正定和半正定了,统一按照正定矩阵来处理。

正定对称矩阵有一个重要的性质,那就是它的SVD分解跟特征值分解一致,即具有下述形式的分解

Σ=UΛU⊤

其中U 正交矩阵,而Λ 对角阵,并且对角线上的元素都是正的。该结果的一个直接推论是:正定对称矩阵都可以“开平方”,其平方根为Σ1/2=UΛ1/2U⊤,其中Λ1/2 指将对角线上的元素都开平方,可以检验平方根矩阵也是正定对称的。反过来,可以开平方的对称矩阵,一定也是正定对称矩阵。

矩阵求导

最后,在求Wasserstein距离的时候,还需要用到一些矩阵求导公式,如果不了解的读者,可以直接参考维基百科的“Matrix Calculus (opens new window)”。当然,其实也不难,主要用到了

∂Tr(XA)∂X=A

剩下的可以结合迹的运算公式来派生出来,比如

∂Tr(AXB)∂X=∂Tr(XBA)∂X=BA

KL散度

作为第一个尝试,我们来算两个高斯分布的**KL散度(Kullback-​Leibler divergence) (opens new window)**。KL散度算是最常用的分布度量之一了,因为它积分之前需要取对数,这对于指数簇分布来说通常能得到相对简单的结果。此外它还跟“熵”有着比较紧密的联系。

计算结果

两个概率分布的KL散度定义为

KL(p(x)‖q(x))=Ex∼p(x)[log⁡p(x)q(x)]=Ex∼p(x)[log⁡p(x)]+Ex∼p(x)[−log⁡q(x)]

对于两个正态分布来说,计算结果是

KL(p(x)‖q(x))=12[(μp−μq)⊤Σq−1(μp−μq)−log⁡det(Σq−1Σp)+Tr(Σq−1Σp)−n]

特别地,当q 标准正态分布时,结果简化为

KL(p(x)‖q(x))=12[‖μp‖2−log⁡det(Σp)+Tr(Σp)−n]

推导过程

从KL散度的定义知道,我们主要把Ex∼p(x)[−log⁡q(x)] 出来就行了:

Ex∼p(x)[−log⁡q(x)]=Ex∼p(x)[n2log⁡2π+12log⁡det(Σq)+12(x−μq)⊤Σq−1(x−μq)]=n2log⁡2π+12log⁡det(Σq)+12Ex∼p(x)[(x−μq)⊤Σq−1(x−μq)]

现在,关于迹的恒等式就可以派上用场了:

Ex∼p(x)[(x−μq)⊤Σq−1(x−μq)]=Ex∼p(x)[Tr((x−μq)⊤Σq−1(x−μq)]=Ex∼p(x)[Tr(Σq−1(x−μq)(x−μq)⊤]=Tr(Σq−1Ex∼p(x)[(x−μq)(x−μq)⊤])=Tr(Σq−1Ex∼p(x)[xx⊤−μqx⊤−xμq⊤+μqμq⊤])=Tr(Σq−1(Σp+μpμp⊤−μqμp⊤−μpμq⊤+μqμq⊤))=Tr(Σq−1Σp+Σq−1(μp−μq)(μp−μq)⊤)=Tr(Σq−1Σp)+(μp−μq)⊤Σq−1(μp−μq)

注意μq=μp,Σq=Σp ,上式就等于n,此时就对应正态分布的熵。所以最终得到

KL(p(x)‖q(x))=12[nlog⁡2π+log⁡det(Σq)+Tr(Σq−1Σp)+(μp−μq)⊤Σq−1(μp−μq)]−12[nlog⁡2π+log⁡det(Σp)+n]=12[(μp−μq)⊤Σq−1(μp−μq)−log⁡det(Σq−1Σp)+Tr(Σq−1Σp)−n]

巴氏距离

然后,我们来看看**巴氏距离(Bhattacharyya distance) (opens new window)**,它定义为

BD(p(x),q(x))=−log⁡∫p(x)q(x)dx

与之相关的还有一个叫做“Hellinger距离 (opens new window)”的概念,它的平方定义为$ \frac{1}{2}\int\left(\sqrt{p(\boldsymbol{x})} - \sqrt{q(\boldsymbol{x})}\right)^2 d\boldsymbol{x}$,展开后就能发现跟巴氏距离本质是等价的。

计算结果

对于两个正态分布来说,它们的巴氏距离为

BD(p(x),q(x))=12log⁡det(Σ)det(ΣpΣq)+18(μp−μq)⊤Σ−1(μp−μq)

这里Σ=12(Σp+Σq)。可以看到结果是对称的,这是因为巴氏距离的定义本身就是对称的。

当两者之一为标准正态分布时,结果并没有明显简化,所以这里就不单独写出来了。

推导过程

按照定义,两个正态分布的巴氏距离,是下述积分的负对数: $$\begin{aligned} &\qquad\int \sqrt{p(\boldsymbol{x}) q(\boldsymbol{x})} d\boldsymbol{x}=\frac{1}{\sqrt[4]{(2\pi)^{2n}\det(\boldsymbol{\Sigma}_p\boldsymbol{\Sigma}_q)}}\times \ &\int \exp\left{-\frac{1}{4}(\boldsymbol{x}-\boldsymbol{\mu}_p)^{\top}\boldsymbol{\Sigma}_p^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_p)-\frac{1}{4}(\boldsymbol{x}-\boldsymbol{\mu}_q)^{\top}\boldsymbol{\Sigma}_q^{-1}(\boldsymbol{x}-\boldsymbol{\mu}_q)\right}d\boldsymbol{x} \end{aligned}\$$ 记y=x−μp,Δ=μp−μq,积分部分可以换元为 $$\begin{aligned} &\int \exp\left{-\frac{1}{4}\boldsymbol{y}^{\top}\boldsymbol{\Sigma}_p^{-1}\boldsymbol{y}-\frac{1}{4}(\boldsymbol{y}+\boldsymbol{\Delta})^{\top}\boldsymbol{\Sigma}_q^{-1}(\boldsymbol{y}+\boldsymbol{\Delta})\right}d\boldsymbol{y}\ =&\int \exp\left{-\frac{1}{4}\boldsymbol{y}^{\top}\left(\boldsymbol{\Sigma}_p^{-1}+\boldsymbol{\Sigma}_q^{-1}\right)\boldsymbol{y}-\frac{1}{2}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}_q^{-1}\boldsymbol{y} - \frac{1}{4}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}_q^{-1}\boldsymbol{\Delta}\right}d\boldsymbol{y}\ =&\int \exp\left{-\frac{1}{2}\boldsymbol{y}^{\top}\left(\boldsymbol{\Sigma}_p^{-1}\boldsymbol{\Sigma}\boldsymbol{\Sigma}_q^{-1}\right)\boldsymbol{y}-\frac{1}{2}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}_q^{-1}\boldsymbol{y} - \frac{1}{4}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}_q^{-1}\boldsymbol{\Delta}\right}d\boldsymbol{y}\end{aligned}\$$ 这里Σ=12(Σp+Σq)。按照前面介绍的高斯积分公式(???),积分结果是 $$\begin{aligned} &,\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma}_p^{-1}\boldsymbol{\Sigma}\boldsymbol{\Sigma}_q^{-1})^{-1}}\exp\left{\frac{1}{8}\left(\boldsymbol{\Sigma}_q^{-1}\boldsymbol{\Delta}\right)^{\top}\left(\boldsymbol{\Sigma}_p^{-1}\boldsymbol{\Sigma}\boldsymbol{\Sigma}_q^{-1}\right)^{-1}\left(\boldsymbol{\Sigma}_q^{-1}\boldsymbol{\Delta}\right)-\frac{1}{4}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}_q^{-1}\boldsymbol{\Delta}\right}\ =&,\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma}_q\boldsymbol{\Sigma}^{-1}\boldsymbol{\Sigma}_p)}\exp\left{\frac{1}{8}\boldsymbol{\Delta}^{\top}\left(\boldsymbol{\Sigma}^{-1}\boldsymbol{\Sigma}_p\boldsymbol{\Sigma}_q^{-1} - 2\boldsymbol{\Sigma}_q^{-1}\right)\boldsymbol{\Delta}\right}\ =&,\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma}_q\boldsymbol{\Sigma}^{-1}\boldsymbol{\Sigma}_p)}\exp\left{\frac{1}{8}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}^{-1}\left(\boldsymbol{\Sigma}_p\boldsymbol{\Sigma}_q^{-1} - 2\boldsymbol{\Sigma}\boldsymbol{\Sigma}_q^{-1}\right)\boldsymbol{\Delta}\right}\ =&,\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma}_q\boldsymbol{\Sigma}^{-1}\boldsymbol{\Sigma}_p)}\exp\left{-\frac{1}{8}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}^{-1}\boldsymbol{\Delta}\right} \end{aligned}\$$ 所以最终 $$\begin{aligned} BD(p(\boldsymbol{x}), q(\boldsymbol{x})) =&, -\log \frac{\sqrt{(2\pi)^n \det(\boldsymbol{\Sigma}_q\boldsymbol{\Sigma}^{-1}\boldsymbol{\Sigma}_p)}}{\sqrt[4]{(2\pi)^{2n}\det(\boldsymbol{\Sigma}_p\boldsymbol{\Sigma}_q)}}\exp\left{-\frac{1}{8}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}^{-1}\boldsymbol{\Delta}\right} \ =&, -\log \frac{\sqrt[4]{\det(\boldsymbol{\Sigma}_p\boldsymbol{\Sigma}_q)}}{\sqrt{\det\left(\boldsymbol{\Sigma}\right)}}\exp\left{-\frac{1}{8}\boldsymbol{\Delta}^{\top}\boldsymbol{\Sigma}^{-1}\boldsymbol{\Delta}\right}\ =&,\frac{1}{2}\log \frac{\det(\boldsymbol{\Sigma})}{\sqrt{\det(\boldsymbol{\Sigma}_p\boldsymbol{\Sigma}_q)}} + \frac{1}{8}(\boldsymbol{\mu}_p - \boldsymbol{\mu}_q)^{\top}\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_p - \boldsymbol{\mu}_q) \end{aligned} \$$

W距离

如果读者还想看了解更多关于概率散度的内容,可以参考书籍**《Statistical Inference Based on Divergence Measures》 (opens new window)**。现在我们转向另一类概率度量——基于最优传输的W距离(Wasserstein距离)。

沿用**《从Wasserstein距离、对偶理论到WGAN》 (opens new window)**中的记号,W距离的定义如下:

W[p,q]=infγ∈Π[p,q]∬γ(x,y)d(x,y)dxdy=infγ∈Π[p,q]E(x,y)∼γ(x,y)[d(x,y)]

不同的d(x,y) 得到不同的结果,为了得到较为简单的解,这里选择

d(x,y)=‖x−y‖2

计算结果

有意思的是,关于两个正态分布的W距离的结果,流传着两个不同的版本,这两个版本都有一定的认知度,但却没有看到有明确说两者等价的资料。两个版本出自不同的论文,还被冠以了不同的名字。

版本1

首先第一个流传相对较广的版本(很多文献包括维基百科也使用这个版本):

于这个结果,有的读者可能困惑于怎么关于是对称的,事实上,它关于对称的,因为W[p,q]=‖μp−μq‖2+Tr(Σp)+Tr(Σq)−2Tr((Σp1/2ΣqΣp1/2)1/2)$$于这个结果,有的读者可能困惑于“怎么关于$p,q$是对称的”,事实上,它关于$p,q$对称的,因为$$Tr((Σp1/2ΣqΣp1/2)1/2)=Tr((Σp1/2ΣqΣp1/2)1/2Σp−1/2Σq−1/2Σq1/2Σp1/2)=Tr(Σq1/2Σp1/2(Σp1/2ΣqΣp1/2)1/2Σp−1/2Σq−1/2)

然后我们可以直接验证(Σq1/2Σp1/2(Σp1/2ΣqΣp1/2)1/2Σp−1/2Σq−1/2)2=Σq1/2ΣpΣq1/2,所以有Tr((Σp1/2ΣqΣp1/2)1/2)=Tr((Σq1/2ΣpΣq1/2)1/2)。

版本2

第二个看起来稍微简单一些的版本,结果是:

W[p,q]=‖μp−μq‖2+Tr(Σp)+Tr(Σq)−2Tr((ΣpΣq)1/2)

这个版本通常被称为“Fréchet距离 (opens new window)”。GAN中经常使用的评价指标FID(Frechet Inception Distance (opens new window)),就是基于这个公式进行计算的。可以模仿前面证明它关于p,q 对称性,当然也可以从下面的等价性讨论中直接得出。

等价性

事实上,证明两者的等价性并不难:

Tr((Σp1/2ΣqΣp1/2)1/2)=Tr((Σp1/2ΣqΣp1/2)1/2Σp−1/2Σp1/2)=Tr(Σp1/2(Σp1/2ΣqΣp1/2)1/2Σp−1/2)

然后直接验证(Σp1/2(Σp1/2ΣqΣp1/2)1/2Σp−1/2)2=ΣpΣq 可。

特殊时

特别地,如果Σp,Σq 乘法可以交换,那么将会简化为非常直观的形式:

W[p,q]=‖μp−μq‖2+‖Σp1/2−Σq1/2‖F2

为什么说它非常直观呢?因为正态分布的参数为μ,Σ,所以比较正态分布的差异其实就是比较μ,Σ 差异,按照机器学习的习惯,一个很容易相当想到的指标是平方误差

W[p,q]=‖μp−μq‖2+‖Σp−Σq‖F2

但从物理角度来看,这个指标是不妥的,因为如果将μ 成是长度量纲,那么Σ 具有长度平方的量纲,所以‖μp−μq‖2 ‖Σp−Σq‖F2 具有不同量纲的两个量,不能相加。而为了使得量纲一致,直观的想法就是把Σ“开平方”后再算平方误差,这就得到了式(???)。

特别地,当q 标准正态分布时,结果简化为

W[p,q]=‖μp‖2+‖Σp1/2−I‖F2

推导过程1

现在介绍第一个证明,主要参考了论文**《A class of Wasserstein metrics for probability distributions》 (opens new window)。另外《The distance between two random vectors with given dispersion matrices》 (opens new window)**也提供了一个类似的证明,也可以参考。

下面的推导过程则是经过笔者简化的,相对原论文的证明来说简单一些,但依然不可避免地会涉及到较多的线性代数知识,我们将分几个部分介绍。

去均值

不失一般性,我们可以只考虑均值为0的分布p,q。因为如果p,q 均值不为0,那么设对应的均值为0的分布为p~,q~,此时有

E(x,y)∼γ(x,y)[‖x−y‖2]=E(x,y)∼γ~(x,y)[‖(x+μp)−(y+μq)‖2]=E(x,y)∼γ~(x,y)[‖x−y‖2+‖μp−μq‖2+2⟨x−y,μp−μq⟩]=‖μp−μq‖2+E(x,y)∼γ~(x,y)[‖x−y‖2]

该结果意味着

W[p,q]=‖μp−μq‖2+W[p~,q~]

所以,只需要算出均值都为零时的Wasserstein距离,然后加上‖μp−μq‖2 得到了一般情况的结果。

纯代数

现在我们假设p,q 均值均为0,然后计算

E(x,y)∼γ(x,y)[‖x−y‖2]=E(x,y)∼γ(x,y)[x⊤x+y⊤y−2y⊤x]=E(x,y)∼γ(x,y)[Tr(xx⊤+yy⊤−2xy⊤)]=Tr(E(x,y)∼γ(x,y)[xx⊤+yy⊤−2xy⊤])=Tr(Σp)+Tr(Σq)−2Tr(C)

其中

Σγ=(ΣpCC⊤Σq)=E(x,y)∼γ(x,y)[(xy)(x⊤y⊤)]

构成联合分布γ 协方差矩阵。我们知道协方差矩阵是正定对阵矩阵,所以从代数的角度看,问题变成了: 已知Σγ=(ΣpCC⊤Σq) 正定对称矩阵,求Tr(C) 最大值。

舒尔补

为此,我们需要利用下述关于“舒尔补”的恒等式:

(ΣpCC⊤Σq)=(I0C⊤Σp−1I)(Σp00Σq−C⊤Σp−1C)(IΣp−1C0I)

其中对称矩阵S=Σq−C⊤Σp−1C 为“舒尔补(Schur Complement) (opens new window)”,该分解具有B⊤AB 形式,要想它是正定的,那么A 是正定的,而Σp 经是正定的,所以S 要是正定的。

分参数

我们尝试分离参数,即从S=Σq−C⊤Σp−1C 把C 出来。首先移项得到Σq−S=C⊤Σp−1C,由于Σp 正定对称的,所以Σp−1 是,从而C⊤Σp−1C 是正定对称的,那么它具有正定对称的平方根,即存在正定对称矩阵R,使得

C⊤Σp−1C=R2⇔(Σp−1/2CR−1)⊤(Σp−1/2CR−1)=I

这说明Σp−1/2CR−1 正交矩阵,记为O,那么C=Σp1/2OR。

乘子法

此时,变量分别是O R,求Tr(C)=Tr(Σp1/2OR) 最大值。我们先固定R,求取最大值时的O,此时相当于在O⊤O=I 约束下,求Tr(Σp1/2OR) 最大值,我们用“拉格朗日乘子法 (opens new window)”:引入新参数矩阵W,转化为下述无约束极值问题

F=Tr(Σp1/2OR)−Tr(W(O⊤O−I))

求导:

∂F∂O=0⇒RΣp1/2=WO⊤∂F∂W=0⇒O⊤O=I

首先留意到O⊤O−I 对称的,因此对应的参数矩阵W 是对称的,于是我们有:

(OWO⊤)2=(WO⊤)⊤(WO⊤)=Σp1/2R2Σp1/2

即OWO⊤=(Σp1/2R2Σp1/2)1/2,所以此时

Tr(Σp1/2OR)=Tr(ORΣp1/2)=Tr(OWO⊤)=Tr((Σp1/2R2Σp1/2)1/2)

不等式

最后需要把R 定下来。回顾R 定义,我们有R2=Σq−S,其中S 正定矩阵。直觉上S=0 取得最大值,事实上也确实如此,这算是“Weyl不等式 (opens new window)”的一个直接推论。

根据Weyl不等式,如果矩阵A,B,A+B 是正定对称矩阵,它们的特征值从小到大排列分别为0≤λ1(A)≤⋯≤λn(A)、λ1(B)≤⋯≤λn(B) 0≤λ1(A+B)≤⋯≤λn(A+B),那么对于任意1≤i≤n,都有λi(A)≤λi(A+B) λi(B)≤λi(A+B),也就是说: 正定对称矩阵的和的特征值,一一对应地大于它们各自的特征值。

有了这个结论,那就简单了,设(Σp1/2(Σq−S)Σp1/2)1/2 特征值为0≤λ1≤⋯≤λn,那么它的迹就是λ1+⋯+λn,对应地,Σp1/2(Σq−S)Σp1/2 特征值为0≤λ12≤⋯≤λn2,注意Σp1/2(Σq−S)Σp1/2 正定对称矩阵(对称是显然的,而因为它能开平方,所以正定),Σp1/2SΣp1/2 是正定对称的(因为S 正定对称的),所以它们的特征值,都不超过它们的和——也就是Σp1/2ΣqΣp1/2 特征值,所以说,(Σp1/2(Σq−S)Σp1/2)1/2 个特征值的最大值(也就是迹的最大值),在S=0 取到。

至于Weyl不等式的证明,主要利用到了**Rayleigh quotient (opens new window)和Courant–Fischer定理 (opens new window)**,有兴趣了解的读者自行查阅这两部分资料后,再查阅Wely不等式的证明就好。事实上,熟悉这两部分内容后,Weyl不等式基本上就“水到渠成”了。

推导过程2

这里继续介绍另一个更为简单的证明,原始证明可以在**《The Fréchet distance between multivariate normal distributions》 (opens new window)**找到。相对而言该证明简单不少,尤其是不需要太多的纯线性代数知识。下面的推导过程依旧是经过笔者进一步简化的,比原始论文更好理解一些。

在这个推导过程中,“去均值”、“纯代数”两个步骤跟“推导过程1”是一样的,不再重复。所以,此时问题已经被转化为 已知Σγ=(ΣpCC⊤Σq) 正定对称矩阵,求Tr(C) 最大值。

分块阵

由于Σγ 正定对称矩阵,所以它必然可以表达成DD⊤ 形式,我们将D 达为分块矩阵(AB),其中A,B∈Rn×2n,此时

(ΣpCC⊤Σq)=(AB)(A⊤B⊤)=(AA⊤AB⊤BA⊤BB⊤)

对应地有Σp=AA⊤,Σq=BB⊤,C=AB⊤。

乘子法

在上述参数化之下,问题转化为: 已知AA⊤=Σp,BB⊤=Σq,求Tr(AB⊤) 最大值。

这是一个带约束的最大值问题,我们用“拉格朗日乘子法 (opens new window)”:引入新参数矩阵Wp,Wq,转化为下述无约束极值问题

F=Tr(AB⊤)−Tr(Wp(AA⊤−Σp))−Tr(Wq(BB⊤−Σq))

求导:

∂F∂A=0⇒B⊤=A⊤Wp∂F∂B=0⇒A⊤=B⊤Wq∂F∂Wp=0⇒AA⊤=Σp∂F∂Wq=0⇒BB⊤=Σq

注意到AA⊤−Σp BB⊤−Σq 是对称的,所以对应的参数矩阵Wp,Wq 是对称的,此时

Σq=BB⊤=(A⊤Wp)⊤(A⊤Wp)=WpAA⊤Wp=WpΣpWp

令Wp=Σp−1/2RΣp−1/2,代入上式得Σq=Σp−1/2R2Σp−1/2,即

R=(Σp1/2ΣqΣp1/2)1/2

而

Tr(AB⊤)=Tr(AA⊤Wp)=Tr(ΣpWp)=Tr(Σp1/2RΣp−1/2)=Tr(RΣp−1/2Σp1/2)=Tr(R)

文章小结

本文详细计算了两个多元正态分布的KL散度、巴氏距离和W距离,给出了它们的显式解析解,这些结果在某些场景下可以作为隐变量的正则项使用,来规范隐变量的分布。此外,本文还可以作为比较有挑战性的线性代数练习题,供大家参考练习。

上次更新: 2025/06/25, 11:25:50
最优传输之梯度流

← 最优传输之梯度流

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式