Question

D'après « Introduction aux réseaux de neurones avec Java par Jeff Heaton », l'entrée du réseau de neurones Kohonen doit être les valeurs comprises entre -1 et 1.

Il est possible d'entrées Normaliser où la plage est connue à l'avance: Par exemple RGB (125, 125, 125) où la plage est connu comme valeurs comprises entre 0 et 255:
1. Diviser par 255: (125/255) = 0,5 >> (0.5,0.5,0.5)
2. Multiplier par deux et soustraire une: ((0,5 * 2) -1) = 0 >> (0,0,0)

La question est de savoir comment peut-on normalise l'entrée où la plage est inconnue comme notre taille ou le poids.

En outre, certains autres documents mentionnent que l'entrée doit être normalisé aux valeurs comprises entre 0 et 1. Quelle est la bonne façon, « -1 et 1 » ou « 0 et 1 »?

Était-ce utile?

La solution

Vous pouvez toujours utiliser une fonction pour mapper un squashing intervalle infini à un intervalle fini. Par exemple. vous pouvez utiliser tanh.

Vous pouvez utiliser tanh (x * l) avec l choisi manuellement si, afin de ne pas mettre trop d'objets dans la même région. Donc, si vous avez une bonne estimation que les valeurs maximales de vos données sont +/- 500, vous pouvez utiliser tanh (x / 1000) comme une application où x est la valeur de votre objet Il pourrait même logique de soustraire votre deviner de la moyenne de x, ce qui donne tanh ((x - moyenne) / max).

Autres conseils

D'après ce que je sais Kohonen SOM, ils la normalisation spécifique ne compte pas vraiment.

Eh bien, il pourrait par des choix spécifiques pour la valeur des paramètres de l'algorithme d'apprentissage, mais la chose la plus importante est que les différentes dimensions de vos points d'entrée doivent être du même ordre de grandeur.

Imaginez que chaque point de données ne sont pas un pixel avec les trois composantes RVB, mais un vecteur avec des données statistiques pour un pays, par exemple superficie, population, .... Il est important pour la convergence de la partie d'apprentissage que tous ces chiffres sont du même ordre.

Par conséquent, il ne si vous ne savez pas pas vraiment la gamme exacte, il vous suffit de connaître approximativement l'amplitude caractéristique de vos données.

Pour le poids et la taille, je suis sûr que si vous les diviser respectivement par 200 kg et 3 mètres tous vos points de données tomberont dans le] 0 1] intervalle. Vous pouvez même utiliser 1 mètre et 50 kg l'important est que toutes les coordonnées seraient de l'ordre 1.

Enfin, vous pouvez envisager un fonctionnement des outils d'analyse linéaire comme POD sur les données qui vous donnerait automatiquement un moyen de normaliser vos données et un sous-espace pour l'initialisation de la carte.

Hope this helps.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top