PyTorch中交叉熵损失函数的全面解析与输入理解
最编程
2024-01-29 20:38:39
...
其曲线如下所示:
可以看出,一个事件的发生的概率离0.5越近,其熵就越大,概率为0或1就是确定性事件,不能为我们带信息量。也可以看作是一件事我们越难猜测是否会发生,它的信息熵就越大
(2)交叉熵的定义
交叉熵的公式定义如下:
其中p(x)在机器学习中为样本label,q(x)为模型的预估,分别代表训练样本和模型的分布,如果只是根据这个公式,是看不出来什么的,暂且放下,继续往下看
(3)交叉熵的由来
将上面的交叉熵的公式减去一个固定的值(H(p), 训练样本的熵,训练样本定,该值即为固定值),即训练样本分布p(x)的熵,可得如下:
最后得到的为相对熵或KL散度(Kullback-Leibler divergence), 亦可称为KL距离,是用于评判两个分布的差异程序,看到这里,应该明白为何交叉熵为何能作为loss了。即可以使得模型输出的分布尽量与训练样本的分布致
(4)交叉熵作为loss的优势
模型训练的loss有很多,交叉熵作为loss有很多应用场景,其最大的好处我认为是可以避免梯度消散,相关的介绍网上有很多,在这里就不重复了。
上一篇: Python实现交叉熵损失函数的调用方法
下一篇: Python实现:交叉熵损失函数详解
推荐阅读
-
深度学习入门5:交叉熵损失函数、MSE与CTC在序列问题中的应用,以及Balanced L1 Loss在目标检测中的妙用
-
深度学习新手必看:交叉熵损失函数、MSE、CTC损失与序列问题的解决方案,以及Balanced L1 Loss在目标检测中的应用
-
深入理解:交叉熵损失函数在深度学习中的应用
-
理解并实现PyTorch中的交叉熵损失函数(附带Python代码)
-
PyTorch中的交叉熵损失函数详解:nn.CrossEntropyLoss
-
理解并优化BP神经网络中的交叉熵损失函数
-
PyTorch中的交叉熵损失函数详解:F.cross_entropy()
-
PyTorch中交叉熵损失函数的全面解析与输入理解
-
理解神经网络中的交叉熵损失函数及其局限性