我实现了自己的神经网络,并通过反向传播算法对其进行了训练。输入值在0..1范围内,每个内部层和最后一层的输出都用S型曲线处理。我将其用于分类(我在输出中寻找最大值的索引)。
在前进过程中,我可以用Softmax替换最后一层的Sigmoid。但是我找不到关于如何实现反向传递(计算梯度)的清晰描述。
对于S形,当最后一层的神经元给出Y,但需要输出Z时,我将梯度设置为G =(Z-Y)* Y *(1-Y)。
Softmax是否有类似的公式,以便我可以替换它,同时保留其余的当前机制(使用梯度G的方式,等等)?