白话关于熵、信息熵、香农熵的一些事

白话关于熵、信息熵、香农熵的一些事

flyfish
一切皆因深度学习中出现了交叉熵这个词。
从本文了解到的知识包括香农、自信息、熵(信息熵、信源熵、平均自信息量)、最大熵原理、交叉熵、KL散度(相对熵、信息增益、信息散度、随机性)、JS散度、二分类损失函数、多分类损失函数等。

文章目录

  • 白话关于熵、信息熵、香农熵的一些事
    • 3.1 香农
    • 3.2 问题:信息量大和信息量小是什么意思,能不能量化?
    • 3.3 问题: 用什么来量化信息
    • 3.4 自信息的表达式是什么?
    • 3.5 自信息的可视化输出
    • 3.6 白话理解自信息
    • 3.7 问题 :输出整个事件集的事怎么表达?
      • 从平均数开始看
      • 从权重方面理解
      • 从概率方面理解
    • 3.8 熵最大的模型=最好的模型
    • 3.9 可视化熵
    • 3.10 问题:如何衡量两个分布的差异?
    • 3.11 问题:KL散度能不能来衡量两个分布的距离?
    • 3.12 交叉熵
      • 二分类的时候损失函数
      • 多分类的时候损失函数
    • 3.13 两个概率分布对称性的度量是什么?
    • 3.14 参考文献

3.1 香农

如果你是一口气吃完前面的章节,又让脑袋来吃这一节
小叶子:一休哥。
一休:休息,休息一下。
要不脑袋会疼的,就像锻炼身体一下子锻炼不出肌肉块,过劳还会拉伤肌肉,得不偿失的。一上来是不能直接说交叉熵是什么,太突兀了,一个新的名词不知从哪来的,得先有一个个的知识点,点与点的连接,连啊连,连到交叉熵这里。这还得从香农说起。香农是个人名,就像我刚开始接触丢番图,根据以往的数据结构与算法的知识我还以为这是一种新的数据结构叫丢番图。
什么图,叫丢番图
丟什么,丢番图
您歇着吧大爷
好嘞。
丢番图其实是个人名。
嘟…嘟…嘟…(跑车的拟声词)脑袋要开动马力了,乌龟背上的蜗牛对蚯蚓说:乌龟老快了,哥带你飞!

香农的出场
关于 解答 交叉熵 是什么的问题,香农出场
  大家好,我是香农,我就是发明信息论的男人,大家可以阅读我在1948年发的论文《通信的数学原理》英文是《A Mathematical Theory of Communication》,因为我写的论文阅读对象是大众,所以非常通俗易读。如果读不懂,自己找原因。因为彪哥说以后你慢慢跟我处, 处不好你自己找原因,我跟彪哥是一个性子。
  之前人们并不认为信息还能像重量、体积一样可以用什么单位去衡量,而我认为可以的
我的基本想法就是一个小概率事件发生了要比一个大概率事件发生了能提供更多的信息。
我将信息的量化度量和不确定性联系起来,一个度量信息量的基本单位叫比特。毕达哥拉斯学派认为万物皆数,而我认为万物皆比特。
  记住 ,信息论具有广泛适用性。我不希望其他学科或者像本文作者用那些含有创新内容的词汇污染我那纯粹的信息论,我并不反对本文作者的理解方式,但一定要知道我的构想具有普遍适用性,我并没有创造某一个具体领域的学问,还是那句话信息论具有广泛适用性,如要得到真传,请看论文。
说完香农就谢幕了
  我的心理活动:大哥您对于什么是交叉熵 还没说呢,怎么就谢幕了,看来这个接力棒交给了我,看来大哥对我是很有信心的。
  信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。
不明白一个事情的时候,通常从问一个愚蠢的问题开始。世界上是否存在一篇论文《论问愚蠢问题的重要性 - 问对问题的重要途径》。

3.2 问题:信息量大和信息量小是什么意思,能不能量化?

已知的信息量的大小信息量大小的衡量

