在隐藏层使用 softmax 并在输出层使用 relu 进行 CNN 回归

Using softmax in hidden layer and relu in output layer for CNN regression

我正在创建一个 CNN,以根据测量的光谱 (2D) 预测应用于光纤的分布应变,理想情况下,该光谱是洛伦兹曲线。标签是一维数组,其中只有应变部分不为零(标签看起来像方波)。

我的 CNN 有 10 个交替的卷积层和池化层,全部由 RelU 激活。然后是 3 个具有 softmax 激活的全连接隐藏层,然后是一个由 RelU 激活的输出层。通常,CNN 和其他神经网络对隐藏层使用 RelU,然后对输出层使用 softmax(在分类问题的情况下)。但在这种情况下,我首先使用 softmax 确定施加应变(即非零)的光纤位置,然后在输出中使用 RelU 进行回归。我的 CNN 能够相当准确地预测标签,但我找不到任何支持出版物,其中 softmax 在隐藏层中使用,然后在输出层中使用 RelU;除了我在 Quora/Whosebug 中发现的那些方法之外,也没有相反地不推荐这种方法(即在数学上不可行)的原因。如果有人能在这件事上启发我,我将不胜感激,因为我对深度学习还很陌生,并希望从中学习。提前致谢!

如果您查看第 l 层查看前一层 l-1 的输入的方式,则假设特征向量的维度是线性无关的。

如果模型使用一组神经元建立某种置信度,那么神经元最好是线性独立的,否则它只是夸大了 1 个神经元的值。

如果您在隐藏层中应用 softmax,那么您实际上是在组合多个神经元并篡改它们的独立性。另外,如果你看一下为什么 ReLU 是首选的原因是因为它可以给你一个更好的梯度,而其他激活如 sigmoid 则不会。此外,如果你的目标是为你的层添加规范化,你最好使用显式批量规范化层