RAPPORT DE STAGE. Approcher la frontière d'une sous-partie de l'espace ainsi que la distance à cette frontière. Sujet : Master II : SIAD



Documents pareils
Remboursement d un emprunt par annuités constantes

Editions ENI. Project Collection Référence Bureautique. Extrait

Les jeunes économistes

Contrats prévoyance des TNS : Clarifier les règles pour sécuriser les prestations

Mesure avec une règle

EH SmartView. Identifiez vos risques et vos opportunités. Pilotez votre assurance-crédit. Services en ligne Euler Hermes

Dirigeant de SAS : Laisser le choix du statut social

Pourquoi LICIEL? Avec LICIEL passez à la vitesse supérieure EPROUVE TECHNICITE CONNECTE STABILITE SUIVIE COMMUNAUTE

Fiche n 7 : Vérification du débit et de la vitesse par la méthode de traçage

Plan. Gestion des stocks. Les opérations de gestions des stocks. Les opérations de gestions des stocks

Système solaire combiné Estimation des besoins énergétiques

En vue de l'obtention du. Présentée et soutenue par Meva DODO Le 06 novembre 2008

STATISTIQUE AVEC EXCEL

Interface OneNote 2013

Q x2 = 1 2. est dans l ensemble plus grand des rationnels Q. Continuons ainsi, l équation x 2 = 1 2

MÉTHODES DE SONDAGES UTILISÉES DANS LES PROGRAMMES D ÉVALUATIONS DES ÉLÈVES

DES EFFETS PERVERS DU MORCELLEMENT DES STOCKS

Montage émetteur commun

BTS GPN 2EME ANNEE-MATHEMATIQUES-MATHS FINANCIERES MATHEMATIQUES FINANCIERES

GENESIS - Generalized System for Imputation Simulations (Système généralisé pour simuler l imputation)

Terminal numérique TM 13 raccordé aux installations Integral 33

Integral T 3 Compact. raccordé aux installations Integral 5. Notice d utilisation

Assurance maladie et aléa de moralité ex-ante : L incidence de l hétérogénéité de la perte sanitaire

I. Présentation générale des méthodes d estimation des projets de type «unité industrielle»

COMPARAISON DE MÉTHODES POUR LA CORRECTION

Des solutions globales fi ables et innovantes.

Parlons. retraite. au service du «bien vieillir» L Assurance retraite. en chiffres* retraités payés pour un montant de 4,2 milliards d euros

hal , version 1-14 Aug 2009

Grandeur physique, chiffres significatifs

Contact SCD Nancy 1 : theses.sciences@scd.uhp-nancy.fr

LE RÉGIME DE RETRAITE DU PERSONNEL CANADIEN DE LA CANADA-VIE (le «régime») INFORMATION IMPORTANTE CONCERNANT LE RECOURS COLLECTIF

TD 1. Statistiques à une variable.

INTERNET. Initiation à

Chapitre 3 : Incertitudes CHAPITRE 3 INCERTITUDES. Lignes directrices 2006 du GIEC pour les inventaires nationaux de gaz à effet de serre 3.

Les prix quotidiens de clôture des échanges de quotas EUA et de crédits CER sont fournis par ICE Futures Europe

1 Introduction. 2 Définitions des sources de tension et de courant : Cours. Date : A2 Analyser le système Conversion statique de l énergie. 2 h.

VIELLE Marc. CEA-IDEI Janvier La nomenclature retenue 3. 2 Vue d ensemble du modèle 4

ÉLÉMENTS DE THÉORIE DE L INFORMATION POUR LES COMMUNICATIONS.

UNIVERSITÉ DU QUÉBEC À MONTRÉAL L ASSURANCE AUTOMOBILE AU QUÉBEC : UNE PRIME SELON LE COÛT SOCIAL MARGINAL MÉMOIRE PRÉSENTÉ COMME EXIGENCE PARTIELLE

IDEI Report # 18. Transport. December Elasticités de la demande de transport ferroviaire: définitions et mesures

Réseau RRFR pour la surveillance dynamique : application en e-maintenance.

L enseignement virtuel dans une économie émergente : perception des étudiants et perspectives d avenir

Pour plus d'informations, veuillez nous contacter au ou à

P R I S E E N M A I N R A P I D E O L I V E 4 H D

Prise en compte des politiques de transport dans le choix des fournisseurs

Paquets. Paquets nationaux 1. Paquets internationaux 11

Mots-clés : Système multicapteurs, Réseau local, Réseaux de neurones, Supervision, Domotique. xigences système d'une nouvelle

Professionnel de santé équipé de Médiclick!

CREATION DE VALEUR EN ASSURANCE NON VIE : COMMENT FRANCHIR UNE NOUVELLE ETAPE?

ErP : éco-conception et étiquetage énergétique. Les solutions Vaillant. Pour dépasser la performance. La satisfaction de faire le bon choix.

Exercices d Électrocinétique

Stéganographie Adaptative par Oracle (ASO)

Impôt sur la fortune et investissement dans les PME Professeur Didier MAILLARD

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE. MEMOIRE Présentée à

1.0 Probabilité vs statistique Expérience aléatoire et espace échantillonnal Événement...2

Corrections adiabatiques et nonadiabatiques dans les systèmes diatomiques par calculs ab-initio

Chapitre IV : Inductance propre, inductance mutuelle. Energie électromagnétique

Faire des régimes TNS les laboratoires de la protection sociale de demain appelle des évolutions à deux niveaux :

En vue de l'obtention du. Présentée et soutenue par Elayeb Bilel Le 26 juin 2009

Le Prêt Efficience Fioul

Analyse des Performances et Modélisation d un Serveur Web

Pro2030 GUIDE D UTILISATION. Français

Calculer le coût amorti d une obligation sur chaque exercice et présenter les écritures dans les comptes individuels de la société Plumeria.

Économétrie. Annexes : exercices et corrigés. 5 e édition. William Greene New York University

Avez-vous vous aperçu cette drôle de trogne? Entre nature et histoire autour de Mondoubleau

LA SURVIE DES ENTREPRISES DÉPEND-ELLE DU TERRITOIRE D'IMPLANTATION?

GEA I Mathématiques nancières Poly. de révision. Lionel Darondeau

Surveillance temps-réel des systèmes Homme-Machine. Application à l assistance à la conduite automobile

Prêt de groupe et sanction sociale Group lending and social fine

Be inspired. Numéro Vert. Via Caracciolo Milano tel fax

LICENCE DE SCIENCES PHYSIQUES UV 3LSPH50. Année MODÉLISATION. Recherche des paramètres d'une représentation analytique J.P.

La Quantification du Risque Opérationnel des Institutions Bancaires

THESE. Khalid LEKOUCH

GUIDE D ÉLABORATION D UN PLAN D INTERVENTION POUR LE RENOUVELLEMENT DES CONDUITES D EAU POTABLE, D ÉGOUTS ET DES CHAUSSÉES

- Acquisition de signaux en sismologie large bande. - Acquisition de signaux lents, magnétisme, MT.

Calcul de tableaux d amortissement

TABLE DES MATIERES CONTROLE D INTEGRITE AU SEIN DE LA RECHERCHE LOCALE DE LA POLICE LOCALE DE BRUXELLES-CAPITALE/IXELLES (DEUXIEME DISTRICT) 1

Qualité de service 7. Ordonnanceurs de paquets. Contexte. Intégration de services. Plan. Multiplexage. FIFO/DropTail. Priorités

Généralités sur les fonctions 1ES

Les déterminants de la détention et de l usage de la carte de débit : une analyse empirique sur données individuelles françaises

CHAPITRE 14 : RAISONNEMENT DES SYSTÈMES DE COMMANDE

Les déterminants de la détention et de l usage de la carte de débit : une analyse empirique sur données individuelles françaises

TRAVAUX PRATIQUES SPECTRO- COLORIMETRIE

Créer ou reprendre une entreprise, Guide de la création et de la reprise d entreprise 1er semestre 2009

Performances de la classification par les Séparateurs à Vaste Marge (SVM): application au diagnostic vibratoire automatisé

BUREAU D'APPLICATION DES METHODES STATISTIQUES ET INFORMATIQUES

1. Les enjeux de la prévision du risque de défaut de paiement

MODÈLE D ISING À UNE ET DEUX DIMENSIONS.

Driss HARRIZI. MOTS CLES : contrôle de gestion - système d'éducation et de formation système d information - établissement public.

Evaluation de performances d'ethernet commuté pour des applications temps réel

Projet de fin d études

master Objectif Université d Auvergne - Université Blaise Pascal Rentrée 2014 AUVERGNE

Et pour vos clients, bénéficiez de services

santé Les arrêts de travail des séniors en emploi

GATE Groupe d Analyse et de Théorie Économique DOCUMENTS DE TRAVAIL - WORKING PAPERS W.P Préférences temporelles et recherche d emploi

CHAPITRE DEUX : FORMALISME GEOMETRIQUE

LeanConcept. La solution déploiement du Lean Manufacturing. Stockage Logistique Ergonomie Environnement Aménagement Services

Précision de rigueur

La théorie classique de l information. 1 ère partie : le point de vue de Kolmogorov.

Transcription:

UFR SCIENCES ET TECHNOLOGIES DEPARTEMENT DE MATHEMATIQUES ET INFORMATIQUE 63 177 AUBIERE CEDEX Année 2008-2009 Master II : SIAD RAPPORT DE STAGE Sujet : Approcher la frontère d'une sous-parte de l'espace ans que la dstance à cette frontère Présenté par : We WEI Responsable de stage : Gullaume DEFFUANT Tuteur de stage : Raoul MEDINA Jury de stage : Lhouar NOURINE Leu de stage : Cemagref (LISC) Avrl 2009 Septembre 2009 6 mos Soutenu le 7 Septembre 2009

Remercements Durant ces cnq mos de stage, j'a bénéfcé de soutent moral et technque de pluseurs personnes ce qu a rendu mon séjour très agréable. Je tens tout d'abord à remercer Monseur Gullaume DEFFUANT, responsable de stage, de m'avor gudé et soutenu tout au long de celu-c. Il s est montré dès le premer jour accuellant, chaleureux et dsponble. J'a beaucoup apprécé ses qualtés humanes tout à fat hors du commun, en outre, des ngrédents nécessares au bon déroulement du stage. Un grand merc à Benoît GANDAR, pour les explcatons théorques qu'l m'a fournes, l'ade et les consels concernant les mssons évoquées dans ce rapport, qu'l m'a apportés lors des dfférents suvs. Je remerce également Monseur Raoul MEDINA, tuteur de stage, pour ses consels préceux m'ont perms de surmonter mes dffcultés et de progresser dans mes études. Je remerce auss Monseur Lhouar NOURINE, jury de stage, pour l'ntérêt qu'l porte à ce stage. Je n'ouble pas auss de remerce Maxme LENORMAND, pour m'avor adé dans la correcton du rapport. En derner, je tens à remercer tous les membres du LISC, pour la bonne humeur, qu a fat que ces cnq mos ont été s agréables à vvre : Clarsse, Sylve, Therry, Clare, Thomas, Ncolas, Nabl, Jean Dens, Sôna et Florana. 1

