Caffe Loss层 - SoftmaxWithLossLayer
SoftmaxWithLossLayer 层可以分解为 SoftmaxLayer + MultinomialLogisticLoss 层的组合,不过其梯度计算更加数值稳定.
测试时,该网络层可以由 SoftmaxLayer 层代替.
1. SoftmaxLayer
Softmax 是 Logtistic 函数的一种泛化, 计算得到的 N 维向量满足:(1) 向量的每个元素值均在区间 [0, 1]; (2) 向量的所有元素之和为 1.
返回每一个标签label 的概率.
# python 实现
import numpy as np
def softmax(x):
y = np.exp(x)
return y/np.sum(y)
2. MultinomialLogisticLoss
计算的是交叉熵 loss.
L=1N∑Nn=1{−log(predn,labeln)}
3. SoftmaxWithLoss
多分类损失函数, 交叉熵形式:
L=1N∑Nn=1{−log(Softmax(xn),labeln)}
[From caffe小问题(2):softmaxWithLoss]