Softmax函数及导数
softmax函数在各种神经网络中应用广泛,本文粗略推导softmax函数的导数计算过程,
假设softmax函数为:
如同名称所说,这是一个‘max’函数的‘soft’版本。区分于原版的max函数,这个函数将一组数转化为一组0到1之间的值,并且这些值的总和为1,其中数值最大的值在softmax中也有最大的值。softmax在深度学习中经常被用来表示标签的正确概率,‘分数’最高的标签自然也有最大的softmax值也就是正确概率。
在python中,softmax可以定义为:
def softmax(X):
exps = np.exp(X)
return exps / np.sum(exps)
在python.numpy.中,浮点数的范围是10^308,所以即使对于加减乘除运算,这个界限很难达到,但对于指数运算,有时候很容易就会超过这个值,所以常常引入参数C,使得:
我们选择C的值为: