softmax用于多分类过程,简单来说,它将神经元的输出映射到[0,1]之间,并且归一化保证和为1,从而使多分类的概率之和也为1.也就是,多分类问题中,我们希望得到的是取到每个分类的概率,即概率最大的那类可以经常被取到,概率较小的可以偶尔被取到。
函数表达式:
其中,Vi 是分类器前级输出单元的输出。总的类别个数为 C。Si 表示的是当前元素的指数与所有元素指数和的比值。下图更易直观理解:
在实际应用中,很有可能会出现溢出情况,因为如果V很大,经过指数运算以后会变的更大,往往可能出现溢出的情况。所以需要做一些处理:V中每个元素减去V中的最大值。
使用交叉熵作为损失函数。表达式为:
在softmax中,ti表示真实值,yi表示求出的softmax值。
公式的简单含义:当yi越大(越接近1),说明概率越大,lnyi越接近0,Loss就越小。
求导过程参考了一篇博客: