在预测神经网络中的多神经元输出时,例如,预测多个手写数字并给出输出神经元向量 (0.1,...,0.9,0.1,...),许多人使用 sth like softmax(或 sth like the energy统计力学中的相关概率指数公式)对输出向量进行归一化,使得输出向量的所有分量总和为 1,并且归一化的输出向量成为概率向量。我怀疑这种归一化的必要性,因为没有它我同样可以根据最大向量分量进行预测。有什么我忽略的吗?
预测神经网络中多神经元输出的概率归一化
数据挖掘
神经网络
正常化
2022-03-16 02:53:48
2个回答
您是对的,但这不称为规范化。您可以简单地将最高概率输出用于类别。这就是 softmax 为您所做的。例如,2 个输出神经元可以有 0.1 的狗和 0.9 的猫作为损失。Softmax 只会将其转换为 [0,1],这意味着图像上没有狗但有猫。
是的,你忽略了一些东西。让我用一个例子来解释一下:
在训练神经网络时,您使用损失函数作为反向传播的信号。现在让我们假设您有一个输出三个类别的网络:猫、狗和蟾蜍。假设网络在一次迭代中的预测是 [0.7, 0.6, 0.3],尽管数据实际上是狗的图像,这意味着事实是:[0 1 0]。
如果没有 softmax 层,您无法真正看出网络预测错误的程度。在这个例子中,您可能认为差异是 0.7 - 0.6 = 0.1,但是在运行 softmax 之后,您会意识到它实际上是 0.03,因为网络在区分蟾蜍类别与狗和猫类别方面非常强大,所以损失并没有看起来那么大。
现在作为一个实验,运行一个没有 softmax 层的神经网络,并亲眼看看它对训练的影响有多严重。不仅如此,输入批次的归一化也对训练网络产生了巨大的影响。