Question

Je veux arrêter l'exécution lorsque SOM lot devient convergé. Quelle est la fonction erreur puis-je utiliser pour déterminer la convergence?

Était-ce utile?

La solution

Quand on parle de convergence pour SOMs, pour une taille de carte donnée (n x m), vous voulez savoir si itérations suffisantes de l'algorithme ont exécuté pour garantir la carte est « stable ». Cela signifie, vaguement parler, faire de nouvelles entrées (observations) à la carte se placer dans les mêmes vecteurs neurones / de codebook si la carte est une nouvelle formation à plusieurs reprises? (Sans tenir compte de la question du fait que la disposition de la carte peut changer autour quand il est formé à chaque fois, ce qui est bien aussi longtemps que les clusters sont encore agencés de manière stable).

Pour aider à répondre à la question de savoir si suffisamment d'itérations ont exécuté, voir les documents académiques énumérés ci-dessous. Les deux documents touchent également sur la question de la taille de la carte est appropriée (ce n valeurs x m aident à assurer la convergence du SOM?).

L'une des approches traditionnelles qui a été populaire dans les journaux est donnée ici:

outils statistiques pour évaluer la fiabilité des cartes d'auto-organisation (Bodt, Cottrell, Verleysen)

Plus récemment, cette méthode est venu au sujet, ce qui semble plutôt prometteur:

CRITÈRE DE CONVERGENCE POUR autoorganisables CARTES , Thèse de maîtrise, Benjamin h. ott (Université de Rhode Island)

Cette thèse, à mon avis, a été très bien écrit et un plaisir à lire. Ce qui est aussi belle que cette recherche a été écrit comme un test de convergence SOM dans un paquet (plutôt inconnu) dans R, appelé popsom. Check it out:

popsom

Autres conseils

Je suis assez sûr que vous voulez dire la fonction de coût plutôt que la fonction d'erreur.

SOM ne nécessite pas une fonction d'erreur (ni une fonction de coût).

Au niveau supérieur de la taxonomie d'apprentissage de la machine, SOM est une technique d'apprentissage non supervisé -. Aucun vecteur cible, et donc pas « cible vecteur » moins « value_at_the_current_iteration » pour minimiser

Une autre façon de penser: le rôle d'une fonction de coût est de minimiser certains coûts; en ML, il est le delta entre le calcul du modèle et les données fournies. Dans SOM, aucune donnée est fournie à l'algorithme à cet effet.

(je me rends compte que cela est un peu confus parce que les données d'entrée à partir de laquelle le réseau est créé est souvent appelée « données de formation » - sans doute qui est le rôle des données d'entrée dans les techniques ML supervisés, qui sont beaucoup plus fréquents que les non surveillées Il est probablement aussi confus parce que Teuvo Kohonen, la personne crédité de « inventant » SOM, les appelée à l'origine en tant que classe de réseaux de neurones -. et bien sûr NN est une technique supervisée et ne repose sur une fonction de coût (souvent gradient descente.))

Enfin, pour vous assurer, j'ai vérifié mon propre code SOM ainsi que le code du manuel ML par Marsland, « Machine Learning: Une perspective Algorithmique ». Dans les deux mon code et son, le seul critère d'arrêt quelle que soit la valeur pour « itérations maximum » l'utilisateur passé quand il a appelé la fonction principale.

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