1、《让子弹飞》
黄四郎:三天之后,一定给县长一个惊喜!
张麻子:翻译翻译,什么***叫惊喜!
汤师爷:惊喜就是三天之后,给你一百八十万两银子,出城剿匪,接上他的腿!
张麻子:大哥这个是惊喜啊!小弟我愿意等你三天。
黄四郎的信息量就大,提供了更多的信息因为要做一件不太可能的事。

2、今天早上太阳从东方升起。这句话信息量小。
今天早上太阳从西方升起。这句话信息量大。

3、和小伙伴一起买彩票,这种事知道概率的小伙伴都知道是交智商税但和有趣的人一起做傻事也是一件乐事。
第二天小伙伴告诉我 没中奖, 这件事的信息量就很小,因为这是很正常的事
第二天小伙伴告诉我 中大奖了,这件事的信息量就很大,因为在概率上接近不可能的事,但它发生了,不可能不等于不能。
有的人说话半天不知所云,没什么信息量,有的人一句话就可以醍醐灌顶

3.3 问题: 用什么来量化信息

找一个量词,类似 测量重量的斤,吨,高度的米等等 或者函数来量化信息
度量一条消息里面包含多少信息量。
自信息(self-information)诞生了。
自信息:是一个事件或者消息本身所包含的信息量。
自信息在英文世界很多种叫法the information, the information content, the self-information, the entropy or the Shannon entropy of the message。看还使用了定冠词the。

3.4 自信息的表达式是什么?

思路是 先得有一些性质,要找的式子必须满足这些性质
花书《深度学习》是这样描述的
1、非常可能发生的事件信息量要比较少,并且极端情况下,确保能够发生的事件应该没有信息量。
2、较不可能发生的事件具有更高的信息量。
3、独立事件应具有增量的信息。 例如,投掷的硬币两次正面朝上传递的信息量,应该是投掷一次硬币正面朝上的信息量的两倍。

根据花书的描述,这样理解
已知某个随机事件发生的概率为 p ( x ) , p ( x ) p(x),p(x) p(x)p(x)的值域是 [ 0 , 1 ] [0,1] [0,1] ,假设量化信息的式子是 I ( x ) = f ( p ( x ) ) I(x)=f(p(x)) I(x)=f(p(x))
1、 p ( x ) = 1 , I ( x ) = 0 , p(x)=1,I(x)=0, p(x)=1,I(x)=0,这就是第一句表达的没有信息量
2、 p ( x ) < p ( y ) , p(x) < p(y), p(x)<p(y), 那么 I ( x ) > I ( y ) I(x) > I(y) I(x)>I(y)这是第二句
3、第三句假设抛一枚硬币正面朝上的概率是0.5;抛两枚硬币,两枚硬币正面都朝上的概率是0.25
p ( x ) = 0.5 , I ( x ) = 1 p(x)=0.5 , I(x)=1 p(x)=0.5,I(x)=1
p ( x ) = 0.25 , I ( x ) = 2 p(x)=0.25 , I(x)=2 p(x)=0.25,I(x)=2

抛1个硬币1次,结果有2 种情况,每种情况发生的概率是 1 2 = 1 2 1 \frac{1}{2} =\frac{1}{2^1} 21=211,传递的信息量是1
抛1个硬币2次,结果有4 种情况,每种情况发生的概率是 1 4 = 1 2 2 \frac{1}{4} =\frac{1}{2^2} 41=221,传递的信息量是 2
抛1个硬币3次,结果有8 种情况,每种情况发生的概率是 1 8 = 1 2 3 \frac{1}{8} =\frac{1}{2^3} 81=231,传递的信息量是 3
按照上述的性质,那式子就要用log了,
底数为 e e e的对数,单位是奈特。
底数为2的对数,单位是比特(bit)或者香农(shannons)
某个随机事件发生的概率为 p ( x ) p(x) p(x),该事件发生等价于传递出 log ⁡ 1 P ( x ) \log \frac{1}{P(x)} logP(x)1比特信息
自信息的表达式是
I ( x ) = log ⁡ 1 P ( x ) I(x)=\log \frac{1}{P(x)} I(x)=logP(x)1
那么就可以说
随机事件的自信息量被定义为该事件发生概率的对数 的负值 或者概率倒数的对数
I ⁡ ( x ) = − log ⁡ ( P ⁡ ( x ) ) = log ⁡ ( 1 P ⁡ ( x ) ) {\displaystyle \operatorname {I} (x)=-\log(\operatorname {P} (x))=\log \left({\frac {1}{\operatorname {P} (x)}}\right)} I(x)=log(P(x))=log(P(x)1)

