为什么没有 softmax 激活函数的确切图片?

数据挖掘 神经网络 深度学习 激活函数
2022-03-02 09:21:56

我想知道为什么互联网上没有关于 softmax 激活函数的精确图片。由于我想将其与 sigmoid 函数进行比较,该情节是否困难或背后的原因是什么?

我刚刚从dataaspirant中发现了以下有趣的图片,这些图片不再可用: 图像

任何人都可以说明 Softmax 函数图吗?并解释为什么由于上图,一个比另一个快?

3个回答

Softmax 通常是一个多变量函数。您不会使用单个变量的 softmax,就像您不会使用单个变量的最大值一样。很难绘制超过 2 个变量的函数,因为我们的眼睛看到的是 3 个维度。

sigmoid 是一维函数。在您的图片中,他们分别对每个变量应用 sigmoid。

softmax函数用于CNN网络的最后一层。Softmax 是类似于 tanh 和 ReLU 的激活函数,不同之处在于该技术可以将输入的输入解释为输出概率。该方法保证输出概率将在 0 和 1 的范围内,并且它们的总和为 1,因此分数可以解释为每个类别的百分比。该函数使用这个公式,您也可以使用这些代码行来计算 softmax:

logits = [2.0, 1.0, 0.1]
exps = [np.exp(i) for i in logits]
sum_of_exps = sum(exps)
softmax = [j/sum_of_exps for j in exps]
print(softmax)

Softmax 不是一个连续的数学函数,例如logistic(sigmoid)、tanh 或 ReLU。它用于将神经网络最后一层的输出映射到概率分布中,即 softmax 压缩层输出的总和为 1(统一)。

与其他激活函数不同,softmax 采用输入列表/数组并将它们映射到概率分布中。示例:softmax([ 2.0 , 1.0 , 0.1 ]) 将返回 [ 0.7 , 0.2 , 0.1 ]

并且 0.7 + 0.2 + 0.1 = 1,所以如果我们传递只有一个元素的 softmax 列表,它的出现概率将为 1(unity),即 softmax([ any_value ]) 将返回 1。

因此,softmax 仅在必须压缩多个输出时才有用。

function softmax(list){
// list is an array of outputs of last layer neurons of a Neural Network 
// numerators is an array of Math.exp() applied to each element of list array
    var numerators = list.map(function(e){ return Math.exp(e); });
// denominator is summation of each element of numerators array
    var denominator = numerators.reduce(function(p, c){ return p + c; });
// returning numerators array after dividing each element by denominator
    return numerators.map(function(e){ return e / denominator; });
}

Softmax 有助于分类问题