一言
五感働いて、君を救う。——Brand New
熵、交叉熵、KL散度的区别

熵、交叉熵、KL 散度的区别

信息量

    很多教程会直接摆出熵的定义,但个人认为这之前最好先了解一下信息量这个概念。

    从字面上来说,信息量就是衡量一件事情的信息量有多少。对于一个高概率事件,这件事发生了之后,并不会引起什么波澜,因为大家都习以为常,太阳从东边升起,这件事发生的概率是接近于 100%的,所以每天太阳从东边升起,也不会带来很多信息,大家都习以为常,不会带来任何信息。但是某一天如果太阳从西边升起来,那就太震惊了,这个信息量就太大了————能震惊全球人类的那种,因为太阳从西边升起的概率无限接近于 0%。一件事情发生的概率越大,那发生这个事件的信息量就越小,反之,一个事件发生的概率越小,那发生这个事件的信息量就越大。一个事件越“意外”,它带来的信息越多。
    我们希望独立事件的信息量是可以进行相加的,而概率是乘法,这时候无处不在的 就又登场了,而在他前面再加一个负号,就能满足:概率越小,信息量越大,所以就很自然的引出信息量的定义:

熵(香农熵)

    信息量形容的对象是事件本身,是针对一个个事件的,如果说信息量是反映的一个事件发生的意外程度,那么熵就是来反应一个系统的意外程度的,也就是一个系统的不确定性。而一个系统中蕴含大量的事件。

从我们的直觉来看,如果一个系统内的事件都是可以被预测的,那这个系统就很确定,如果系统内部很难去预测每个事件,那这个系统就很不确定。或者说熵反映的是一个系统的信息量

上边针对事件的信息量,有个大前提:那就是这件事已经发生了,之后这件事产生了信息量,但是**一个系统内部,我们不可能默认所有事件都会发生,**针对那些发生概率比较小的事件,他的信息量本身就很大了,但是他发生概率不会很大。也得把这个概率考虑进去。
所以熵的定义为:

也就是这个系统内所有事件信息量的加权和,即熵就是这个系统内部信息量的期望,

交叉熵

交叉熵,顾名思义,有交叉,那么就是两个概率分布的交叉

从公式上来看,只是把反应信息量的 换成了 , 是另一个概率分布,交叉熵的含义就是们用另一个分布 的权重和现有概率分布 的每个事件的信息量的加权和,直觉上来说就是系统 对真实系统 的信息量估计

KL 散度



可以看到 KL 散度就是交叉熵减去熵,就是用概率分布 去估计实际的概率分布 产生的一个信息量,减去概率分布 实际上的信息量,那他的意义也很符合直觉,就是 系统和 系统的一个差异程度
一般 都是我们算出的那个概率分布估计,而 都是真实的概率分布估计
而在深度学习中,我们希望模型算出来的概率分布和真实世界的概率分布的差距是越小越好的,所以 KL 散度就是我们的优化目标,但是我们发现, 本身是不会变的,那么最小化 KL 散度,就是最小化 ,所以交叉熵就作为一个最常见的损失函数被广泛应用。

实际上对于一些硬标签,交叉熵和 KL 散度的值是一样的(因为硬标签的情况下,熵为 0),只有标签是软分布的时候,二者的值才不一样,但是不管软硬标签,在计算梯度的时候,都只依赖于交叉熵 部分。

参考视频

https://www.bilibili.com/video/BV1JY411q72n/?spm_id_from=333.1007.top_right_bar_window_custom_collection.content.click&vd_source=b59fac4a4032a8df8c5f68b99a0e5f0c

暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