Tables des fgures Fgure 1 : Le Cemagref en régon....................................... 10 Fgure 2 : L'hyperplan optmal avec la marge maxmale...................... 15 Fgure 3 : L'ensemble de contrante et le noyau de vablté.................... 19 Fgure 4 : Un exemple de bulle.......................................... 20 Fgure 5 : Reconstrure la foncton à partr de ponts postfs ou négatfs.......... 20 Fgure 6 : Structure des ponts.......................................... 21 Fgure 7 : Chosr les ponts de base....................................... 25 Fgure 8 : Résultat du couleur de lgne et la couleur erreur...................... 27 Fgure 9 : Graphque en dmensons 3...................................... 28 Fgure 10 : Table des résultats........................................... 28 Fgure 11 : Le temps de calcul en foncton des ponts de base................. 29 Fgure 12 : Fenêtre prncpale de KAVIAR.................................. 30 Fgure 13 : L'erreur des bulles........................................... 32 Fgure 14 : Dstrbuton de l'erreur de sgne................................. 34 Fgure 15 : Un ensemble de ponts postfs et négatfs......................... 35 Fgure 16 : L'erreur des postons de pont base.............................. 35 Fgure 17 : Résultats de la nouvelle méthode................................ 37 Fgure 18 : Les résultats après modfcaton de l'algorthme.................... 37 Fgure 19 : Exemple de foncton à obtenr (a) et son approxmaton (b)........... 38 Fgure 20 : Nuages de ponts, le temps de calcul en foncton de ponts de base...... 41 Fgure 21 : Cartographe de lgne des couleurs.............................. 41 2

Résumé Les "Support Vector Machnes" (SVMs) sont des outls d'apprentssage statstque qu ont connu un développement consdérable au cours de la dernère décenne et qu sont utlsés dans dfférentes applcatons du LISC. Cependant, lorsque l'on cherche à approxmer précsément la frontère d'une zone de l'espace, les SVMs ne fournssent pas des résultats globaux corrects tout le temps. Nous avons alors beson de trouver une méthode dfférente des SVMs pour assurer de bons résultats. Nous supposons que notre espace d'étude se compose de ponts dsposant d'un label sot postf, sot négatf. Le but de ce stage est de construre, à partr de ponts postfs et négatfs dsposés près de la frontère des zones de changement de label, une foncton qu à tout pont de l'espace assoce la dstance de celu-c à la frontère ans que son label. Ce problème est dffcle car la vértable frontère est nconnue : l s'agt ben d'un problème d'apprentssage. Nous avons alors développé un algorthme sur la base des réseaux des neurones. Il se résout faclement en théore, mas en pratque le nombre de ponts nécessare est mportant et n'est pas compatble avec les outls nformatques actuels, notamment quand la dmenson du problème augmente. Nous proposons des méthodes pour chosr correctement les paramètres de cet algorthme. Mots-clés: SVM, apprentssage, frontère, base, reconstrure, dstance. Abstract Support vector machnes (SVMs) are tools of Machne Learnng whch have grown consderably over the last decade and are used n varous applcatons of LISC. However, when we attempt to approxmate precsely the border of a zone of space, they are not able to provde correct results all the tme. We need to fnd a method dfferent from SVMs for nsurng good results. We suppose that our space study s composed by ponts wth a label ether postve or negatve. The target of ths feld wor s to construct, from these ponts postve and negatve arranged near the border zones of label, a functon that at all the pont of space assorted the dstance of ths pont to the border and ts label. Ths problem s dffcult because the border s unnown: t s about a problem of learnng. We developped an algorthm based on the neural networs. It s easly solved n theory, but n practce the number of ponts necessary s mportant and doesn't compatble wth the tools computer exst, especally when the dmenson of the problem ncreases. We propose methods to choose the correct parameters of ths algorthm. Key word: SVM, Machne Learnng, border, bass, rebuld, dstance. 3

Table des matères Remercement 1 Table des fgures... 2 Résumé/Abstract... 3 Table des matères... 4 Introducton... 6 I. Connassance établssement... 8 1.1 Le Cemagref... 8 1.1.1 Les départements scentfques... 8 1.1.2 Les untés de recherche... 9 1.1.3 Le Cemagref en régon... 10 1.2 Le LISC... 10 II. Les outls utlsés 12 2.1 Algorthme apprentssage.........12 2.2 Support Vector Machne... 13 2.2.1 Résumé ntutf... 13 2.2.2 Prncpe général... 14 2.2.3 Dscrmnaton lnéare et hyperplan séparateur... 14 2.2.4 Marge maxmale... 14 2.2.5 Chox de la foncton noyau... 15 2.3 Sclab... 16 2.4 Java... 17 2.4.1 Java langage... 17 2.4.2 JAMA 18 III. La problématque... 19 3.1 Le noyau de vablté... 19 3.2 Reconstructon de la foncton... 20 3.2.1 La structure des données... 21 3.2.2 Constructon des fonctons de base... 22 3.2.3 Chox des ponts de base... 23 IV. Développement... 26 4.1 Premère verson (en Sclab)... 26 4.1.1 Programmaton... 26 4.1.2 Observaton... 27 4

4.2 Deuxème verson (en Java)... 29 4.2.1 Pourquo Java... 29 4.2.2 Programmaton... 31 4.2.3 Développement d'algorthme... 31 4.2.4 Observaton... 36 Concluson... 40 Blan... 40 Perspectves... 40 Bblographque... 43 Annexes... 45 1. Interface du Sclab... 46 2. Foncton prncpale de Sclab... 47 3. Classe Ponts de KAVIAR... 49 4. Ressource d'arth... 51 5. Cartographe... 53 5

Introducton L'essor de l'nformatque a toujours apporté aux scentfques des outls et des méthodes amélorant leurs recherches. La banalsaton des statons de traval et l'évoluton perpétuelle de leurs capactés sont à l'orgne de méthodes très coûteuses en calcul mas donnant des résultats remarquables. Cependant, malgré ces avancées, les méthodes numérques permettant de calculer des poltques d'actons vables ou réslentes de systèmes dynamques se heurtent toujours à "la malédcton de la dmensonnalté": elles requèrent des ressources en mémore et en temps de calcul qu augmentent exponentellement avec la dmensonnalté du problème, et qu sont souvent hors de portée. Par conséquence, ces méthodes ne sont applcables qu'à des systèmes dynamques de dmenson fable (Inféreur à 3). Pour ader le calcul de poltques d'acton sur des écosystèmes ou des systèmes socaux qu sont généralement des systèmes de dmenson supéreure, l est donc ndspensable d'amélorer les performances de ces méthodes. Le LISC, Laboratore d'ingénere pour les Systèmes Complexes dans lequel j'a réalsé mon stage, est une unté de recherche appartenant au Cemagref, nsttut publc de recherche pour l'ngénere de l'agrculture et de l'envronnement. Il développe le logcel KAVIAR qu permet d'approcher des noyaux de vablté de systèmes et de calculer des poltques d'acton permettant au système de rester dans son ensemble de contrantes (vor [6]). Il utlse pour cela l'algorthme de classfcaton des SVMs (Séparateurs à Vastes Marges). L'algorthme des SVMs, permet de défnr des surfaces complexes dans des espaces de dmensons mportantes, avec des représentatons très concses. Cependant celu-c peut ntrodure des erreurs lon des zones proches de la frontère de classfcaton. On peut constater l'apparton de "bulles",.e. de frontères non contrantes par un vecteur support. Le logcel KAVIAR, basé sur cet algorthme, délvre alors des résultats érodés, ce que peut avor des conséquences néfastes sur les calculs de poltques d'actons. Pour résoudre ce problème, nous nous nsprons des travaux de WALDER & al [1]. Ils ont proposé un algorthme qu se base sur la reconstructon d'une surface à partr d'un ensemble de ponts. Dfférentes méthodes ont été proposées, nous avons chosssons la méthode suvant : ensemble de Splnes avec des largeurs de bandes dfférentes. Mon sujet de stage consste donc à développer cet algorthme d'apprentssage, en m'appuyant des travaux de thèse de Benoît GANDAR. L'objectf du stage est de régler les paramètres de l'algorthme (chox des Splnes,.e. ponts de bases, et largeurs de bandes assocées) pour ntégrer nos résultats dans KAVIAR afn d'évter les erreurs des SVMs. Pour tester et vsualser les résultats, j'a commencé par utlser le logcel SCILAB, pus, ensute, en foncton des résultats trouvés, j'a développé une applcaton Java. 6

Plan du stage Dans la premère parte du stage, j'a étudé les documents relatfs au problème et mplémenté la premère verson de l'algorthme en langage Sclab pour tester. Nous avons obtenu des résultats ntéressants. Mas à cause d'nconvénents propre au logcel Sclab, je ne pouvas pas lancer le programme avec beaucoup de ponts, car la mémore du logcel état trop pette et le temps de calcul trop mportant. Nous avons donc transms les codes en Java et utlsé les structures du logcel Kavar qu est développé par LISC. Avec l'ade de Java, nous avons pett à pett améloré notre algorthme, notamment le chox de ses paramètres. 7

Chaptre 1 Connassance établssement 1.1. Le Cemagref Le Cemagref ou l'nsttut de recherche fnalsée de référence pour la geston durable des eaux et des terrtores (et orgnellement Centre natonal du machnsme agrcole, du géne rural, des eaux et des forêts) est un organsme de recherche fnalsée sur la geston des eaux et des terrtores. Il a le statut d'établssement publc à caractère scentfque et technologque. Ses recherches sont orentées vers la producton de connassances nouvelles et d nnovatons technques utlsées par les gestonnares, les décdeurs et les entreprses pour répondre à des questons concrètes de socété dans les domanes de la geston des ressources, de l aménagement et de l utlsaton de l espace. Ses thèmes de recherche sont centrés sur les ressources en eau de surface, les systèmes écologques aquatques et terrestres, les espaces à domnante rurale, les technologes pour l eau, les agro-systèmes et la sûreté des alments. Ses recherches contrbuent au développement durable des terrtores. Elles adent à protéger et gérer les hydro systèmes et les mleux terrestres, à dynamser les actvtés qu les valorsent et à prévenr les rsques qu leur sont assocés. Ses objets d'études sont donc le plus souvent des systèmes complexes, en relaton avec des questons de socété et sa démarche est presque toujours nterdscplnare. 1.1.1 Les départements scentfques Les orentatons scentfques du Cemagref sont au cœur des enjeux du développement durable. Les recherches sont organsées en 27 thèmes de recherche regroupés en 9 thématques : La geston de l eau et des servces publcs assocés. Les rsques lés à l eau. Les technologes et procédés de l eau et des déchets. La qualté des systèmes écologques aquatques. Les systèmes écologques terrestres. L agrculture multfonctonnelle et les nouvelles ruraltés. Les technologes pour des systèmes agrcoles durables. Les technologes et procédés physques pour la sûreté des alments. Les méthodes pour la recherche sur les systèmes envronnementaux. 8

1.1.2 Les untés Le Cemagref compte actuellement 21 untés de recherche propres, 6 untés mxtes de recherche (UMR) et une équpe de recherche technologque (ERT).Chaque unté de recherche est placée sous la responsablté fonctonnelle de l un des chefs de département ou de la drecton scentfque (pour les deux untés de recherche méthodologques), et sous la responsablté hérarchque du drecteur régonal du leu d mplantaton. Les untés sont des leux de geston des compétences et des pôles relatonnels locaux. Chacune des UR est consttuée d équpes ben dentfées, chaque équpe assurant la mse en œuvre totale ou partelle d un thème de recherche. Untés de recherche propres Ouvrages hydraulques et hydrologe OHAX - Ax en Provence Hydrosystèmes et boprocédés HBAN - Antony Hydrologe hydraulque HHLY - Lyon Éroson torrentelle, nege et avalanches ETGR - Grenoble Hydrobologe HYAX - Ax en Provence Écosystèmes estuarens et possons mgrateurs amphhalns EPBX - Bordeaux Réseaux, épuraton et qualté des eaux REBX - Bordeaux Bologe des écosystèmes aquatques BELY - Lyon Qualté des eaux et préventon des pollutons QELY - Lyon Geston envronnementale et tratement bologque des déchets GERE - Rennes Écosystèmes médterranéens et rsques EMAX - Ax en Provence Améntés et dynamques des espaces ruraux ADBX - Bordeaux Développement des terrtores montagnards DTGR - Grenoble Écosystèmes montagnards EMGR - Grenoble Écosystèmes foresters EFNO - Nogent Agrculture et espace nsulare AEMA - Martnque Géne des procédés frgorfques GPAN - Antony Technologes pour la sécurté et les performances des agroéqupements TSAN - Antony Technologes et systèmes d nformaton pour les agrosystèmes TSCF Ferrand Technologes des équpements agroalmentares TERE - Rennes Ingénere pour les systèmes complexes LISC - Clermont-Ferrand Unté mxte de recherche - Clermont- Geston des servces publcs GSP Strasbourg (Groupement de Lyon) Geston de l'eau, acteurs, usages G-EAU Montpeller Mutatons des actvtés, des espaces et des formes d organsaton dans les terrtores ruraux - Clermont-Ferrand Géne ndustrel almentare GENIAL - Antony Informaton et technologe pour les agro-procédés ITAP - Montpeller Terrtores, envronnement, télédétecton et nformaton spatale TETIS - Montpeller Equpe de recherche technologque Restauraton de la contnuté écologque des cours d'eau à possons mgrateurs ERT Toulouse 9

