KL散度与交叉熵的关系
信息量:−log(p), (这里的log是以e为底)。
而熵是信息量的的期望:∑i=1np(xi)log(p(xi)1)
对于两个不同的概率分布,可以使用KL散度来衡量两个概率分布的差异:
DKL(p∣∣q)=i=1∑np(xi)log(q(xi)p(xi))=i=1∑np(xi)log(p(xi))−i=1∑np(xi)log(q(xi))=[i=1∑np(xi)log(q(xi)1)]−i=1∑np(xi)log(p(xi)1)
也就是说,KL散度 = 交叉熵 - 信息熵。 而信息熵在分布确定后就是个常数,所以优化交叉熵就等价于优化KL散度
注意,KL散度的非对称性,不能把KL散度看作是不同分布之间距离的度量,因为从KL散度的计算公式就可以看出它不符合对称性(距离度量应该满足对称性),即DKL(P∣∣Q)=DKL(Q∣∣P)
TD-IDF算法就可以理解为相对熵的应用:词频在整个语料库的分布与词频在具体文档中分布之间的差异性
因此,如果要推导交叉熵损失函数,网络上常见的讲解是从对数几率回归来推导交叉熵损失函数,但是也可以从KL散度出发推导
信息熵和编码之间的关系
先说结论:信息熵 是信息量的期望 ,那么可以反映所需要编码的比特量
比如:一个随机变量X,一共只有四种状态(a, b, c, d),每种状态的概率是相同的(41),那么信息熵就是 2,为了把 X 的值传给接收者,需要传输2比特的消息
如果上面的四个状态并不是均匀分布,比如说 (21,41,81,81) ,那么需要的信息熵为 1.75, 为了把 X 的值传给接收者,我们需要传输1.75比特的消息
暗藏一个数学规律:均匀分布的信息熵比非均匀分布的信息熵,所需要的编码的位数更多,需要更多的比特;
那么,对于非均匀分布,可以使用更短的码字来表述高概率事件,使用更长的码字来表述低概率事件
(和霍夫曼编码一个道理)
香农编码定理:熵是传输一个随机变量状态值所需的比特位下界(最短平均编码长度)
也就是说,给定一组信息的各个类别概率,能够轻易计算出熵,也就能直接得到最短平均编码长度
上述的讲解可以导出交叉熵作为损失函数的另外一种理解:
所谓优化损失函数,就是用函数的分布q(可计算) 去尽可能拟合真实分布p(未知)。
所谓交叉熵∑i=1nplog(q1),指用分布 q 来表示分布 p 的平均编码长度。
优化交叉熵等价于让函数去拟合真实分布
KL散度就是相对熵
设 p(x)、q(x) 是 离散随机变量 X 中取值的两个概率分布,则 p 对 q 的相对熵是:
DKL(p∣∣q)=x∑p(x)logq(x)p(x)=E{p(x)logq(x)p(x)}
性质:
-
如果 p(x) 和 q(x) 两个分布相同,那么相对熵等于0
-
DKL(p∣∣q)=DKL(q∣∣p),相对熵具有不对称性。大家可以举个简单例子算一下。
-
DKL(p∣∣q)≥0 证明如下(利用Jensen不等式)(非负性)
相对熵是指用 q (非真实分布) 来表示分布 p (真实分布) 额外需要的编码长度。
KL散度是用来度量使用基于 “q的编码” 来编码来自 “p的样本” 平均所需的额外的位元数
条件熵
条件熵 H(Y∣X) 表示在已知随机变量 X 的条件下随机变量 Y 的不确定性。
条件熵 H(Y∣X) 定义为 X 给定条件下 Y的条件概率分布的熵对 X 的数学期望:
极大似然估计角度
当然,交叉熵还有种从对数几率回归的角度的推导方式,说明交叉熵损失等价于对数几率回归的极大似然估计。
然后,对数几率中分子分母当做概率只是人为加上去的意义。
具体推导见简单的交叉熵损失函数,你真的懂了吗? - 知乎
参考资料
损失函数:交叉熵详解