如何将神经网络的标准化输出转换回原始规模?

0 投票
2 回答
1824 浏览
提问于 2025-04-18 14:26

在我的神经网络中,输入的范围是从0到719,目标值的范围是从0到1340。为了让这些数据更好处理,我对输入和目标值进行了标准化处理,也就是把它们调整到均值为0,方差为1的状态。接着,我使用反向传播算法计算输出结果。现在,我的所有输出值都在-2到2之间。我该如何把这些输出值转换回原来的范围,也就是让它们落在(0,1340)之间呢?

补充说明:我有1个输入,5个隐藏神经元和1个输出。我使用了逻辑 sigmoid 激活函数。我进行标准化处理时,是先计算均值,然后用标准差进行除法。具体来说,我的输出值在-1.28到1.64之间。

2 个回答

0

逻辑 sigmoid 函数的输出值在 0 到 1 之间。所以如果你想把一个输出 y 调整到 0 到 1340 的范围内,你只需要把 y 乘以 1340。

一般来说,如果你想把逻辑 sigmoid 的输出调整到一个范围 (min, max),你可以使用下面的方式:

y_scaled = min + (max - min) * y
0

假设目标的平均值是 mu,标准差是 sigma,那么一个目标值 y标准化 值应该是 (y-mu)/sigma。也就是说,如果你得到一个输出值 y',你可以通过 y' -> mu + y' * sigma 的方式把它转换回原来的数值。

撰写回答