softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]

softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]softmaxsoftmax,顾名思义,就是soft版本的max。在了解softmax之前,先看看什么是hardmax。hardmax就是直接选出一个最大值,例如[1,2,3]的hardmax就是3,而且只选出最大值,非黑即白,但是实际中这种方式往往是不合理的,例如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章属于各种主题的概率值,而不是简单直接地归类为某一种唯一的主题。这里就需要用到soft的概念,即不再唯一地确定某一个最大值,而是为每个输出分类

大家好,又见面了,我是你们的朋友全栈君。

softmax

在这里插入图片描述

softmax ,顾名思义,就是 soft 版本的 max。

在了解 softmax 之前,先看看什么是 hardmax。

hardmax 就是直接选出一个最大值,例如 [1,2,3] 的 hardmax 就是 3,而且只选出最大值,非黑即白,但是实际中这种方式往往是不合理的,例如对于文本分类来说,一篇文章或多或少包含着各种主题信息,我们更期望得到文章属于各种主题的概率值,而不是简单直接地归类为某一种唯一的主题。这里就需要用到soft的概念,即不再唯一地确定某一个最大值,而是为每个输出分类的结果都赋予一个概率值,表示属于每个类别的可能性。

hardmax 简单直观,但是有很严重的梯度问题,求最大值这个函数本身的梯度是非常非常稀疏的,例如神经网络中的 max pooling,经过 hardmax 后,只有被选中的那个变量上才有梯度,其他变量都没有梯度。

那么,什么是 softmax?
softmax 就是把原始的变量做一个数学变换,变换公式为
在这里插入图片描述

例如原始变量为 [1,2,3],经过 softmax 后就变成了

[ e^1 / ( e1+e2+e^3 ) ,e^2 / ( e1+e2+e^3 ) ,e^3 / ( e1+e2+e^3 ) ]
=[ 2.718/(2.718+7.389+20.085), 7.389/(2.718+7.389+20.085), 20.085/(2.718+7.389+20.085)]
=[ 0.09, 0.245, 0.665 ]

可以看到,softmax 有以下特征:

  • 所有值都在 [0,1] 之间;
  • 所有值的和加起来等于1;

而上述特征刚好跟概率的概念相符合,因此,可以把它当作概率值。

softmax 不会像 hardmax 那样有严重的梯度问题,能够很方便地求梯度,很适合用于神经网络的反向传播,进行梯度更新。

总的来说,softmax可以将任意一组变量变为概率分布的形式。

softmax 损失函数

由上面可知,softmax函数的表达式为:

在这里插入图片描述

其中i表示输出节点的编号。

假设此时第i个输出节点为正确类别对应的输出节点,则Pi是正确类别对应输出节点的概率值。添加log运算不影响函数的单调性,首先为Pi添加log运算:
在这里插入图片描述

此时Pi是正确类别对应的输出节点的概率,当然希望此时的Pi越大越好。通常情况下使用梯度下降法来迭代求解,因此只需要为 logPi 加上一个负号变成损失函数,变成了希望损失函数越小越好:
在这里插入图片描述

对上面的式子进一步处理:
在这里插入图片描述

上式就是 softmax 损失函数。

softmax 损失函数只针对正确类别的对应的输出节点,将这个位置的softmax值最大化。

卷积神经网络系列之softmax,softmax loss和cross entropy的讲解

cross-entropy 交叉熵损失函数

简单的交叉熵损失函数,你真的懂了吗?

cross-entropy 不是机器学习独有的概念,本质上是用来衡量两个概率分布的相似性的。

softmax、softmax损失函数、cross-entropy损失函数[通俗易懂]

上式中,p代表正确答案,q代表的是预测值。交叉熵值越小,两个概率分布越接近。

需要注意的是,交叉熵刻画的是两个概率分布之间的距离,然而神经网络的输出却不一定是一个概率分布,很多情况下是实数。如何将神经网络前向传播得到的结果也变成概率分布,Softmax回归就是一个非常有用的方法。

在这里插入图片描述

Softmax将神经网络的输出变成了一个概率分布,这个新的输出可以理解为经过神经网络的推导,一个样例为不同类别的概率分别是多大。这样就把神经网络的输出也变成了一个概率分布,从而可以通过交叉熵来计算预测的概率分布和真实答案的概率分布之间的距离了。

在这里插入图片描述

神经网络多分类任务的损失函数——交叉熵

交叉熵损失函数表达式为:
在这里插入图片描述

上述式子中 yc 是指真实样本的标签值,Pc 是指 实际的输出 经过 softmax 计算 后得到的概率值,该式子能够衡量真实分布和实际输出的分布之间的距离,

由于 softmax 可以将一组变量转换为概率分布,而 cross-entropy 又能够衡量两个概率分布之间的距离,因此,softmax 和 cross-entropy 经常结合在一起使用

总的来说,交叉熵损失函数刻画了两个概率分布之间的距离,通常用在神经网络的多分类任务中,可以表示 真实标签值神经网络输出经softmax计算后得到的预测概率值 之间的损失大小

一文详解Softmax函数
你 真的 懂 Softmax 吗?
交叉熵(Cross-Entropy)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153148.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 申请https域名,证书和部署流程

    申请https域名,证书和部署流程我把申请https域名,证书和部署流程,大致整理了一下。同道中人,以后遇到类似业务,可以参照这个。少踩一下坑!一:相关知识SSL安全套接层(SecureSocketLayer)SSL证书是数字证书的一种,就像是我们平常用的驾驶证和营业执照的电子证书副本一样。因为配置在服务器上,所以被我们称为SSL服务器证书。https://www.wosign.com/faq/faq-…

    2022年9月27日
    5
  • Idea激活码最新教程2022.1版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2022.1版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2022 1 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2022 1 成功激活

    2025年5月25日
    4
  • TranslateMessage DispatchMessage

    TranslateMessage DispatchMessageTranslateMessage函数函数功能描述:将虚拟键消息转换为字符消息。字符消息被送到调用线程的消息队列中,在下一次线程调用函数GetMessage或PeekMessage时被读出。.函数原型:   BOOLTranslateMessage( CONSTMSG*lpMsg);.参数:   lpMsg        指向一个含有用GetMes

    2025年7月16日
    5
  • datagrip激活码2021 mac 3月最新注册码

    datagrip激活码2021 mac 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    76
  • Zabbix使用snmptrap方式监控vCenter Server「建议收藏」

    Zabbix使用snmptrap方式监控vCenter Server「建议收藏」Zabbix使用snmptrap方式监控vCenterServer6.5简介本人介绍如何通过snmptrap的方式发送vcenter上的告警到zabbixserver,并通过zabbixserver发送邮件告警通知,配置好后,邮箱收到的告警格式如下一、前置条件1)安装好zabbix-server,zabbix-server节点安装好net-snmp软件2)下载vCenterServer的mib文件登录vmware官网https://customerconnect.vmware.

    2022年8月20日
    8
  • SVN服务器备份_svn服务器迁移

    SVN服务器备份_svn服务器迁移SVN数据备份、还原、适用情况、部分异常处理等介绍。介绍三种主要备份方式:hotcopy、dump以及svnsync。

    2022年10月2日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号