我正在使用sigmoid函数。我对所有输入的输入值范围为.88到1.06。在这个范围内使用实值输入是否可以?我在神经网络上找到的每个例子都使用二进制输入。另外,因为输入代表百分比增加/减少,我应该从每个输入中减去1,所以范围是-.12到.06?
答案 0 :(得分:2)
您可以为您的神经网络使用实值输入。然而,通常的做法是将它们归一化,使它们处于区间[0,1]或[-1,1]中。这样做可以避免因梯度导致学习速度非常慢的数值问题。标准化输入值的常用公式为v = (v - mean) / stdDev
和v = (v - min) / (max - min)
,其中v
是您的输入值之一(一个输入向量中的一个组件),mean
是其中的平均值数据中的组件stdDev
是数据中该组件的标准偏差,min
是数据中该组件的最小值,max
是数据中该组件的最大值
电子。 G。 [0, 0], [2, 1]
可能会转换为[(0 - 0)/2, (0 - 0)/1], [(2 - 0)/2, (1 - 0)/1] = [0, 0], [1, 1]
(根据第二个公式)。