3.5 自信息的可视化输出

import numpy as np
import matplotlib.pyplot as plt
epsilon =1e-6
X = np.linspace(0.0, 1.0, 101)
Y = -np.log2(X+epsilon) 
plt.plot(X, Y)
plt.xlabel('Probability')
plt.ylabel('self Information')

白话关于熵、信息熵、香农熵的一些事_第1张图片

3.6 白话理解自信息

白话理解自信息,开始,组合数的倒数就是概率,就是简单的排列组合问题。例如明天天气可能是晴、阴、雨、雪这4种等可能概率。明天每种天气出现的概率是1/4,即组合数4和概率1/4互为倒数.
这就是自信息的定义里为什么会出现了概率的倒数,概率的倒数(1 除以 1/4) 得到组合数4。香农论文的题目名字叫《通信的数学理论》有通信就有编码,然后再对之前得到的组合数4求对数 就得出了所需要的编码长度2,这就是自信息的定义,2个bit进行编码就能表示四个等可能的组合。例如01,11,10,00,每组都是2个bit,他们的组合表示出了4种天气情况。

3.7 问题 :输出整个事件集的事怎么表达?

问题 :自信息输出的只是一个事件的事,那要输出整个事件集的事怎么表达?
例如晴、阴、雨、雪,明天到底是什么天气,一个晴是一个事件,一个雨是一个事件。明天有4种可能发生的事件
抛1个硬币3次这算是一个事件,结果有8种可能发生的事件
对大概率事件用短编码,对小概率事件事件用长编码。
比如龙王想要把明天是什么天气告诉我,龙王就得把信息编码,龙王有个脾气就是惜字如金,龙王说明天晴、阴、雨、雪都有可能,都是等概率的
有的时候天气晴、阴、雨、雪不是等概率的,表示如下
编码是这么多事件的编码,而且还要最小长度。
信息熵解决这个问题
信息熵 后面 简称熵
熵、信息熵、信源熵、平均自信息量,同一个含义,不同的叫法,事件集所包含的平均信息量
自信息只处理单个的输出。 信息熵来对整个概率分布中的不确定性总量进行量化。换言之,一个分布的香农熵是指遵循这个分布的事件所产生的期望信息总量。
自信息是一个事件的事,信息熵是事件集的事。
白话关于熵、信息熵、香农熵的一些事_第2张图片

熵 = 1 ∗ 1 2 + 2 ∗ 1 4 + 3 ∗ 1 8 + 3 ∗ 1 8 = 1.75 熵 = 1 * \frac{1}{2} + 2 * \frac{1}{4} + 3 * \frac{1}{8} + 3 * \frac{1}{8} = 1.75 =121+241+381+381=1.75

从平均数开始看

均值(mean),也就是算术平均数,把所有的数加起来然后除以个数,看看这些数平均有多大。
计算6个人的平均身高
从朴素的平均数理解
m e a n = 171 + 172 + 172 + 173 + 173 + 173 6 = 172.33 mean = \frac{171 + 172 + 172 + 173 + 173 + 173}{6} = 172.33 mean=6171+172+172+173+173+173=172.33

从权重方面理解

1个171权重是1,2个172权重是2,3个173权重是3
m e a n = 171 ∗ ( 1 ) + 172 ∗ ( 2 ) + 173 ∗ ( 3 ) 6 = 172.33 mean = \frac{171 * (1) + 172 * (2) + 173 * (3)}{6} = 172.33 mean=6171(1)+172(2)+173(3)=172.33

从概率方面理解

这时候,这里的概率可以称为频率
6 6 6个人当中,有 1 6 \frac{1}{6} 61的概率身高是 171 171 171
6 6 6个人当中,有 2 6 \frac{2}{6} 62的概率身高是 172 172 172
6 6 6个人当中,有 3 6 \frac{3}{6} 63的概率身高是 173 173 173

