交叉熵损失函数的前世今生

2024-09-07  本文已影响0人  失落的艺术

导言:从损失函数说起

我们如何定量的去分析两个模型差距有多大呢?而下面有3种经典的方法都是为了度量理想中的模型和神经网络模型之间的差距的方法。

注:这里为什么说的理想中的模型,是人脑中的模型,而不是说真实的模型。真实的模型与理想中的模型永远有偏差,可以类比柏拉图的理念。因为人脑是我们认识这个世界的窗口,比如说收集到的一个数据集,这个数据集符合某一个分布,但我们不知道这个分布是什么,所以希望通过计算机神经网络来模拟这个分布。

当然这个数据集收集的要尽量的多,尽量不要被个人主观所影响,然后我们把这个数据集当做标准的、真实的、客观的。这也是为什么有那么多数据集,就是因为各个数据集都有其局限性。

通过损失函数这个工具来找到最相似的那个概率模型。

1. 什么是信息量?

知道还是不知道呢?知道了就没啥信息量吗?还是,这虽然我不知道,但,对我没有啥用,所以也没有啥信息量吗?

给我能带来多少确定性。(涵盖信息量越大(信息浓度很大))

对信息量仿照牛顿力的方法,用数学公式进行如下定义:

f(x) := 信息量

F := ma(对力的定义)

F = G \frac{m_{1} m_{2}}{r^{2}} (实验得出)

信息量公式应该:

f(x_1⋅x_2)=f(x_1)+f(x_2)

这里的x是一个概率p,概率p越小,说明其代表的事件很难发生,如果发生了,说明其携带的信息量越多。下面举两个生活中的例子:

中国足球赢了世界杯的概率是1/2^16, 巴西赢得的概率是1/2^8

16比特的信息量大于8比特的信息量,说明中国足球的可能性很多,太过混乱,需要用更大的空间或维度(向量的维度)才能存储这个信息。

所以,信息量可以理解成,一件事情从不确定到确定这个难度有多大,信息量比较大,就说明这个难度比较高。

姜平为啥能快速成为热搜,因为其是中专生,却在阿里数学竞赛中获得不错的名次,此时,我们不禁感触,这个系统的本身混乱程度是很高的,但是姜平就是克服了。这里面我们会想,她是如何做到的呀?是否我自己也可以啊?还是有什么特别的内幕啊?

这里,我会看到为什么这么多人会吃瓜,反而排名第一的那个同学无人问津,就是因为其信息量很大,本身发生的概率很小,有很多种可能的解释,这也因此每个人都可以有自己的看法。

信息在传输过程中,往往会失真,这个失真到底失去了多少,就可以用信息量来表示。信息量约容易失去,说明其信息含量越多,比如一个高清图片的信息量是很高的,在网络中传输也越容易降低模糊度,即信息损失。

2. 熵是什么?一个衡量所有概率模型的尺子

熵就是对整体的概率模型进行的一个衡量,衡量结果就是这个模型的混乱程度,或不确定程度。

我们想所有不同的模型都转换成一种概率模型,然后我们就可以进行比较了。而我们把这个模型转换成这个概率模型的这个数值,我们然后再用这个数值来比较不同模型之间的差异。这个数值就是熵。

信息量是单个事件的发生所代表的难以程度,难度越大,信息量越大。而一个系统里有很多个事件,一个事件发生不发生有其概率,如果概率小,其发生的信息量大。

所以,这个系统从不确定到确定难度有多大,难度越大,即越混乱,熵越大。(所以,我们一般要熵越小越好!越小代表越不混乱哦!)

例如:

神经网络中对图片进行分类,数据集中的每张图片的分类,即最后输出的 \tilde{y_i}(概率p) 就是一个事件,这个事件的概率p的信息量乘以其自身,然后所有图片的进行结果累加就是熵了。

聪明的你看到了,这不就是期望吗?看下面公式:

H(P):=E(P_f)=\sum_{i=1}^mp_i\cdot f(p_i)=\sum_{i=1}^mp_i(-\log_2p_i)=-\sum_{i=1}^mp_i\cdot log_2p_i

我们把一个系统所有可能发生的事件的信息量求出来,然后乘以其概率,最后相加就是整个系统的熵。

3. 什么是相对熵(KL散度)?

开场白:如果算一下这个系统的熵,然后和我们头脑中的概率模型比较一下就知道了,但,我们不知道头脑中的那个熵是多少,也就计算不出熵到底是多少,所以,无法比较。

但通过下面的KL散度就可以下面的计算了。

参考视频:“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

上一篇下一篇

猜你喜欢

热点阅读