大家好,又见面了,我是你们的朋友全栈君。
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
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/153117.html原文链接:https://javaforall.cn