m e a n = 1 6 × 170 + 2 6 × 172 + 3 6 × 173 = 172.33 mean = \frac{1}{6}\times 170 +\frac{2}{6}\times 172+\frac{3}{6}\times 173 = 172.33 mean=61×170+62×172+63×173=172.33
有个随机变量X,实验的结果是{事件1,事件2,事件3,…},这些可以看作是总体样本,是无穷的.实验可以一直做下去,但是样本只能有限个,做多少次实验就有多少个样本。在实际应用中,当实验次数足够大时,就可以用事件的频率代替事件的概率。此时随机变量X的均值就无限接近其期望。
按照上例就是
熵 = 自 信 息 1 ∗ 概 率 1 + 自 信 息 2 ∗ 概 率 2 + 自 信 息 3 ∗ 概 率 3 + 自 信 息 4 ∗ 概 率 4 熵 = 自信息1 * 概率1 + 自信息2 * 概率2 + 自信息3 * 概率3+ 自信息4 * 概率4 =11+22+33+44
所以熵还有个名字就是平均自信息量,对不确定性总量进行了量化。
以这个熵的公式为例
H ( P ) = ∑ x P ( x ) log ⁡ 1 P ( x ) H(P)=\sum_{x} P(x) \log \frac{1}{P(x)} H(P)=xP(x)logP(x)1
P ( x ) P(x) P(x)就是概率, log ⁡ 1 P ( x ) \log \frac{1}{P(x)} logP(x)1就是自信息, ∑ \sum 就是多个 自 信 息 ∗ 概 率 自信息∗概率 全加起来。
下面还有多种不同的表达方式,都是换马甲的,本质是一样的。
以下先以离散型随机变量(discrete random variable)为主来说明
离散取自可数符号集,连续取自实数集。
简单理解
离散:具有有限数量的可能值,这些值没有固有的顺序
连续:如果一个变量可以取它的最小值与最大值之间的任何值
下面的式子表达的都是一个意思
H ( X ) = ∑ i P ( x i ) I ( x i ) = − ∑ i P ( x i ) log ⁡ 2 P ( x i ) 【 公 式 1 】 \mathrm{H}(X)=\sum_{i} \mathrm{P}\left(x_{i}\right) \mathrm{I}\left(x_{i}\right)=-\sum_{i} \mathrm{P}\left(x_{i}\right) \log _{2} \mathrm{P}\left(x_{i}\right) \qquad【公式1】 H(X)=iP(xi)I(xi)=iP(xi)log2P(xi)1

H ( P ) = ∑ x P ( x ) log ⁡ 1 P ( x ) 【 公 式 2 】 H(P)=\sum_{x} P(x) \log \frac{1}{P(x)}\qquad【公式2】 H(P)=xP(x)logP(x)12
H ( p ) = E ( log ⁡ ( 1 / p ( x ) ) ) 【 公 式 3 】 H(p)=\mathbb{E}(\log (1 / p(x))) \qquad 【公式3】 H(p)=E(log(1/p(x)))3
H ( X ) = − ∑ i = 1 n p ( x i ) log ⁡ 2 p ( x i ) = ∑ i = 1 n p ( x i ) log ⁡ 2 1 p ( x i ) 【 公 式 4 】 H(X)=-\sum_{i=1}^{n} p\left(x_{i}\right) \log _{2} p\left(x_{i}\right)=\sum_{i=1}^{n} p\left(x_{i}\right) \log _{2} \frac{1}{p\left(x_{i}\right)}\qquad 【公式4】 H(X)=i=1np(xi)log2p(xi)=i=1np(xi)log2p(xi)14
我喜欢的是【公式4 】,这个可以直接转换成代码实现的。
假设掷硬币有两个面的结果,表达式就可以这样写
H ( X ) = − p ( x ) log ⁡ ( p ( x ) ) − ( 1 − p ( x ) ) log ⁡ ( 1 − p ( x ) ) H(X)=-p(x) \log (p(x))-(1-p(x)) \log (1-p(x)) H(X)=p(x)log(p(x))(1p(x))log(1p(x))
连续型随机变量(continuous random variable)
H ( X ) = ∫ P ( x ) I ( x ) d x = − ∫ P ( x ) log ⁡ b P ( x ) d x 【 公 式 1 】 \mathrm{H}(X)=\int \mathrm{P}(x) \mathrm{I}(x) d x=-\int \mathrm{P}(x) \log _{b} \mathrm{P}(x) d x \qquad【公式1】 H(X)=P(x)I(x)dx=P(x)logbP(x)dx1

