以第节点输出为例,Softmax函数的定义为:
上式中,为第
个节点的输出值,
为输出节点的个数(分类的类别数)。通过Softmax可以将多分类的输出值转换为范围在
和为1的概率分布。
Softmax引入指数形式的优点是指数形式的Softmax函数能够将差距大的数值距离拉的更大。Softmax引入指数形式的缺点是
Softmax函数求导
以三个输出节点的Softmax函数为例,输出值为
。虽然
与
和
结果不同,而
和
只需换响应的索引号就可以了。因此Softmax函数求导时分为
和
的两种情况下,
关于
的导数。
-
时,如
:
将记为
,上面的结果可以转化为
,由于前提条件为
,结果又可变为
。
-
时,如
:
按照1中所述,上式可以转化为。
交叉熵损失函数
假设此时第个输出节点为正确类别对应的输出节点,
是正确类别对应输出结点的概率值。添加
运算不影响函数的单调性,即
。
的值越大越好,如果要使用梯度下降法来迭代求解,只需要为
加上负号变为损失函数即可:
但通常说的交叉熵是这种形式:
实际上与
的损失函数是一致的,接下来继续以三分类的形式讲解:
由于标签是one-hot的形式,所以
(假定真实分类为索引1的位置),最终结果为
。再从
来看
那么损失函数对网络输出变量
的偏导数为:
根据Softmax函数求导的结果,上式可继续推导:
至此完成了对交叉熵函数的梯度推导。
参考文献: