softmax算法详解

softmax简介

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

2.softmax函数的数学形式定义
softmax算法详解_第1张图片

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

你可能感兴趣的:(机器学习,算法,深度学习,机器学习)