神经网络的精度

问题描述 投票:0回答:2

我想知道神经网络是否能够回归非常接近值的目标值。例如:

input [100 150 200 300]
output [0.99903 0.99890 0.99905 0.99895]

或者应该对输出或目标数据进行处理吗?

machine-learning neural-network
2个回答
3
投票

神经网络输入/输出值的三个规则:

  1. 标准化您的数据。
  2. 标准化您的数据。
  3. 标准化您的数据。

对数据尝试一些标准化方案,看看输出点相距多远。当然,不要忘记对输入也执行此操作。

如果您的数据有多个维度,但该数据是一维的,

PCA 也会很有帮助。


0
投票

kwatford 是对的,标准化你的数据!

理论上神经网络可以学习这样的目标。但我们正在研究具有不精确实数表示的真实计算机。现在,考虑一下:你训练你的神经网络,在训练过程中当前的预测是这样的:

输入[100 150 200 300]

输出[0.99905 0.99890 0.99903 0.99895]

我刚刚翻转了 100 和 200 的结果。因此,误差平方和将为 4e-10。添加到神经网络权重的值将会更小。当您使用单精度浮点数时,您已经遇到了这个数字的问题。 GNU Octave 中的一个示例演示了这一点:

single(0.99905)+single(1e-10)
ans =  0.99905

这意味着在大多数人工神经网络实现中这是不可能的或者:标准化您的数据。 :)

© www.soinside.com 2019 - 2024. All rights reserved.