softmax损失函数理解

softmax

softmax的定义

softmax损失函数理解_第1张图片

 假设有一个数组V,ViVi表示V中的第i个元素,那么这个元素的softmax值为: 


SoftmaxLayer和SoftmaxLossLayer 


softmaxLayer

softmax实际上就是logistic的扩展,后者只能二分类,前者则能多分类,实际上都是返回每一类的概率值。在caffe里面softmax的实现分为以下几步(加入输入到softmax里面的结点数为10): 
1)找出输入的最大值,输入的每个变量减去最大值,取指数(e为底); 
2)对1)中结果归一化,得出的结果就是每一类的分类概率。 


softmaxLoss

实际上就是个代价函数,我们要让分类正确的概率最大,然后我们对这个概率取log对数,由于代价函数都是最小化,所以我们在log前面加个负号。caffe中都是以batch为单位进行训练的,所以计算loss的时候都是以batch为单位求和取平均。
 

softmax loss是我们最熟悉的loss之一了,分类任务中使用它,分割任务中依然使用它。softmax loss实际上是由softmax和cross-entropy loss组合而成,两者放一起数值计算更加稳定。这里我们将其数学推导一起回顾一遍。

令z是softmax层的输入,f(z)是softmax的输出,则

单个像素i的softmax loss等于cross-entropy error如下:

展开上式:

softmaxLoss

softmax损失函数理解_第2张图片

 

 

 

你可能感兴趣的:(机器学习)