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


12

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

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

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

  • 如果第一世个输出神经元的输入是向量(来自上一层)与该神经元权重之间的点积, X θ XŤθ一世Xθ一世
  • 如果我采用单调非线性函数(如S型或ReLU)
  • 那么较大的激活输出仍将对应于最大,因此从这个角度来看,非线性函数不会改变预测。XŤθ一世

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

如果我是对的,那么如果不是使用Sigmoid函数而是使用ReLU函数(不是严格单调的函数,会发生什么变化吗?

最大值0XŤθ一世

编辑

关于Karel的答案,其答案主要是“取决于”,这是对我的网络和疑问的更详细描述:

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



N-2,N-3,.. 1层是线性的还是非线性的?
卡雷尔·麦凯克

从1(最接近输入)到N-1的层是非线性的。N层是最后一个(更接近输出的)隐藏层。softmax层是N + 1层。
2015年

1
在softmax之前的BN层呢?非线性可以吗?(是否算作非线性?)
Charlie Parker

Answers:


11

您不应在softmax分类之前为最后一层使用非线性。在这种情况下,ReLU非线性(现在几乎只使用)将简单地丢弃信息,而不会增加任何其他好处。您可以查看著名的AlexNet 的caffe实现,以获取实际操作的参考。


2
在softmax之前的BN层呢?非线性可以吗?(是否算作非线性?)
Charlie Parker

6

您可能想向softmax函数发送一个负值,以表明事件发生的可能性很小。如果将输入值传递到relu,则网络不会通过任何传递给relu输入为负的单位的渐变。因此,虽然softmax的表达能力没有改变,但可能会使学习变得更加困难。


0

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


你能看一下我的编辑吗?
2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.