散度和KL散度的介绍

散度和KL散度的介绍

1. 梯度、散度与旋度

1.1 算子

定义一个向量算子 ∇ \nabla (读作nabla或者del):
∇ = ∂ ∂ x e x ⃗ + ∂ ∂ y e y ⃗ + ∂ ∂ z e z ⃗ (1.1) \nabla= \frac{\partial}{\partial x} \vec{e_x} + \frac{\partial}{\partial y} \vec{e_y} + \frac{\partial}{\partial z} \vec{e_z} \tag{1.1} =xex +yey +zez (1.1)
该算子也叫哈密顿算子,其中 e x ⃗ , e y ⃗ 和 e z ⃗ \vec{e_x}, \vec{e_y}和\vec{e_z} ex ,ey ez 分别是 X , Y , Z X, Y, Z X,Y,Z方向的单位向量用线性代数的风格表示为( T T T为转置):
∇ = [ ∂ ∂ x , ∂ ∂ y , ∂ ∂ z ] T (1.2) \nabla= [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}]^T \tag{1.2} =[x,y,z]T(1.2)

1.2 梯度

  1. 梯 度 是 一 个 向 量 \color{red}梯度是一个向量 ,它表示函数在某个点处往哪个方向走,变化最快,即梯度等于方向导数的最大值。
  2. 对于一个 标 量 函 数 ψ \color{red}标量函数\psi ψ,定义它的梯度为:
    g r a d ( ψ ) = ∇ . ψ = [ ∂ ∂ x , ∂ ∂ y , ∂ ∂ z ] T . ψ = [ ∂ ψ ∂ x , ∂ ψ ∂ y , ∂ ψ ∂ z ] T (1.3) \begin{aligned} grad(\psi) = \nabla . \psi &= [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}]^T . \psi\\ &= [\frac{\partial \psi}{\partial x}, \frac{\partial \psi}{\partial y}, \frac{\partial \psi}{\partial z}]^T \end{aligned} \tag{1.3} grad(ψ)=.ψ=[x,y,z]T.ψ=[xψ,yψ,zψ]T(1.3)
    梯度是 算 子 点 乘 标 量 函 数 \color{red}算子点乘标量函数 的过程。
  3. 只有 标 量 函 数 才 有 梯 度 \color{red}标量函数才有梯度 ,梯度是 纯 量 函 数 ⇒ 向 量 场 \color{red}纯量函数\Rightarrow 向量场 的过程。

1.3 散度

  1. 散 度 是 一 个 标 量 \color{red}散度是一个标量 ,它表示一个闭合曲面内单位体积的通量。
  2. 散 度 的 作 用 对 象 是 一 个 矢 量 函 数 \color{red}散度的作用对象是一个矢量函数 ,对于一个 矢 量 函 数 f ⃗ = [ f x , f y , f z ] T \color{red}矢量函数\vec{f} = [f_x, f_y, f_z]^T f =[fx,fy,fz]T,散度的定义为:
    d i v ( f ) = ∇ ⋅ f ⃗ = ∇ T f ⃗ = [ ∂ ∂ x , ∂ ∂ y , ∂ ∂ z ] [ f x f y f z ] = ∂ f x ∂ x + ∂ f y ∂ y + ∂ f z ∂ z (1.4) \begin{aligned} div(f) = \nabla\cdot \vec{f} = \nabla^T \vec{f} &= [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}] \left[ \begin{matrix} f_x \\ f_y \\ f_z \end{matrix} \right] \\ &= \frac{\partial f_x}{\partial x} + \frac{\partial f_y}{\partial y} + \frac{\partial f_z}{\partial z} \end{aligned} \tag{1.4} div(f)=f =Tf =[x,y,z]fxfyfz=xfx+yfy+zfz(1.4)
    可以将散度类比于线性代数中的 向 量 内 积 \color{red}向量内积 ,两个向量的内积是一个标量。
  3. 散度是针对 矢 量 函 数 \color{red}矢量函数 ,是 向 量 场 ⇒ 纯 量 函 数 \color{red}向量场\Rightarrow 纯量函数 的过程。
  4. 某点散度代表了该点向外的通量体密度,其物理意义可以理解为:定量给出向量场中任一点是否为源点或汇点。
    • 若某点散度等于0,则说明其通量为0,流进=流出
    • 若某点散度大于0,说明流出>流进,相当于一个 源 点 ( s o u r c e ) \color{red}源点(source) (source)
    • 若某点散度小于0,说明流出<流进,相当于一个 汇 点 ( s i n k ) \color{red}汇点(sink) (sink)
  5. 应用:流体力学中不可压缩条件为:速度场的散度为0。

