我有一些关于在matlab工具箱中使用nntool的问题。在这些Simple Linear Neural Network Weights from Training , are not compatable with training results, cant understand why之类的链接之后,我发现默认情况下,nntool将输入规范化为范围[-1 1]。所以我有点担心,我在第一层创建了一个带有tansig激活的神经网络,并在输出层中创建了logsig激活。我手动将输出标准化为数据中[0 1]的范围并将其输入到nntool。现在我的问题是nntool是否进一步将其标准化为范围[-1 1]。如果确实如此,那么logig的输出不能在[-1 1]的范围内。
有什么建议吗?
答案 0 :(得分:0)
我不是matlab用户,但如果您不想使用规范化并且它在输入和输出上都被强制 - 那么只需对输出进行非规范化。我假设它是简单的线性归一化(压缩到[-1,1]
间隔),所以如果你想在[0,1]
间隔输出,你可以简单地应用f(x) = (x+1)/2
线性映射{{1}到[-1,1]
。神经网络具有尺度敏感性(因为它与激活函数斜率等非可调参数密切相关),因此内部归一化具有其优势。如果在>强化培训后应用标准化,这应该有效。
如果它只标准化输入那么你不应该担心,这并不意味着使用任何激活功能有任何问题(事实上,如前所述,它应该实际上有帮助)。
作为question has been also posted on the Cross Validated,更多细节,我已经在那里用更精确的解决方案回答了它。