Kohonen SOM Maps:将输入标准化为未知范围

S.N*_*S.N 3 machine-learning som self-organizing-maps

根据"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"?

Adr*_*ien 6

根据我对 Kohonen SOM 的了解,它们的具体标准化并不重要。

嗯,可能是通过对学习算法的参数值进行特定选择,但最重要的是输入点的不同维度必须具有相同的大小。

想象一下,每个数据点不是具有三个 RGB 分量的像素,而是具有国家统计数据的向量,例如面积、人口……。所有这些数字都属于学习部分的收敛非常重要相同的幅度。

因此,如果您不知道确切的范围也没关系,您只需要大致了解数据的特征幅度即可。

对于重量和尺寸,我确信如果将它们分别除以 200 公斤和 3 米,所有数据点都会落在]0 1]区间内。您甚至可以使用 50 公斤和 1 米,重要的是所有坐标都是 1 阶。

最后,您可以考虑在数据上运行一些线性分析工具(例如 POD),这将自动为您提供一种标准化数据的方法和用于初始化地图的子空间。

希望这可以帮助。


bay*_*yer 6

您始终可以使用压缩功能将无限区间映射到有限区间.例如,你可以使用tanh.

您可能希望将tanh(x*l)与手动选择的l一起使用,以免在同一区域中放置太多对象.因此,如果您猜测数据的最大值为+/- 500,则可能需要使用tanh(x/1000)作为映射,其中x是对象的值.甚至可能有意义地减去猜测x的均值,得到tanh((x - mean)/ max).