Kohonen Som Maps: normalizando a entrada com faixa desconhecida
-
27-09-2019 - |
Pergunta
De acordo com "Introdução às redes neurais com Java por Jeff Heaton", a entrada da rede neural de Kohonen deve ser os valores entre -1 e 1.
É possível normalizar as entradas onde o intervalo é conhecido de antemão: por exemplo, RGB (125, 125, 125), onde o intervalo é conhecido como valores entre 0 e 255:
1. Divida por 255: (125/255) = 0,5 >> (0,5,0,5,0,5)
2. Multiplique por dois e subtraia um: ((0,5*2) -1) = 0 >> (0,0,0)
A questão é como podemos normalizar a entrada em que o intervalo é desconhecido como nossa altura ou peso.
Além disso, alguns outros trabalhos mencionam que a entrada deve ser normalizada para os valores entre 0 e 1. Qual é a maneira correta "-1 e 1" ou "0 e 1"?
Solução
Você sempre pode usar uma função esmagadora para mapear um intervalo infinito para um intervalo finito. Por exemplo, você pode usar Tanh.
Você pode querer usar o Tanh (x * l) com um l escolhido manualmente, para não colocar muitos objetos na mesma região. Portanto, se você tiver um bom palpite de que os valores máximos de seus dados são +/- 500, convém usar o Tanh (x / 1000) como um mapeamento onde x é o valor do seu objeto, pode até fazer sentido subtrair seu Adivinhe a média de x, produzindo Tanh ((x - média) / max).
Outras dicas
Pelo que eu sei sobre Kohonen Som, eles a normalização específica realmente não importa.
Bem, pode através de escolhas específicas para o valor dos parâmetros do algoritmo de aprendizado, mas o mais importante é que as diferentes dimensões dos seus pontos de entrada tenham que ser da mesma magnitude.
Imagine que cada ponto de dados não é um pixel com os três componentes RGB, mas um vetor com dados estatísticos para um país, por exemplo, população, .... É importante para a convergência da parte de aprendizado que todos esses números são dos mesma magnitude.
Portanto, realmente não importa se você não conhece o intervalo exato, basta saber aproximadamente a amplitude característica dos seus dados.
Para peso e tamanho, tenho certeza de que, se você os dividir, respectivamente, por 200 kg e 3 metros, todos os seus pontos de dados cairão no intervalo] 0 1]. Você pode até usar 50 kg e 1 metro, o importante é que todas as coordenadas seriam da Ordem 1.
Por fim, você pode considerar a execução de algumas ferramentas de análise linear, como o POD, os dados que lhe dariam automaticamente uma maneira de normalizar seus dados e um subespaço para a inicialização do seu mapa.
Espero que isto ajude.