H ( p ) = − ∫ p ( x ) log ⁡ ( p ( x ) ) d x 【 公 式 2 】 H(p)=-\int p(x) \log (p(x)) d x \qquad【公式2】 H(p)=p(x)log(p(x))dx2
从数值的变化的角度,看看熵的变化
明天假设对天气的概率什么都不知道,那么四种天气的发生概率为等概率都是1/4,如果有点经验就变成了B或者C,如果是龙王管着明天的天气,把答案告诉我们就是D,确定要下雨
白话关于熵、信息熵、香农熵的一些事_第3张图片

3.8 熵最大的模型=最好的模型

《统计学习方法》中说最大熵原理认为学习概率模型时,在所有可能的概率模型(即概率分布)中,熵最大的模型是最好的模型。通常用约束条件来确定概率模型的集合,所以,最大熵原理也可以表述为在满足约束条件的模型集合中选取熵最大的模型。

简述是熵最大的模型=最好的模型

假如龙王告诉我们明天不是晴天,也不是阴天 ,我们如果最大熵原理,不知道就按等概率处理,则猜 E = [ 0 , 0 , 1 2 , 1 2 ] E=[0, 0, \frac{1}{2}, \frac{1}{2}] E=[0,0,21,21],此时 H ( E ) H(E) H(E)最大这就是最好的模型,比较其他类似我们这么猜 E = [ 0 , 0 , 1 4 , 3 4 ] E=[0, 0, \frac{1}{4}, \frac{3}{4}] E=[0,0,41,43]就不是最好的模型。

莱布尼茨(Leibniz)在《神义论》说的,这里简单说就是有许多的可能世界,可能世界这四个字是一个名词,每一由可能事物所形成的组合就是一个可能世界,这么多的可能世界,我们的世界是一切可能世界中最好的世界。

那就写首哈哈哈的打油诗,不要当真。
熵最大的模型 = 最好的模型,
我们的世界 = 最好的世界,
我们的世界,熵最大。
熵最大 = 不确定性最大,
一个充满了不确定性的世界就是最好的世界。

3.9 可视化熵

横轴X为概率值,纵轴Y信息熵

import numpy as np
import matplotlib.pyplot as plt
epsilon =1e-5
X = np.linspace(0, 1, 101)
Y = - X * np.log2(X+epsilon) -(1-X)*np.log2(1-X+epsilon)
plt.plot(X, Y)
plt.xlabel('Probability')
plt.ylabel('Entropy')
print(Y.max())
X_max=X[np.where(Y==Y.max())]
print(X_max)

输出结果
白话关于熵、信息熵、香农熵的一些事_第4张图片
0.9999711463877176
[0.5]
根据输出结果
当概率是50%(X=0.5)时,信息熵最大是0.999,相当于不确定性极高,没有提供有用的信息。

3.10 问题:如何衡量两个分布的差异?

问题:信息熵量化的是整个概率分布的不确定性,那么如果对于同一个随机变量x有两个单独的概率分布,怎样衡量两个分布的差异?
KL散度解决这个问题

KL散度(Kullback-Leibler divergence,简称KLD),一个事物有很多名字。
在信息系统中叫相对熵 ( relative entropy)
在连续时间序列中叫随机性(randomness)
在统计模型推断中叫信息增益(information gain),也叫信息散度(information divergence)

两个数值之间的差异 是 经过相减计算后的数值。
两个向量的差异 是 经过计算后的夹角。
两个分布的差异是 计算后的KL散度。
那么就可以有这样的问题,假设有两个随机变量,各自服从自己的分布,那么如何计算两个分布的KL散度。
KL散度也分离散和连续的,简单理解就是离散求和,连续求积分
如果两个分布完全匹配
D K L ( p ∥ q ) = 0 D_{K L}(p \| q)=0 DKL(pq)=0