1.4 旋度

  1. 旋 度 是 一 个 向 量 \color{red}旋度是一个向量 ,它表示单位面积的环量,即环量面密度。
  2. 旋 度 的 作 用 对 象 是 一 个 矢 量 函 数 \color{red}旋度的作用对象是一个矢量函数 ,对于一个 矢 量 函 数 f ⃗ = [ f x , f y , f z ] T \color{red}矢量函数\vec{f} = [f_x, f_y, f_z]^T f =[fx,fy,fz]T,旋度的定义为:
    r o t ( f ) = ∇ × f ⃗ = ∣ e x ⃗ e y ⃗ e z ⃗ ∂ ∂ x ∂ ∂ y ∂ ∂ z f x f y f z ∣ (1.5) rot(f) = \nabla\times \vec{f} = \left| \begin{matrix} \vec{e_x} & \vec{e_y} & \vec{e_z} \\ \frac{\partial}{\partial x} & \frac{\partial}{\partial y} & \frac{\partial}{\partial z} \\ f_x & f_y & f_z \end{matrix} \right| \tag{1.5} rot(f)=×f =ex xfxey yfyez zfz(1.5)
    公式(1.5),可以将其看做是 行 列 式 展 开 计 算 \color{red}行列式展开计算 ,其中 ( e x ⃗ , e y ⃗ , e z ⃗ ) (\vec{e_x}, \vec{e_y}, \vec{e_z}) (ex ,ey ,ez )表示 x , y , z x, y, z x,y,z方向的单位向量,即:
    ∇ × f ⃗ = ( − 1 ) 1 + 1 e x ⃗ ( ∂ f z ∂ y − ∂ f y ∂ z ) + ( − 1 ) 1 + 2 e y ⃗ ( ∂ f z ∂ x − ∂ f x ∂ z ) + ( − 1 ) 1 + 3 e z ⃗ ( ∂ f y ∂ x − ∂ f x ∂ y ) = e x ⃗ ( ∂ f z ∂ y − ∂ f y ∂ z ) − e y ⃗ ( ∂ f z ∂ x − ∂ f x ∂ z ) + e z ⃗ ( ∂ f y ∂ x − ∂ f x ∂ y ) (1.6) \begin{aligned} \nabla\times \vec{f} &= (-1)^{1+1} \vec{e_x} (\frac{\partial f_z}{\partial y} - \frac{\partial f_y}{\partial z}) + (-1)^{1+2} \vec{e_y} (\frac{\partial f_z}{\partial x} - \frac{\partial f_x}{\partial z}) + (-1)^{1+3} \vec{e_z} (\frac{\partial f_y}{\partial x} - \frac{\partial f_x}{\partial y}) \\ &= \vec{e_x} (\frac{\partial f_z}{\partial y} - \frac{\partial f_y}{\partial z}) - \vec{e_y} (\frac{\partial f_z}{\partial x} - \frac{\partial f_x}{\partial z}) + \vec{e_z} (\frac{\partial f_y}{\partial x} - \frac{\partial f_x}{\partial y}) \end{aligned} \tag{1.6} ×f =(1)1+1ex (yfzzfy)+(1)1+2ey (xfzzfx)+(1)1+3ez (xfyyfx)=ex (yfzzfy)ey (xfzzfx)+ez (xfyyfx)(1.6)
  3. 散度是针对 矢 量 函 数 \color{red}矢量函数 ,是 向 量 场 ⇒ 向 量 场 \color{red}向量场\Rightarrow 向量场 的过程。

1.5 对标量场的梯度求其散度

d i v ( g r a d ( ψ ) ) = ∇ ⋅ ( ∇ ψ ) = ∇ T ( ∇ ψ ) = [ ∂ ∂ x , ∂ ∂ y , ∂ ∂ z ] [ ∂ ψ ∂ x ∂ ψ ∂ y ∂ ψ ∂ z ] = ∂ 2 ψ ∂ x 2 + ∂ 2 ψ ∂ y 2 + ∂ 2 ψ ∂ z 2 (1.7) \begin{aligned} div (grad(\psi)) & = \nabla \cdot (\nabla \psi) = \nabla^T (\nabla \psi) \\&= [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}] \left[ \begin{matrix} \frac{\partial \psi}{\partial x} \\ \frac{\partial \psi}{\partial y} \\ \frac{\partial \psi}{\partial z} \end{matrix} \right]\\ &= \frac{\partial^2 \psi}{\partial x^2} + \frac{\partial^2 \psi}{\partial y^2} + \frac{\partial^2 \psi}{\partial z^2} \end{aligned} \tag{1.7} div(grad(ψ))=(ψ)=T(ψ)=[x,y,z]xψyψzψ=x22ψ+y22ψ+z22ψ(1.7)
令公式(1.7)等于0,就得到了 L a p l a c i a n 方 程 \color{red}Laplacian方程 Laplacian
∂ 2 ψ ∂ x 2 + ∂ 2 ψ ∂ y 2 + ∂ 2 ψ ∂ z 2 = 0 (1.8) \frac{\partial^2 \psi}{\partial x^2} + \frac{\partial^2 \psi}{\partial y^2} + \frac{\partial^2 \psi}{\partial z^2} = 0 \tag{1.8} x22ψ+y22ψ+z22ψ=0(1.8)

