交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介

时间:2024-12-27 23:07:56

cross entropy 交叉熵的概念网上一大堆了,具体问度娘,这里主要介绍深度学习中,使用交叉熵作为类别分类。

1、二元交叉熵 binary_cross_entropy

   我们通常见的交叉熵是二元交叉熵,因为在二分类中的交叉熵可以比较方便画出图像来,如下图,为“二元交叉熵”,

当我们的label标注结果0时,如下图右侧曲线,当预测结果为1时,返回的loss 无穷大,反之,loss 与 label标注结果一致都为0时,

loss = 0。  当我们的label标注结果1时, 同理。

交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介

2、多元交叉熵 softmax_cross_entropy,sigmoid_cross_entropy

我们在生活中通常事物的类别不是二分类,对与错的,通常是有多个类别,比如,动物有:猫,鱼,狗,马....等。因此,多分类的loss必不可少,

下面是“多元交叉熵”的公式,二元交叉熵是0是一类,1是一类,但是多远交叉熵有多个类别,如何处理?这时候也就要使用机器学习中常用的One_hot。

当我们神经网络有多个类别是,我们输出神经元数量通常是多个的,然后取输出的最大的作为类别,这是时候,我们通常要对需要分类的目标做一个简单

的编码,比如:猫:1,鱼:2,狗:3,马:4, (0:通常是背景or其他类别),这样,比如当前样本label是马:4,我们的 One_hot = [0,0,0,0,1],每个位置为

0和1的值,这时候就可以将多分类“变成” 多个二分类,如下图:其中yi就是某个类别的label,h(xi)是模型类别输出的结果。

交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介

3、softmax_cross_entropy,sigmoid_cross_entropy的区别,字面上区别就是:softmax,sigmoid。其实通过上面分析,我们的cross_entropy的定义域(自变量)

的取值范围是0-1的,然而模型神经元输出(通常最后一层不加激活函数)是[-,+] 负无穷到正无穷的。因此需要将我们的数值转变到 0-1,目前常用的2中转变方式,

“应运而生”,如下图:

交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介  交叉熵理解:softmax_cross_entropy,binary_cross_entropy,sigmoid_cross_entropy简介

注:

softmax图来源:https://www.cnblogs.com/alexanderkun/p/8098781.html

sigmoid 图来源 :https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407?fr=aladdin