离散型随机变量(discrete random variable)各种公式都是等价,找自己经常使用的字母看
D K L ( P ∥ Q ) = ∑ i P ( i ) log ⁡ P ( i ) Q ( i ) 【 公 式 1 】 D_{\mathrm{KL}}(P \| Q)=\sum_{i} P(i) \log \frac{P(i)}{Q(i)} \qquad【公式1】 DKL(PQ)=iP(i)logQ(i)P(i)1
D K L ( p ∥ q ) = ∑ i = 1 n p ( x i ) log ⁡ ( p ( x i ) q ( x i ) ) 【 公 式 2 】 D_{K L}(p \| q)=\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(\frac{p\left(x_{i}\right)}{q\left(x_{i}\right)}\right) \qquad【公式2】 DKL(pq)=i=1np(xi)log(q(xi)p(xi))2
D K L ( A ∥ B ) = ∑ i P A ( x i ) log ⁡ ( P A ( x i ) P B ( x i ) ) 【 公 式 3 】 D_{K L}(A \| B)=\sum_{i} P_{A}\left(x_{i}\right) \log \left(\frac{P_{A}\left(x_{i}\right)}{P_{B}\left(x_{i}\right)}\right) \qquad【公式3】 DKL(AB)=iPA(xi)log(PB(xi)PA(xi))3
D K L ( P ∥ Q ) = E x ∼ P [ log ⁡ P ( x ) Q ( x ) ] = E x ∼ P [ log ⁡ P ( x ) − log ⁡ Q ( x ) ] 【 公 式 4 】 D_{\mathrm{KL}}(P \| Q)=\mathbb{E}_{\mathbf{x} \sim P}\left[\log \frac{P(x)}{Q(x)}\right]=\mathbb{E}_{\mathbf{x} \sim P}[\log P(x)-\log Q(x)] \qquad【公式4】 DKL(PQ)=ExP[logQ(x)P(x)]=ExP[logP(x)logQ(x)]4

D K L ( p ∥ q ) = E [ log ⁡ p ( x ) − log ⁡ q ( x ) ] 【 公 式 5 】 D_{K L}(p \| q)=E[\log p(x)-\log q(x)]\qquad【公式5】 DKL(pq)=E[logp(x)logq(x)]5

D K L ( p ∥ q ) = ∑ i = 1 N p ( x i ) ⋅ log ⁡ p ( x i ) q ( x i ) 【 公 式 6 】 D_{K L}(p \| q)=\sum_{i=1}^{N} p\left(x_{i}\right) \cdot \log \frac{p\left(x_{i}\right)}{q\left(x_{i}\right)}\qquad【公式6】 DKL(pq)=i=1Np(xi)logq(xi)p(xi)6
p ( x ) p(x) p(x)常用于描述样本的真实分布, q ( x ) q(x) q(x)表示预测的分布。
E x ∼ P [ f ( x ) ] \mathbb{E}_{\mathbf{x} \sim P}[f(x)] ExP[f(x)]或者 E f ( x ) \mathbb{E}f(x) Ef(x)表示 f ( x ) f(x) f(x)关于 P ( x ) P(x) P(x)的期望
连续型随机变量(continuous random variable)
D K L ( A ∥ B ) = ∫ a ( x ) log ⁡ ( a ( x ) b ( x ) ) D_{K L}(A \| B)=\int a(x) \log \left(\frac{a(x)}{b(x)}\right) DKL(AB)=a(x)log(b(x)a(x))
D K L ( P ∥ Q ) = ∫ − ∞ ∞ p ( x ) log ⁡ p ( x ) q ( x ) d x D_{\mathrm{KL}}(P \| Q)=\int_{-\infty}^{\infty} p(x) \log \frac{p(x)}{q(x)} \mathrm{d} x DKL(PQ)=p(x)logq(x)p(x)dx
KL散度的结果越小表示两个分布越接近。

3.11 问题:KL散度能不能来衡量两个分布的距离?

散度不是距离(Divergence not distance)

因为KL散度是KL散度,不是KL距离,要不然在起名字的时候,就叫距离了。
不叫距离其中的一个原因是KL散度是不对称的(KL Divergence is not symmetric),所以这种差异不是距离。
什么是KL散度的不对称性?
就是
D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) D_{K L}(P \| Q) \neq D_{K L}(Q \| P) DKL(PQ)=DKL(QP)
总结就是 KL散度是两个概率分布P和Q差别的非对称性的度量。
最初的问题:解决分类问题为什么使用交叉熵损失函数
这个问题可以转换下 就是已经有了KL散度来衡量分布差异了,为什么还需要交叉熵

可以把KL公式变形,公式和变形金刚是一样的,因为都能变形
我们把下面这个公式变形
只因
log ⁡ a − log ⁡ b = log ⁡ a b \log a-\log \mathrm{b}=\log \frac{a}{b} logalogb=logba
所以可以变
D K L ( p ∥ q ) = ∑ i = 1 N p ( x i ) ⋅ ( log ⁡ p ( x i ) − log ⁡ q ( x i ) ) D_{K L}(p \| q)=\sum_{i=1}^{N} p\left(x_{i}\right) \cdot\left(\log p\left(x_{i}\right)-\log q\left(x_{i}\right)\right) DKL(pq)=i=1Np(xi)(logp(xi)logq(xi))
D K L ( p ∥ q ) = ∑ i = 1 n p ( x i ) log ⁡ ( p ( x i ) ) − ∑ i = 1 n p ( x i ) log ⁡ ( q ( x i ) ) D_{K L}(p \| q)=\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(p\left(x_{i}\right)\right)-\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(q\left(x_{i}\right)\right) \qquad DKL(pq)=i=1np(xi)log(p(xi))i=1np(xi)log(q(xi))
D K L ( p ∥ q ) = − H ( p ( x ) ) + [ − ∑ i = 1 n p ( x i ) log ⁡ ( q ( x i ) ) ] 【 变 形 后 】 D_{K L}(p \| q)=-H(p(x))+\left[-\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(q\left(x_{i}\right)\right)\right] \qquad【变形后】 DKL(pq)=H(p(x))+[i=1np(xi)log(q(xi))]
p ( x ) 的 熵 = H ( p ( x ) ) p(x)的熵=H(p(x)) p(x)=H(p(x))
交 叉 熵 = − ∑ i = 1 n p ( x i ) log ⁡ ( q ( x i ) ) 交叉熵 = -\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(q\left(x_{i}\right)\right) =i=1np(xi)log(q(xi))
用一个不严谨的话说就是
KL散度=交叉熵 - 熵
D K L ( p ∥ q ) = H ( p , q ) − H ( p ) D_{\mathrm{KL}}(p \| q)=\mathbf{H}(p, q)-\mathbf{H}(p) DKL(pq)=H(p,q)H(p)
交叉熵=KL散度 + 熵
H ( p , q ) = D K L ( p ∥ q ) + H ( p ) \mathbf{H}(p, q)=D_{\mathrm{KL}}(p \| q)+\mathbf{H}(p) H(p,q)=DKL(pq)+H(p)
白话关于熵、信息熵、香农熵的一些事_第5张图片

3.12 交叉熵

交叉熵出现了,关于交叉熵的术语 花书作了明确的说明
许多作者使用术语”交叉熵”特定表示伯努利或softmax分布的负对数似然,但那是用词不当的。 任何一个由负对数似然组成的损失都是定义在训练集上的经验分布和定义在模型上的概率分布之间的交叉熵。 例如,均方误差是经验分布和高斯模型之间的交叉熵。

H ( p , q ) = − ∑ i = 1 n p ( x i ) log ⁡ ( q ( x i ) ) H(p,q)=-\sum_{i=1}^{n} p\left(x_{i}\right) \log \left(q\left(x_{i}\right)\right) H(p,q)=i=1np(xi)log(q(xi))
也可以用 H p ( q ) H_{p}(q) Hp(q)表示交叉熵
H p ( q ) − H ( q ) > = 0 H_{p}(q)-H(q)>=0 Hp(q)H(q)>=0