1.6 相关性质

  1. 梯 度 的 旋 度 恒 为 0 向 量 \color{red}梯度的旋度恒为0向量 0。注意这个0是零向量,不是标量的0。

    r o t ( g r a d ( ψ ) ) = ∇ × ∇ ψ = ∣ e x ⃗ e y ⃗ e z ⃗ ∂ ∂ x ∂ ∂ y ∂ ∂ z ∂ ψ ∂ x ∂ ψ ∂ y ∂ ψ ∂ z ∣ = e x ⃗ ( ∂ 2 ψ ∂ y ∂ z − ∂ 2 ψ ∂ z ∂ y ) − e y ⃗ ( ∂ 2 ψ ∂ x ∂ z − ∂ 2 ψ ∂ z ∂ x ) + e z ⃗ ( ∂ 2 ψ ∂ x ∂ y − ∂ 2 ψ ∂ y ∂ x ) = 0 (1.9) \begin{aligned} rot(grad(\psi)) & = \nabla\times \nabla\psi = \left| \begin{matrix} \vec{e_x} & \vec{e_y} & \vec{e_z} \\ \frac{\partial}{\partial x} & \frac{\partial}{\partial y} & \frac{\partial}{\partial z} \\ \frac{\partial \psi}{\partial x} & \frac{\partial \psi}{\partial y} & \frac{\partial \psi}{\partial z} \end{matrix} \right| \\ &=\vec{e_x} (\frac{\partial^2 \psi}{\partial y \partial z} - \frac{\partial^2 \psi}{\partial z \partial y}) - \vec{e_y} (\frac{\partial^2 \psi}{\partial x \partial z} - \frac{\partial^2 \psi}{\partial z \partial x}) + \vec{e_z} (\frac{\partial^2 \psi}{\partial x \partial y} - \frac{\partial^2 \psi}{\partial y \partial x}) \\ &= \boldsymbol{0} \end{aligned} \tag{1.9} rot(grad(ψ))=×ψ=ex xxψey yyψez zzψ=ex (yz2ψzy2ψ)ey (xz2ψzx2ψ)+ez (xy2ψyx2ψ)=0(1.9)

  2. 旋 度 的 散 度 恒 为 0 标 量 \color{red}旋度的散度恒为0标量 0。注意这个0是是标量的0。

    r o t ( d i v ( f ⃗ ) ) = ∇ ⋅ ( ∇ × f ⃗ ) = ∇ T ( ∇ × f ⃗ ) = [ ∂ ∂ x , ∂ ∂ y , ∂ ∂ z ] [ ∂ f z ∂ y − ∂ f y ∂ z − ( ∂ f z ∂ x − ∂ f x ∂ z ) ∂ f y ∂ x − ∂ f x ∂ y ] = ( ∂ 2 f z ∂ y ∂ x − ∂ 2 f y ∂ z ∂ x ) − ( ∂ 2 f z ∂ x ∂ y − ∂ 2 f x ∂ z ∂ y ) + ( ∂ 2 f y ∂ x ∂ z − ∂ 2 f x ∂ y ∂ z ) = 0 (1.10) \begin{aligned} rot(div(\vec{f})) &= \nabla\cdot (\nabla\times \vec{f}) = \nabla^T (\nabla \times \vec{f}) \\ &= [\frac{\partial}{\partial x}, \frac{\partial}{\partial y}, \frac{\partial}{\partial z}] \left[ \begin{matrix} \frac{\partial f_z}{\partial y} - \frac{\partial f_y}{\partial z} \\ -(\frac{\partial f_z}{\partial x} - \frac{\partial f_x}{\partial z})\\ \frac{\partial f_y}{\partial x} - \frac{\partial f_x}{\partial y} \end{matrix} \right] \\ &= (\frac{\partial^2 f_z}{\partial y \partial x} - \frac{\partial^2 f_y }{\partial z \partial x}) - (\frac{\partial^2 f_z}{\partial x \partial y} - \frac{\partial^2 f_x}{\partial z \partial y}) + (\frac{\partial^2 f_y}{\partial x \partial z} - \frac{\partial^2 f_x}{\partial y \partial z}) \\ &= 0 \end{aligned} \tag{1.10} rot(div(f ))=(×f )=T(×f )=[x,y,z]yfzzfy(xfzzfx)xfyyfx=(yx2fzzx2fy)(xy2fzzy2fx)+(xz2fyyz2fx)=0(1.10)


2. KL散度

2.1 KL散度简介

  • KL散度的概念来源于概率论和信息论中。
  • KL散度又被称为: 相 对 熵 \color{red}相对熵 、互熵、鉴别信息、Kullback熵、Kullback-Leible散度(即KL散度的简写)。
  • 在机器学习、深度学习领域中,KL散度被广泛运用于变分自编码器中(Variational AutoEncoder,简称VAE)、EM算法、GAN网络中。

2.2 KL散度的定义

KL散度的定义是建立在熵(Entropy)的基础上的。此处以离散随机变量为例,先给出熵的定义,再给定KL散度定义。

  1. 熵 定 义 \color{red}熵定义
    若一个离散随机变量 X X X的可能取值为 X = { x 1 , x 2 , ⋯ , x n } X=\{x_1,x_2,⋯,x_n\} X={x1,x2,,xn},而对应的概率为 p i = p ( X = x i ) p_i=p(X=x_i) pi=p(X=xi),则随机变量 X X X 熵 定 义 \color{red}熵定义 为:
    H ( X ) = − ∑ i = 1 n p ( x i ) log ⁡ p ( x i ) (2.1) H(X)=−∑_{i=1}^np(x_i)\log p(x_i)\tag{2.1} H(X)=i=1np(xi)logp(xi)(2.1)

    规定当 p ( x i ) = 0 p(x_i)=0 p(xi)=0时, p ( x i ) log ⁡ p ( x i ) = 0 p(x_i)\log p(x_i)=0 p(xi)logp(xi)=0

  2. 相 对 熵 \color{red}相对熵
    若有两个随机变量 P P P Q Q Q,且其概率分布分别为 p ( x ) 、 q ( x ) p(x)、q(x) p(x)q(x),则 p 相 对 q \color{red}p相对q pq 相 对 熵 \color{red}相对熵 为:
    D K L ( p ∣ ∣ q ) = ∑ i = 1 n p ( x ) log ⁡ p ( x ) q ( x ) (2.2) \color{red}D_{KL}(p||q)=∑_{i=1}^np(x)\log{\frac{p(x)}{q(x)}}\tag{2.2} DKL(pq)=i=1np(x)logq(x)p(x)(2.2)
    之所以称之为 相 对 熵 \color{red}相对熵 ,是因为其可以通过两随机变量的交叉熵(Cross-Entropy)以及信息熵推导得到:

    推导:

    1. 针对上述离散变量的概率分布 p ( x ) 、 q ( x ) p(x)、q(x) p(x)q(x)而言,其交叉熵定义为:
      H ( p , q ) = ∑ x p ( x ) log ⁡ 1 q ( x ) = − ∑ x p ( x ) log ⁡ q ( x ) \begin{aligned}H(p,q)=∑_xp(x)\log{\frac{1}{q(x)}}=−∑_xp(x)\log q(x)\end{aligned} H(p,q)=xp(x)logq(x)1=xp(x)logq(x)
      在信息论中,交叉熵可认为是对预测分布 q ( x ) q(x) q(x)真实分布 p ( x ) p(x) p(x)来进行编码时所需要的信息量大小。
    2. KL散度或相对熵可通过下式得出:
      D K L ( p ∥ q ) = H ( p , q ) − H ( p ) = − ∑ x p ( x ) log ⁡ q ( x ) − ∑ x − p ( x ) log ⁡ p ( x ) = − ∑ x p ( x ) ( log ⁡ q ( x ) − log ⁡ p ( x ) ) = − ∑ x p ( x ) log ⁡ q ( x ) p ( x ) \begin{aligned} D_{K L}(p \| q) &=H(p, q)-H(p) \\ &=-\sum_{x} p(x) \log q(x)-\sum_{x}-p(x) \log p(x) \\ &=-\sum_{x} p(x)(\log q(x)-\log p(x)) \\ &=-\sum_{x} p(x) \log \frac{q(x)}{p(x)} \end{aligned} DKL(pq)=H(p,q)H(p)=xp(x)logq(x)xp(x)logp(x)=xp(x)(logq(x)logp(x))=xp(x)logp(x)q(x)

