从个人理解的角度来说,这次写一篇博客,常看常修常新吧。
主要内容来源于B站up主:王木头学科学
文章目录
熵
熵,是一种物理学概念,它表示一个系统的不确定性程度,或者说是一个系统的混乱程度。我们最常听到的熵增的概念就是一个系统从有序的状态转变成无序的状态。
信息熵
信息熵就是熵在信息论中的一种术语
**信息量与事件发生概率P(x)成反比,发生概率越大信息量越小。**整个系统的信息量表示如下图所示。
H
(
X
)
=
−
∑
i
=
1
n
p
(
x
i
)
l
o
g
p
(
x
i
)
H(X)=-\sum ^{n}_{i=1} {p({x}_{i})logp({x}_{i})}
H(X)=−i=1∑np(xi)logp(xi)
n
n
n表示随机变量可能的取值,
x
x
x表示随机变量,
p
(
x
)
p(x)
p(x)表示随机变量的概率函数
那么我们提出一个问题,为什么要以这样的形式来衡量一个概率模型的信息量呢?
这里举一个例子,来自B站up主:王木头学科学
f ( 阿根廷夺冠 ) = f ( 阿根廷进决赛 ) + f ( 阿根廷赢了决赛 ) f(阿根廷夺冠)=f(阿根廷进决赛)+f(阿根廷赢了决赛) f(阿根廷夺冠)=f(阿根廷进决赛)+f(阿根廷赢了决赛)
以上式子左右两边包含的信息量应该相等。
现在假设阿根廷夺冠的概率是
1
/
8
{1}/{8}
1/8,阿根廷进决赛和阿根廷赢了决赛的概率分别是
1
/
4
{1}/{4}
1/4,
1
/
2
1/2
1/2。即有:
f
(
1
8
)
=
f
(
1
4
)
+
(
1
2
)
f(\frac{1}{8})=f(\frac{1}{4})+(\frac{1}{2})
f(81)=f(41)+(21)
概率模型符合:
p
(
阿根廷夺冠
)
=
p
(
阿根廷进决赛
)
p
(
阿根廷赢了决赛
)
p(阿根廷夺冠)=p(阿根廷进决赛)p(阿根廷赢了决赛)
p(阿根廷夺冠)=p(阿根廷进决赛)p(阿根廷赢了决赛)
这里对信息熵的数学模型有两个要求:
- 由于 p = 1 8 p=\frac{1}{8} p=81含有的信息量和 p = 1 4 p=\frac{1}{4} p=41、 p = 1 1 p=\frac{1}{1} p=11含有的信息量一致,也就是说信息量大度量一定是与概率成反比。
- 优于概率模型是连乘,信息熵模型是连加,所以说信息熵模型理应带有 l o g log log。至于log的底数,如果是2,那么这个信息熵模型的单位即“比特”
- 在
l
o
g
log
log前面的那个
p
p
p其实就是该样本的概率对于整个模型的贡献,如果直接加起来就乱套了。
案例如下图所示:
也可以说信息上是一种不确定性的度量
在概率世界中,信息熵是可以衡量一切概率模型的量,我认为他组成了深度学习世界的基础,深度学习世界就是概率模型的世界。所以我们采用熵的概念来计算损失,来比较两个不同概率模型的差异,这一切也就合理起来了。
相对熵 (KL散度)
![截屏2023-12-05 11.10.50.png](https://i-blog.csdnimg.cn/blog_migrate/25cf99f0f219dd93dd4d4a896fa72f53.png)
这里给定两个概率模型系统
Q
Q
Q和
P
P
P,两个系统的信息量分别为
f
Q
(
q
i
)
{f}_{Q}({q}_{i})
fQ(qi)和
f
P
(
p
i
)
{f}_{P}({p}_{i})
fP(pi)。
KL散度定义式如下图所示:
D
K
L
(
P
∣
∣
Q
)
=
∑
i
=
1
m
p
i
(
f
Q
(
q
i
)
−
f
p
(
p
i
)
)
=
∑
i
=
1
m
p
i
(
(
−
l
o
g
2
q
i
)
−
(
−
l
o
g
2
p
i
)
)
=
∑
i
=
1
m
p
i
(
l
o
g
2
q
i
)
−
∑
i
=
1
m
p
i
(
−
l
o
g
2
p
i
)
\begin{equation} \begin{aligned} {D}_{KL}(P||Q) &= \sum ^{m}_{i=1} {{p}_{i}}({f}_{Q}({q}_{i})-{f}_{p}({p}_{i})) \\ &= \sum ^{m}_{i=1} {{p}_{i}}((-lo{g}_{2}{q}_{i})-(-lo{g}_{2}{p}_{i})) \\ &=\sum ^{m}_{i=1} {{p}_{i}}(lo{g}_{2}{q}_{i})-\sum ^{m}_{i=1} {{p}_{i}}(-lo{g}_{2}{p}_{i}) \end{aligned} \end{equation}
DKL(P∣∣Q)=i=1∑mpi(fQ(qi)−fp(pi))=i=1∑mpi((−log2qi)−(−log2pi))=i=1∑mpi(log2qi)−i=1∑mpi(−log2pi)
如上图所示
D
K
L
(
P
∣
∣
Q
)
{D}_{KL}(P||Q)
DKL(P∣∣Q)代表了以
P
P
P系统为基准,即
P
P
P系统的概率模型是已知的。来求
P
P
P和
D
D
D这两个模型整体的一个差异。
- 第一个等号处指的是某事件在系统 Q Q Q中的信息量减去对应的在系统 P P P中的信息量。这个差值最后再求整体的期望,即求整体的平均值,如果两个系统是一样的,那么相对熵此时等于零。如果不等于零说明两者之间有差别。
- 第二个等号处即把信息熵 f ( . ) f(.) f(.)展开
- 第三个等号处, 减号右边即 P P P系统的信息熵,由于 P P P系统是基准,即 P P P系统已知,也就是说 P P P系统的信息熵是恒定的。现在我们想要确定 D K L ( P ∣ ∣ Q ) {D}_{KL}(P||Q) DKL(P∣∣Q)是不是趋向于零关键就在于等号左边!!
- 第三个等号处减号左边即 H ( P , Q ) = ∑ i = 1 m p i ( l o g 2 q i ) H(P,Q)=\sum ^{m}_{i=1} {{p}_{i}}(lo{g}_{2}{q}_{i}) H(P,Q)=∑i=1mpi(log2qi)就是P系统和Q系统的交叉熵。现在我们仍然需要考虑一个关键问题,信息熵都是恒大于零的,由于右边恒定,如果左边交叉熵比右边大,那么交叉熵越小,KL散度就越趋向于零,如果交叉熵比右边大定值小,那么交叉熵越大,KL散度就越趋向于零,那么就带来一个问题,能不能使交叉熵只朝一个方向变化就能确定下KL散度是否趋向于零呢?
对于上文提出的问题,有数学家解决了,即吉布斯不等式,该不等式表明KL散度绝对大于等于零,也就是说交叉熵一定是比系统 P P P自己的熵要大。所以现在我们想要两个概率模型尽可能的接近,也就是找到使得交叉熵最小的那个值,故由此,交叉熵作为损失函数的第三种常用构造方式被提出。
最后拿神经网络的一个例子来收尾
使用交叉熵的损失函数和使用似然函数方法的损失函数竟然是一致的!