Partitionnement par recuit simulé∗ Eduardo Piza–Volio† Javier Trejos–Zelaya‡ Programa de Investigación en Modelos y Análisis de Datos (PIMAD) Escuela de Matemática Universidad de Costa Rica 2060 San José, Costa Rica Tel.: (506) 207 5574, Fax.: (506) 207 4024 Abstract On propose un nouvel algorithme de classification automatique du type partitionnement, qui utilise la technique du recuit simulé. Cette technique se caractérise par la recherche des optima globaux, à l’opposé des méthodes traditionnelles de classification qui recherchent de optima locaux. La méthode est basée sur l’algorithme de transferts de Régnier, quoique ce dernier est plutôt deterministe; par contre, notre algorithme est du type stochastique. Mots–clés: classification automatique, inertie intra–classes, programme de recuit, optimisation stochastique. 1 Introduction Dans une autre communication [11], nous examinons les raisons d’étudier les méthodes d’optimisation dites stochastiques pour résoudre le problème de la recherche d’une partition P = (C1 , C2 , . . . , Ck ) d’un ensemble Ω = {1, 2, . . . , n} en k classes. Il est facile de montrer [4] que la maximisation de l’inertie inter–classes B, qui est utilisée dans [11], est équivalente à la minimisation de l’inertie intra–classes: W (P ) = k X X pi d2 (xi , g` ) `=1 i∈C` P où g` = µ1` xi ∈C` pi xi est le centre de gravité de la classe C` , µ` le poids de la classe C` , xi les données observées pour l’individu i, pi est le poids de l’individu i et d est une distance euclidienne. Ce sera ce dernier critère que l’on utilisera ici. 2 La technique du recuit simulé Le recuit simulé a été formulé originalement par Kirkpatrick, Gelat & Vecchi [5] en 1983, et de façon indépendante par C̆erny en 1985. Le but de la méthode est de trouver les optima globaux des problèmes d’optimisation combinatoire. Cette méthode simule numériquement le processus physique appelé de recuit, qui décrit l’évolution d’un système physique d’un état désordonné vers un état ordonné: au début, on rechauffe le matériau pour le porter à l’état liquide; après, on le refroidit on diminuant lentement la température, jusqu’à obtenir un état solide très stable. La méthode du recuit simulé est basée sur un résultat de la mecanique statistique, qui établit que, pour une température T , l’équilibre thermique du système est atteint si la ∗ Recherche partiellement financée par l’Université du Costa Rica et le Conseil National pour les Recherches Scientifiques et Technologiques (CONICIT). † e-mail:[email protected] ‡ e-mail: [email protected] probabilité d’être dans un état avec une énergie de E, est proportionnelle à exp(−E/κB T ), où κB est la constante de Boltzmann. Pour simuler l’évolution du système physique, Metropolis et al. ont introduit le principe suivant, connu sous le nom de règle d’acceptation de Metropolis: “à partir d’une configuration du système, on fait une modification élémentaire de celui-ci. Alors, si l’énergie du système diminue, on accepte la modification; ou bien, si l’énergie augmente en ∆E, la modification peut être acceptée avec une probabilité exp(−∆E/T ), où T est la température du système en ce moment”. Dans un problème d’optimisation stochastique itérative, le recuit simulé utilise le principe précédent. On introduit un paramètre de contrôle c ∈ IR+ qui joue le rôle de la température du système physique. Ce paramètre permettra de conditionner le nombre des états qu’on peut accéder à partir de chaque état, de même que la probabilité d’accéder à chacun d’entre eux. L’état optimal sera alors atteint si la valeur de c est diminuée lentement et de façon bien contrôlée. On montre que le recuit simulé trouve, asymptotiquement, un optimum global de la fonction f à optimiser [1, 7]. Initialement, le paramètre c de contrôle a une grande valeur et on génère une suite d’états du problème: étant donné un état, on génère le suivant, qui peut être accepté suivant la règle d’aceptation de Metropolis. Le paramètre de contrôle est diminué par niveaux, générant ainsi une suite d’états qui permetront au système de s’approcher à l’équilibre de ce niveau. L’algorithme s’arrête pour une petite valeur de c telle que pratiquement aucune nouvelle génération n’est acceptée. On retient alors comme solution du problème traité, l’état qui optimise f parmi les états de la succession générée. 3 Description de l’algorithme proposé L’algorithme commence par le choix au hasard d’une partition P de Ω en k classes. A partir de cette partition, on commence à itérer pour les différentes valeurs du paramètre de contrôle c. Pour obtenir une nouvelle partition P 0 , on suit un schéma transferts aléatoires, par opposition à la méthode de transferts de Régnier [8], qui est complétement déterministe: 1. On choisit aléatoirement un individu x ∈ Ω. 2. On choisit aléatoirement un indice ` ∈ {1, . . . , k}. 3. On introduit x dans la classe C` . Remarque: Suivant cette procédure de génération de nouvelles partitions, une classe peut se vider. Dans ce cas, on conserve quand même l’indice de classe, car dans un pas postérieur la classe peut de nouveau avoir des éléments. De toutes façons, on sait [7] que la partition optimale doit avoir exactement k classes (la partition optimale en k classes possède une inertie W inférieure ou égale à la partition optimale en k − 1 classes). Ce mécanisme de génération possède les caractéristiques suivantes: • Il y a une réversibilité entre les partitions: en effet, si on passe de la partition P à la partition P̃ en un nombre fini de pas, il est alors possible de retourner sur la partition P en faisant les transferts inverses. • Il y a une connexité: en effet, étant donné deux partitions quelconques P et P 0 de Ω en k classes, on peut passer de P à P 0 dans un nombre fini de générations aléatoires d’individus et d’indices, par des simples transferts d’individus. • Le voisinage SP de la partition P est formé par toutes les partitions obtenues par une modification de P , définie par le transfert d’un seul objet x ∈ Ω. Vu que pour chaque x ∈ Ω il y a k − 1 transferts possibles, et qu’il y a n éléments dans Ω, alors le cardinal de SP est |SP | = n(k − 1). Par ce qui précède, il est évident que la probabilité de générer l’état i0 = P 0 à partir de l’état i = P 1 est Gii0 = n(k−1) , qui ne dépend pas de l’état spécifique du système à ce moment. Ces conditions sont importantes parce qu’elles sont suffisantes pour montrer que, théoriquement, le recuit simulé converge asymptotiquement vers un minimum global de la fonction objectif W (P ) [1]. 3.1 Programme de recuit utilisé Dans toute implémentation du recuit simulé, on doit définir avec toute précision quatre aspects, appelés le programme de recuit: (i) Valeur initiale du paramètre de contrôle c0 : nous utilisons l’approche traditionnelle de Kirkpatrick et al., qui consiste à estimer c0 à partir d’un certain nombre de tirages à blanc. Alors, c0 := + + ∆W / ln(χ−1 est la moyenne des changements dans W pour des partitions qui font 0 ), où ∆W augmenter l’inertie, et χ0 est un taux initial d’acceptation, donné par l’utilisateur, pour les partitions qui font augmenter W . Ce calcul se fait de façon adaptative. Ainsi, on garantit qu’au début de l’algorithme la règle de Metropolis acceptera en moyenne 100χ0 % des partitions qui font augmenter l’inertie [1]. Nous avons utilisé avec succès la valeur de χ0 = 0.8. (ii) Méthode de refroidissement: on calcule le paramètre de contrôle ct+1 d’un niveau à partir du précédent par: ct+1 := λ · ct , où λ ∈ [0.85, 0.97]. Dans nos exemples, la valeur λ = 0.9 a donné de bons résultats. (iii) Longueur des chaı̂nes d’itérations: Nous utilisons avec succès le valeur min{20000, 100n(k − 1)}. Cependant, les itérations s’arrêtent pour une chaı̂ne si on a accepté min{500, 10n(k − 1)} partitions qui font augmenter W . (iv) Critère d’arrêt: Nous utilisons un nombre maximal de 150 itérations de la valeur du paramètre de contrôle ct , mais l’algorithme s’interrompt si dans les m dernières chaı̂nes, on n’a pas accepté aucune nouvelle partition suivant la règle de Metropolis. Dans nos implémentations, nous utilisons m = 4. 3.2 Quelques propriétés simplificatrices Pour l’implémentation, il est important de simplifier le calcul de la variation∆W de W lors du transfert d’un individu xi de la classe Cj vers la classe C` . Cette variation est [7]: ∆W = µ` · pi 2 µj · pi 2 d (g` , xi ) − d (gj , xi ). µ` + pi µj − pi De même, nous avons des expressions qui simplifient le calcul de l’inertie de la classe Cj et de la classe C` si le transfert est accepté, ainsi que le calcul des centres de gravité de ces classes modifiées. 4 Résultats numériques Nous avons appliqué l’algorithme de partitionnement proposé sur divers tableaux de données. On montre ici les résultats sur le tableau de notes scolaires [9], qui contient les notes de 9 élèves en cinq matières. Le tableau de données est montré dans le tableau 1. Jean Alain Anne Monique Didier André Pierre Brigitte Evelyne Maths 6 8 6 14.5 14 11 5.5 13 9 Sciences 6 8 7 14.5 14 10 7 12.5 9.5 Français 5 8 11 15.5 12 5.5 14 8.5 12.5 Latin 5.5 8 9.5 15 12.5 7 11.5 9.5 12 Gym 8 9 11 8 10 13 10 12 18 Tableau 1: Tableau des notes scolaires L’algorithme a été appliqué afin d’obtenir 2, 3 et 4 classes. En moins de 10 secondes on a obtenu les résultats montrés dans la tableau 2, qui coincident avec les resultats optimaux globaux, bien connus pour ce tableau de données. Ces résultats sont les mêmes que ceux obtenus pour l’algorithme génétique [11] et la recherche tabou[6], et ils sont supérieurs à ceux obtenus par la méthode de nuées dynamiques (recherche d’une partition en 2, 3 et 4 classes, selon le cas, qui sont représentées par leur centre de gravité, on faisant une initialisation aléatoire des noyaux) et la classification hiérarchique suivant le critère de Ward (coupure # classes 2 classes W = 28.19 3 classes W = 16.81 4 classes W = 10.47 classes {Jean, Alain, André, Anne, Pierre} {Evelyne, Brigitte, Didier, Monique} {Jean, Alain, André} {Anne, Pierre, Evelyne} {Brigitte, Didier, Monique} {Jean, Alain} {Anne, Pierre, Evelyne} {André, Brigitte} {Didier, Monique} Math 7.30 12.63 8.33 6.83 13.83 7.00 6.83 12.00 14.25 Centres de gravité Sci Fra Lat 7.60 8.70 8.30 12.63 12.13 12.25 8.00 6.17 6.83 7.83 12.50 11.00 13.67 12.00 12.33 7.00 6.50 6.75 7.83 12.50 11.00 11.25 7.00 8.25 14.25 13.75 13.75 Gym 10.20 12.00 10.00 13.00 10.00 8.50 13.00 12.50 9.00 Tableau 2: Partitions en 2, 3 et 4 classes – Tableau des notes scolaires de l’arbre hiérarchique au niveau où on trouve 2, 3 ou 4 classes, selon le cas). On peut voir ces résultats comparatifs dans [11]. Les résultats de l’algorithme sur deux autres exemples, les poissons d’Amiard et la sociomatrice de Thomas (voir [2]), sont montrés dans le tableau 3. # classes 3 classes 4 classes 5 classes RS 32213 18281 14497 Poissons d’Amiard RT AG MND 32213 32213 32213 18281 22456 28058 14497 20474 14497 CAH 33149 19589 14497 RS 271.83 235.03 202.58 Sociomatrice de Thomas RT AG MND 271.83 272.98 271.83 235.03 250.76 241.00 202.35 223.78 202.23 CAH 279.33 239.37 204.67 Tableau 3: Résultats de W pour le recuit simulé (RS), la recherche tabou (RT), l’algorithme génétique (AG), la méthode des nuées dynamiques (MND) et la classification hiérarchique selon Ward (CAH) On peut voir que les résultats sont les mêmes pour le recuit simulé et pour la recherche tabou, et que ceux–ci sont supérieurs à ceux de l’algorithme génétique. Cependant, sur le tableau des Iris de Fisher, on obtient des résultats supérieures pour le recuit simulé par rapport à la recherche tabou. 5 Conclusions Nous avons développé un algorithme de classification automatique par partitions, en utilisant la technique du recuit simulé. On a obtenu de très bons résultats sur plusieurs tableaux de données; ces résultats sont comparables ou supérieurs en temps et en qualité avec ceux obtenus par les méthodes classiques. Notre algorithme cherche des partitions sous–optimales très proches de la partition optimale globale, dans un temps et un espace de taille polynomiale. Jusqu’à présent, nous n’avons pas trouvé un ensemble de données tel que les méthodes traditionnelles trouvent de meilleurs résultats que notre algorithme. D’autre part, les résultats obtenus avec le recuit simulé sont meilleurs ou égaux à ceux obtenus avec un algorithme génétique [11] ou la recherche tabou [6]. Références [1] Aarts, E.; Korst, J. (1990) Simulated Annealing and Boltzmann Machines. John Wiley & Sons, Chichester. [2] Cailliez, F.; Pagès, J.P. (1976) Introduction à l’Analyse des Données. SMASH, Paris. [3] Celeux, G.; Govaert, G. (1991) “A classification EM algorithm for clustering and two stochastic versions”, Rapport de Recherche No. 1364, INRIA-Rocquencourt, Le Chesnay. [4] Diday, E.; Lemaire, J.; Pouget, J.; Testu, F. (1982) Eléments d’Analyse de Données. Dunod, Paris. [5] Kirkpatrick, S.; Gelatt, D.; Vecchi, M.P. (1983) “Optimization by simulated annealing”, Science 220, 671-680. [6] Murillo, A.; Trejos, J. (1996) “Classification tabou basée en transferts”, communication proposée aux IV Journées de la Société Francophone de Classification, Vannes. [7] Piza, E.; Trejos, J.; Murillo, A. (1994–1996) Clasificación Automática: Particiones Utilizando Algoritmos Genéticos y de Sobrecalentamiento Simulado. Informes de Investigación PI-114-94-228, Universidad de Costa Rica, San Pedro. [8] Régnier, S. (1965) “Sur quelques aspects mathématiques des problèmes de la classification automatique”, I.C.C. Bull., Vol. 4, pp. 175–191. [9] Schektman, Y. (1988) Analyse et Traitement Informatique de Données. Cours de D.E.A., Université Paul Sabatier. [10] Siarry, P.; Dreyfus, G. (1988) La Méthode du Recuit Simulé. IDSET, Paris. [11] Trejos, J. (1996) “Un algorithme génétique de partitionnement”, communication proposée aux IV Journées de la Société Francophone de Classification, Vannes.