SoftmaxWithLossLayer 层可以分解为 SoftmaxLayer + MultinomialLogisticLoss 层的组合,不过其梯度计算更加数值稳定.
测试时,该网络层可以由 SoftmaxLayer 层代替.
Softmax 是 Logtistic 函数的一种泛化, 计算得到的 NN 维向量满足:(1) 向量的每个元素值均在区间 [0, 1]; (2) 向量的所有元素之和为 1.
Softmax(xi)=exi∑iexiSoftmax(x_i) = \frac{e^{x_i}}{\sum_i e^{x_i}}
返回每一个标签label 的概率.
# python 实现
import numpy as np
def softmax(x):
y = np.exp(x)
return y/np.sum(y)
[From caffe小问题(2):softmaxWithLoss]