2.3 KL散度的数学性质

KL散度可以用来衡量两个分布之间的差异,其具有如下数学性质:

2.3.1 正定性

D K L ( p ∣ ∣ q ) ≥ 0 (2.3) \color{red}D_{KL}(p||q)≥0\tag{2.3} DKL(pq)0(2.3)
可用Gibbs 不等式直接得出。先给出 G i b b s 不 等 式 \color{blue}Gibbs不等式 Gibbs的内容:
∑ i = 1 n p i = ∑ i = 1 n q i = 1 ∑^n_{i=1}p_i=∑^n_{i=1}q_i=1 i=1npi=i=1nqi=1,且 p i , q i ∈ ( 0 , 1 ] p_i,q_i∈(0,1] pi,qi(0,1],则有:
− ∑ i n p i log ⁡ p i ≤ − ∑ i n p i log ⁡ q i (2.4) −∑_i^n{p_i}\log p_i≤−∑_i^n{p_i}\log q_i\tag{2.4} inpilogpiinpilogqi(2.4)
当且仅当 p i = q i ( ∀ i ) p_i=q_i(∀i) pi=qi(i)等号成立。

2.3.2 不对称性

  1. KL散度并不是一个真正的度量或者距离,因为它不具有对称性:
    D ( p ∥ q ) ≠ D ( q ∥ p ) (2.5) \color{red}D(p∥q)≠D(q∥p)\tag{2.5} D(pq)=D(qp)(2.5)
  2. 各种散度中,Jensen-Shannon divergence( J S 散 度 \color{red}JS散度 JS)是 对 称 的 \color{red}对称的
    各种散度参考下一章节。

2.4 KL散度的理解

2.4.1 统计学意义上的KL散度:

  1. 在统计学意义上来说,KL散度可以用来 衡 量 两 个 分 布 之 间 的 差 异 程 度 \color{red}衡量两个分布之间的差异程度
  2. 两个分布差异越小,KL散度越小;反之亦反。当两分布一致时,其KL散度为0。
  3. 正是因为其可以衡量两个分布之间的差异,所以在VAE、EM、GAN中均有使用到KL散度。

2.4.2 信息论角度的KL散度:

  1. KL散度在信息论中的专业术语为相对熵。
  2. KL散度可理解为 编 码 系 统 对 信 息 进 行 编 码 时 所 需 要 的 平 均 附 加 信 息 量 \color{red}编码系统对信息进行编码时所需要的平均附加信息量
    1. 其中信息量的单位随着计算公式中log运算的底数而变化。
      • log底数为2:单位为比特(bit)
      • log底数为e:单位为奈特(nat)
    2. 参考阅读:
      • 英文版:Kullback-Leibler Divergence Explained
      • 英文版中文翻译: 解释Kullback-Leibler散度

2.5 连续随机变量的KL散度

