卷积神经网络中最终 Softmax 层之前的非线性

机器算法验证 神经网络 深度学习 卷积神经网络 非线性 软最大
2022-03-12 17:58:50

我正在研究并尝试实现卷积神经网络,但我想这个问题一般适用于多层感知器。

我的网络中的输出神经元代表每个类的激活:最活跃的神经元对应于给定输入的预测类。为了考虑训练的交叉熵成本,我在网络末端添加了一个 softmax 层,以便将每个神经元的激活值解释为概率值。

我的问题是:输出层中的神经元是否应该对输入应用非线性函数?我的直觉是没有必要:

  • 如果第个输出神经元的输入是向量(来自前一层)和该神经元 theta_i 之间的点积ixTθixθi
  • 如果我使用像 sigmoid 或 ReLU 这样的单调非线性函数
  • 那么较大的激活输出仍将对应于最大的,因此从这个角度来看,非线性函数不会改变预测。xTθi

这种解释有问题吗?是否有一些我忽略的训练因素使输出非线性成为必要?

如果我是对的,如果我使用 ReLU函数而不是使用 sigmoid 函数,这不是严格单调的,会有什么改变吗?

max(0,xTθi)

编辑

参考卡雷尔的回答,他的回答基本上是“取决于”,这里是对我的网络和疑问的更详细描述:

假设我有 N 个隐藏层,而我的输出层只是代表类的一组神经元上的 softmax 层(所以我的预期输出是输入数据属于每个类的概率)。假设前 N-1 层具有非线性神经元,那么在第 N 个隐藏层中使用非线性神经元与线性神经元有什么区别?


3个回答

您不应该在 softmax 分类之前的最后一层使用非线性。在这种情况下,ReLU 非线性(现在几乎完全使用)将简单地丢弃信息而不会增加任何额外的好处。您可以查看著名的 AlexNet的caffe 实现,以了解在实践中所做的工作。

您可能希望向 softmax 函数发送一个负值,以指示事件的概率较低。如果您将输入值传递给 relu,那么网络将不会通过 relu 输入为负的单元传递任何梯度。因此,虽然 softmax 的表达能力没有改变,但它可能会使学习变得更加困难。

答案不是是或不是。这在很大程度上取决于您对网络的期望。我假设您想要一个好的分类器,可能适用于广泛的问题。因此,非线性有助于捕获非平凡类。非线性可能包含在 soft-max 层之前的最后一层中,也可能包含在前一层中。