关于softmax在神经网络输出层的应用的一点小思考
起因是在一次face中,问道softmax的作用,以及一些展开问题
不禁好奇,如果说softmax是将输出结果映射为0-1范围内的和为1的概率值,那么直接使用当前结果/所有和,也可以得到0-1范围内和为1的概率值,这样做怎么样?
看了这篇文章https://zhuanlan.zhihu.com/p/105722023,豁然开朗。文章给出一个实验及解释,softmax相比求平均更能拉大不同结果之间的距离,使得到的概率值之间的差值增大。除此之外,还从softmax与交叉熵损失函数之间的关系进行了理论解释。
文中还指出了当神经网络各个神经元输出之间存在较大差距(比如有一个值非常大)时,经过softmax之后会出现nan的情况,面对这种情况,一个解决方法是每个输出都减去所有输出中的最大值。
遗留一个需要实验的问题:从反向传播求导方面考虑,softmax与交叉熵结合之后,对损失求偏导的结果非常简单。如果将softmax换成平均之后,再对损失求偏导会变成什么样子?
平时无论学习还是应用中,应该多问为什么,多一些思考,想一下替代方案会怎么样