当熵是一个常量时,所以我们用交叉熵作为损失函数
D K L ( P ∥ Q ) = H ( P , Q ) D_{K L}(P \| Q)=H(P, Q) DKL(PQ)=H(P,Q)

加上字母再总结一遍
1 P与Q的交叉熵 = P与Q的KL散度 - P的熵
2 针对Q的最小化交叉熵等同于最小化P与Q的KL散度
3 KL散度是对两个概率分布P和Q差别的非对称性的度量,也就是似然比的对数期望。

二分类的时候损失函数

不同的写法,就是字母不同
H ( p , q ) = − ∑ i p i log ⁡ q i = − y log ⁡ y ^ − ( 1 − y ) log ⁡ ( 1 − y ^ ) H(p, q)=-\sum_{i} p_{i} \log q_{i}=-y \log \hat{y}-(1-y) \log (1-\hat{y}) H(p,q)=ipilogqi=ylogy^(1y)log(1y^)
L = − [ y ⋅ log ⁡ ( p ) + ( 1 − y ) ⋅ log ⁡ ( 1 − p ) ] L=-[y \cdot \log (p)+(1-y) \cdot \log (1-p)] L=[ylog(p)+(1y)log(1p)]

多分类的时候损失函数

L = − ∑ i ( y i log ⁡ x i + ( 1 − y i ) log ⁡ ( 1 − x i ) ) L=-\sum_{i}\left(y_{i} \log x_{i}+\left(1-y_{i}\right) \log \left(1-x_{i}\right)\right) L=i(yilogxi+(1yi)log(1xi))
J ( θ ) = − [ ∑ i = 1 m y ( i ) log ⁡ h θ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=-\left[\sum_{i=1}^{m} y^{(i)} \log h_{\theta}\left(x^{(i)}\right)+\left(1-y^{(i)}\right) \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right] J(θ)=[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))]

3.13 两个概率分布对称性的度量是什么?

那要是两个概率分布P和Q差别的KL散度是非对称性的度量,那对称性的度量是什么?
JS散度(Jensen–Shannon divergence)简称JSD
其他名字 information radius (IRad) 、total divergence to the average
JS散度是对两个概率分布P和Q差别的对称性的度量
JS散度的平方根是一个度量,通常称为JS距离

以2为底数的对数,JSD的取值范围
0 ≤ JSD ⁡ ( P ∥ Q ) ≤ 1 0 \leq \operatorname{JSD}(P \| Q) \leq 1 0JSD(PQ)1

以常数e为底数的对数,JSD的取值范围
0 ≤ JSD ⁡ ( P ∥ Q ) ≤ ln ⁡ ( 2 ) 0 \leq \operatorname{JSD}(P \| Q) \leq \ln (2) 0JSD(PQ)ln(2)

两个分布P1和P2,其JS散度公式为
M = 1 2 ( P + Q ) M=\frac{1}{2}(P+Q) M=21(P+Q)
JSD ⁡ ( P ∥ Q ) = 1 2 D ( P ∥ M ) + 1 2 D ( Q ∥ M ) \operatorname{JSD}(P \| Q)=\frac{1}{2} D(P \| M)+\frac{1}{2} D(Q \| M) JSD(PQ)=21D(PM)+21D(QM)

或者是
J S D ( P ∥ Q ) = 1 2 K L ( P ∥ P + Q 2 ) + 1 2 K L ( Q ∥ P + Q 2 ) JSD\left(P \| Q\right)=\frac{1}{2} K L\left(P \| \frac{P+Q}{2}\right)+\frac{1}{2} K L\left(Q \| \frac{P+Q}{2}\right) JSD(PQ)=21KL(P2P+Q)+21KL(Q2P+Q)

3.14 参考文献

《深度学习 [deep learning] 》 作者:IanGoodfellow、YoshuaBengio和AaronCourville
《信息论基础(原书第2版)》 作者:Thomas M.Cover,Joy A.Thomas 著 阮吉寿,张华译
《统计学习方法》 李航
《神义论》 莱布尼茨

你可能感兴趣的:(深度学习基础,熵,交叉熵,entropy,KL散度,信息)