1.1.3 Le Cemagref en régon Tous les untés de recherche se présentés c-dessus sont répartr sur 9 mplantatons régonales comme le graphe dessous (Fgure 1). Le Cemagref en régon Martnque Bretagne, Pays de Lore Rennes Aqutane, Potou-Charentes, Md-Pyrénées Bordeaux Ile-de-France, Haute et Basse-Normande, Pcarde, Champagne-Ardenne, Lorrane, Nord-Pas-de-Calas Antony Centre, Bourgogne Nogent-sur- Vernsson Rhône-Alpes, Franche-Comté, Alsace Lyon Grenoble Auvergne, Lmousn Clermont-Ferrand Languedoc-Roussllon Montpeller Provence-Alpes- Côte d Azur, Corse Ax-en-Provence Journées des nouveaux recrutés 30 & 31 ma 2007 Fgure 1 - Le Cemagref en régon 1.2. Le LISC Le LISC (Laboratore d'ingénere pour les Systèmes Complexes) partcpe à des projets multdscplnares, souvent européens, dans lesquels collaborent nformatcens, mathématcens et spécalstes des écosystèmes ou des scences socales. Elle est membre de la Fédératon de Recherches CNRS TIMS, Technologes de l'informaton, de la Moblté et de la Sûreté. Pour comprendre l'évoluton des forêts, le comportement de populatons d'anmaux dans leur mleu, et même les évolutons socales dans les zones rurales, les chercheurs font appel à des modèles nformatques de plus en plus détallés. Ils sont ans amenés à créer un modèle de chacun des ndvdus d'une populaton végétale, anmale ou humane, ntégré dans un programme nformatque qu smule les nteractons de chaque ndvdu avec ses pares ou son mleu. Les smulatons révèlent des effets collectfs nattendus, sont la théore mathématque est parfos très dffcle à établr. Ce passage de l'ndvduel au collectf, qu est 10

au cœur des théores récentes de la complexté, de manfeste dans la plupart des dynamques envronnementales ou socales. Les membres du LISC étudent ces comportements globaux, ssus d'nteractons ndvduelles et ls les modélsent. Ils développent un outl logcel pour meux condure des expérmentatons numérques afn d'observer les comportements globaux lorsque les paramètres varent. Ils construsent ensute des modèles plus smples et plus faclement utlsables en pratque. Ans, ls peuvent calculer sur ces modèles robustes des poltques d'acton qu mantennent la vablté ou la réslence du système. 11

Chaptre 2 Les outls utlsés 2.1 Algorthme apprentssage L'apprentssage artfcel est une dscplne scentfque qu recouvre pluseurs domanes d'études mathématques, statstques et algorthmques. La dversté de ces ancrages contrbue très certanement au succès de cette récente dscplne dont les travaux se caractérsent par : une grande créatvté dans la concepton de méthodes algorthmques; la recherche de fondements mathématques soldes pour étayer les méthodes développées; une attenton aux mécansmes naturels d'apprentssage et de généralsaton; de très nombreux domanes d'applcatons comme en témogne l'essor exponentel de l'apprentssage dans des domanes comme ceux de la foulle de données ou encore de la reconnassance des formes[2]. Les algorthmes d'apprentssage peuvent se catégorser selon le type d'apprentssage qu'ls emploent : L'apprentssage supervsé : un expert est employé pour étqueter correctement des exemples. L'apprenant dot alors trouver ou approxmer la foncton qu permet d'affecter la bonne étquette à ces exemples. L'analyse dscrmnante lnéare ou les SVM sont des exemples typques. L'apprentssage non-supervsé : aucun expert n'est dsponble. L'algorthme dot découvrr par lu-même la structure des données. Le clusterng et les modèles de mélanges de gaussennes sont des exemple d'algorthmes d'apprentssage non supervsés. L'apprentssage par renforcement : l'algorthme apprend un comportement étant donné une observaton. L'acton de l'algorthme sur l'envronnement produt une valeur de retour qu gude l'algorthme d'apprentssage. L'algorthme de Q-learnng est un exemple classque. Les algorthmes qu l'on rencontre le plus souvent dans ce domane sont : Les machnes à vecteur de support (SVM). Le boostng. Les réseaux de neurones pour un apprentssage supervsé ou non-supervsé. La méthode des plus proche vosns pour un apprentssage supervsé. Les arbres de décson. Les méthodes statstques comme par exemples le modèle de mxture gaussenne. La régresson logstque. L'analyse dscrmnante lnéare. La logque floue. Les algorthmes génétques et la programmaton génétque. 12

Ces méthodes sont souvent combnées pour obtenr dverses varantes d'apprentssage. L'utlsaton de tel ou tel algorthme dépend fortement de la tâche à résoudre (classfcaton, estmaton de valeurs, etc.) L'apprentssage automatque est utlsé dans un spectre très large d'applcatons : moteur de recherche, ade au dagnostc, bo-nformatque, détecton de fraudes, analyse des marchés fnancers, reconnassance de la parole, de l'écrture manuscrte, analyse et ndexaton d'mages et de vdéo, robotque 2.1 Support Vector Machne 2.1.1 Résumé ntutf Les machnes à vecteurs de support ou séparateurs à vaste marge (en anglas Support Vector Machne, SVM) sont un ensemble de technques d'apprentssage supervsé destnées à résoudre des problèmes de dscrmnaton et de régresson. Les SVMs ont été développés dans les années 1990 à partr des consdératons théorques de Vladmr Vapn sur le développement d'une théore statstque de l'apprentssage : La Théore de Vapn-Chervonens. Les SVMs ont rapdement étés adoptés pour leur capacté à travaller avec des données de grandes dmensons, le fable nombre d'hyper paramètres, le fat qu'ls soent ben fondés théorquement, et leurs bons résultats en pratque. Les séparateurs à vastes marges sont des classfeurs qu reposent sur deux dées clés qu permettent de trater des problèmes de dscrmnaton non-lnéare, et de reformuler le problème de classement comme un problème d'optmsaton quadratque. La premère dée clé est la noton de marge maxmale. La marge est la dstance entre la frontère de séparaton et les échantllons les plus proches. Ces derners sont appelés vecteurs supports. Dans les SVMs, la frontère de séparaton est chose comme celle qu maxmse la marge. Ce chox est justfé par la théore de Vapn-Chervonens (ou théore statstque de l'apprentssage), qu montre que la frontère de séparaton de marge maxmale possède la plus pette capacté. Le problème est de trouver cette frontère séparatrce optmale, à partr d'un ensemble d'apprentssage. Cec est fat en formulant le problème comme un problème d'optmsaton quadratque, pour lequel l exste des algorthmes connus. Afn de pouvor trater des cas où les données ne sont pas lnéarement séparables, la deuxème dée clé des SVMs est de transformer l'espace de représentaton des données d'entrées en un espace de plus grande dmenson (possblement de dmenson nfne), dans lequel l est probable qu'l exste un séparateur lnéare. Cec est réalsé grâce à une foncton noyau, qu dot respecter certanes condtons, et qu a l'avantage de ne pas nécesster la connassance explcte de la transformaton à applquer pour le changement d'espace. Les fonctons noyau permettent de transformer un produt scalare dans un espace de grande dmenson, ce qu est coûteux, en une smple évaluaton ponctuelle d'une foncton. Cette technque est connue sous le nom de ernel trc. 13

2.1.2 Prncpe général Les SVMs peuvent être utlsés pour résoudre des problèmes de dscrmnaton, c'est-àdre décder à quelle classe appartent un échantllon, ou de régresson, c'est à dre prédre la valeur numérque d'une varable. La résoluton de ces deux problèmes passe par la constructon d'une foncton f qu à un vecteur d'entrée x fat correspondre une sorte y : y = f(x) On se lmte à un problème de dscrmnaton à deux classes (dscrmnaton bnare), c'est-àdre, le vecteur d'entrée x étant dans un espace X mun d'un produt scalare. On peut prendre par exemple. 2.1.3 Dscrmnaton lnéare et hyperplan séparateur Pour rappel, le cas smple est le cas d'une foncton dscrmnante lnéare, obtenue par combnason lnéare du vecteur d'entrée : h(x) = w T x + w 0 Il est alors décdé que x est de classe 1 s h(x) 0 et de classe -1 snon. C'est un classfeur lnéare. La frontère de décson h(x) = 0 est un hyperplan, appelé hyperplan séparateur, ou séparatrce. Rappelons que le but d'un algorthme d'apprentssage supervsé est d'apprendre la foncton h(x) par le bas d'un ensemble d'apprentssage : { 1,1} où les L sont les labels, p est la talle de l'ensemble d'apprentssage, N la dmenson des vecteurs d'entrée. S le problème est lnéarement séparable, on dot alors avor : 2.1.4 Marge maxmale On se place désormas dans le cas où le problème est lnéarement séparable. Même dans ce cas smple, le chox de l'hyperplan séparateur n'est pas évdent. Il exste en effet une nfnté d'hyperplans séparateurs, dont les performances en apprentssage sont dentques (le rsque emprque est le même), mas dont les performances en généralsaton peuvent être très dfférentes. Pour résoudre ce problème, l a été montré qu'l exste un unque hyperplan optmal, défn comme l'hyperplan qu maxmse la marge entre les échantllons et l'hyperplan séparateur. Il exste des rasons théorques à ce chox. Vapn a montré que la capacté des classes d'hyperplans séparateurs dmnue lorsque leur marge augmente. 14

Fgure 2 - L'hyperplan optmal (en rouge) avec la marge maxmale. Les échantllons entourés sont des vecteurs supports. La marge est la dstance entre l'hyperplan et les échantllons le plus proches. Ces derners sont appelés vecteurs supports. L'hyperplan qu maxmse la marge est donné par : Il s'agt donc de trouver w et w 0 remplssant ces condtons, afn de détermner l'équaton de l'hyperplan séparateur : h(x) = w T x + w 0 = 0 2.1.5 Chox de la foncton noyau Plus formellement, on applque aux vecteurs d'entrée x une transformaton non-lnéare φ. L'espace d'arrvée φ(x) est appelé espace de redescrpton. Dans cet espace, on cherche alors l'hyperplan h(x) = w T φ(x) + w 0 qu vérfe l h(x ) > 0, pour tous les ponts x de l'ensemble d'apprentssage, c'est-à-dre l'hyperplan séparateur dans l'espace de redescrpton. En pratque, on ne connaît pas la transformaton φ, on construt plutôt drectement une foncton noyau. Celle c dot respecter certanes condtons, elle dot correspondre à un produt scalare dans un espace de grande dmenson. Le théorème de Mercer explcte les condtons que K dot satsfare pour être une foncton noyau : elle dot être symétrque, sem-défne postve. L'exemple le plus smple de foncton noyau est le noyau lnéare : 15

On se ramène donc au cas d'un classfeur lnéare, sans changement d'espace. L'approche par Kernel trc généralse donc l'approche lnéare en en fasant un cas partculer. Le noyau lnéare est parfos employé pour évaluer la dffculté du problème. Les noyaux usuels employés pour les SVM sont: le noyau polynomal le noyau gaussen 2.3 Sclab Sclab est un logcel lbre de calcul numérque fournssant un envronnement de calcul pour des applcatons scentfques. Développé depus 1990 par des chercheurs de l'inria (Insttut Natonal de Recherche en Informatque et Automatque), nous pouvons dre que Sclab est un pseudo-clone lbre de Matlab. Sclab est un pussant envronnement de programmaton nteractf pour le calcul numérque. C'est un gros logcel : envron 13 000 fchers, plus de 400 000 lgnes de code source (en C et Fortran), 70 000 lgnes de code Sclab (lbrares spécalsées), 80 000 lgnes de "man" (help en lgne et doc), le tout géré sous Lnux par 18 000 lgnes de fchers de confguraton (scrpts et Maefles). Sclab comporte un langage de programmaton et un nterpréteur qu travalle sur des objets de type numérques mas pouvant être structurés selon les besons de l'utlsateur. C'est un système complètement ouvert, pusque c'est l'utlsateur qu défnt ses propres fonctons à partr des pussantes prmtves de calcul qu sont fournes. Sclab est dstrbué sous forme bnare pour les PC-Lnux, Wndows et les statons Unx "classques" (Sun HP, DEC, SGI,...), mas construre Sclab sous Lnux à partr de la verson source ne pose aucun problème car les complateurs gcc et g77 sont dans les dstrbutons standards. Un "confgure" suv d'un "mae all" et c'est part pour la complaton : 10 à 15 mnutes plus tard (avec un pentum assez récent!) Sclab est prêt à démarrer. Le code exécutable (sclex) se trouve dans le sous répertore bn et fat à peu près 5 Mégas. Evdemment, les sources et les Maefles étant dsponbles, l'utlsateur plus courageux peut même se recompler un Sclab personnalsé à son goût. L'nterface du Sclab vot annexe 1. Sclab est un envronnement agréable pour fare du calcul numérque car on dspose sous la man des méthodes usuelles de cette dscplne (c'est auss la rason pourquo nous chosssons le Sclab pour tester), par exemple : Résoluton de systèmes lnéares. Calcul de valeurs propres, vecteurs propres. Décomposton en valeurs sngulères, pseudo-nverse. Transformée de Fourer rapde. Pluseurs méthodes de résoluton d'équatons dfférentelles. Pluseurs algorthmes d'optmsaton. 16

Résoluton d'équatons non-lnéare. Génératon de nombres aléatores. De nombreuses prmtves d'algèbre lnéare utles pour l'automatque. D'autre part, Sclab dspose auss de toute une battere d'nstructons graphques, de bas-nveau (comme tracer un polygone, récupérer les coordonnées du ponteur de la sours, etc ) et de plus haut nveau (pour vsualser des courbes, des surfaces) ans que d un langage de programmaton assez smple mas pussant et agréable car l ntègre les notatons matrcelles. Quand vous testez un de vos programmes écrt en langage Sclab, la phase de mse au pont est généralement assez rapde car vous pouvez examner faclement vos varables : c est comme s l on avat un débogueur. Enfn, s les calculs sont trop longs (le langage est nterprété ) vous pouvez écrre les passages fatdques comme des sousprogrammes C ou fortran (77) et les ler à Sclab assez faclement. Au tout début Sclab peut s utlser smplement comme une calculette capable d effectuer des opératons sur des vecteurs et matrces de réels et/ou complexes (mas auss sur de smples scalares) et de vsualser graphquement des courbes et surfaces. Dans ce cas basque d utlsaton, vous avez unquement beson du logcel Sclab. Cependant, assez rapdement, on est amené à écrre des scrpts (sute d nstructons Sclab), pus des fonctons et l est nécessare de travaller de par avec un édteur de texte comme par exemple, emacs (sous Unx et Wndows), wordpad (sous Wndows), ou encore nedt, v (sous Unx) Pour tout rensegnement, consulter la "Sclab home page" : http ://sclabsoft.nra.fr 2.4 Java 2.4.1 Java langage Le langage Java est un langage de programmaton nformatque orenté objet créé par James Goslng et Patrc Naughton employés de Sun Mcrosystems avec le souten de Bll Joy (cofondateur de Sun Mcrosystems en 1982), présenté offcellement le 23 ma 1995 au SunWorld. Le langage Java a la partcularté prncpale que les logcels écrts avec ce derner sont très faclement portables sur pluseurs systèmes d explotaton tels que UNIX, Mcrosoft Wndows, Mac OS ou Lnux avec peu ou pas de modfcatons C est la plate-forme qu garantt la portablté des applcatons développées en Java. Le langage reprend en grande parte la syntaxe du langage C++, très utlsé par les nformatcens. Néanmons, Java a été épurée des concepts les plus subtls du C++ et à la fos les plus déroutants, tels que l hértage multple remplacé par l mplémentaton des nterfaces. Les concepteurs ont prvlégé l approche orentée objet de sorte qu en Java, tout est objet à l excepton des types prmtfs (nombres enters, nombres à vrgule flottante, etc.) Java permet de développer des applcatons clent-serveur. Côté clent, les applets sont à l orgne de la notorété du langage. C est surtout côté serveur que Java s est mposé dans le mleu de l entreprse grâce aux servlets, le pendant serveur des applets, et plus récemment les JSP (JavaServer Pages) qu peuvent se substtuer à PHP, ASP et ASP.NET. 17

Java a donné nassance à un système d'explotaton (JavaOS), à un envronnement de développement (eclpse/jdk), des machnes vrtuelles (MSJVM, JRE) applcatves multplates-formes (JVM), une bblothèque Java (J2ME) avec nterface graphque (AWT/Swng), des applcatons Java (logcels, servlet, applet). La portablté du code Java est assurée par la machne vrtuelle. JRE la machne vrtuelle qu effectue la traducton et l'exécuton du bytecode en code natf supporte pluseurs processus de complaton (à la volée/bytecode, natf). La portablté est dépendante de la qualté de portage des JVM sur chaque OS. L utlsaton natve du langage Java pour des applcatons sur un poste de traval restat jusqu'à présent relatvement rare à cause de leur manque de rapdté. Cependant, avec l accrossement rapde de la pussance des ordnateurs, les améloratons au cours de la dernère décenne de la machne vrtuelle Java et de la qualté des complateurs, pluseurs technologes ont gagné du terran comme par exemple Netbeans et l envronnement Eclpse. Java est auss utlsé dans le programme de mathématque Matlab au nveau de l nterface homme machne et pour le calcul formel. Les applcatons Swng apparassent également comme une alternatve à la technologe.net. Le langage Java a connu pluseurs évolutons depus le JDK 1.0 (Java Development Kt) avec l ajout de nombreuses classes et pacages à la bblothèque standard. Depus le J2SE1.4, l évoluton de Java est drgée par le JCP (Java Communty Process) qu utlse les JSR (Java Specfcatons Requests) pour proposer des ajouts et des changements sur la plateforme Java. Le langage est spécfé par le JLS (Java Language Specfcaton). Les modfcatons du JLS sont gérées sous le code JSR 901. Nous utlsons la lbrare JAMA dans l'mplémentaton du code. 2.4.2 JAMA JAMA est un pacage de base d'algèbre lnéare pour java. Il est fourn à l'utlsateur pour la constructon de la manpulaton le dfférent type des matrces. Il est destné à fournr suffsamment de fonctonnaltés pour des problèmes courants. Il est adopté une manère qu est naturel et compréhensble pour les non-experts. Il est composé sx classes java : Matrx. CholesyDecomposton. LUDecomposton. QRDecomposton. SngularValueDecomposton. EgenvalueDecomposton. En cours de programmaton, l s'agt des calculs de matrces et leurs caractérstques. Cette lbrare JAMA est donc une bblothèque très ntéressant pour nous. 18

Chaptre 3 La problématque Les machnes à vecteurs de support ou séparateurs à vaste marge (en anglas Support Vector Machne, SVM) sont un ensemble de technques d'apprentssage supervsé destnées à résoudre des problèmes de dscrmnaton et de régresson. Une applcaton de SVM est de calculer la foncton de noyau de vablté d'un système dynamque. 3.1 Le noyau de vablté Le problème prncpal auquel nous nous ntéressons dans ce stage est celu de la vablté d'un système dynamque dans un ensemble de contrantes K. Le problème est de trouver une poltque d'acton sur le système, qu le mantenne ndéfnment à l'ntéreur de cet ensemble de contrantes. Ce problème est fréquent en écologe ou robotque, lorsque le système meurt ou se détérore lorsqu'l qutte une certane régon de l'espace. Le but n'est pas alors pas de chosr une soluton 'optmale' en foncton d'un certan crtère, mas de sélectonner des actons 'vables', dans le sens où elles permettent au système de se mantenr dans un ensemble de contrantes. La fgure 3 représente un exemple d'ensemble de contrantes K d'un système dynamque (de forme ovale). Les ponts de couleur blanche sont les ponts pour lesquels l n'exste pas de contrôle vables (courbes rouges), et n'appartennent donc pas au noyau de vablté du système. Le domane bleu est le domane pour lesquels l exste au mons une poltque d'acton vable (courbe verte), et appartennent donc au noyau de vablté. Fgure 3 - L'ensemble de contrante et le noyau de vablté en bleu. 19

Un algorthme d'apprentssage vsant à approcher le noyau de vablté d'un système dynamque utlsant des SVMs ont été conçus par Gullaume DEFFUANT & al [3]. Mas malheureusement, selon les paramètres de SVMs et les modèles dynamques, les résultats obtenus par cet algorthme ne sont pas forcement fables. Nous rencontrons des bulles dans le domane de noyau,.e. des frontères non contrantes par un vecteur support. Ce bug nous nfluence d'obtenr un noyau correcte. La fgure 4 représente un exemple qu peut arrver, à gauche des bulles, le pont orgnarement est vable, mas l'algorthme de classfe comme non vable. Fgure 4 - Un exemple de bulle. L'algorthme des SVMs ne permet pas de calculer exactement la dstance d'un pont à la frontère de classfcaton: l permet unquement de séparer les ponts en un certan nombre de classes. Afn de résoudre le problème de "bulles", et d'estmer correctement la dstance d'un pont à la frontère de classfcaton dans les algorthmes d'estmaton de noyau de vablté, nous avons beson de trouver un algorthme qu sot très dfférent des SVMs. Le paper de WALDER & al [1] nous propose une méthode pour reconstrure une telle foncton d'approxmaton de dstances et de classfcaton. 3.2 Reconstructon de la foncton Nous consdérons le problème à partr de ponts postfs ou négatfs dsposés près de la frontère pour construre la foncton qu à un pont assoce la dstance à la frontère et le label de celu-c. Comme la fgure 5, nous voulons reconstrure la foncton (a) par les ponts de la grlle (b), les ponts rouges sont les ponts postfs, et les ponts bleus sont les ponts négatfs. (a) (b) Fgure 5 Reconstrure la foncton à partr de ponts postf ou négatfs. 20

3.2.1 La structure des données Nous supposons avor un ensemble de ponts E = {(x, y)}=1 n correspondant aux ponts ntaux dsposés selon une grlle de talle totale n. Dans cet exemple, nous défnssons 21 ponts par dmenson. Pour faclté les calculs, nous supposons que toutes les coordonnés des ponts sont entre 0 et 1 par défaut. Chaque pont de E possède une valeur d'étquette 1 ou - 1. Nous pouvons dre que tous les ponts avec l'étqueteur 1 sont les ponts de noyau, -1 snon. Les x sont des valeurs vectorelles, car nous allons étuder le cas en pluseurs dmensons. Les coeffcents de x sont les coordonnées des ponts par dmenson. Les y sont les dstances sgnées des ponts x à la frontère de classfcaton, c'est-à-dre s l'étquette de ponts est postve, la dstance est auss postve, snon la dstance est négatve. Nous défnssons auss une valeur de pas égale à la dstance entre deux ponts proches (pas de la grlle). L'exemple de la fgure 5 est défn en dmenson deux, les ponts bleus correspondent à l'étquette -1, les rouges correspondent à étquette 1. Nous supposons avor une base d'apprentssage : M = {(x1, y1),, (xm,ym)}, où M sont les ponts proches de la frontère, m est la talle de M. La foncton de l'estmaton de la dstance est notée f. Nous cherchons la foncton d'estmaton f dans un espace de Hlbert à noyau reprodusant H mun du noyau (.,.). C'est-à-dre y est la valeur ntale, f(x) est la valeur approxmée que nous voulons chercher. Dans notre étude, nous pouvons calculer la valeur réelle de y pour tout pont afn d'évaluer la qualté de nos résultats. Mas dans la vrae applcaton, la valeur de y est souvent nconnue. Nous présenterons dans la parte suvante la constructon de la foncton d'approxmaton f. celle-c se caractérse par des ponts de base b et des largeurs de bande assocées S: ce sont ces paramètres et leur nombre que je vas chercher à optmser. Sur cette même fgure 6, nous voyons un ensemble de ponts de base (les ponts verts), la dffculté du problème est trouver les bonnes bases pour construre la foncton d'approxmaton f. Nous supposons l'ensemble de ponts de base B = {(b,s)}, où b est une valeur vectorelle défne comme x, elle correspond à la coordonnée des ponts de base. S est une valeur de dstance, elle correspond au rayon du domane couvert par une base de paramètre b. Fgure 6 - Structure des ponts, le graphe obtenu avec Sclab. 21

22 3.2.2 Constructon des fonctons de base Nous cherchons c que la foncton d'approxmaton de f de la foncton sous la forme. (1) Où p est le nombre de fonctons de base (donc le nombre de ponts de base), π sont des valeurs nous devons également estmer. Les fonctons de base de la forme : ) exp( ) ( 2 s v x x f = La foncton de régularsaton dans l'équaton s'exprme alors : Le problème d'optmsaton écrt dans le paper [1] correspondant est alors : (2) Où C est un terme de pénalsaton de la complexté de la foncton. S C est pett, on tolère les erreurs (sur la base d apprentssage) mas la foncton sera mathématquement smple. A l'nverse, s C est grand, nous pénalsons les erreurs d'apprentssage, et la foncton obtenue sera plus complexe. Donc la formule (2) devent : Ensute nous fasons la dérvaton pour tout j = 1,, p sur formule. Or : d'où pour tout j = 1,, p. = = p x x f f 1 ). ( ) ( π = = p H s f 1 2 2. π = = + = m p y y x f s C P 1 2 1 2 ) ) ( ( mn ) ( π π = = + = = = p m p C y x f y s 1 1 2 2 2 )) ) ( ( ( mn 1 1 π π π = = + = m j p j j j x f y x f y s C 1 1 2 ) ( )) ) ( ( ( 2 2 π π π = 0 π j 0 ) ( )) ) ( ( ( 1 1 1 2 = + = = m j p j j x f y x f y s C π π 0 ) ( ) ( ) ( 1 1 1 = + = = = p m m j j j j y x f C y x f y x f C s π π = + m H H f y y x f f C 1 2 2 ) ) ( ( mn

Sot nous défnssons : La formule (3) devent : Ψ j π = f ( x ) ( x ) p m m j j + C π = C s j = 1 = 1 y y = 1 f ( j x y ), 1 f ( j x y 2 ),..., 2 f ( j x y p f ) p f ( x ) j y (3) π j s j p + C π Ψ = 1. Ψ j = C. Ψ j Sot Π le vecteur défn par Π = [π1,, πp], et pour j = 1,, p : fj(x) = [fj(x1),, fj(xm)], ones(1) est une valeur vectorelle possède que le 1. Nous défnssons les matrces M par : M M j = CΨ Ψ s j = CΨ j 1 et 2 + s = j j s Z = C. ones(1). Ψ La formule précédente s'écrt donc matrcellement M Π = Z. La valeur de matrce M et Z nous pouvons les trouver par calcule car nous avons déjà connu la foncton de base, d'c nous défnssons les foncton f sont des fonctons exponentelles de 2 x v la dstance,.e. f ( x) = exp( ), donc nous pouvons faclement de trouver la valeur s Π = M 1 Z. Nous fasons une concluson pour tous les paramètres dans notre structure : notaton x y f(x) x ) ème f ( b S pas Défnton Coordonnée des ponts de la grlle ntale. Dstance de ce pont à la frontère. Valeur d'approxmaton de la dstance sgnée du pont x à la frontère. K fonctons de base estmée au pont x. ème Paramètre de la K foncton de base: coordonnée du pont assocé. ème Paramètre de la K foncton de base: domane de couvert de celle-c. Dstance entre deux ponts proches. 3.2.3 Chox des ponts de base Selon les calculs de la parte précédente, nous avons obtenu la matrce M qu est une matrce carrée de dmenson p, et la matrce Z est un vecteur de dmenson p. où p est le nombre de ponts de base. Tous les ponts de base se caractérsent par deux paramètres 23

mportant : b et S (3.2.1), b correspond ses coordonnées de la nouvelle grlle de base, S correspond à la dstance entre les deux ponts proches. Pour commencer de tester notre méthode, nous proposons une premère verson de l'algorthme pour chosr les ponts de base. Le prncpe de l'algorthme est : à partr de la grlle donnée, nous reconstrusons une grlle selon les paramètres. Dans cet algorthme, nous avons 3 paramètres : Nombre de ponts par dmenson pour la premère grlle (nb_ponts). Nombre d'tératon pour chercher les ponts (It). Nombre de facteur à recouper les grlles (facteur). Tous les ponts dans de la nouvelle grlle possèdent des caractérstques b et S, nous enregstrons tous les ponts de la premère grlle. La deuxème tératon, nous recoupons l'ntervalle de deux ponts proches de la premère grlle en facteur, nous obtenons la deuxème grlle avec le nombre de ponts nb_ponts*facteur-1 par dmenson. Pour tous les ponts de la nouvelle grlle, nous calculons la dstance avec les ponts de frontère (la dstance plus courte). Nous enregstrons tous les ponts dont la dstance est nféreure à S. Nous fasons la même opératon pour les tératons suvantes, les lstes des ponts enregstrés sont les ponts de base. L'algorthme complet est suvant : Algorthme : Chos_base Données : M // lste des ponts de frontère. Dmenson : // nombre de dmenson. // une foncton pour générer une grlle avec des paramètres donné. Generateur_grlle(nb_ponts, dmenson) Constante : Nb_ponts // nombre de ponts par dmenson par défaut. It // nombre de tératon. Facteur // nombre de facteur. Varables : b, // valeur vectorelle. S. // Réel. Valeur. // nombre de ponts par dmenson en courant. Résultat : B // lste de base. Début // construre la premère grlle de base Valeur = nb_ponts; Grlle = Generateur_grlle(nb_ponts, Dmenson); Mse à jour les valeurs de b et S; B tous les ponts de Grlle; Pour = 2 à It fare Valeur = Valeur*Facteur-1; Grlle = Generateur_grlle(Valeur, Dmenson); Mse à jour les valeurs de b et S; Pour tous les ponts P Grlle fare If (dstance(b, M)<S) B P; Fn f Fn pour = +1; Fn pour Fn 24

L'exemple de la fgure 7, le graphe (a) montre la premère grlle de base. Le graphe (b) montre la deuxème tératon de la grlle construre, les ponts nors sont les ponts de base enregstrés de cette tératon. Le graphe (c) est la soluton fnale obtenue. Selon les graphes, nous avons peu des ponts de base dans le domane lon de frontère et plus de ponts de base proche de frontère. Les cercles correspondent aux domanes d'nfluence des ponts de base, les rayons des cercles correspondent la valeur du S. (a) (b) (c) Fgure 7 - Chosr les ponts de base. Les légendes sont la même que la fgure 4, les paramètres de l'algorthme est: nb_ponts égale à 4, It égale à 3, facteur égale à 2. 25

Chaptre 4 Développement 4.1 Premère verson (en Sclab) Sclab est un logcel pour effectuer des calculs numérques et dspose d'une portablté totale sous les dfférents systèmes d'explotaton. Il a été conçu pour faclter le tratement des matrces, et présente une lbrare graphque élaborée et très complète. La programmaton est auss sgnfcatvement plus rapde que les langages orentés (.e. C/C++, Java) pour le calcul et pour l'affchage. Tous ces avantages nous permettent de fare des premers tests rapdement. En effet, nous pouvons programmer et vsualser rapdement et nous n'avons pas dffculté pour trater des matrces dans les applcatons. 4.1.1 Programmaton Pour les applcatons théorques du chaptre 3, nous avons créé les fonctons suvantes: Générateur_grlle(dmenson, nb_ponts): pour générer une grlle en donnant le nombre de dmenson et le nombre de ponts par dmenson. Il retourne une lste des ponts. Etqueteur(lst_pont,, pont_pos, pont_neg) : la foncton va marquer tous les ponts dans la grlle avec une étqueteur 1 ou -1, elle utlse la méthode de -plus proche vosn. Elle retourne une lste d'étquettes. pont_pas et pont_neg sont les lstes de ponts pour la méthode -plus proche vosn. Pont_proche(lst_ponts, etqueteur) : la foncton cherche tous les ponts proches de la frontère. On va parcourr tous les ponts de la grlle, et vérfer tous les vosns, nous gardons les ponts s'ls ont un vosn d'étquette dfférente. Elle retourne une lste de ponts de frontère. Lste_b(lst_ponts, nb_pont, t, facteur) : la foncton mplémente l'algorthme chos_base (3.2.3). Elle retourne une lste de ponts de base. Nous gardons les valeurs de b et S. Calcul_dstance(lst_pont, etqueteur) : la foncton calcule la dstance mnmale des ponts à la frontère. Cette dstance est la dstance de ce pont au pont plus proche de la frontère, s ce pont frontère est postf, nous fasons plus pas/2, s ce pont frontère est négatf, nous fasons mons pas/2. La dstance de ponts de la frontère égale à pas/2. Ajouter_b(): Ajouter lste de base dans la lste d'apprentssage. Chox_f(): chosr la foncton de la base de forme. 26

Matrce_Z() : la foncton construt la matrce Z (vor paragraphe 3.2.2). Matrce_M() : la foncton construt la matrce M (vor paragraphe 3.2.2). Approx_f() : calculer les valeurs d'approxmaton des ponts de la grlle. Dans cette foncton nous calculons la matrce p. Affche2D : vsualser les résultats en 2-dmenson. Affche3D : vsualser les résultats en 3-dmenson. Man(): foncton prncpale. La foncton prncpale est représentée dans l'annexe 2. En utlsant les fonctons dessous, nous avons réalsés une sére de testes. Nous avons observé des erreurs mportantes sur les domanes lon de la frontère. Les grandes erreurs c'est-à-dre les résultats de dstance que nous avons obtenus par approxmaton sont très dfférents des dstances réelles, et nous avons encore des bulles dans les domanes lon de frontère. Pour résoudre ce problème, nous ajouterons auss des ponts de base dans la lste d'apprentssage. C'est-à-dre nous remplaçons M par M+B, car les ponts de base sont couverts tous les ponts de la grlle. 4.1.2 Observaton Nous avons obtenu les résultats suvants sur le même exemple que celu de la fgure 8, le graphe (a) représente un résultat avec les lgnes de nveau de la foncton dstance approxmée, le graphe (b) représente le nveau d'erreur de l'approxmaton. Nous trouvons que la méthode apprend ben les domanes proches de frontère, mas pas les endrots lon de celle-c. Mas nous ne rencontrerons plus les bulles dans les résultats. (a) (b) Fgure 8 (a): Lgnes de nveau de la foncton obtenue. (b) Lgne de nveau de la proporton d'erreur sur la dstance à la frontère. Nous affchons auss un résultat en dmensons tros pour comparer les solutons comme la fgure 9. Le graphe (a) est la foncton de dstance que nous voulons apprendre, le graphe (b) est la foncton d'approxmaton trouvée. Nous pouvons fare les mêmes remarques que pour la fgure 8. 27

(a) (b) Fgure 9 (a): foncton à apprendre. (b): approxmaton obtenue par la méthode. La premère sére de tests, se compose de dx fonctons à apprendre et nous comparons les résultats. Les données de la fgure 10 sont les résultats obtenus, toutes les fonctons sont approxmées sur une grlle de dmenson deux avec 31 ponts par dmenson. La premère colonne correspond au nombre de ponts proches de la frontère. La deuxème colonne correspond aux nombres de bases trouvées par l'algorthme chos_base (3.2.3), les paramètres de l'algorthme sont : nb_ponts égale à 4, It égale à 3, facteur égale à 2. La trosème colonne correspond aux erreurs des ponts proches des frontères (résultats en pourcentage). La quatrème colonne correspond aux pourcentages des erreurs sur tous les ponts de la grlle. La cnquème colonne donne le temps de calcul. Erreurs ponts Erreurs ponts Temps Foncton Ponts frontères Ponts bases frontère (% ) (%) calcul (s) 1 7 19 0,27 0,09 1 2 42 39 0,27 0,13 11 3 42 41 0,18 0,14 18 4 42 43 0,2 0,13 21 5 42 44 0,16 0,1 22 6 43 44 0,25 0,15 22 7 43 46 0,29 0,16 29 8 65 53 0,24 0,18 67 9 80 75 0,25 0,24 249 10 137 113 0,25 0,32 957 de Fgure 10 Table des résultats. Selon la table c-dessus, nous remarquons que le taux d'erreur des ponts augmente quand la foncton est complquée (nombre de ponts proches de la frontère élevé), les taux d'erreurs sur les ponts de frontères ne sont pas beaucoup changés. Après manpulaton sur 28

Sclab, nous avons trouvé le temps de calcul pour les fonctons complqué est très long, donc nous avons beson de transmettre les codes à un autre langage. D'c, on a chos Java. 4.2 Deuxème verson (en Java) 4.2.1 Pourquo Java A cause des lmtes suvantes de Sclab, nous ne pouvons pas fare des tests avec un nombre de ponts assez suffsant. L'espace mémore : Nous avons beson de tester notre méthode avec des mllons de ponts, l'espace mémore réservé pour Sclab ne sufft pas. Le temps de calcul : la matrce M est une matrce carrée de dmenson talle de base, chaque coeffcent de M est une calcul de : (nombre de base + nombre de ponts frontère) * (nombre de base + nombre de ponts frontère). S nous supposons que le nombre de base est égale au nombre de ponts proche de la frontère égale lu-même à 1000, la complexté de calculer matrce M est 12 1000*1000*(2000*2000) = 4, le temps de calcul de Sclab pour cet exemple est plus de 3 heures, mas en Java, l prend seulement 10 seconde. La fgure 11 est une représentaton du temps de calcul en foncton du nombre de ponts de base (l'exemple selon la fgure 9)). Nous voyons que le temps de calcul croît rapdement quand le nombre de ponts de base augmente. 1200 1000 temps de calcul (s) 800 600 400 200 0 0 20 40 60 80 100 120 ponts base Fgure 11 Le temps de calcul en foncton des ponts de base. 29

Nous remarquons que les résultats ne sont pas ntéressants s nous n'avons pas beaucoup de ponts par dmenson, car avec très peu de ponts par dmenson, s nous avons rencontré une foncton assez complquée, nous pouvons avor presque tous les ponts de grlle qu sont les ponts de frontère. Nous avons auss une rason très mportant est: Intégraton la méthode avec Kavar. Le LISC a développé une premère verson d'un outl logcel nommé KAVIAR qu permet d'approcher des noyaux de vablté et de calculer des poltques d'acton permettant au système de rester dans son ensemble de contrantes. Il permet auss de calculer des ensembles de ponts réslents et des poltques d'actons réslentes. Ce logcel fat appel à des technques d'apprentssage "Support Vector Machnes" (SVMs). La programmaton du modèle dans le logcel est fate en JAVA. Ce logcel exste deux applcatons, le mode graphque et le mode batch. La fgure 12 représente la fenêtre prncpale de Kavar. Fgure 12 - Fenêtre prncpale de KAVIAR 30

4.2.2 Programmaton Pour faclement ntégrer notre code dans Kavar, nous hérarchsons les classes qu sont déjà exstantes dans Kavar, et ajoutons quelques fonctons dont nous avons besons pour notre méthode. Nous avons utlsé la classe Pont qu content tros attrbuts dans Kavar: nbdm_: nombre de dmenson. vect_[]_: valeur de chaque dmenson. label_: l'ndce de pont. Le code de classe Pont de Kavar se vot dans l'annexe 3. Nous avons ajouté des attrbuts suppléments pour notre cas étude: dst_: dstance par rapport frontère. f_approx_: valeur approxmaton. epslon_: valeur S pour les ponts de base. Et quelques fonctons : publc statc nt dstance(pont na, Pont nb) : calculer la dstance entre deux ponts. publc statc nt dstancetofronter(pont pont, Lst<Pont> Pont_fronter) : calculer la dstance d'un pont avec la frontère. publc statc float choce_functon(pont A, Pont B, float epslon) : chosr la foncton x v de la base (d'c f ( x) = exp( ) ). s Nous avons créé une classe Scenaro qu possède les attrbuts : ponts_ : lste des ponts de la grlle. pontsproche_ : lste des ponts de la frontère. lste_b_ : lste des ponts de base. lste_add_ : lste de pontsproche et lste_b_. step_ : pas (la dstance entre deux ponts proches). nb_pont_dm_ : nombre de ponts par dmenson. 2 Nous transmettrons toutes les fonctons de Sclbab (4.1.1) dans la classe Scenaro. Ensute nous avons comparé des résultats obtenus par Sclab et Java, pour s'assurer nous avons les mêmes résultats dans les mêmes exemples. Nous avons auss défn une classe GeneratorGrlle pour créer les grlles par défaut, et la grlle de ponts de base. Il content 4 attrbuts suvants : m[][]: les coordonnées des ponts de la grlle. nb_dmenson: dmenson de m. nb_col: nombre de colonne de m. label_ponts[]: les étqueteur des ponts. 31

