Un algorithme efficace pour les cartes auto-organisatrices
de Kohonen appliqu´
ees aux tableaux de dissimilarit´
es
Brieuc Conan-Guez, Fabrice Rossi, A¨
ıcha El Golli
LITA EA3097, Universit´
e Paul Verlaine -Metz, ˆ
Ile du Saulcy, 57045 METZ CEDEX 1
Projet AxIS, INRIA, Domaine de Voluceau, Rocquencourt, B.P. 105, 78153, Le Chesnay Cedex, France
{fabrice.rossi,aicha.elgolli}@inria.fr
R´
ESUM ´
E. Dans cet article, nous proposons une nouvelle impl´
ementation d’une adaptation des cartes auto-organisatrices de
Kohonen (SOM) aux tableaux de dissimilarit´
es : nous proposons tout d’abord une modification de l’algorithme afin d’obtenir
une r´
eduction importante de son coˆ
ut th´
eorique, puis nous introduisons certaines techniques d’impl´
ementation qui permettent
de r´
eduire de mani`
ere importante son temps de calcul effectif. Une propri´
et´
e importante de ces diverses modifications est que
les r´
esultats obtenus sont strictement identiques `
a ceux de l’algorithme initial.
MOTS-CL ´
ES : Tableau de dissimilarit´
es, Carte auto-organisatrice de Kohonen, Impl´
ementation efficace.
1. Introduction
Dans beaucoup d’applications r´
eelles, les individus ´
etudi´
es ne peuvent pas ˆ
etre d´
ecrits efficacement par des
vecteurs num´
eriques : on pense par exemple `
a des donn´
ees de tailles variables (s´
equences de prot´
eines), ou bien
`
a des donn´
ees (semi-)structur´
ees (graphes, arbres, documents XML). Une solution possible pour traiter de telles
donn´
ees est de s’appuyer sur une mesure de dissimilarit´
e permettant de comparer les individus deux `
a deux.
Une variante des cartes auto-organisatrices de Kohonen (SOM, [1]) adapt´
ee aux tableaux de dissimilarit´
es a
´
et´
e propos´
ee dans [2, 3] (voir section 2). Cet algorithme souffre malheureusement d’un temps de calcul beaucoup
plus ´
elev´
e que celui du SOM classique. Dans ce travail, nous proposons tout d’abord une modification de cet algo-
rithme afin d’obtenir une r´
eduction importante de son coˆ
ut th´
eorique (section 3), puis nous introduisons certaines
techniques d’impl´
ementation qui permettent de r´
eduire de mani`
ere importante son temps de calcul. Les r´
esultats
produits par ce nouvel algorithme sont strictement identiques `
a ceux de l’algorithme initial. Enfin, afin de quantifier
l’am´
elioration des temps de calcul, la section 4 est consacr´
ee `
a des exp´
eriences men´
ees sur des donn´
ees simul´
ees.
2. Cartes auto-organisatrices de Kohonen adapt´
ees aux tableaux de dissimilarit´
es
Nous rappelons dans cette section l’adaptation du SOM aux tableaux de dissimilarit´
es [2, 3, 4]. On consid`
ere
Nindividus D= (xi)1iNappartenant `
a un espace arbitraire X, muni d’une mesure de dissimilarit´
ed. On
consid`
ere un SOM `
aMmod`
eles (ou neurones), qui sont num´
erot´
es de 1`
aM. Le mod`
ele jest associ´
e`
a un
´
el´
ement de D, not´
emj(pour chaque mod`
ele j, il existe itel que mj=xi).mjest appel´
e le prototype du mod`
ele
j, et on note M= (m1,...,mM). On munit l’ensemble des mod`
eles d’une m´
etrique δqui correspond `
a la
structure a priori impos´
ee par le SOM. Le but du SOM est alors double : quantifier correctement l’ensemble Den
trouvant de bons prototypes, organiser ces prototypes dans Dafin qu’ils respectent la topologie induite par δsur les
mod`
eles. On note Kune fonction noyau d´
ecroissante (par exemple K(x) = exp(x2)), et h(j, k) = K(δ(j, k))
la fonction de voisinage.
Le SOM adapt´
e aux tableaux de dissimilarit´
es (DSOM) est un algorithme it´
eratif o`
u les prototypes et la fonc-
tion de voisinage ´
evoluent `
a chaque it´
eration l: on note donc ml
jet hl(., .)ces quantit´
es. La d´
ecroissance de
hl`
a chaque it´
eration assure la convergence de l’algorithme. L’algorithme du DSOM, qui est bas´
ee sur la ver-
sion non stochastique du SOM (version batch) commence par une phase d’initialisation : on choisit par exemple
M0= (m0
1,...,m0
M)de mani`
ere al´
eatoire. Puis l’algorithme alterne les phases d’affectation et les phases de
repr´
esentation jusqu’`
a la convergence. Pour l’it´
eration l, on a :
1. phase d’affectation : chaque individu xiest affect´
e`
a son mod`
ele gagnant cl(i)en appliquant la r`
egle d’affec-
tation usuelle cl(i) = arg minj∈{1,...,M}d(xi,ml1
j). L’inconv´
enient de ce type d’affectation est qu’il ne permet
pas de lever les ambiguit´
es relatives aux prototypes (cas relativement fr´
equent o`
u deux mod`
eles distincts sont as-
soci´
es au mˆ
eme prototype). Dans notre impl´
ementation, nous utilisons donc la modification propos´
ee dans [2].
Finalement, on note Cl
jla classe associ´
ee au mod`
ele j`
a l’it´
eration l. Les Cl
jforment une partition de D.
2. phase de rep´
esentation : l’algorithme calcule de nouvelles valeurs pour les prototypes (i.e. Ml). Chaque
prototype ml
jest solution du probl`
eme :
ml
j= arg min
m∈D
N
X
i=1
hl(cl(i), j)d(xi,m).[1]
3. Une impl´
ementation efficace du DSOM
Si l’on examine le coˆ
ut algorithmique du DSOM, on constate que pour une it´
eration de l’algorithme, le
coˆ
ut de la phase d’affectation est en O(NM2)(voir la r`
egle d’affectation modifi´
ee dans [2]) et que la phase
de repr´
esentation (voir ´
equation 1) est en O(N2M)1. Comme N > M dans tous les cas, la phase de repr´
esentation
domine nettement le calcul. Les modifications apport´
ees au DSOM dans cette section vont permettre dans un pre-
mier temps de r´
eduire la complexit´
e th´
eorique de la phase de repr´
esentation, puis, grˆ
ace `
a une impl´
ementation
efficace de l’algorithme, de r´
eduire son temps d’ex´
ecution.
3.1. Les sommes partielles
En analysant le probl`
eme de minimisation propos´
e dans l’´
equation 1, on constate que sa structure peut ˆ
etre
grandement simplifi´
ee. A l’it´
eration let pour chaque mod`
ele j, on cherche `
a trouver pour quel k,Sl(j, k)est
minimum, o`
uSl(j, k) = PN
i=1 hl(cl(i), j)d(xi,xk). Si l’on note Dl(u, k) = Pi∈Cl
ud(xi,xk), on peut exprimer
Sl(j, k)d’une mani`
ere plus simple :
Sl(j, k) =
M
X
u=1
hl(u, j)X
i∈Cl
u
d(xi,xk) =
M
X
u=1
hl(u, j)Dl(u, k).[2]
Il y a M N diff´
erentes valeurs Dl(u, k), qui peuvent ˆ
etre pr´
e-calcul´
ees une fois pour toute avant la phase de
repr´
esentation. Le coˆ
ut de cette phase de pr´
e-calcul est en O(N2). En effet, calculer la somme partielle Dl(u, k)
coˆ
ute O(|Cl
u|)(o`
u|Cl
u|est l’effectif de Cl
u). Puis calculer tous les Dl(u, k)pour un ufix´
e coˆ
ute O(N|Cl
u|). Comme
PM
u=1 |Cl
u|=N, le coˆ
ut total est en O(N2). Selon l’´
equation 2, le calcul de Sl(j, k)peut ˆ
etre effectu´
e en O(M)
op´
erations. Comme cela doit ˆ
etre fait pour tous les ket pour tous les j, le coˆ
ut est en O(NM2). On a donc un
coˆ
ut total pour la phase de repr´
esentation de O(N2+NM2),`
a comparer avec O(N2M)pour l’algorithme initial.
Comme on a N > M dans toutes les situations, cette approche r´
eduit le coˆ
ut du DSOM. De plus, les r´
esultats
obtenus sont strictement identiques `
a ceux de l’algorithme initial.
1.`
a comparer avec O(nN M )dans le cas du SOM batch classique sur des vecteurs de dimension n
3.2. L’arrˆ
et pr´
ematur´
e
Dans la section pr´
ec´
edente, les modifications apport´
ees `
a l’algorithme du DSOM ont permis de r´
eduire sa
complexit´
e algorithmique, dans les sections suivantes, nous allons montrer comment grˆ
ace `
a quelques techniques
d’impl´
ementation, il est possible d’acc´
el´
erer son temps d’ex´
ecution de mani`
ere importante.
Lors de la phase de repr´
esentation, `
a l’it´
eration let pour chaque mod`
ele j, on cherche `
a calculer le minimum des
Sl(j, k). Ce calcul est r´
ealis´
e informatiquement au sein d’une boucle en k, que nous appelerons la boucle externe.
Cette boucle externe effectue deux op´
erations `
a chacune de ses it´
erations : premi`
erement elle calcule grˆ
ace `
a une
seconde boucle (boucle interne) la valeur de Sl(j, k)pour un kdonn´
e (voir la somme en uapparaissant `
a la droite
de l’´
equation 2), puis elle compare le r´
esultat trouv´
e avec le meilleur r´
esultat calcul´
e lors des it´
erations pr´
ed´
edentes.
Afin d’am´
eliorer l’efficacit´
e de ce calcul, une id´
ee simple consiste `
a d´
eplacer cette ´
etape de comparaison dans
la boucle interne : le calcul de la boucle interne est arrˆ
et´
e pr´
ematur´
ement d`
es lors que la sous-somme Σk=
Pm
u=1 hl(u, j)Dl(u, k)calcul´
ee `
a l’it´
eration m(avec m< M ) est sup´
erieure au minimum.
Afin de favoriser la strat´
egie d’arrˆ
et pr´
ematur´
e, la boucle interne ainsi que la boucle externe doivent ˆ
etre or-
donn´
ees. Pour la boucle interne, l’ordre optimal serait d’accroˆ
ıtre Σkle plus rapidement possible en sommant
d’abord les grandes valeurs de hl(u, j)Dl(u, k). Pour la boucle externe, l’ordre optimal serait de commencer avec
les valeurs faibles de Sl(j, k)(i.e. avec un bon candidat pour le prototype du mod`
ele j) : une faible valeur de
Sl(j, k)arrˆ
etera la boucle interne plus tˆ
ot qu’une grande valeur. En pratique cependant, calculer ces ordres op-
timaux est extrˆ
emement coˆ
uteux. Nous utiliserons donc des ordres efficaces mais non optimaux qui sont induits
par la topologie du DSOM. La d´
efinition de hlimplique que hl(u, j)est petit quand δ(u, j)est grand. Il est donc
raisonnable d’ordonner la boucle interne en udans l’ordre d´
ecroissant des hl(u, j), i.e. dans l’ordre croissant des
δ(u, j). Pour la boucle externe, nous utilisons les propri´
et´
es d’organisation du DSOM : les individus sont affect´
es `
a
la classe du prototype le plus proche. Donc, la qualit´
ea priori d’un individu xkcomme prototype pour le mod`
ele j
est plus ou moins l’inverse de la distance δentre le mod`
ele jet le mod`
ele repr´
esentant la classe de xk. On ordonne
donc la boucle externe dans l’ordre croissant de δ. Ces divers optimisations ne modifie pas les r´
esultats produits.
3.3. La m´
emorisation
Une autre source d’optimisation vient du fait que les classes Cl
uproduites par le DSOM ont tendance `
a se
stabiliser lors des derni`
eres it´
erations de l’algorithme. Il n’est pas rare que d’une it´
eration `
a l’autre, le contenu
d’une (ou plusieurs) classe reste strictement identique. Dans de tels cas, les Nvaleurs Dl(u, k)correspondantes
restent inchang´
ees, et il est donc inutile de les recalculer. La mise en œuvre informatique de cette optimisation peut
facilement ˆ
etre r´
ealis´
ee en associant `
a chaque classe Cuune variable bool´
eenne. Lors de la phase d’affectation, cette
variable est positionn´
ee si on constate un changement de classe. Le Dl(u, k)correspondant sera alors recalcul´
e
lors de la phase de repr´
esentation.
Bien que cette strat´
egie de m´
emorisation se r´
ev`
ele ˆ
etre tr`
es efficace, son mode d’action est un peu grossier.
En effet, le calcul complet des Dl(u, k)pour deux valeurs de u(i.e., pour deux classes) peut ˆ
etre d´
eclench´
e par
le changement de classes d’un unique individu. Il semble donc int´
eressant de chercher une solution plus fine.
Consid´
erons en effet le cas o`
u la classe ne subit qu’une seule modification : l’individu xi. On a alors :
Dl(cl1(i), k) = Dl1(cl1(i), k)d(xi,xk)[3]
Dl(cl(i), k) = Dl1(cl(i), k) + d(xi,xk)[4]
Appliquer ces formules de mise-`
a-jour induit 2Nadditions et Naffectations. Si plusieurs individus se d´
eplacent
de leur ancienne classe `
a leur nouvelle classe, les op´
erations de mise-`
a-jour doivent ˆ
etre effectu´
ees pour chaque
d´
eplacement. Dans le cas extrˆ
eme o`
u tous les individus changent de classes, le nombre total d’additions serait de
2N2(et N2affectations). Ce coˆ
ut de remise-`
a-jour est donc sup´
erieur `
a un recalcul total (N2additions et N2
affectations). Ceci implique que pour un nombre de modifications de classes inf´
erieur `
a approximativement N
2,
l’approche par mise-`
a-jour est plus efficace que le recalcul total. Il est impotant de noter que dans le cas o`
u le
recalcul total est n´
ecessaire, la strat´
egie de m´
emorisation pr´
esent´
ee au paragraphe ci-dessus peut ˆ
etre utilis´
ee.
4. Exp´
eriences
Les diff´
erentes optimisations ont ´
et´
e´
evalu´
ees sur un jeu de donn´
ees simul´
ees. Il consiste en Npoints de R2
choisis al´
eatoirement et uniform´
ement dans le carr´
e unit´
e. R2est muni de la distance euclidienne. La topologie du
DSOM est une grille hexagonale munie de sa distance de graphe δ. On choisit L= 100 it´
erations et la fonction de
voisinage est gaussienne.
N(nb d’individus)
M(nb de mod`
eles) 500 1 000 1 500 2 000 3 000
49 = 7 ×711.4 / 0.8 53.5 / 2.3 135.4 / 4.8 261.6 / 8.5 865.3 / 22.5
100 = 10 ×10 24.7 / 2.4 115.0 / 5.6 283.4 / 9.8 557.0 / 15.3 1757.0 / 32.8
225 = 15 ×15 313.7 / 30.4 806.6 / 46.4 1594.8 / 63.3 4455.5 / 105.3
400 = 20 ×20 1336.9 / 136.1 2525.2 / 179.1 7151.8 / 264.6
TAB. 1. Temps d’ex´
ecution en secondes pour l’algorithme standard / pour l’algorithme avec sommes partielles
Le tableau 1 donne les performances2de l’algorithme standard et de l’algorithme bas´
e sur les sommes par-
tielles. Pour l’algorithme standard, le coˆ
ut est quadratique en Net relativement lin´
eaire en M. L’am´
elioration
apport´
ee par les sommes partielles est impressionante. Le rapport entre les deux algorithmes est approximative-
ment proportionnel `
aNM
N+M2, qui est le rapport th´
eorique (la phase d’affectation n’est pas prise en compte).
N(nb d’individus)
M(nb de mod`
eles) 500 1 000 1 500 2 000 3 000
49 = 7 ×71.14 / 1.6 1.05 / 1.92 1.00 / 2 0.97 / 2.02 0.98 / 2.39
100 = 10 ×10 1.41 / 1.85 1.33 / 1.81 1.23 / 1.66 1.15 / 1.65 1.08 / 1.83
225 = 15 ×15 2.27 / 2.87 2.13 / 2.67 2.00 / 2.57 1.78 / 2.43
400 = 20 ×20 2.74 / 3.04 2.75 / 3.2 2.48 / 2.89
TAB. 2. Taux d’acc´
el´
eration pour l’algorithme avec arrˆ
et pr´
ematur´
e et ordre sans / avec m´
emorisation (r´
ef´
erence :
algorithme avec sommes partielles)
Le tableau 2 donne les performances des algorithmes avec arrˆ
et pr´
ematur´
e et ordre avec ou sans m´
emorisation.
Ces exp´
eriences montrent clairement que chacune des optimisations propos´
ees apporte un gain important en terme
de temps d’ex´
ecution.
5. Conclusions
Nous avons propos´
e dans ce travail un nouvel algorithme pour le SOM appliqu´
e aux tableaux de dissimilarit´
es.
Cet algorithme permet une r´
eduction importante du coˆ
ut th´
eorique. De plus, certaines techniques d’impl´
ementation
ont permis d’acc´
el´
erer d’un facteur 3 le temps d’ex´
ecution sous des conditions favorables.
6. Bibliographie
T. Kohonen (1995,1997,2001), Self-Organizing Maps, Vol. 30 of Springer Series in Information Sciences, Springer.
T. Kohonen, P. J. Somervuo (1998), Self-Organizing Maps of symbol strings Neurocomputing vol. 21 p. 19-30
T. Kohonen, P. J. Somervuo (2002), How to make large Self-Organizing Maps for nonvectorial data Neural Networks vol. 15
(8) p. 945-952
A. El Golli, B. Conan-Guez, F. Rossi Self-Organizing Map and symbolic data Journal of Symbolic Data Analysis vol. 2(1)
2. L’algorithme a ´
et´
e impl´
ement´
e en Java (JRE 5.0 de Sun) sur un PC ´
equip´
e d’un processeur Pentium IV (3 GHz) sous le
syst`
eme d’exploitation Linux
1 / 4 100%