softmax损失函数理解

原文链接: https://blog.csdn.net/as472780551/article/details/86554478

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张图片

你可能感兴趣的:(一些知识)