多变量高斯分布之间的KL散度(KL Divergence)

来源:互联网 发布:人人字幕组 知乎 编辑:程序博客网 时间:2024/06/09 13:40

单变量高斯分布的概率密度函数如下(均值:u,方差:σ):

N(x|u,σ)=1(2πσ2)1/2exp{12σ2(xu)2}

多变量高斯分布(假设n维)的概率密度函数如下(均值:u,协方差矩阵:Σ):

N(x|u,Σ)=1(2π)n/2|Σ|1/2exp{12(xu)TΣ1(xu)}


在公式推导之前,首先介绍一些用到的性质。

  1. 矩阵的迹的性质:
    (1)tr(αA+βB)=αtr(A)+βtr(B)
    (2)tr(A)=tr(AT)
    (3)tr(AB)=tr(BA)
    根据性质(3)可以得到性质(4)
    (4)tr(ABC)=tr(CAB)=tr(BCA)

  2. 在推导公式过程中,使用到的一个重要的trick如下:
    对于列向量λ,公式λTAλ的结果是一个标量,所以:

    λTAλ=tr(λTAλ)=tr(AλλT)

  3. 多变量分布中期望E与协方差Σ的性质:
    (1)E[xxT]=Σ+uuT
    证明:

    Σ=E[(xu)(xu)T]=E[xxTxuTuxT+uuT]=E[xxT]uuTuuT+uuT=E[xxT]uuT

    (2)E(xTAx)=tr(AΣ)+uTAu
    证明:
    因为xTAx的结果是一个标量,利用前面提到的trick,可得:
    E(xTAx)=E[tr(xTAx)]=E[tr(AxxT)]=tr[E(AxxT)]=tr[AE(xxT)]=tr[A(Σ+uuT)]=tr(AΣ)+tr(AuuT)=tr(AΣ)+tr(uTAu)=tr(AΣ)+uTAu


这里主要讲述多变量高斯分布的KL散度。
连个分布和的的KL散度定义如下:

DKL(P1||P2)=EP1[logP1P2]


DKL(P1||P2)=EP1[logP1logP2]=12EP1[log|Σ1|(xu1)TΣ11(xu1)+log|Σ2|+(xu2)TΣ12(xu2)]=12log|Σ2||Σ1|+12EP1[(xu1)TΣ11(xu1)+(xu2)TΣ12(xu2)]=12log|Σ2||Σ1|+12EP1{tr[Σ11(xu1)(xu1)T]+tr[Σ12(xu2)(xu2)T]}=12log|Σ2||Σ1|+12EP1{tr[Σ11(xu1)(xu1)T]}+12EP1{tr[Σ12(xu2)(xu2)T]}=12log|Σ2||Σ1|12tr{EP1[Σ11(xu1)(xu1)T]}+12tr{EP1[Σ12(xu2)(xu2)T]}=12log|Σ2||Σ1|12tr{Σ11EP1[(xu1)(xu1)T]}+12tr{EP1[Σ12(xxTu2xTxuT2+u2uT2)]}=12log|Σ2||Σ1|12tr{Σ11Σ1}+12tr{Σ12EP1(xxTu2xTxuT2+u2uT2)}=12log|Σ2||Σ1|12n+12tr{Σ12(Σ1+u1uT1u2uT1u1uT2+u2uT2)}E[xxT]=Σ+uuT=12{log|Σ2||Σ1|n+tr(Σ12Σ1)+tr{Σ12(u1uT1u2uT1u1uT2+u2uT2)}}=12{log|Σ2||Σ1|n+tr(Σ12Σ1)+tr{Σ12u1uT1Σ12u2uT1Σ12u1uT2+Σ12u2uT2}}=12{log|Σ2||Σ1|n+tr(Σ12Σ1)+tr{uT1Σ12u12uT1Σ12u2+uT2Σ12u2}}=12{log|Σ2||Σ1|n+tr(Σ12Σ1)+(u2u1)TΣ12(u2u1)}