我目前正在构建一个神经网络来预测诸如温度的特征。因此,输出可以是正值或负值。我对输入数据进行了归一化处理,并且在每个隐藏层中使用了tanh激活函数。
我应该在输出层使用线性激活函数来获得无界连续输出,还是应该在输出层使用tanh然后对输出进行反归一化处理?能否有人解释一下,我觉得我的理解可能不对。
回答:
你实际上是走在正确的方向上的
选项1:
你需要先归一化温度,然后将其输入到模型中。假设你的温度范围在[-100,100]之间,将其转换为[-1,1]的范围,然后在你的目标变量中使用这个缩放后的温度值。
在预测时,只需对输出进行反转换,你就会得到你想要的结果。
选项2:
你可以构建一个回归类型的神经网络,并且不对输出层应用任何激活函数(意味着值没有限制,可以是正值或负值)。在这种情况下,你不需要归一化这些值。
示例神经网络规格:
输入层==> 每个特征一个神经元
隐藏层==>使用relu/selu作为激活函数| 神经元数量/隐藏层数量根据你的需求设定
输出层==> 1个神经元/不需要激活函数