2.5.1 一维高斯分布的随机变量KL散度

  1. 定义
    假设 p p p q q q均是服从 N ( μ 1 , σ 1 2 ) N (μ_1,σ^2_1) N(μ1,σ12) N ( μ 2 , σ 2 2 ) N (μ_2,σ^2_2) N(μ2,σ22)的随机变量的概率密度函数 (probability density function) ,则从 q q q p p pKL散度定义为:
    D K L ( p ∥ q ) = ∫ [ log ⁡ ( p ( x ) ) − log ⁡ ( q ( x ) ) ] p ( x ) d x = ∫ [ p ( x ) log ⁡ ( p ( x ) ) − p ( x ) log ⁡ ( q ( x ) ) ] d x (2.6) \color{red}\begin{aligned} D_{K L}(p \| q) &=\int[\log (p(x))-\log (q(x))] p(x) d x \\ &=\int[p(x) \log (p(x))-p(x) \log (q(x))] d x \end{aligned}\tag{2.6} DKL(pq)=[log(p(x))log(q(x))]p(x)dx=[p(x)log(p(x))p(x)log(q(x))]dx(2.6)
  2. 化简公式
    已知正态分布的概率密度函数(probability density function)如下式:
    p ( x ) = 1 2 π σ 1 exp ⁡ ( − ( x − μ 1 ) 2 2 σ 1 2 ) q ( x ) = 1 2 π σ 2 exp ⁡ ( − ( x − μ 2 ) 2 2 σ 2 2 ) (2.7) \begin{aligned} p(x) &=\frac{1}{\sqrt{2 \pi} \sigma_{1}} \exp \left(-\frac{\left(x-\mu_{1}\right)^{2}}{2 \sigma_{1}^{2}}\right) \\ q(x) &=\frac{1}{\sqrt{2 \pi} \sigma_{2}} \exp \left(-\frac{\left(x-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}\right) \end{aligned}\tag{2.7} p(x)q(x)=2π σ11exp(2σ12(xμ1)2)=2π σ21exp(2σ22(xμ2)2)(2.7)
    • 公式(2.6)第一项 ∫ p ( x ) log ⁡ ( p ( x ) ) d x ∫p(x)\log (p(x))dx p(x)log(p(x))dx计算如下:
      ∫ p ( x ) log ⁡ ( p ( x ) ) d x = ∫ p ( x ) log ⁡ [ 1 2 π σ 1 exp ⁡ ( − ( x − μ 1 ) 2 2 σ 1 2 ) ] d x = ∫ p ( x ) [ log ⁡ 1 2 π σ 1 + log ⁡ exp ⁡ ( − ( x − μ 1 ) 2 2 σ 1 2 ) ] d x = − 1 2 log ⁡ ( 2 π σ 1 2 ) + ∫ p ( x ) ( − ( x − μ 1 ) 2 2 σ 1 2 ) d x = − 1 2 log ⁡ ( 2 π σ 1 2 ) − ∫ p ( x ) x 2 d x − ∫ p ( x ) 2 x μ 1 d x + ∫ p ( x ) μ 1 2 d x 2 σ 1 2 = − 1 2 log ⁡ ( 2 π σ 1 2 ) − ( μ 1 2 + σ 1 2 ) − ( 2 μ 1 × μ 1 ) + μ 1 2 2 σ 1 2 = − 1 2 [ 1 + log ⁡ ( 2 π σ 1 2 ) ] (2.8) \begin{aligned} \int p(x) \log (p(x)) d x &=\int p(x) \log \left[\frac{1}{\sqrt{2 \pi} \sigma_{1}} \exp \left(-\frac{\left(x-\mu_{1}\right)^{2}}{2 \sigma_{1}^{2}}\right)\right] d x \\ &=\int p(x)\left[\log \frac{1}{\sqrt{2 \pi} \sigma_{1}}+\log \exp \left(-\frac{\left(x-\mu_{1}\right)^{2}}{2 \sigma_{1}^{2}}\right)\right] d x \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{1}^{2}\right)+\int p(x)\left(-\frac{\left(x-\mu_{1}\right)^{2}}{2 \sigma_{1}^{2}}\right) d x \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{1}^{2}\right)-\frac{\int p(x) x^{2} d x-\int p(x) 2 x \mu_{1} d x+\int p(x) \mu_{1}^{2} d x}{2 \sigma_{1}^{2}} \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{1}^{2}\right)-\frac{\left(\mu_{1}^{2}+\sigma_{1}^{2}\right)-\left(2 \mu_{1} \times \mu_{1}\right)+\mu_{1}^{2}}{2 \sigma_{1}^{2}} \\ &=-\frac{1}{2}\left[1+\log \left(2 \pi \sigma_{1}^{2}\right)\right] \end{aligned}\tag{2.8} p(x)log(p(x))dx=p(x)log[2π σ11exp(2σ12(xμ1)2)]dx=p(x)[log2π σ11+logexp(2σ12(xμ1)2)]dx=21log(2πσ12)+p(x)(2σ12(xμ1)2)dx=21log(2πσ12)2σ12p(x)x2dxp(x)2xμ1dx+p(x)μ12dx=21log(2πσ12)2σ12(μ12+σ12)(2μ1×μ1)+μ12=21[1+log(2πσ12)](2.8)
    • 公式(2.6)第二项可以同第一项按照类似的方式进行展开化简,如下:
      ∫ p ( x ) log ⁡ ( q ( x ) ) d x = ∫ p ( x ) log ⁡ [ 1 2 π σ 2 exp ⁡ ( − ( x − μ 2 ) 2 2 σ 2 2 ) ] d x = ∫ p ( x ) [ log ⁡ 1 2 π σ 2 + log ⁡ exp ⁡ ( − ( x − μ 2 ) 2 2 σ 2 2 ) ] d x = − 1 2 log ⁡ ( 2 π σ 2 2 ) + ∫ p ( x ) ( − ( x − μ 2 ) 2 2 σ 2 2 ) d x = − 1 2 log ⁡ ( 2 π σ 2 2 ) − ∫ p ( x ) x 2 d x − ∫ p ( x ) 2 x μ 2 d x + ∫ p ( x ) μ 2 2 d x 2 σ 2 2 = − 1 2 log ⁡ ( 2 π σ 2 2 ) − ( μ 1 2 + σ 1 2 ) − ( 2 μ 2 × μ 1 ) + μ 2 2 2 σ 2 2 = − 1 2 log ⁡ ( 2 π σ 2 2 ) − σ 1 2 + ( μ 1 − μ 2 ) 2 2 σ 2 2 (2.9) \begin{aligned} \int p(x) \log (q(x)) d x &=\int p(x) \log \left[\frac{1}{\sqrt{2 \pi} \sigma_{2}} \exp \left(-\frac{\left(x-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}\right)\right] d x \\ &=\int p(x)\left[\log \frac{1}{\sqrt{2 \pi} \sigma_{2}}+\log \exp \left(-\frac{\left(x-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}\right)\right] d x \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{2}^{2}\right)+\int p(x)\left(-\frac{\left(x-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}\right) d x \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{2}^{2}\right)-\frac{\int p(x) x^{2} d x-\int p(x) 2 x \mu_{2} d x+\int p(x) \mu_{2}^{2} d x}{2 \sigma_{2}^{2}} \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{2}^{2}\right)-\frac{\left(\mu_{1}^{2}+\sigma_{1}^{2}\right)-\left(2 \mu_{2} \times \mu_{1}\right)+\mu_{2}^{2}}{2 \sigma_{2}^{2}} \\ &=-\frac{1}{2} \log \left(2 \pi \sigma_{2}^{2}\right)-\frac{\sigma_{1}^{2}+\left(\mu_{1}-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}\end{aligned}\tag{2.9} p(x)log(q(x))dx=p(x)log[2π σ21exp(2σ22(xμ2)2)]dx=p(x)[log2π σ21+logexp(2σ22(xμ2)2)]dx=21log(2πσ22)+p(x)(2σ22(xμ2)2)dx=21log(2πσ22)2σ22p(x)x2dxp(x)2xμ2dx+p(x)μ22dx=21log(2πσ22)2σ22(μ12+σ12)(2μ2×μ1)+μ22=21log(2πσ22)2σ22σ12+(μ1μ2)2(2.9)
    • 简化一维高斯分布的随机变量KL散度公式如下:
      K L ( p , q ) = ∫ [ p ( x ) log ⁡ ( p ( x ) ) − p ( x ) log ⁡ ( q ( x ) ) ] d x = − 1 2 [ 1 + log ⁡ ( 2 π σ 1 2 ) ] − [ − 1 2 log ⁡ ( 2 π σ 2 2 ) − σ 1 2 + ( μ 1 − μ 2 ) 2 2 σ 2 2 ] = log ⁡ σ 2 σ 1 + σ 1 2 + ( μ 1 − μ 2 ) 2 2 σ 2 2 − 1 2 (2.10) \color{red}\begin{aligned}K L(p, q) &=\int[p(x) \log (p(x))-p(x) \log (q(x))] d x \\ &=-\frac{1}{2}\left[1+\log \left(2 \pi \sigma_{1}^{2}\right)\right]-\left[-\frac{1}{2} \log \left(2 \pi \sigma_{2}^{2}\right)-\frac{\sigma_{1}^{2}+\left(\mu_{1}-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}\right] \\ &=\log \frac{\sigma_{2}}{\sigma_{1}}+\frac{\sigma_{1}^{2}+\left(\mu_{1}-\mu_{2}\right)^{2}}{2 \sigma_{2}^{2}}-\frac{1}{2}\end{aligned}\tag{2.10} KL(p,q)=[p(x)log(p(x))p(x)log(q(x))]dx=21[1+log(2πσ12)][21log(2πσ22)2σ22σ12+(μ1μ2)2]=logσ1σ2+2σ22σ12+(μ1μ2)221(2.10)

2.5.2 多元高斯分布的随机变量KL散度

  1. 假设多元高斯分布 p p p q q q:
    p ( x ) ∼ N ( μ 1 , Σ 1 2 ) = 1 ( 2 π ) N / 2 ∣ Σ 1 ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ 1 ) T Σ 1 − 1 ( x − μ 1 ) ) q ( x ) ∼ N ( μ 2 , Σ 2 2 ) = 1 ( 2 π ) N / 2 ∣ Σ 2 ∣ 1 / 2 exp ⁡ ( − 1 2 ( x − μ 2 ) T Σ 2 − 1 ( x − μ 2 ) ) (2.11) \begin{aligned} &p(x) \sim N\left(\mu_{1}, \Sigma_{1}^{2}\right) = \frac{1}{(2 \pi)^{N / 2}\left|\Sigma_{1}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x-\mu_{1}\right)^{T} \Sigma_{1}^{-1}\left(x-\mu_{1}\right)\right) \\ &q(x) \sim N\left(\mu_{2}, \Sigma_{2}^{2}\right) = \frac{1}{(2 \pi)^{N / 2}\left|\Sigma_{2}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x-\mu_{2}\right)^{T} \Sigma_{2}^{-1}\left(x-\mu_{2}\right)\right) \end{aligned}\tag{2.11} p(x)N(μ1,Σ12)=(2π)N/2Σ11/21exp(21(xμ1)TΣ11(xμ1))q(x)N(μ2,Σ22)=(2π)N/2Σ21/21exp(21(xμ2)TΣ21(xμ2))(2.11)
    其中 μ 1 , μ 2 \mu_{1}, \mu_{2} μ1,μ2为均值, Σ 1 , Σ 2 \Sigma_{1}, \Sigma_{2} Σ1,Σ2为方差。协方差矩阵 Σ \Sigma Σ满足对称正定性质, N N N为多元变量 x x x的维数:
    μ 1 , μ 2 ∈ R N × 1 Σ 1 , Σ 2 ∈ R N × N (2.12) \begin{aligned} & \mu_{1}, \mu_{2} \in \mathbb{R}^{N \times 1} \\ &\Sigma_{1}, \Sigma_{2} \in \mathbb{R}^{N \times N} \end{aligned}\tag{2.12} μ1,μ2RN×1Σ1,Σ2RN×N(2.12)
  2. 多元高斯分布随机变量的KL散度写为(推导与一维高斯分布的随机变量KL散度相似):
    D K L ( p ( x ) ∣ ∣ q ( x ) ) = ∫ p ( x ) log ⁡ p ( x ) q ( x ) d x = E p ( x ) [ log ⁡ p ( x ) − log ⁡ q ( x ) ] = 1 2 E p ( x ) [ − log ⁡ det ⁡ Σ 1 − ( x − μ 1 ) T Σ 1 − 1 ( x − μ 1 ) + log ⁡ det ⁡ Σ 2 + ( x − μ 2 ) T Σ 2 − 1 ( x − μ 2 ) ] = 1 2 log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 + 1 2 E p ( x ) [ − ( x − μ 1 ) T Σ 1 − 1 ( x − μ 1 ) + ( x − μ 2 ) T Σ 2 − 1 ( x − μ 2 ) ] = 1 2 log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 + 1 2 E p ( x ) { − t r [ Σ 1 − 1 ( x − μ 1 ) ( x − μ 1 ) T ] + t r [ Σ 2 − 1 ( x − μ 2 ) ( x − μ 2 ) T ] } = 1 2 log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − 1 2 t r { E p ( x ) [ Σ 1 − 1 ( x − μ 1 ) ( x − μ 1 ) T ] } + 1 2 t r { E p ( x ) [ Σ 2 − 1 ( x − μ 2 ) ( x − μ 2 ) T ] } = 1 2 log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − N 2 + 1 2 t r { E p ( x ) [ Σ 2 − 1 ( x x T − μ 2 x T − x μ 2 T + μ 2 μ 2 T ) ] } = 1 2 log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − N 2 + 1 2 t r [ Σ 2 − 1 ( Σ 1 + μ 1 μ 1 T − μ 2 μ 1 T − μ 1 μ 2 T + μ 2 μ 2 T ) ] = 1 2 log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − N 2 + 1 2 t r ( Σ 2 − 1 Σ 1 ) + 1 2 t r [ Σ 2 − 1 ( μ 1 μ 1 T − μ 2 μ 1 T − μ 1 μ 2 T + μ 2 μ 2 T ) ] = 1 2 { log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − N + t r ( Σ 2 − 1 Σ 1 ) + t r ( μ 1 T Σ 2 − 1 μ 1 − μ 1 T Σ 2 − 1 μ 2 − μ 2 T Σ 2 − 1 μ 1 + μ 2 T Σ 2 − 1 μ 2 ) } = 1 2 { log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − N + t r ( Σ 2 − 1 Σ 1 ) + t r ( μ 1 T Σ 2 − 1 μ 1 − 2 μ 1 T Σ 2 − 1 μ 2 + μ 2 T Σ 2 − 1 μ 2 ) } = 1 2 { log ⁡ det ⁡ Σ 2 det ⁡ Σ 1 − N + t r ( Σ 2 − 1 Σ 1 ) + ( μ 2 − μ 1 ) T Σ 2 − 1 ( μ 2 − μ 1 ) } (2.13) \begin{aligned} &\quad D_{KL}(p(x)||q(x))=\int p(x) \log \frac{p(x)}{q(x)} dx=\mathbb{E}_{p(x)}[\log p(x)-\log q(x)]\\ &=\frac{1}{2}\mathbb{E}_{p(x)}[-\log\det \Sigma_1-(x-\mu_1)^T\Sigma_1^{-1}(x-\mu_1)+\log\det \Sigma_2+(x-\mu_2)^T\Sigma_2^{-1}(x-\mu_2)]\\ &=\frac{1}{2}\log \frac{\det \Sigma_2}{\det \Sigma_1}+\frac{1}{2}\mathbb{E}_{p(x)}[-(x-\mu_1)^T\Sigma_1^{-1}(x-\mu_1)+(x-\mu_2)^T\Sigma_2^{-1}(x-\mu_2)]\\ &=\frac{1}{2}\log \frac{\det \Sigma_2}{\det \Sigma_1}+\frac{1}{2}\mathbb{E}_{p(x)}\{-tr[\Sigma_1^{-1}(x-\mu_1)(x-\mu_1)^T]+tr[\Sigma_2^{-1}(x-\mu_2)(x-\mu_2)^T]\}\\ &=\frac{1}{2}\log \frac{\det \Sigma_2}{\det \Sigma_1}-\frac{1}{2}tr\{\mathbb{E}_{p(x)}[\Sigma_1^{-1}(x-\mu_1)(x-\mu_1)^T]\} +\frac{1}{2}tr\{\mathbb{E}_{p(x)}[\Sigma_2^{-1}(x-\mu_2)(x-\mu_2)^T]\}\\ &=\frac{1}{2}\log \frac{\det \Sigma_2}{\det \Sigma_1}-\frac{N}{2} +\frac{1}{2}tr\{\mathbb{E}_{p(x)}[\Sigma_2^{-1}(xx^T-\mu_2x^T-x\mu_2^T+\mu_2\mu_2^T)]\}\\ &=\frac{1}{2}\log \frac{\det \Sigma_2}{\det \Sigma_1}-\frac{N}{2} +\frac{1}{2}tr[\Sigma_2^{-1}(\Sigma_1+\mu_1\mu_1^T-\mu_2\mu_1^T-\mu_1\mu_2^T+\mu_2\mu_2^T)]\\ &=\frac{1}{2}\log \frac{\det \Sigma_2}{\det \Sigma_1}-\frac{N}{2} +\frac{1}{2}tr(\Sigma_2^{-1}\Sigma_1)+\frac{1}{2}tr[\Sigma_2^{-1}(\mu_1\mu_1^T-\mu_2\mu_1^T-\mu_1\mu_2^T+\mu_2\mu_2^T)]\\ &=\frac{1}{2}\{\log \frac{\det \Sigma_2}{\det \Sigma_1}-N +tr(\Sigma_2^{-1}\Sigma_1)+tr(\mu_1^T\Sigma_2^{-1}\mu_1-\mu_1^T\Sigma_2^{-1}\mu_2-\mu_2^T\Sigma_2^{-1}\mu_1+\mu_2^T\Sigma_2^{-1}\mu_2)\}\\ &=\frac{1}{2}\{\log \frac{\det \Sigma_2}{\det \Sigma_1}-N +tr(\Sigma_2^{-1}\Sigma_1)+tr(\mu_1^T\Sigma_2^{-1}\mu_1-2\mu_1^T\Sigma_2^{-1}\mu_2+\mu_2^T\Sigma_2^{-1}\mu_2)\}\\ &=\frac{1}{2}\{\log \frac{\det \Sigma_2}{\det \Sigma_1}-N +tr(\Sigma_2^{-1}\Sigma_1)+(\mu_2-\mu_1)^T\Sigma_2^{-1}(\mu_2-\mu_1)\}\\ \end{aligned}\tag{2.13} DKL(p(x)q(x))=p(x)logq(x)p(x)dx=Ep(x)[logp(x)logq(x)]=21Ep(x)[logdetΣ1(xμ1)TΣ11(xμ1)+logdetΣ2+(xμ2)TΣ21(xμ2)]=21logdetΣ1detΣ2+21Ep(x)[(xμ1)TΣ11(xμ1)+(xμ2)TΣ21(xμ2)]=21logdetΣ1detΣ2+21Ep(x){tr[Σ11(xμ1)(xμ1)T]+tr[Σ21(xμ2)(xμ2)T]}=21logdetΣ1detΣ221tr{Ep(x)[Σ11(xμ1)(xμ1)T]}+21tr{Ep(x)[Σ21(xμ2)(xμ2)T]}=21logdetΣ1detΣ22N+21tr{Ep(x)[Σ21(xxTμ2xTxμ2T+μ2μ2T)]}=21logdetΣ1detΣ22N+21tr[Σ21(Σ1+μ1μ1Tμ2μ1Tμ1μ2T+μ2μ2T)]=21logdetΣ1detΣ22N+21tr(Σ21Σ1)+21tr[Σ21(μ1μ1Tμ2μ1Tμ1μ2T+μ2μ2T)]=21{logdetΣ1detΣ2N+tr(Σ21Σ1)+tr(μ1TΣ21μ1μ1TΣ21μ2μ2TΣ21μ1+μ2TΣ21μ2)}=21{logdetΣ1detΣ2N+tr(Σ21Σ1)+tr(μ1TΣ21μ12μ1TΣ21μ2+μ2TΣ21μ2)}=21{logdetΣ1detΣ2N+tr(Σ21Σ1)+(μ2μ1)TΣ21(μ2μ1)}(2.13)

    其中运用到的一些矩阵等式:

    1. E p ( ⋅ ) Ep(⋅) Ep()代表⋅在概率密度函数 p ( x ) p(x) p(x)的期望。多元正态分布下期望矩阵化的表示
      E ( x T A x ) = t r ( A Σ ) + μ T A μ (2.14) \color{blue}E(x^TAx)=tr(AΣ)+μ^TAμ\tag{2.14} E(xTAx)=tr(AΣ)+μTAμ(2.14)
    2. 矩阵的迹的性质
       矩阵线性组合迹不变:  tr ⁡ ( α A + β B ) = α tr ⁡ ( A ) + β tr ⁡ ( B )  矩阵转置迹不变:  tr ⁡ ( A ) = tr ⁡ ( A T )  两方阵相乘交换迹不变:  tr ⁡ ( A B ) = tr ⁡ ( B A )  轮换不变性:  tr ⁡ ( A B C ) = tr ⁡ ( B C A ) = tr ⁡ ( C A B ) (2.15) \color{blue}\begin{array}{l} \text { 矩阵线性组合迹不变: } \operatorname{tr}(\alpha A+\beta B)=\alpha \operatorname{tr}(A)+\beta \operatorname{tr}(B)\\ \text { 矩阵转置迹不变: } \operatorname{tr}(A)=\operatorname{tr}\left(A^{T}\right)\\ \text { 两方阵相乘交换迹不变: } \operatorname{tr}(A B)=\operatorname{tr}(B A)\\ \text { 轮换不变性: } \operatorname{tr}(A B C)=\operatorname{tr}(B C A)=\operatorname{tr}(C A B) \end{array}\tag{2.15}  矩阵线性组合迹不变tr(αA+βB)=αtr(A)+βtr(B) 矩阵转置迹不变tr(A)=tr(AT) 两方阵相乘交换迹不变: tr(AB)=tr(BA) 轮换不变性tr(ABC)=tr(BCA)=tr(CAB)(2.15)
    3. 对于列向量 λ \lambda λ λ T A λ \lambda^TA\lambda λTAλ的结果是一个标量,而标量的迹就是这个标量,即 t r ( λ T A λ ) = λ T A λ tr(\lambda^TA\lambda)=\lambda^TA\lambda tr(λTAλ)=λTAλ,因此
      λ T A λ = t r ( λ T A λ ) = t r ( A λ λ T ) (2.16) \color{blue}\lambda^TA\lambda=tr(\lambda^TA\lambda)=tr(A\lambda\lambda^T)\tag{2.16} λTAλ=tr(λTAλ)=tr(AλλT)(2.16)
    4. 多元高斯分布中均值 μ μ μ和方差 Σ Σ Σ的性质:
      E [ x x T ] = Σ + μ μ T (2.17) \color{blue}E[xx^T]=Σ+μμ^T\tag{2.17} E[xxT]=Σ+μμT(2.17)
      E ( x T A x ) = t r ( A Σ ) + μ T A μ (2.18) \color{blue}E(x^TAx)=tr(AΣ)+μ^TAμ\tag{2.18} E(xTAx)=tr(AΣ)+μTAμ(2.18)

