我正在研究并尝试实现卷积神经网络,但我想这个问题一般适用于多层感知器。
我的网络中的输出神经元代表每个类的激活:最活跃的神经元对应于给定输入的预测类。为了考虑训练的交叉熵成本,我在网络末端添加了一个 softmax 层,以便将每个神经元的激活值解释为概率值。
我的问题是:输出层中的神经元是否应该对输入应用非线性函数?我的直觉是没有必要:
- 如果第个输出神经元的输入是向量(来自前一层)和该神经元 theta_i 之间的点积
- 如果我使用像 sigmoid 或 ReLU 这样的单调非线性函数
- 那么较大的激活输出仍将对应于最大的,因此从这个角度来看,非线性函数不会改变预测。
这种解释有问题吗?是否有一些我忽略的训练因素使输出非线性成为必要?
如果我是对的,如果我使用 ReLU函数而不是使用 sigmoid 函数,这不是严格单调的,会有什么改变吗?
编辑
参考卡雷尔的回答,他的回答基本上是“取决于”,这里是对我的网络和疑问的更详细描述:
假设我有 N 个隐藏层,而我的输出层只是代表类的一组神经元上的 softmax 层(所以我的预期输出是输入数据属于每个类的概率)。假设前 N-1 层具有非线性神经元,那么在第 N 个隐藏层中使用非线性神经元与线性神经元有什么区别?