softmax损失函数理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/as472780551/article/details/86554478

softmax

softmax的定义

 假设有一个数组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

猜你喜欢

转载自blog.csdn.net/as472780551/article/details/86554478
今日推荐