m[][] est une tableau de deux dmensons avec la talle nombre de ponts * dmenson. C'està-dre chaque colonne de m correspond un pont, nb_dmenson est la dmenson des ponts, nb_col est le nombre de ponts, la table label_ponts de talle égale à nb_col content les étquettes des ponts. La grlle construt avec la constructeur de classe publc GeneratorGrlle(nt nb_dm, nt nb_pont_dm) et une méthode publc vod setlabel_ponts(float pos[][], float neg[][], nt nb_pont, nt nb_proche) pour générer les étquettes. 4.2.3 Développement d'algorthme A cause du temps de calcul de l'nverse de la matrce M, nous essayons toujours dans les développements algorthmques de trouver les ponts de base en nombre suffsant pour construre un estmateur correct de la foncton, mas pas en nombre trop élevé pour lmter les temps de calculs. Après une sére de tests en augmentant le nombre de pont par dmenson, nous avons obtenu les résultats présentés dans la fgure 13. Nous avons construre une foncton avec 201 ponts par dmenson en dmenson deux, les ponts bleus sont les ponts frontères, les ponts roses sont les ponts de base trouvés par notre algorthme et les ponts jaunes sont les ponts où l y a des erreurs de sgne (toutes les prochanes fgures auront la même légende). Les paramètres d'algorthme chos_base (3.2.3) est: 4 ponts par dmenson par défaut, 3 tératons et 4 facteurs. Dans la fgure, nous voyons qu'l y a des bulles qu apparassent dans les endrots où l n'y a pas beaucoup de pont de base. Pour évder cette erreur, nous essayons de modfer les paramètres d'algorthme, on donne alors 8 ponts par dmenson à la place de 4. Après le changement, nous arrvons à enlever les bulles dans notre exemple. Selon cette modfcaton, nous supposons que nous avons beson de suffsamment de ponts par défaut, pour que les ponts de base pussent ben couvrr tous les domanes où nous voulons étuder. 1 0,9 0,8 0,7 0,6 0,5 0,4 pont frontère pont base sgne erreur 0,3 0,2 0,1 0 0 0,2 0,4 0,6 0,8 1 Fgure 13 L'erreur des bulles. 32

