Question

Dans la phase de coopération de la SOM, le voisinage d'un neurone gagnant (noeud de sortie) de Kohonen. Dans la plupart des cas, la fonction de voisinage se trouve être la fonction gaussienne. Par exemple, $$ h_j, _i = exp (-d_j, _i ^ 2/2 * \ sigma ^ 2) $$ où $ h_j, _i $ est la fonction de fenêtre ($ i $ est l'indice du neurone gagnant et $ $ j est l'indice du neurone qui englobe), $ d_j, _i $ est la distance latérale entre le neurone gagnant $ i $ et le neurone excité $ j $.

Maintenant, l'utilisateur qui va mettre en œuvre le SOM a les données d'entrée et les vecteurs de poids initialisées au hasard. Comment $ d_j, _i $ déterminé? Est-il initialisé au hasard aussi? De plus, quelle est la relation entre les vecteurs de poids des noeuds de sortie et leurs positions? La figure ci-dessous est juste pour donner une représentation visuelle de l'organisation de l'entrée et les noeuds de sortie

Était-ce utile?

La solution

La distance est calculée selon une fonction de distance (euclidiennes, manhattan, Mahalanobis et ainsi de suite. Comme il est un modèle sans supervision (d'où la partie auto-organisation au nom), il n'y a pas de neurones de sortie. Est-ce que vous clarifiez le terme ?


Je vais récapituler la formation un peu:

Inititalizing: Nous avons une grille (Assumons 2d) de neurones $ n_i = (w_i, K_i) $, où $ w_i $ est un poids initialisé au hasard et $ K_i $ la position sur la grille

.
  1. Nous allons maintenant choisir un échantillon de formation x_i de $ $ au hasard. Pour ce cas $ x_i nous $ choisir le neurone n_m $ ($ m $ pour minimum) où la distance entre le vecteur de poids et l'instance est minime étant donné une fonction de distance $ d $, donc $ n_m = \ texte {argmin} _ {n_j} \; d (x_j, W (n_j)) $ où $ W (\ cdot) $ donne le poids du neurone respectif.
  2. Nous choisissons maintenant un ensemble de neurones pour lesquels nous adapterons le vecteur de poids donné une fonction de voisinage (par exemple votre gaussienne, ou un cône). Les poids qui devraient avoir leur poids mis à jour sont donnés par $ N ^ {+ t} = \ {n_i = (w_i, K_i) \ mi D_a (k_m, K_i) \ leq \ delta ^ t \} $, où $ t $ est l'étape dans le temps (je mentionnerai plus tard), la « portée » $ \ delta ^ t $ le quartier devrait avoir et bien sûr la position sur la grille $ k_m $ pour le neurone gagnant.
  3. Nous mettre à jour alors les poids des neurones dans le voisinage du neurone gagnant $ n_m $ selon une règle de mise à jour. Cela peut être interprété comme le déplacement des poids plus près de l'entrée, nous regardons actuellement (parce que nous avons choisi le neurone avec le vecteur le plus proche de poids). Une règle de mise à jour possible pourrait être: w_s de $ ^ {t + 1} = w_m ^ t + \ epsilon ^ t \ cdot h_ {mi} ^ t \ cdot (x_j - w_m ^ t) $, où $ \ epsilon ^ t $ est un taux d'apprentissage en fonction du temps et $ h_ {si} ^ t de poids $ la distance du neurone gagnant au neurone nous changeons actuellement, également en fonction du temps.

Afin de garantir un peu devraient être considérés comme une cartographie topologique deux choses maintenant:

  1. Le taux d'apprentissage, qui fait partie de la règle de mise à jour, doit être diminué au fil du temps, en commençant par une valeur relativement élevée.
  2. Le quartier « rayon » doit être diminué et, à partir également d'une valeur relativement élevée.

Soit de cela sur Visualize cette image réelle rapide. Les nœuds rouges sont entrées. Le gris foncé est le neurone gagnant pour l'entrée qui est considéré en ce moment (l'image ne fait pas clairement que nous regardons un exemple / entrée à la fois!). Les noeuds gris clair sont ceux qui se trouvent dans le voisinage du neurone gagnant et sont donc mis à jour légèrement selon une règle de mise à jour.


Avertissement: ce fut du haut de ma tête en ce moment, s'il vous plaît vérifier toutes les formules ou hypothèses que je propose ici avant de l'utiliser dans tout type de travail. (Que vous devriez toujours faire!) . Voir aussi wikipedia , ils ont aussi une explication de l'algorithme qui pourrait mieux vous convenir.

Source de l'image Additioanl source (Wikipedia allemand)

Autres conseils

Je suis aux prises avec la même question. Je pense que la réponse la plus à l'importation sur ce point est ce commentaire de C. S:.

Les neurones ne se déplacent pas. Nous venons de changer les poids. Ils restent fixés sur la position même du cadre que nous les initialisés.

Dans ma compréhension les positions ne changent pas du tout. La ne propose que de la grille est de définir le voisinage de chaque noeud. Ni le quartier, ni les distances du espace carte changement. dynamique Tout se passe dans le espace de poids .

Les images de ce genre sont très confus, cependant: entrer la description d'image ici

Mais si vous lisez attentivement la description, il est dit, il affiche la distance dans l'espace de poids.

Licencié sous: CC-BY-SA avec attribution
scroll top