0

我对在 matlab 工具箱中使用 nntool 有一些担忧。按照这些来自训练的简单线性神经网络权重的链接,与训练结果不兼容,无法理解为什么,我发现 nntool 默认将输入标准化为范围 [-1 1]。所以我有点担心,我创建了一个神经网络,第一层有 tansig 激活,输出层有 logig 激活。我手动将输出标准化为数据中 [0 1] 的范围,并将其提供给 nntool。现在我的问题是 nntool 是否进一步将其标准化为范围 [-1 1]。如果是,那么它是不正确的,logsig 的输出不能在 [-1 1] 的范围内。

有什么建议么?

4

1 回答 1

0

我不是 matlab 用户,但如果您不想使用规范化并且它在输入和输出上都被强制 - 那么只需对输出进行非规范化。我假设它是简单的线性归一化(压缩到[-1,1]区间),所以如果你想在[0,1]区间内输出,你可以简单地应用f(x) = (x+1)/2which 线性映射[-1,1][0,1]. 神经网络对尺度敏感(因为它与激活函数斜率等不可调整的参数密切相关),因此内部归一化有其优势。如果在训练应用归一化,这应该有效。

如果它只是规范化输入,那么你不应该担心,这并不意味着使用任何激活函数有任何问题(事实上,如前所述,它实际上应该有所帮助)。

更新

由于该问题也已发布在 Cross Validated 上,并提供了更多详细信息,因此我已在此处以更精确的解决方案进行了回答。

于 2013-09-03T20:38:32.117 回答