根据"Jeff Heaton的Java神经网络简介",Kohonen神经网络的输入必须是介于-1和1之间的值.
可以对预先知道范围的输入进行标准化:例如RGB
(125,125,125),其中范围被称为0到255之间的值:
1.除以255:(125/255)= 0.5 >> (0.5,0.5,0.5)
2.乘以2并减1:((0.5*2)-1)= 0 >>(0,0,0)
问题是我们如何将范围未知的输入标准化,例如我们的身高或体重.
另外,其他一些论文提到输入必须归一化为0到1之间的值.这是正确的方法,"-1和1"或"0和1"?
您始终可以使用压缩功能将无限区间映射到有限区间.例如,你可以使用tanh.
您可能希望将tanh(x*l)与手动选择的l一起使用,以免在同一区域中放置太多对象.因此,如果您猜测数据的最大值为+/- 500,则可能需要使用tanh(x/1000)作为映射,其中x是对象的值.甚至可能有意义地减去猜测x的均值,得到tanh((x - mean)/ max).