softmax算法详解

softmax函数是深度学习中用于多分类任务的关键,它将神经网络的输出转换为概率分布,保证总和为1。与交叉熵损失函数结合使用,简化了梯度计算,使得模型能有效学习分类概率。在反向传播中,只需简单地从softmax输出中减去1即可得到梯度,便于权重更新。这种组合在数学和计算上都十分高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

softmax简介

在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。

2.softmax函数的数学形式定义
在这里插入图片描述

可以看到,softmax函数解决了从一个原始的n维向量,向一个n维的概率分布映射的问题。那么在多分类问题中,假设分类数是n,模型希望预测的就是某样本在n个分类上的概率分布。如果用深度学习模型进行建模,那么最后输出层的形式是由n个神经元组成的,再把n个神经元的输出结果作为一个n维向量输入最终的softmax函数,在最后的输出中得到最终的多分类概率分布。在一个神经网络中,softmax输出层的结构如下图所示。
在这里插入图片描述
在分类问题中,softMAX函数往往和交叉熵损失函数一起使用:
在这里插入图片描述
其中,ti 表示真实值,yi表示求出的softmax值。当预测第i个时,可以认为ti=1。此时损失函数变成了:
在这里插入图片描述
接下来对Loss求导:
在这里插入图片描述
上面的结果表示,我们只需要正向求出yi ,将结果减1就是反向更新的梯度,导数的计算是不是非常简单!
可以看出,softmax函数和交叉熵的配合,不仅在数学含义上完美统一, 而且在梯度形式上也非常简洁。基于上式的梯度形式,通过梯度反向传播的方法,即可完成整个神经网络权重的更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值