
3
J.Korczak, ULP 13
Neural Gas [Martinetz, Schulten, 1991]
• NG ordonne les neurones du réseau en fonction de la
distance de leur vecteur de référence avec l’exemple
présenté.
• Les neurones les plus proches de l’exemple sont modifiés
pour se rapprocher de l’exemple.
• Le nombre de neurones modifiés ainsi que l’importance de
cette modification diminuent avec le temps.
• Les neurones ne sont pas interconnectés entre eux.
J.Korczak, ULP 14
Neural Gas : Algorithme
1. Initialisation des N neurones dont les vecteurs de référence sont
choisis aléatoirement parmi les données; A ={c1, c2,…, cN}, t=0
2. Choix d’un exemple ξaléatoirement
3. Ordonner les neurones en fonction de leur distance par rapport à
ξ : (i0, i1,…, iN-1), ki(ξ,A).
4. Modifier les vecteurs de référence de neurones selon :
∆wi=ε(t)*hλ *ki(ξ,A)) * (ξ-wi) avec hλ(k) =exp (-k/λ(t))
et λ(t) et ε(t) qui diminuent dans le temps
5. Incrémenter le compteur de temps t=t+1
6. Si t<tmax reprendre à l’étape 2.
Exemples
J.Korczak, ULP 15
Competitive Hebbian Learning [Martinetz 1993]
• Cette méthode est généralement utilisée avec d’autres,
par ex. Neural Gas plus Competitive Hebbian Learning
• Elle ne modifie pas les vecteurs de référence des
neurones mais génère les connexions entre les
neurones.
• A chaque présentation d’un exemple, une connexion
entre les deux neurones les plus proches de celui-ci est
éventuellement ajoutée.
J.Korczak, ULP 16
Growing Neural Gas [Fritzke, 1994]
• Dans cette variante, le nombre de neurones est augmenté
durant l’apprentissage.
• Les neurones sont connectés.
J.Korczak, ULP 17
Growing Neural Gas : Algorithme
1. Initialisation de 2 neurones dont les vecteurs de référence sont
choisis aléatoirement parmi les données; A ={c1, c2}, t=0. Initialisation
de l’ensemble des connexions C.
2. Choix d’un exemple ξ
ξξ
ξaléatoirement.
3. Déterminer les deux neurones s1et s2les plus proches de ξ
ξξ
ξ.
4. Rajouter une connexions entre s1et s2. Mettre son âge à 0.
C = C U{(s1,s2)}.age(s1,s2) = 0
5. Augmenter l’erreur cumulée du neurone : ∆
∆∆
∆Es1 = II ξ
ξ ξ
ξ −
−−
−wsiII2.
6. Modifier les vecteurs de référence de neurones du neurone vainqueur
et de ses voisins topologiques directs :
∆
∆∆
∆wsi = ε
εε
εb*(ξ
ξξ
ξ-wsi) , ∆
∆∆
∆wi= ε
εε
εn*(ξ
ξξ
ξ-wn)
7. Incrémenter l’âge des connections de si
8. Supprimer les connexions d’âge supérieur à amax et supprimer les
neurones qui n’ont plus de connexions.
9. Si le nombre d’exemples présentés est un multiple de l, ajouter un
neurone entre celui dont l’erreur cumulée est la plus grande et son
voisin d’erreur cumulée la plus importante. Diminuer l’erreur cumulée.
10.Si le critère d’arrêt n’est pas satisfait, reprendre à l’étape 2. J.Korczak, ULP 18