Suvant les modfcatons des paramètres précédents, nous testons avec des exemples dfférents et nous ne sommes pas toujours satsfats des résultats obtenus. On a donc vérfé notre algorthme et le code, on a trouvé les problèmes suvants : a Valeur estmaton de java Dans notre structure des ponts (vor 3.2.1), nous supposons que toutes les coordonnées des ponts sont entre 0 et 1 pour faclter les calculs. Cependant les ordnateurs enregstrent les données sous la forme bnare, les opératons mathématques de float et double ne donne pas une valeur exacte. Par exemple, la soluton de 0.02 0.01 nous arrvent à 0.0100000003. Dans notre cas d'études, nous savons que le nombre d'opératons pour calculer la matrce M est énorme (cf 4.2.1). Donc chaque calcul est fourn avec une pette erreur, après des mllons d'opératons, nous allons obtenr une grande erreur. Pour évter ces erreurs, nous proposons de défnr les coordonnées de ponts avec des valeurs entères. Nous commençons par 0 et chaque ponts suvant ajoutons 2, car la dstance de ponts frontère est égale à la dstance entre deux ponts proches, donc d'c leur dstance est égale à 1. Nous avons trouvé la manère de coder la valeur de coordonnées des ponts de la grlle. Mas la valeur de la dstance entre ponts ne peut s'écrre sous forme d'enter. Java nous propose une classe BgDecmal pour résoudre ce problème. Mas la constructeur de BgDecmal est : BgDecmal(Strng val). C'est-à-dre que nous somme oblgés de passer les paramètres en strng, pus le transmettre à float. Imagnons, s nous voulons fare une opératon d'addton, nous avons beson de transmettre les deux valeurs flottantes au Strng, pus le construre en classe BgDecmal, fare l'addton, ensute obtenr le résultat BgDecmal le transmettre en valeur flottante. Toutes ces opératons sont complquées et lourdes, donc nous proposons une classe Arth pour smplfer celles-c. Il fournt les méthodes statques suvant qu content toutes les opératons d'addton, soustracton, multplcaton, dvson et auss une méthode d'arrondr. La ressource d'arth est présentée dans l'annexe 4. publc statc double add(double v1,double v2) publc statc double sub(double v1,double v2) publc statc double mul(double v1,double v2) publc statc double dv(double v1,double v2) publc statc double dv(double v1,double v2,nt scale) publc statc double round(double v,nt scale) b Dstrbuton des ponts de base Le deuxème problème que nous avons souvent rencontré est le suvant : l y a plus d'erreurs autour des fonctons complquées. L'exemple est probant dans la fgure 14, dans l'endrot tournant où nous avons souvent des erreurs du sgne qu apparassent. Nous savons que l'algorthme de Chos_base(3.2.3) nous propose une manère de chercher les ponts de base unformément autour des fonctons, l ne dstngue pas les fonctons complquées des fonctons lsses. Mas l'objectf de la méthode est de fournr plus de bases autour du domane où la foncton est complquée et mons de bases autour du domane où la foncton est lsse. Nous proposons une autre méthode pour amélorer notre algorthme de chox des ponts de base. 33

