散度和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} ∇=∂x∂ex+∂y∂ey+∂z∂ez(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 梯度
- 梯 度 是 一 个 向 量 \color{red}梯度是一个向量 梯度是一个向量,它表示函数在某个点处往哪个方向走,变化最快,即梯度等于方向导数的最大值。
- 对于一个 标 量 函 数 ψ \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}算子点乘标量函数 算子点乘标量函数的过程。 - 只有 标 量 函 数 才 有 梯 度 \color{red}标量函数才有梯度 标量函数才有梯度,梯度是 纯 量 函 数 ⇒ 向 量 场 \color{red}纯量函数\Rightarrow 向量场 纯量函数⇒向量场的过程。
1.3 散度
- 散 度 是 一 个 标 量 \color{red}散度是一个标量 散度是一个标量,它表示一个闭合曲面内单位体积的通量。
- 散 度 的 作 用 对 象 是 一 个 矢 量 函 数 \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⎦⎤=∂x∂fx+∂y∂fy+∂z∂fz(1.4)
可以将散度类比于线性代数中的 向 量 内 积 \color{red}向量内积 向量内积,两个向量的内积是一个标量。 - 散度是针对 矢 量 函 数 \color{red}矢量函数 矢量函数,是 向 量 场 ⇒ 纯 量 函 数 \color{red}向量场\Rightarrow 纯量函数 向量场⇒纯量函数的过程。
- 某点散度代表了该点向外的通量体密度,其物理意义可以理解为:定量给出向量场中任一点是否为源点或汇点。
- 若某点散度等于0,则说明其通量为0,流进=流出;
- 若某点散度大于0,说明流出>流进,相当于一个 源 点 ( s o u r c e ) \color{red}源点(source) 源点(source);
- 若某点散度小于0,说明流出<流进,相当于一个 汇 点 ( s i n k ) \color{red}汇点(sink) 汇点(sink)。
- 应用:流体力学中不可压缩条件为:速度场的散度为0。
1.4 旋度
- 旋 度 是 一 个 向 量 \color{red}旋度是一个向量 旋度是一个向量,它表示单位面积的环量,即环量面密度。
- 旋 度 的 作 用 对 象 是 一 个 矢 量 函 数 \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∂x∂fxey∂y∂fyez∂z∂fz∣∣∣∣∣∣(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(∂y∂fz−∂z∂fy)+(−1)1+2ey(∂x∂fz−∂z∂fx)+(−1)1+3ez(∂x∂fy−∂y∂fx)=ex(∂y∂fz−∂z∂fy)−ey(∂x∂fz−∂z∂fx)+ez(∂x∂fy−∂y∂fx)(1.6) - 散度是针对 矢 量 函 数 \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∂ψ⎦⎥⎤=∂x2∂2ψ+∂y2∂2ψ+∂z2∂2ψ(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} ∂x2∂2ψ+∂y2∂2ψ+∂z2∂2ψ=0(1.8)
1.6 相关性质
- 梯 度 的 旋 度 恒 为 0 向 量 \color{red}梯度的旋度恒为0向量 梯度的旋度恒为0向量。注意这个0是零向量,不是标量的0。
- 旋 度 的 散 度 恒 为 0 标 量 \color{red}旋度的散度恒为0标量 旋度的散度恒为0标量。注意这个0是是标量的0。
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散度定义。
- 熵 定 义 \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=1∑np(xi)logp(xi)(2.1) - 相 对 熵 \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 p相对q的 相 对 熵 \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(p∣∣q)=i=1∑np(x)logq(x)p(x)(2.2)
之所以称之为 相 对 熵 \color{red}相对熵 相对熵,是因为其可以通过两随机变量的交叉熵(Cross-Entropy)以及信息熵推导得到:- 针对上述离散变量的概率分布 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)=x∑p(x)logq(x)1=−x∑p(x)logq(x)
在信息论中,交叉熵可认为是对预测分布 q ( x ) q(x) q(x)用真实分布 p ( x ) p(x) p(x)来进行编码时所需要的信息量大小。 - 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(p∥q)=H(p,q)−H(p)=−x∑p(x)logq(x)−x∑−p(x)logp(x)=−x∑p(x)(logq(x)−logp(x))=−x∑p(x)logp(x)q(x)
- 针对上述离散变量的概率分布 p ( x ) 、 q ( x ) p(x)、q(x) p(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(p∣∣q)≥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} −i∑npilogpi≤−i∑npilogqi(2.4)
当且仅当 p i = q i ( ∀ i ) p_i=q_i(∀i) pi=qi(∀i)等号成立。
2.3.2 不对称性
- KL散度并不是一个真正的度量或者距离,因为它不具有对称性:
D ( p ∥ q ) ≠ D ( q ∥ p ) (2.5) \color{red}D(p∥q)≠D(q∥p)\tag{2.5} D(p∥q)=D(q∥p)(2.5) - 各种散度中,Jensen-Shannon divergence( J S 散 度 \color{red}JS散度 JS散度)是 对 称 的 \color{red}对称的 对称的。
各种散度参考下一章节。
2.4 KL散度的理解
2.4.1 统计学意义上的KL散度:
- 在统计学意义上来说,KL散度可以用来 衡 量 两 个 分 布 之 间 的 差 异 程 度 \color{red}衡量两个分布之间的差异程度 衡量两个分布之间的差异程度。
- 若两个分布差异越小,KL散度越小;反之亦反。当两分布一致时,其KL散度为0。
- 正是因为其可以衡量两个分布之间的差异,所以在VAE、EM、GAN中均有使用到KL散度。
2.4.2 信息论角度的KL散度:
- KL散度在信息论中的专业术语为相对熵。
- KL散度可理解为 编 码 系 统 对 信 息 进 行 编 码 时 所 需 要 的 平 均 附 加 信 息 量 \color{red}编码系统对信息进行编码时所需要的平均附加信息量 编码系统对信息进行编码时所需要的平均附加信息量。
- 其中信息量的单位随着计算公式中log运算的底数而变化。
- log底数为2:单位为比特(
bit
) - log底数为e:单位为奈特(
nat
)
- log底数为2:单位为比特(
- 参考阅读:
- 英文版:Kullback-Leibler Divergence Explained
- 英文版中文翻译: 解释Kullback-Leibler散度
- 其中信息量的单位随着计算公式中log运算的底数而变化。
2.5 连续随机变量的KL散度
2.5.1 一维高斯分布的随机变量KL散度
- 定义
假设 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 p的KL散度定义为:
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(p∥q)=∫[log(p(x))−log(q(x))]p(x)dx=∫[p(x)log(p(x))−p(x)log(q(x))]dx(2.6) - 化简公式
已知正态分布的概率密度函数(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σ12∫p(x)x2dx−∫p(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σ22∫p(x)x2dx−∫p(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)2−21(2.10)
- 公式(2.6)第一项 ∫ p ( x ) log ( p ( x ) ) d x ∫p(x)\log (p(x))dx ∫p(x)log(p(x))dx计算如下:
2.5.2 多高斯分布的随机变量KL散度
- 假设多高斯分布 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∣Σ1∣1/21exp(−21(x−μ1)TΣ1−1(x−μ1))q(x)∼N(μ2,Σ22)=(2π)N/2∣Σ2∣1/21exp(−21(x−μ2)TΣ2−1(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,μ2∈RN×1Σ1,Σ2∈RN×N(2.12) - 多高斯分布随机变量的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Σ1−1(x−μ1)+logdetΣ2+(x−μ2)TΣ2−1(x−μ2)]=21logdetΣ1detΣ2+21Ep(x)[−(x−μ1)TΣ1−1(x−μ1)+(x−μ2)TΣ2−1(x−μ2)]=21logdetΣ1detΣ2+21Ep(x){ −tr[Σ1−1(x−μ1)(x−μ1)T]+tr[Σ2−1(x−μ2)(x−μ2)T]}=21logdetΣ1detΣ2−21tr{ Ep(x)[Σ1−1(x−μ1)(x−μ1)T]}+21tr{ Ep(x)[Σ2−1(x−μ2)(x−μ2)T]}=21logdetΣ1detΣ2−2N+21tr{ Ep(x)[Σ2−1(xxT−μ2xT−xμ2T+μ2μ2T)]}=21logdetΣ1detΣ2−2N+21tr[Σ2−1(Σ1+μ1μ1T−μ2μ1T−μ1μ2T+μ2μ2T)]=21logdetΣ1detΣ2−2N+21tr(Σ2−1Σ1)+21tr[Σ2−1(μ1μ1T−μ2μ1T−μ1μ2T+μ2μ2T)]=21{ logdetΣ1detΣ2−N+tr(Σ2−1Σ1)+tr(μ1TΣ2−1μ1−μ1TΣ2−1μ2−μ2TΣ2−1μ1+μ2TΣ2−1μ2)}=21{ logdetΣ1detΣ2−N+tr(Σ2−1Σ1)+tr(μ1TΣ2−1μ1−2μ1TΣ2−1μ2+μ2TΣ2−1μ2)}=21{ logdetΣ1detΣ2−N+tr(Σ2−1Σ1)+(μ2−μ1)TΣ2−1(μ2−μ1)}(2.13)- 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) - 矩阵的迹的性质
矩阵线性组合迹不变: 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) - 对于列向量 λ \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) - 多高斯分布中均值 μ μ μ和方差 Σ Σ Σ的性质:
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)
- E p ( ⋅ ) Ep(⋅) Ep(⋅)代表⋅在概率密度函数 p ( x ) p(x) p(x)的期望。多正态分布下期望矩阵化的表示
因此:
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(p∥q)==21log∣Σ1∣∣Σ2∣+21Ep(x)[(x−μ2)TΣ2−1(x−μ2)−(x−μ1)TΣ1−1(x−μ1)]21log∣Σ1∣∣Σ2∣+21tr(Σ2−1Σ1)+(μ1−μ2)TΣ2−1(μ1−μ2)T−21N(2.19)
参考:
- 快速理解梯度,散度和旋度
- 梯度、散度、旋度与矢量分析
- Kullback-Leibler Divergence Explained
- KL散度(Kullback-Leibler Divergence)介绍及详细公式推导
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/91918.html