我正在研究并尝试实现卷积神经网络,但是我想这个问题通常适用于多层感知器。
我网络中的输出神经元代表每个类别的激活:最活跃的神经元对应于给定输入的预测类别。为了考虑训练的交叉熵成本,我在网络的末端添加了softmax层,以便将每个神经元的激活值解释为概率值。
我的问题是:输出层中的神经元是否应该对输入应用非线性函数?我的直觉是没有必要:
- 如果第个输出神经元的输入是向量(来自上一层)与该神经元权重之间的点积, X θ 我
- 如果我采用单调非线性函数(如S型或ReLU)
- 那么较大的激活输出仍将对应于最大,因此从这个角度来看,非线性函数不会改变预测。
这种解释有问题吗?我是否忽略了一些训练因素,这些因素使输出非线性成为必要?
如果我是对的,那么如果不是使用Sigmoid函数而是使用ReLU函数(不是严格单调的函数,会发生什么变化吗?
编辑
关于Karel的答案,其答案主要是“取决于”,这是对我的网络和疑问的更详细描述:
假设我有N个隐藏层,而我的输出层只是代表类的一组神经元上的softmax层(所以我的预期输出是输入数据属于每个类的概率)。假设第一个N-1层具有非线性神经元,那么在第N个隐藏层中使用非线性与线性神经元有什么区别?
N-2,N-3,.. 1层是线性的还是非线性的?
—
卡雷尔·麦凯克
从1(最接近输入)到N-1的层是非线性的。N层是最后一个(更接近输出的)隐藏层。softmax层是N + 1层。
—
2015年
在softmax之前的BN层呢?非线性可以吗?(是否算作非线性?)
—
Charlie Parker