Kohonen SOM Maps: normalizing input with an unknown range

According to “Introducing Neural Networks with Java Jeff Heaton,” the entry into the Kohonen neural network must be between -1 and 1.

You can normalize inputs where the range is known in advance: For example, RGB (125, 125, 125), where the range is known as values ​​from 0 to 255:
1. Divide by 255: (125/255) = 0.5 → (0.5 , 0,5,0,5)
2. Multiply by two and subtract one: ((0,5 * 2) -1) = 0 → (0,0,0)

The question is how can we normalize the entry, where the range is unknown, like our height or weight.

In addition, some other documents indicate that the input should be normalized to values ​​between 0 and 1. What is the correct way: "-1 and 1" or "0 and 1"?

+3
source share
2 answers

You can always use the compression function to map an infinite interval to a finite interval. For instance. you can use tanh.

You might want to use tanh (x * l) with manually selected l, but in order not to put too many objects in the same region. Therefore, if you have a good guess that the maximum values ​​of your data are +/- 500, you can use tanh (x / 1000) as a display, where x is the value of your object. It may even make sense to subtract the guess of the average from x, giving tanh ((x is the average) / max).

+6
source

, SOM , .

, , , .

, RGB, , . , ,.... , .

, , , .

, 200 3 , ] 0 1]. 50 1 , , 1.

, , POD, , .

, .

+4

Source: https://habr.com/ru/post/1741409/


All Articles