400 350 300 250 200 150 pont frontère pont base erreur sgne 100 50 0 0 100 200 300 400 Fgure 14 Dstrbuton de l'erreur de sgne, les paramètres pour algorthme de chos_base est: 4 ponts par dmenson, 3 tératon et 4 facteur. La fgure 15 représente une grlle avec des ponts postfs et négatfs, les ponts de la frontère de la foncton complquée : pour chaque pont, le nombre de vosns de label opposé est supéreur à 1. Nous proposons donc une autre méthode pour chercher les ponts de base : ajouter tous ponts frontères qu possèdent ses ponts dans la lste de ponts de base. Cette méthode nous l'appelons : Méthode de sélecton des bases sur la frontère. Mantenant, notre lste de ponts de base est construte par deux manères, une est la méthode on vent de proposer, l'autre est l'algorthme de chos_base(3.2.3). Ces deux méthodes se complètent l'une et l'autre, car l'algorthme de chos_base(3.2.3) propose une manère de chosr les ponts de base pour ben couvrr la surface, mas l ne peut pas dstnguer la complexté de la foncton. La nouvelle méthode trouve plus de bases pour les fonctons complquées. En plus, elle ne prend pas beaucoup de temps, car tous les ponts de base trouvés selon elle, nous pouvons les trouver en même temps que la recherche des ponts de frontère, ce qu représente un avantage très ntéressant pour nous. 34

