CrossEntropy交叉熵损失函数及softmax函数的理解

参考链接1
参考链接2
参考链接3
参考链接4

(一)什么是Sigmoid函数和softmax函数?

提到二分类问题容易想到逻辑回归算法,而逻辑回归算法最关键的步骤就是将线性模型输出的实数域映射到[0, 1]表示概率分布的有效实数空间,其中Sigmoid函数和softmax函数刚好具有这样的功能。

1.1 Sigmoid函数

Sigmoid =多标签分类问题=多个正确答案=非独占输出(例如胸部X光检查、住院)。构建分类器,解决有多个正确答案的问题时,用Sigmoid函数分别处理各个原始输出值。
在这里插入图片描述Sigmoid函数的输出在(0,1)之间,输出范围有限,优化稳定,可以用作输出层。

1.2 Softmax函数

Softmax =多类别分类问题=只有一个正确答案=互斥输出(例如手写数字,鸢尾花)。构建分类器,解决只有唯一正确答案的问题时,用Softmax函数处理各个原始输出值。Softmax函数的分母综合了原始输出值的所有因素,这意味着,Softmax函数得到的不同概率之间相互关联。
在这里插入图片描述Softmax直白来说就是将原来输出是3,1,-3通过Softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标。

由于Softmax函数先拉大了输入向量元素之间的差异(通过指数函数),然后才归一化为一个概率分布,在应用到分类问题时,它使得各个类别的概率差异比较显著,最大值产生的概率更接近1,这样输出分布的形式更接近真实分布。
在这里插入图片描述

1.3 对于二分类任务

对于二分类问题来说,理论上,两者是没有任何区别的。由于我们现在用的Pytorch、TensorFlow等框架计算矩阵方式的问题,导致两者在反向传播的过程中还是有区别的。实验结果表明,两者还是存在差异的,对于不同的分类模型,可能Sigmoid函数效果好,也可能是Softmax函数效果。
在这里插入图片描述

1.4 总结

交叉熵损失函数softmax损失函数是在分类问题中常用的两种损失函数,它们有一些区别。 交叉熵损失函数(Cross Entropy Loss)是一种用于衡量两个概率分布之间差异的函数。在分类问题中,交叉熵损失函数用于衡量模型的预测结果与真实标签之间的差异。它的计算公式如下: ```python cross_entropy = -sum(y_true * log(y_pred)) ``` 其中,`y_true`是真实标签的概率分布,`y_pred`是模型的预测结果的概率分布。交叉熵损失函数的值越小,表示模型的预测结果与真实标签越接近。 softmax损失函数是在交叉熵损失函数的基础上引入了softmax函数softmax函数可以将模型的输出转化为概率分布,使得每个类别的预测概率之为1。softmax函数的计算公式如下: ```python softmax(x_i) = exp(x_i) / sum(exp(x_j)) ``` 其中,`x_i`是模型的输出值。softmax损失函数的计算公式如下: ```python softmax_loss = -sum(y_true * log(softmax(y_pred))) ``` 与交叉熵损失函数类似,softmax损失函数也用于衡量模型的预测结果与真实标签之间的差异。不同之处在于,softmax损失函数在计算之前先将模型的输出通过softmax函数转化为概率分布。 总结一下,交叉熵损失函数softmax损失函数都是用于衡量模型的预测结果与真实标签之间的差异,但softmax损失函数在计算之前先将模型的输出通过softmax函数转化为概率分布。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值