我是否需要在最后一层之前添加 ReLU 函数来预测正值?

Jam*_*ame 3 machine-learning deep-learning

我正在开发一个使用线性回归预测年龄的模型。我知道年龄是从 0 到 100,这是一个可能的值。我在最后一层使用了 conv 1 x 1 来预测真实值。卷积1x1的输出后是否需要添加ReLU函数来保证预测值为正值?目前,我没有添加 ReLU,一些预测值变成了负值,比如 -0.02 -0.4…

小智 6

没有令人信服的理由为输出层使用激活函数;通常,您只想直接对倒数第二层的输出使用合理/合适的损失函数。具体来说,RELU 不能解决您的问题(或最多只能解决“一半”问题),因为它仍然可以预测 100 以上。在这种情况下 - 预测连续结果 - 有一些标准损失函数,如平方误差或 L1 -规范。

如果你真的想在最后一层使用激活函数,并且担心总是在有界区间内进行预测,你可以尝试扩大 sigmoid 函数(在 0 到 100 之间)。但是,这里的 sigmoid 没有什么特别之处——任何有界函数,例如。可以类似地使用任何有符号连续随机变量的 CDF。虽然对于优化,一些容易区分的东西很重要。

为什么不从平方误差损失这样简单的东西开始呢?当您需要实际进行预测时(而不是在训练/测试期间),总是可以将超出范围的预测“钳制”到 [0-100] 之内(我们可以给它一个像“双重 RELU”这样的奇特名称) ),但如果您收到大量此类错误,则模型可能存在更基本的问题。