40 35 30 25 20 15 10 5 0 0 5 10 15 20 25 30 35 40 Fgure 15 Un ensemble des ponts postfs et négatfs. Les ponts roses sont les ponts postfs, les ponts bleus sont les ponts négatfs. c Les erreurs des postons de pont base Notre algorthme chos_base(3.2.3) reconstrut une grlle avec des paramètres données. Pour tous les ponts de base nous avons beson de calculer leur dstance à la frontère. Cette dstance nous la calculons avec la méthode suvante : nous calculons la dstance de ce pont au pont frontère plus proche, s ce pont frontère est postf, nous fasons plus pas/2, s ce pont frontère est négatf, nous fasons mons pas/2. Mas l est possble que ces ponts de base soent entre deux ponts frontères proches. L'exemple de la fgure 16 llustre ces propos : dans le domane dans le cercle, nous avons un pont de base (pont vert), le pont de frontère plus proche est en base à gauche et l est postf. Nous supposons que la dstance entre ces deux ponts égale à 0.4, mas avec notre foncton pour calculer la dstance l va fare 0.4 + pas/2, après la modfcaton précédente notre pas égale à 2, donc la dstance va être égale à 1.4. Fgure 16 L'erreur des postons de pont base. 35

Pour évder cette erreur, on va modfer l'algorthme de chos_base. Grâce à la modfcaton de la dstrbuton des ponts de base, nous avons déjà des ponts de base qu sont proches des la frontères (selon la méthode de sélecton des bases sur la frontère, tous les ponts de base trouvés sont les ponts de la frontère), donc l'algorthme de chos_base n'a pas forcement beson de chercher les ponts très proches de la frontère, on va ajouter une condton : on n'enregstre que les ponts de base s leurs dstances à la frontère sont supéreures à un seul, ben sûr ce seul dot être supéreur à pas/2. Après une sére de test, nous avons fxé cette valeur égale à 4. Le nouvel algorthme s'appelle chos_baseii. Algorthme : Chos_baseII Données : M // lste des ponts de frontère. Dmenson : // nombre de dmenson. // une foncton pour générer une grlle avec des paramètres donné. Generateur_grlle(nb_ponts, dmenson) Constante : Nb_ponts // nombre de ponts par dmenson par défaut. It // nombre de tératon. Facteur // nombre de facteur. Varables : b, // valeur vectorelle. S. // Réel. Valeur. // nombre de ponts par dmenson en courant. Résultat : B // lste de base. Début // construre la premère grlle de base Valeur = nb_ponts; Grlle = Generateur_grlle(nb_ponts, Dmenson); Mse à jour les valeurs de b et S; B tous les ponts de Grlle; Pour = 2 à It fare Valeur = Valeur*Facteur-1; Grlle = Generateur_grlle(Valeur, Dmenson); Mse à jour les valeurs de b et S; Pour tous les ponts P Grlle fare If ((dstance(b, M)<S)&&(dstance(b, M)>4)) B P; Fn f Fn pour = +1; Fn pour Fn 4.2.4 Observatons Après les modfcatons, nous avons lancé le programme sur dfférentes fonctons. Selon les résultats obtenus, nous pouvons fxer les paramètres d'algorthme chos_baseii. La valeur de nb_ponts (nombre de ponts par dmenson par défaut) est 8, car nous avons beson d'assez de bases pour ben couvrr toute la surface. La valeur d'tératon est 2, car nous avons déjà des ponts de base qu sont proches de la frontère, donc nous n'avons pas beson d'aller plus fnement, nous pouvons auss gagner du temps de calcul et lmter le nombre de bases 36

auss. La valeur de facteur égale à 4. La fgure 16 représente un résultat obtenu avec l'algorthme modfé. Il n'y a plus d'erreur de sgnes. 200 180 160 140 120 100 80 60 40 20 0 0 20 40 60 80 100 120 140 160 180 200 Fgure 17 Résultats de la nouvelle méthode. Dans la fgure 17, nous voyons des dfférences par rapport aux résultats précédents, l y a des bases un peu partout dans la surface, et plus de ponts de base où la foncton est complquée. Le tableau suvant nous donne quelques tests sur dx fonctons aléatores. Tous les exemples sont en dmenson deux et 100 ponts par dmenson. La premère colonne est le nom de foncton, la deuxème colonne est le nombre de ponts de la frontère, la trosème colonne est le nombre de ponts de base, la quatrème colonne est le temps de calcul pour calculer la matrce M, car c'est le temps s'agt le nombre de pont de base, cette valeur nous avons obtenu avec l'ordnateur a Processeur double cœur Intel Pentum T4200 (2 GHz, 800MHz, mémore cache de 1Mo, mémore de 3Go), la cnquème colonne est le taux d'erreur de la sgne, la sxème colonne est le taux d'erreur des ponts frontère, la septème colonne est le taux d'erreur de tous les ponts de la surface. Dans le tableau, nous voyons que la moyenne du taux d'erreurs des ponts frontères et du taux d'erreur de tous les ponts sont nféreur à 20 pourcent, et le taux d'erreur de la sgne est nféreur sont très peu. Donc, généralement nous avons obtenus de bonnes solutons. Foncton Ponts Ponts de Temps pour Taux erreur Erreurs des ponts Erreur des frontère base M (ms) sgne (%) frontères (%) ponts (%) 1 475 391 536 0 14.75 10.37 2 751 607 2008 0.17 14.43 17.42 3 751 549 1556 0 15.46 16.89 4 672 443 929 0 18.04 13.86 5 620 483 1085 0 14.56 17.30 6 646 552 1472 0 14.09 15.65 7 642 512 1252 0 13.96 15.39 8 384 300 266 0.06 16.14 14.15 9 444 389 569 0.17 14.43 17.42 10 568 412 1256 0.02 15.01 15.34 Fgure 18 Les résultats après modfcaton de l'algorthme. 37

La fgure 19 représente la foncton de la fgure 16 en 2D, l'axe X et Y représente la poston des ponts, l'axe est la foncton de la dstance à la frontère. Le graphe (a) est la foncton nous voulons obtenr, et le graphe (b) est le graphe approxmaton. (a) (b) Fgure 19 Exemple de foncton à obtenr (a) et son approxmaton (b). La fgure 20 est un graphque des nuages de ponts, qu représente le temps de calcul en foncton du nombre de ponts de base. Nous avons lancé une smulaton avec 100 fonctons aléatores à apprendre, nous voyons que le temps de calcul augmente très vte quand le 38

nombre de ponts de base augmente. Nous devons donc ben lmter ce nombre de ponts de base. Fgure 20 -Nuages de ponts, le temps de calcul en foncton de ponts de base. 39

Concluson Blan Les objectfs de mon stage ont été attents. En effet, j'a conçu et réalsé une applcaton fonctonnelle qu permet de reconstrure une foncton avec l'ade les ponts de base trouvés par l'algorthme proposé. Cet algorthme se base sur la méthode des ensembles de Splnes avec des largeurs de bandes dfférentes. Le sujet concerne beaucoup de domanes des mathématques, à cet égard, j'a rencontré quelques dffcultés à comprendre les conceptons de la méthode. Grâce à l'ade de mes encadrants, je sus ben rentré dans le sujet. Pour tester l'algorthme, j'a commencé à l'mplémenter par logcel Sclab, car Sclab est un logcel facle à utlser, et l propose un outl graphque performant. Grâce à ces avantages nous pouvons faclement et rapdement de vsualser nos résultats pus réalser des modfcatons algorthmques s'l y a des erreurs. Nous avons obtenu une premère verson d'algorthme après avor étudé les résultats avec Sclab. Le but de stage est de résoudre les erreurs de l'utlsaton des SVMs, le LISC les utlsant pour calculer une approxmaton du noyau de vablté d'un système dynamque. Leur logcel étant basé sur des algorthmes d'apprentssage développé en Java, j'a alors transms notre code en java. Pendant cette pérode, j'a rencontré des dfférents problèmes, venant de l'algorthme, ou de problème de codage. Après la résoluton des problèmes, j'a fat une sére de teste pour fxé les paramètres de l'algorthme. Enfn, j'a obtenu des résultats satsfasant en dmenson 2. Pendant le pérode de stage, j'a approfond mes connassances de langage orenté et en applcatons mathématques. Cette expérence état pour mo, celle qu répond le meux à mes attentes et mes aspratons. Perspectves Les résultats obtenus par notre algorthme proposé peuvent reconstrure en général approxmée notre foncton, mas nous avons quand même encore des problèmes. L'exemple de la fgure 21, qu représente une foncton assez complquée, les ponts de base trouvés par notre algorthme sont ben dstrbués sur les fonctons vectorelles et horzontales, mas ls sont mal dstrbués sur les fonctons oblques, l y a trop de ponts de base dessus. Donc nous devons amélorer notre algorthme pour encore lmter le nombre de ponts de base, et gagner ans du temps de calcul en même temps. 40

200 180 160 140 120 100 80 60 40 20 0 0 20 40 60 80 100 120 140 160 180 200 Fgure 21 Une foncton complquée. 100 0 50 Y 150 200 La fgure 22 est une cartographe des erreurs : les ponts de couleur bleue sont les ponts dont les erreurs sont nféreures à 0.3, de couleur jaune dont les erreurs se stuent entre 0.3 et 0.6, et de couleur rouge est les erreurs sont supéreures à 0.6. Nous voyons que les erreurs sont rassemblées dans certans domanes, nous devons donc donner plus de ponts de base dans ces domanes. Nous dsposons un autre exemple de cartographe dans l'annexe 5. 0 50 100 150 200 X Fgure 22 Cartographe de lgne des couleurs, bleu est les erreurs nféreur à 0.3, jaune est les erreurs entre 0.3 et 0.6, rouge est les erreurs supéreur à 0.6. 41

