数据的熵

K-L散度源域信息论,信息的度量单位是,一般用H表示。
H=i=1Np(xi)logp(xi) H = -\sum_{i=1}^Np(x_i)\cdot logp(x_i) 上面对数没有确定的底数,可以是2、e或10,等等。

K-L散度度量信息损失

只需要对熵的公式进行修改就可以到的K-L散度的计算公式,设p为观察到的概率分布,q为另一分布来近似p,则p、q的K-L散度为:
DKL(pq)=i=1p(xi)(logp(xi)logq(xi)) D_{KL}(p||q) = \sum_{i=1}p(x_i)\cdot (logp(x_i)-logq(x_i)) K-L散度其实是数据的原始分布p和近似分布q之间的对数差值的期望
从公式可以看出,K-L散度不是一个对称量,即DKL(pq)DKL(qp)D_{KL}(p||q) \neq D_{KL}(q||p)
更一般地,K-L散度可以化简为:
DKL(pq)=i=1p(xi)(logp(xi)q(xi)) D_{KL}(p||q) = \sum_{i=1}p(x_i)\cdot (log\frac{p(x_i)}{q(x_i)})

K-L 散度的性质

K-L 散度是不对称的

K-L 散度大于等于0

先说结论,K-L散度满足大于等于0,并且当且仅当p(x)=q(x)时,等号成立。
设直线上的函数f(x)是一个非负函数,且:
f(x)dx=1 \int_{-\infty}^{\infty}f(x)dx = 1 如果g是任意实可测函数且函数φ\varphi是凸的,那么有jensen不等式:
φ(g(x)f(x)dx)ϕ(g(x))f(x)dx \varphi(\int_{-\infty}^{\infty}g(x)f(x)dx) \leq \int_{-\infty}^{\infty}\phi(g(x))f(x)dx 因为,logx-logx是严格的凸函数且q(x)dx=1\int q(x)dx = 1
φ(x)=logx,g(x)=q(x)p(x),f(x)=p(x)\varphi(x) = -logx,g(x) = \frac{q(x)}{p(x)},f(x) = p(x),可得:
KL(pq)=p(x){log[q(x)p(x)]}dxlog[q(x)dx]=0 KL(p||q) = \int p(x)\{-log[\frac{q(x)}{p(x)}]\}dx \geq -log[\int q(x)dx] = 0

为什么在神经网络中使用交叉熵损失函数,而不是K-L散度

K-L散度 = 交叉熵 - 熵,即 KL(pq)=H(p,q)H(p)KL(p||q) = H(p,q) - H(p),而在神经网络涉及的范围内,H(p)是不变的,因为p是我们观测到的样本分布。
所以,优化K-L散度等价于优化交叉熵。