因此:
D K L ( p ∥ q ) = 1 2 log ⁡ ∣ Σ 2 ∣ ∣ Σ 1 ∣ + 1 2 E p ( x ) [ ( x − μ 2 ) T Σ 2 − 1 ( x − μ 2 ) − ( x − μ 1 ) T Σ 1 − 1 ( x − μ 1 ) ] = 1 2 log ⁡ ∣ Σ 2 ∣ ∣ Σ 1 ∣ + 1 2 tr ⁡ ( Σ 2 − 1 Σ 1 ) + ( μ 1 − μ 2 ) T Σ 2 − 1 ( μ 1 − μ 2 ) T − 1 2 N (2.19) \color{red}\begin{aligned} D_{K L}(p \| q)=& \frac{1}{2} \log \frac{\left|\Sigma_{2}\right|}{\left|\Sigma_{1}\right|}+\frac{1}{2} E_{p(x)}\left[\left(x-\mu_{2}\right)^{T} \Sigma_{2}^{-1}\left(x-\mu_{2}\right)-\left(x-\mu_{1}\right)^{T} \Sigma_{1}^{-1}\left(x-\mu_{1}\right)\right] \\ =& \frac{1}{2} \log \frac{\left|\Sigma_{2}\right|}{\left|\Sigma_{1}\right|}+\frac{1}{2} \operatorname{tr}\left(\Sigma_{2}^{-1} \Sigma_{1}\right)+\left(\mu_{1}-\mu_{2}\right)^{T} \Sigma_{2}^{-1}\left(\mu_{1}-\mu_{2}\right)^{T}-\frac{1}{2} N\end{aligned}\tag{2.19} DKL(pq)==21logΣ1Σ2+21Ep(x)[(xμ2)TΣ21(xμ2)(xμ1)TΣ11(xμ1)]21logΣ1Σ2+21tr(Σ21Σ1)+(μ1μ2)TΣ21(μ1μ2)T21N(2.19)

参考:

  • 快速理解梯度,散度和旋度
  • 梯度、散度、旋度与矢量分析
  • Kullback-Leibler Divergence Explained
  • KL散度(Kullback-Leibler Divergence)介绍及详细公式推导

你可能感兴趣的:(GAN,线性代数,机器学习)