Par alleurs, cette méthode dot être opératonnelle en dmenson supéreure à 2. Pour l'nstant, ce n'est pas le cas. Ans, nous donnons un résultat d'un exemple de dmenson 3, qu a 51 ponts par dmenson : Nombre de ponts : 132651. Nombre de ponts proche de la frontère : 7728. Nombre de ponts de base : 5729. Temps de calcul matrce M : 1642911 (ms) Temps de calcul matrce Z : 325 (ms) Temps de calcul total : 38 mnutes Taux d'erreurs du sgne : 0.08% Taux d'erreurs des ponts proche de la frontère : 18.67% Taux d'erreurs des ponts : 14.14% Selon les données c-dessus, nous remarquons que lorsque le nombre de dmenson élevé, le nombre de ponts, le nombre de ponts proches de la frontère et le nombre de ponts de base augmentent trop vte. Nous avons donc des problèmes avec les espaces mémores et le temps de calcul. Mas nous avons presque les mêmes résultats par rapport ce que nous avons vu en dmenson deux, donc la même remarque que nous avons vu en dmenson deux : lmter le nombre de ponts de base pour gagner le temps de calcul et l'espace mémore. Enfn, s nous arrvons à résoudre tous ces problèmes, nous ntégrerons cette méthode à KAVIAR. 42

Bblographe [1] WALDER C., SCHÖLKOPF B. CHAPELLE O. Févrer 2006: Implct Surface Modellng wth a Globally Regularsed Bass of Compact Support. [2] BENNANI Y., ROUVEIROL C. Ma 2009 : Conférence D'Apprentssage. [3] DEFFUANT G., MARTIN S., 2004: Approxmatng Vablty Kernels wth Support Vector Machnes. [4] GANDAR B., Avrl 2009: Eléments de réflexon sur le stage. Rapport nterne du LISC, Cemagref. [5] WEI W., 2008 : Vablté et réslence de dynamques envronnement et économques défnes à partr de modèles smplfés. [6] CHAPEL L., 2007 : Mantenr la vablté ou la réslence d'un système : les machnes à vecteurs de support pour ramper la malédcton de la dmensonnalté? Thèse de doctorat, Blase Pascal 2007. [7] CHAPEL L., 2008: SVM vablty ernel approxmaton and réslence computaton software verson 1.2 User Gude. [8] GANDAR B., 2008 : Les SVMs une utlsaton des technques d'optmsaton quadratque en apprentssage statstque. Cours de seconde année de l'isima. [9] DEFFUANT, G., CHAPEL, L. et MARTIN, S. 2007: Approxmatng vablty ernels wth support vector machnes. IEEE transactons on automatc control, 52(5):933-937. [10] TONG, S. et KOLLER, D. 2000: Support vector machne actve learnng wth applcaton to text classfcaton. Dans LANGLEY, P., édteur : Proceedng of ICML-00, 17 th Internatonnal Conference on Machne learnng, pages 999-1006, Stanford, US. Morgan Kaufmann Publshers, San Francsco, US. [11] AUBIN, J.-P. 1997: Dynamc economc theory : a vablty approach. Sprng-Verlag. 43

Ste Internet : http://fr.wpeda.org http://users.nfo.uncaen.fr/~herve/cnrs_servces_gratuts.pdf http://vle.unv-lttoral.fr/fr/ndex.php/pacage_senstvty http://ntranet.cemagref.fr/communcaton/documents/powerpo/daporama_nst tutonnel_2007.ppt http://www.grappa.unv-llle3.fr/~ppreux/ensg/m1psycho/manp.html http://w.r-project.org/rw/dou.php?d=tps:graphcs-3d:graphcs-3d 44

Annexes 45

1. Interface du Sclab 46

2. Foncton prncpale de Sclab //functon prncpal avec les dstances en ajoutant lste b dans les ponts d'apprendssage //30/4/9 wewei functon [lancer, lancer1, t, ajout_p, p, p, b, z]=man_bs3(nb_dm,nb_pont,pos,neg,c,nb_depart_pont,ter,base_fact,) tmer(); pas=1/(nb_pont-1); exec('generateur_grlle.sc'); g=generateur_grlle(nb_dm,nb_pont,2); exec('etqueteur_deux.sc'); t=etqueteur_deux(g,,pos,neg); exec('pont_proche.sc'); p=pont_proche(g,t,nb_pont); exec('ndex_pont_p.sc'); ndex=ndex_pont_p(g,t); exec('lste_b.sc'); b=lste_b(g,nb_depart_pont,ter,base_fact,p); exec('ajouter_b.sc'); ajout_p=ajouter_b(b,p); exec('calculer_f.sc'); [c_c,d_d]=calculer_f(ajout_p,b,pas,p); exec('matrce_z_ds.sc'); z=matrce_z_ds(c,ajout_p,b,pas,p,c_c,d_d); exec('matrce_m_ds.sc'); m=matrce_m_ds(c,ajout_p,b,pas,p,c_c,d_d); p=nv(m)*z; exec('approx_f.sc'); g_bs=generateur_grlle(2,101,2); f=approx_f(g,p,b); f_bs=approx_f(g_bs,p,b); exec('aff_bs.sc'); lancer=aff_bs(g,f,t,p); pourcent=sze(fnd(lancer(:,3)==0),2)/(nb_pont*nb_pont); exec('transformer.sc'); tran=transformer(lancer(:,2)); trans_bs=transformer(f_bs); x=1:-1/100:0; y=0:1/100:1; xbasc(); ttt=trans_bs'; grayplot(x,y,ttt); //plot3d1(x,y,ttt); exec('affche2d_f.sc'); affche2d_f(g,t,lancer); plot(b(1,:),b(2,:),'*g'); err=sum(abs((lancer(:,1)-lancer(:,2))/lancer(:,1)))/sze(lancer,1); xsave('graphe3d'+'_err'+strng(err)+'_'+strng(pourcent)+'_'+strng(nb_pon t)+'_'+strng(nb_depart_pont)+strng(ter)+strng(base_fact)+'.scg'); 47

prntf('result s : %f \n', sze(fnd(lancer(:,3)==0),2)/(nb_pont*nb_pont)); df=lancer(:,1)-lancer(:,2); som=0; for =1:sze(df,1) som=som+abs(df(,1)/lancer(,1)); end prntf('taux erreur total est : %f \n', som/sze(df,1)); lancer1=lancer(ndex,:); df=lancer1(:,1)-lancer1(:,2); som=0; for =1:sze(df,1) som=som+abs(df(,1)/lancer1(,1)); end prntf('taux erreur est sur les ponts proche: %f \n', som/sze(df,1)); t=tmer(); prntf('le temps de calculer est : %f \n', t); endfuncton; 48

3. Classe Pont de Kavar pacage vabcontroller; mport java.utl.arraylst; mport java.utl.lst; mport LbSVM.svm_node; /** * Creates and deals wth ponts * * @author Florent LOPEZ */ publc class Pont mplements Cloneable { /** * Number of dmensons */ publc nt nbdm_; /** * value for each dmenson */ publc float vect_[]; /** * Label of the pont: true f t s vable */ publc nt label_; /** * Constructs a pont n nbdm dmenson * * @param ndm dmenson of the pont */ publc Pont(nt ndm){ ths.nbdm_ = ndm; ths.vect_ = new float[ ths.nbdm_ ]; } /** * Computes and returns the norm of the pont * * @return norm */ publc double getnorme(){ 49

} double res = 0; for( nt = 0 ; < ths.nbdm_ ; ++ ) res += ths.vect_[ ] * ths.vect_[ ]; return (Math.sqrt( res )); } /** * Computes and returns the dstance between 2 ponts * * @param na pont 1 * @param nb pont 2 * @return dstance between pont 1 and 2 */ publc statc double dstance(pont na, Pont nb){ double res = 0; for( nt = 0 ; < na.nbdm_ ; ++ ) res += (na.vect_[] - nb.vect_[]) * (na.vect_[] - nb.vect_[]); return Math.sqrt(res); } /** * Prnts the pont and ts label * */ publc vod prnt(){ for( nt = 0 ; < ths.nbdm_ ; ++ ) System.out.prnt(vect_[]+" "); System.out.prntln("label : "+label_); System.out.prnt("\n"); } /** * Prnts the pont * */ publc vod prntpont(){ for( nt = 0 ; < ths.nbdm_ ; ++ ) System.out.prnt(vect_[]+" "); System.out.prnt("\n"); } 50

4. Ressource d'arth mport java.math.bgdecmal; publc class Arth{ //défnr le nombre chffr après vrgule pour arrondr prvate statc fnal nt DEF_DIV_SCALE = 10; prvate Arth(){ } /** * addton. * @param v1 cumulateur 1 * @param v2 cumulateur 2 * @return la somme */ publc statc double add(double v1,double v2){ BgDecmal b1 = new BgDecmal(Double.toStrng(v1)); BgDecmal b2 = new BgDecmal(Double.toStrng(v2)); return b1.add(b2).doublevalue(); } /** * soustracton * @param v1: dmnuende * @param v2: dmnuteur * @return dfférence */ publc statc double sub(double v1,double v2){ BgDecmal b1 = new BgDecmal(Double.toStrng(v1)); BgDecmal b2 = new BgDecmal(Double.toStrng(v2)); return b1.subtract(b2).doublevalue(); } /** * multplcaton * @param v1: multplcande1 * @param v2: multplcande1 * @return le résultat */ publc statc double mul(double v1,double v2){ BgDecmal b1 = new BgDecmal(Double.toStrng(v1)); BgDecmal b2 = new BgDecmal(Double.toStrng(v2)); 51

} return b1.multply(b2).doublevalue(); /** * dvson, s le dvdende n'est pas dvsble par nombre dvseur, garder 10 valeurs après * la vrgule après avor arrondr * @param v1: dvdende * @param v2: nombre dvseur * @return le résultat */ publc statc double dv(double v1,double v2){ return dv(v1,v2,def_div_scale); } /** * dvson, s le dvdende n'est pas dvsble par nombre dvseur, garder scale valeurs * après la vrgule après avor arrondr * @param v1: dvdende * @param v2: nombre dvseur * @param scale: nombre de valeur garder après la vrgule * @return résultat */ publc statc double dv(double v1,double v2,nt scale){ f(scale<0){ throw new IllegalArgumentExcepton( "The scale must be a postve nteger or zero"); } BgDecmal b1 = new BgDecmal(Double.toStrng(v1)); BgDecmal b2 = new BgDecmal(Double.toStrng(v2)); return b1.dvde(b2,scale,bgdecmal.round_half_up).doublevalue(); } /** * arrondr * @param v: valeur à arrondr * @param scale: nombre de valeur garder après la vrgule * @return résultat */ publc statc double round(double v,nt scale){ f(scale<0){ throw new IllegalArgumentExcepton( "The scale must be a postve nteger or zero"); } BgDecmal b = new BgDecmal(Double.toStrng(v)); BgDecmal one = new BgDecmal("1"); return b.dvde(one,scale,bgdecmal.round_half_up).doublevalue(); } }; 52

5. Cartographe 200 180 160 140 120 100 80 60 40 20 0 0 20 40 60 80 100 120 140 160 180 200 Cartographe de lgne des couleurs: bleues sont les erreurs nféreures à 0.3, jaunes sont les erreurs entre 0.3 et 0.6, rouge sont les erreurs supéreures à 0.6. 53