交叉熵损失函数原理详解
0.关于标签的理解
MNIST手写数字识别数据集,每张图片只能有一个固定的标签“数字”,即每张照片都是数字;
若一张图片中同时含有“猫”和“狗”,这张图片就同时拥有属于“猫”和“狗”的两种标签;
可以看出,标签就是一张图片的属性
1.单标签分类任务中的使用(二分类任务包含在其中)
需要注意的是:
(1)单标签含有的类别较多(MNIST手写数字识别数据集,分成数字0-9),一般用softmax函数作为网络最后一层的输出
(2)对单个样本,假设真实分布为,网络输出分布为
,总的类别数为
,则在这种情况下,交叉熵损失函数的计算方法为:
对于二分类问题,,这种情况下也是利用上面的交叉熵损失函数,即:
说明了公式的统一性
2.多标签分类任务中的使用
需要注意的是:
(1)多标签的每一个标签相当于是二分类问题,所以用sigmoid函数作为网络最后一层的输出
(2)在第1节(单标签分类任务中的使用)中,对一个batch,单标签n分类任务的交叉熵损失函数的计算方法为:
这里,若(
)的分量才保留(
只能为
)
在本节(多标签分类任务中的使用)中,对一个batch,多标签n分类(n其实就是2)任务的交叉熵损失函数的计算方法为:
这里,计算得到的分量均保留(
只能为
)