首发地址:https://zhuanlan.zhihu.com/p/68363765
本文是随笔哈,想到哪里写到哪里。
------------------------ 割 -------------------------
上面公式是信息熵公式,“热力学中的热熵是表示分子状态混乱程度的物理量。香农用信息熵的概念来描述信源的不确定度。”
那为什么上述公式就能代表某事情的不确定程度呢?(或者叫混乱程度)??怎么做到的呢????
我在上学学概率时候就是楞背下来公式的,老师讲的、书里写的都太抽象了,联系公式最初的应用场景就能很容易说清:
!!!上面公式的应用场景是——拍电报!!!
p(x)是概率,log(p(x))是什么呢??别说那数学概念和抽象意义。说实在的。
log(p(x))不知道,但是如果把公式最外头的负号揉进来变成log(1/p(x))就有实际意义了,
是指拍电报时需要几个bit(拍几下电报机)才能表示这件事。比如,A这件事概率是1/8,那么最“正常”情况下,发生8件事才能出现一次A这件事,列举这8件事至少需要3个bit,(000, 001, 010, 011, 100, 101, 110, 111),即“电报的码长”是3。所以,由概率是1/8,到电报的码长”是3,需要取log2。
(我猜,这也就是类似各种信息论的公式中log底数都是2而非e的原因!我面试京东就答错过!当然人家没问原因啊。)
信息熵 = sigma (概率 * 其对应的电报码长)
换成文字逻辑:把每种可能情况出现的概率和这种情况对应的电报码长相乘,所有情况的乘积相加。
更进一步的逻辑:(把一系列码长乘以各自的概率,那就是)各情况下的电报码长的平均值。
再进一步:这事儿平均下来需要几个电报码长(bit 比特)能表达清楚(也就是表达所有可能的情况)。————这就是“信息熵”的现实意义!
(哈夫曼编码不就是为了缩短码长才创造出来的吗?)
------------------ 割 ----------------
交叉熵公式:
有个说法是“交叉熵指的是当你用B作为密码本来表示A时所需要的“平均的编码长度”。”
也就是,B系列里的所有事件对应的“码长”用A系列中的可能性 得到其平均码长。
------------------ 割 ----------------
KL散度:
等于 “交叉熵 - 信息熵”,确切说是“B编码下A的交叉熵 - A的信息熵”,即“用B编码表示A 和 用A编码表示A 的 码长之差”,也即“用B编码表示A的平均码长,与正常情况相比,长了多少。”当然是越小越好。
如果对您有帮助,请点赞!谢谢!