【发布时间】:2015-04-10 15:09:58
【问题描述】:
我正在使用 sigmoid 函数。我所有输入的输入值范围从 0.88 到 1.06。可以在这个范围内使用实值输入吗?我在神经网络上找到的每个示例都使用二进制输入。另外,因为输入代表增加/减少的百分比,我应该从每个输入中减去 1,所以范围是 -.12 到 .06?
【问题讨论】:
标签: machine-learning neural-network backpropagation
我正在使用 sigmoid 函数。我所有输入的输入值范围从 0.88 到 1.06。可以在这个范围内使用实值输入吗?我在神经网络上找到的每个示例都使用二进制输入。另外,因为输入代表增加/减少的百分比,我应该从每个输入中减去 1,所以范围是 -.12 到 .06?
【问题讨论】:
标签: machine-learning neural-network backpropagation
您可以为神经网络使用实值输入。然而,通常的做法是对它们进行归一化,使它们在区间 [0, 1] 或 [-1, 1] 内。这样做可以使您避免可能导致学习速度非常慢的梯度数值问题。标准化输入值的常用公式是v = (v - mean) / stdDev 和v = (v - min) / (max - min),其中v 是您的输入值之一(一个输入向量中的一个分量),mean 是您数据中该分量的平均值,stdDev是您数据中该组件的标准差,min 是您数据中该组件的最小值,max 是您数据中该组件的最大值。
E. G。 [0, 0], [2, 1] 可能会转换为 [(0 - 0)/2, (0 - 0)/1], [(2 - 0)/2, (1 - 0)/1] = [0, 0], [1, 1](根据第二个公式)。
【讨论】: