Robotique Mobile

Robotique Mobile - Revenir à l'accueil

 

Robotique Mobile David Filliat To cite this version: David Filliat. Robotique Mobile. Ecole d’ing´enieur. Robotique Mobile, ENSTA ParisTech, ´ 2011, pp.175. HAL Id: cel-00655005 https://cel.archives-ouvertes.fr/cel-00655005 Submitted on 24 Dec 2011 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.David FILLIAT École Nationale Supérieure de Techniques Avancées ParisTech Robotique Mobile2Cette création est mise à disposition selon le Contrat Paternité-Pas d’Utilisation CommercialePartage des Conditions Initiales à l’Identique 2.0 France disponible en ligne : http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ ou par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Ce document évolue régulièrement. La dernière version se trouve sur ma page personnelle : http://www.ensta-paristech.fr/~filliat/ Si vous avez des remarques ou des suggestions pour m’aider à le faire progresser, ou simplement si il vous a été utile, n’hésitez pas à m’écrire : david.filliat@ensta-paristech.fr Dernière mise à jour : 5 octobre 2011Robotique Mobile - david.filliat@ensta-paristech.fr 4TABLE DES MATIÈRES Table des matières 1 Introduction 9 1.1 Robot Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.2 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3 (Très) Bref aperçu historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.4 Exemples d’applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 I Les bases de la navigation 15 2 Les différents types de navigation 19 2.1 Les stratégies de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Les architectures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.2.1 Contrôleurs Hiérarchiques . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2.2 Contrôleurs réactifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.2.3 Contrôleurs hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.4 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3 Les sources d’information 27 3.1 Informations proprioceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.2 Informations extéroceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.1 Variabilité perceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.2 Perceptual aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.2.3 Utilisation directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2.4 Utilisation d’un modèle métrique . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 Fusion d’informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4 Matériels courants en robotique mobile 35 4.1 Les bases mobiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.1 Holonomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.2 Les plates-formes différentielles . . . . . . . . . . . . . . . . . . . . . . . 35 4.1.3 Les plates-formes omnidirectionnelles . . . . . . . . . . . . . . . . . . . . 36 4.1.4 Les plates-formes non holonomes . . . . . . . . . . . . . . . . . . . . . . 37 4.1.5 Les plates-formes à pattes . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES 4.2 Les capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.1 Les capteurs proprioceptifs . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2.2 Les télémètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2.3 Les caméras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.2.4 Autres capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 II Navigation réactive 53 5 Navigation vers un but 57 5.1 Véhicules de Braitenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.2 Modèle de Cartwright et Collet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.3 Asservissement visuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 6 Évitement d’obstacles 61 6.1 Méthode des champs de potentiel . . . . . . . . . . . . . . . . . . . . . . . . . . 61 6.2 Méthode Vector Field Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.3 Méthode de la fenêtre dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 63 7 Apprentissage par renforcement 67 7.1 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.2 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.2.1 Évaluation d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . . 71 7.2.2 Amélioration d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.2.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 72 7.3 Méthodes de Monte-Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.3.1 Évaluation d’un politique . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 7.3.2 Besoin d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.3.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 74 7.4 Apprentissage par différences temporelles . . . . . . . . . . . . . . . . . . . . . 74 7.5 Traces d’éligibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 7.6 Application pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 7.7 Exemple de mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 7.8 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 III Navigation utilisant une carte 81 8 Localisation, Cartographie et Planification 85 8.1 Les trois problèmes de la navigation par carte . . . . . . . . . . . . . . . . . . . . 85 8.2 Quelques hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 8.2.1 Estimation de la position et de la direction . . . . . . . . . . . . . . . . . . 86 8.2.2 Environnements statiques et dynamiques . . . . . . . . . . . . . . . . . . 87 Robotique Mobile - david.filliat@ensta-paristech.fr 6TABLE DES MATIÈRES 9 Les représentations de l’environnement 89 9.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 9.1.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 9.1.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 9.1.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 9.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 9.2.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.2.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 9.2.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.3 Représentations hybrides et hiérarchiques . . . . . . . . . . . . . . . . . . . . . . 100 10 Localisation 103 10.1 Différentes capacités de localisation . . . . . . . . . . . . . . . . . . . . . . . . . 103 10.2 Estimation de la position par les perceptions . . . . . . . . . . . . . . . . . . . . 105 10.2.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 10.2.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 10.2.3 Corrélation de cartes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 10.2.4 Limitations de l’estimation de la position par les perceptions . . . . . . . . 110 10.3 Suivi d’une hypothèse unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 10.3.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.3.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 10.3.3 Le filtrage de Kalman pour la localisation . . . . . . . . . . . . . . . . . . . 112 10.3.4 Limitations du suivi de position . . . . . . . . . . . . . . . . . . . . . . . . 119 10.4 Suivi de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 10.4.1 Suivi explicite de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . 120 10.4.2 Le filtrage Bayésien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 10.4.3 Filtrage Bayésien dans le cas discret . . . . . . . . . . . . . . . . . . . . . 126 10.4.4 Filtrage particulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 10.5 Comparaison des méthodes de localisation . . . . . . . . . . . . . . . . . . . . . 133 11 Cartographie 135 11.1 Les problèmes de la cartographie . . . . . . . . . . . . . . . . . . . . . . . . . . 135 11.1.1 Limitation des méthodes de localisation . . . . . . . . . . . . . . . . . . . 135 11.1.2 Fermetures de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 11.1.3 Cartographie incrémentale et retour en arrière . . . . . . . . . . . . . . . . 136 11.2 Cartographie incrémentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.2.1 Cartes Topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 11.2.2 Cartes métriques : corrélation de scan . . . . . . . . . . . . . . . . . . . . 140 11.2.3 Cartes métriques : grilles d’occupation . . . . . . . . . . . . . . . . . . . . 141 11.2.4 Stratégies d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 11.3 Retour sur les modifications passées . . . . . . . . . . . . . . . . . . . . . . . . 144 7 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES 11.3.1 Méthodes de relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 11.3.2 Cartographie par filtrage de Kalman étendu . . . . . . . . . . . . . . . . . 147 11.3.3 Fast SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 11.4 Comparaison des méthodes de cartographie . . . . . . . . . . . . . . . . . . . . 154 11.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 12 Planification 155 12.1 Espace des configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 12.2 Discrétisation de l’espace de recherche . . . . . . . . . . . . . . . . . . . . . . . 156 12.3 Recherche de chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 12.3.1 Deux types de plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 12.3.2 Calcul de politique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 12.3.3 Calcul d’un chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 12.4 Exemples de politiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 12.5 Choix de l’action avec une position incertaine . . . . . . . . . . . . . . . . . . . . 162 12.6 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 Index 164 Bibliographie 165 Robotique Mobile - david.filliat@ensta-paristech.fr 8CHAPITRE 1. INTRODUCTION Chapitre 1 Introduction 1.1 Robot Mobile La robotique est un très bon exemple de domaine pluri-disciplinaire qui implique de nombreuses thématiques telles que la mécanique, la mécatronique, l’électronique, l’automatique, l’informatique ou l’intelligence artificielle. En fonction du domaine d’origine des auteurs, il existe donc diverses définitions du terme robot, mais elles tournent en général autour de celle-ci : Un robot est une machine équipée de capacités de perception, de décision et d’action qui lui permettent d’agir de manière autonome dans son environnement en fonction de la perception qu’il en a. FIGURE 1.1 – Schéma des interactions d’un robot avec son environnement. Selon les approches, un modèle interne de l’environnement peut être utilisé ou non. Cette définition s’illustre par un schéma classique des interactions d’un robot avec son environnement (Figure 1.1). Les différentes notions que nous présenterons dans ce cours sont essentiellement issues de cette vision de la robotique, très orientée sur l’Intelligence Artificielle, qui 9 Robotique Mobile - david.filliat@ensta-paristech.fr1.2. OBJECTIFS DU COURS place au centre des préoccupations l’enchaînement de ce cycle Perception/Décision/Action . La manière dont un robot gère ces différents éléments est définie par son architecture de contrôle, qui la plupart du temps va faire appel à un modèle interne de l’environnement qui lui permettra de planifier ses actions à long terme. 1.2 Objectifs du cours L’objectif de ce cours est de fournir un aperçu des problèmes de la robotique mobile et des solutions actuelles. Ce cours se veut proche de la recherche, en présentant des méthodes apparues dans les dernières années, mais présente également les notions de base nécessaires à leur compréhension, ainsi qu’un panorama de techniques classiques dont la portée va au delà de leur application en robotique mobile. La lecture des nombreuses références à des articles scienti- fiques ou à des ouvrages de référence (la plupart du temps en anglais) n’est évidement pas utile pour la compréhension du cours, mais doit permettre d’approfondir des points particuliers hors de la portée de ce cours. La robotique mobile est un domaine dans lequel l’expérience pratique est particulièrement illustratrice et importante pour la compréhension des problèmes. Au delà des méthodes présentée dans ce texte, les travaux dirigés ou le projet pratique associés que réalisent les étudiants apporteront également leur lot de connaissances irremplaçables. 1.3 (Très) Bref aperçu historique FIGURE 1.2 – La tortue de Grey Walter (nommée “machina speculatrix” et surnommée Elsie) et une illustration de sa trajectoire pour rejoindre sa niche. Le terme de robot apparaît pour la première fois dans une pièce de Karel Capek en 1920 : Rossum’s Universal Robots. Il vient du tchèque ’robota’ (∼ servitude) et présente une vision des robots comme serviteurs dociles et efficaces pour réaliser les taches pénibles mais qui déjà vont se rebeller contre leurs créateurs. Robotique Mobile - david.filliat@ensta-paristech.fr 10CHAPITRE 1. INTRODUCTION La Tortue construite par Grey Walter dans les année 1950 (Figure 1.2), est l’un des premiers robots mobiles autonomes. Grey Walter n’utilise que quelques composants analogiques, dont des tubes à vide, mais son robot est capable de se diriger vers une lumière qui marque un but, de s’arrêter face à des obstacles et de recharger ses batteries lorsqu’il arrive dans sa niche. Toutes ces fonctions sont réalisées dans un environnement entièrement préparé, mais restent des fonctions de base qui sont toujours des sujets de recherche et de développement technologiques pour les rendre de plus en plus génériques et robustes. FIGURE 1.3 – A gauche : Robot "Beast" de l’université John Hopkins dans les années 1960. A droite : Le robot Shakey de Stanford en 1969 a été une plate-forme de démonstration des recherches en intelligence artificielle. Dans les années 60, les recherches en électronique vont conduire, avec l’apparition du transistor, à des robots plus complexes mais qui vont réaliser des tâches similaires. Ainsi le robot "Beast" (Figure 1.3) de l’université John Hopkins est capable de se déplacer au centre des couloirs en utilisant des capteurs ultrason, de chercher des prises électriques (noires sur des murs blanc) en utilisant des photo-diodes et de s’y recharger. Les premier liens entre la recherche en intelligence artificielle et la robotique apparaissent à Stanford en 1969 avec Shakey (Figure 1.3). Ce robot utilise des télémètres à ultrason et une caméra et sert de plate-forme pour la recherche en intelligence artificielle, qui à l’époque travaille essentiellement sur des approches symboliques de la planification. La perception de l’environnement, qui à l’époque est considérée comme un problème séparé, voire secondaire, se révèle particulièrement complexe et conduit là aussi à de fortes contraintes sur l’environnement. Ces développements de poursuivent avec le Stanford Cart dans la fin des années 1970, avec notamment les premières utilisations de la stéréo-vision pour la détection d’obstacles et la modélisation 11 Robotique Mobile - david.filliat@ensta-paristech.fr1.3. (TRÈS) BREF APERÇU HISTORIQUE FIGURE 1.4 – Le Stanford Cart date de la fin des années 1970. Le robot Hilare du LAAS a été construit en 1977. de l’environnement. En France, le robot Hilare est le premier robot construit au LAAS, à Toulouse (Figure 1.4). Une étape importante est à signaler au début des années 1990 avec la mise en avant de la robotique réactive, représentée notamment par Rodney Brooks. Cette nouvelle approche de la robotique, qui met la perception au centre de la problématique, a permis de passer de gros robots très lents à de petits robots (Figure 1.5), beaucoup plus réactifs et adaptés à leur environnement. Ces robots n’utilisent pas ou peu de modélisation du monde, problématique qui s’est avérée être extrêmement complexe. FIGURE 1.5 – Genghis, développé par Rodney Brooks au MIT au début des années 1990. Ces développements ont continué et l’arrivée sur le marché depuis les années 1990 de platesformes intégrées telles que le pioneer de la société Mobile Robots a permis à de très nombreux laboratoires de travailler sur la robotique mobile et à conduit à une explosion de la diversité des thèmes de recherche. Ainsi, même si les problèmes de déplacement dans l’espace et de moRobotique Mobile - david.filliat@ensta-paristech.fr 12CHAPITRE 1. INTRODUCTION délisation de l’environnement restent difficiles et cruciaux, des laboratoires ont pu par exemple travailler sur des approches multi-robot, la problématique de l’apprentissage ou sur les problèmes d’interactions entre les hommes et les robots. 1.4 Exemples d’applications Aujourd’hui, le marché commercial de la robotique mobile est toujours relativement restreint en dehors des robots aspirateurs vendus à plusieurs millions d’exemplaires. Cependant, il existe de nombreuses perspectives de développement qui en feront probablement un domaine important dans le futur. Les applications des robots peuvent se trouver dans de nombreuses activités "ennuyeuses, salissantes ou dangereuses" (3 D’s en anglais pour Dull, Dirty, Dangerous), mais également pour des applications ludiques ou de service, comme l’assistance aux personnes âgées ou handicapées. FIGURE 1.6 – Exemples de robots commerciaux ou de recherche. 13 Robotique Mobile - david.filliat@ensta-paristech.fr1.5. POUR ALLER PLUS LOIN Parmi les domaines d’applications possibles de la robotique, citons : – La robotique de service (hôpital, bureaux, maison), – La robotique de loisir (jouets, robot ’compagnon’), – La robotique industrielle ou agricole (entrepôts logistiques, récolte de productions agricoles, mines), – La robotique en environnement dangereux (spatial, industriel, militaire, catastrophes naturelles). A cela, s’ajoute a l’heure actuelle des nombreuses plates-formes conçues essentiellement pour les laboratoires de recherche. La figure 1.6 montre quelques exemples de robots existants. 1.5 Pour aller plus loin Les illustrations de ce chapitre sont, entre autre, tirées du livre "ROBOT : mere machine to transcendent mind" de Hans Moravec [102], dont les illustrations sont disponibles en ligne 1 . Le livre de Daniel Ichbiah "Robots, Genèse d’un peuple artificiel" [71] donne également un bon aperçu "grand public" de la robotique et de sont histoire 2 . 1. http ://www.frc.ri.cmu.edu/ hpm/book98/ 2. http ://ichbiah.online.fr/pagerobots.htm Robotique Mobile - david.filliat@ensta-paristech.fr 14Première partie Les bases de la navigation 15 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons les différentes catégories de méthodes de navigation utilisables pour un robot mobile et les architectures de contrôle associées. Nous présentons ensuite les informations qu’un robot pourra utiliser pour se déplacer, ainsi que les capteurs et les platesformes couramment utilisées en robotique. 17 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 18CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION Chapitre 2 Les différents types de navigation 2.1 Les stratégies de navigation Les stratégies de navigation permettant à un robot mobile de se déplacer pour rejoindre un but sont extrêmement diverses, de même que les classifications qui peuvent en être faites. Afin de situer les différentes méthodes de navigation que nous allons étudier dans un contexte géné- ral, nous reprenons ici une classification établie par Trullier et al. [138, 140]. Cette classification a été établie en prenant en compte à la fois les stratégies des robots et des animaux. Elle pré- sente l’avantage de distinguer les stratégies sans modèles internes et les stratégies avec modèle interne. Cette classification comporte cinq catégories, de la plus simple à la plus complexe : – Approche d’un objet : cette capacité de base permet de se diriger vers un objet visible depuis la position courante du robot. Elle est en général réalisée par une remontée de gradient basée sur la perception de l’objet, comme dans l’exemple célèbre des véhicules de Valentino Braitenberg [19] (voir section 5.1) qui utilisent deux capteurs de lumière pour atteindre ou fuir une source lumineuse. Cette stratégie utilise des actions réflexes, dans lesquelles chaque perception est directement associée à une action. C’est une stratégie locale, c’est-à-dire fonctionnelle uniquement dans la zone de l’environnement pour laquelle le but est visible. – Guidage : cette capacité permet d’atteindre un but qui n’est pas un objet matériel directement visible, mais un point de l’espace caractérisé par la configuration spatiale d’un ensemble d’objets remarquables, ou amers, qui l’entourent ou qui en sont voisins. La straté- gie de navigation, souvent une descente de gradient également, consiste alors à se diriger dans la direction qui permet de reproduire cette configuration. Cette capacité semble utilisée par certains insectes, comme les abeilles [26], et a été utilisée sur divers robots [54, 86, 58, 114] (voir sections 5.2 et 5.3). Cette stratégie utilise également des actions ré- flexes et réalise une navigation locale qui requiert que les amers caractérisant le but soient visibles. – Action associée à un lieu : cette capacité est la première capacité réalisant une navigation globale, c’est-à-dire qui permette de rejoindre un but depuis des positions pour lesquelles 19 Robotique Mobile - david.filliat@ensta-paristech.fr2.1. LES STRATÉGIES DE NAVIGATION a D A a a a a a a a a a a Direction à prendre pour atteindre le lieu A Trajectoire suivie par l’animat Obstacles Lieux mémorisés Zone inexplorée FIGURE 2.1 – Action associée à un lieu. En chaque lieu, représenté par un cercle, l’action à accomplir pour rejoindre le but A est représentée par une flèche indiquant la direction à suivre à partir de ce lieu. Cette stratégie permet de rejoindre un but distant dans l’environnement mais repose sur des chemins figés. Dans cet exemple, le chemin joignant le lieu D au lieu A et passant par la droite de l’obstacle a été appris. Rejoindre le lieu A depuis le lieu D ne pourra alors être réalisé que par ce chemin. Le raccourci empruntant le chemin de gauche, par exemple, est inutilisable. ce but ou les amers qui caractérisent son emplacement sont invisibles (par exemple [114]. Elle requiert une représentation interne de l’environnement qui consiste à définir des lieux comme des zones de l’espace dans lesquelles les perceptions restent similaires, et à associer une action à effectuer à chacun de ces lieux (cf. figure 2.1). L’enchaînement des actions associées à chacun des lieux reconnus définit une route qui permet de rejoindre le but. Ces modèles permettent donc une autonomie plus importante mais sont limités à un but fixé. Une route qui permet de rejoindre un but ne pourra en effet pas être utilisée pour rejoindre un but différent. Changer de but entraînera l’apprentissage d’une nouvelle route, indépendante des routes permettant de rejoindre les autres buts. B D A Possibilité de passer d’un lieu à un autre Trajectoire suivie par l’animat Obstacles Lieux mémorisés Zone inexplorée FIGURE 2.2 – Navigation topologique. Cette stratégie permet de mémoriser un ensemble de lieux et les possibilités de passer de l’un à l’autre, indépendamment de tout but. Pour rejoindre un but, il faut alors une étape de planification qui permet de rechercher, parmi tous les chemins possibles, le chemin rejoignant le but. Dans notre exemple, le chemin le plus court entre D et A peut alors être calculé, mais uniquement parmi les lieux et les chemins déjà connus. Cette stratégie permet, par exemple, de contourner l’obstacle par la gauche mais ne permet pas de le traverser en ligne droite de D à A. Robotique Mobile - david.filliat@ensta-paristech.fr 20CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION – Navigation topologique : cette capacité est une extension de la précédente qui mémorise dans le modèle interne les relations spatiales entre les différents lieux. Ces relations indiquent la possibilité de se déplacer d’un lieu à un autre, mais ne sont plus associées à un but particulier. Ainsi le modèle interne est un graphe qui permet de calculer différents chemins entre deux lieux arbitraires. Ce modèle ne permet toutefois que la planification de déplacements parmi les lieux connus et suivant les chemins connus (cf. figure 2.2). B D A Trajectoire suivie par l’animat Possibilité de passer d’un lieu à un autre déduite de leur position relative x y Obstacles Lieux mémorisés Possibilité de passer d’un lieu à un autre Zone inexplorée FIGURE 2.3 – Navigation métrique. Cette stratégie permet de calculer le chemin le plus court entre deux lieux mémorisés, permettant même de planifier des raccourcis au sein de zones inexplorées de l’environnement. Pour cela, la carte mémorise la position métrique relative de chacun des lieux visités par le robot. Ainsi il est possible de prévoir un déplacement entre deux lieux, même si la possibilité de ce déplacement n’est pas enregistrée dans la carte. Dans cet exemple, cette stratégie permet de d’aller du lieu A au lieu D en traversant la zone inexplorée. – Navigation métrique : cette capacité est une extension de la précédente car elle permet au robot de planifier des chemins au sein de zones inexplorées de son environnement. Elle mémorise pour cela les positions métriques relatives des différents lieux, en plus de la possibilité de passer de l’un à l’autre. Ces positions relatives permettent, par simple composition de vecteurs, de calculer une trajectoire allant d’un lieu à un autre, même si la possibilité de ce déplacement n’a pas été mémorisée sous forme d’un lien (cf. figure 2.3). Les modèles des trois premières catégories utilisent des actions réflexes pour guider le robot et se différencient essentiellement par le type de perceptions utilisées pour déclencher ces actions. Ils se regroupent sous le terme générique de navigation réactive dont nous parlerons dans la partie II. Ils peuvent être très simple, ne nécessitent pas de modèle global de l’environnement mais ont un domaine d’application souvent restreint. Dans le monde vivant, ces stratégies sont très répandues, notamment chez les insectes. Les comportements de ce type restent toutefois essentiels dans les robots modernes car, du fait de leur simplicité, il sont généralement exécutés très rapidement et ils permettent de réaliser des taches de bas-niveau, comme l’évitement des obstacles imprévus, essentielles à la sécurité d’un robot. Les modèles des deux dernières catégories autorisent pour leur part une navigation globale et permettent de rejoindre un but arbitraire au sein de l’environnement. Ils s’appuient pour cela sur un modèle interne du monde, une carte, qui supporte une planification. Ce modèle interne mémorise donc la structure spatiale de l’environnement, indépendamment d’un but précis. Cha- 21 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE cune des positions mémorisées dans ce modèle interne peut alors être utilisée comme but par le processus de planification dont le rôle est de calculer une route vers ce but. Ce sont ces deux stratégies qui sont regroupées sous le terme de navigation par carte, objet du chapitre III . Une telle représentation interne est naturelle pour les êtres humains, pour lesquels des processus cognitifs de haut niveau sont utilisés pour créer et utiliser une carte. Ces processus de haut niveau sont toutefois très difficile à copier pour un robot réel qui ne dispose que de systèmes rudimentaires de perception et de traitement des informations en comparaison avec un homme. Par exemple, en environnement urbain, le processus de mise en correspondance de la carte avec l’environnement réel afin de déterminer sa position fait souvent appel, pour l’homme, à la lecture du nom des rues inscrit sur les bâtiments, ce qui est relativement difficile à automatiser, à cause de la diversité des configurations dans lesquelles peuvent ce trouver ces noms. On notera au passage que l’homme a quasiment toujours recours à des aménagements particuliers de l’environnement pour connaitre sa position, par exemple celui qui consiste à nommer les rues ou à lancer des satellites dans l’espace pour bénéficier du GPS. Le système de navigation idéal pour un robot mobile sera probablement celui qui sera capable de tirer partie de toutes ces informations, qui ne lui étaient pas destinées à l’origine. L’utilisation de cartes par un robot mobile comme le font les hommes est probablement hors de notre portée pendant quelques années, cependant il existe également des preuves de l’existence de représentations internes similaires à de telles cartes chez les animaux, par exemple chez les rats. Ces représentations sont identifiables au niveau neurologiques dans certaines parties de leur cerveau, notamment dans l’hippocampe. Cela montre que des cartes sont utilisée par des êtres vivants, sans le support de concept abstraits tels que les utilisent les humains. Ce type de carte qui fait appel à des structures neurologiques de base et probablement à des perceptions relativement simples, est un paradigme intéressant pour les robots mobiles. En robotique mobile, comme pour l’homme ou certains animaux, l’utilisation de cartes est quasiment indispensable pour permettre d’effectuer des tâches de navigation dans des conditions environnementales complexes, qui ne sont pas spécialement adaptées pour le robot. La construction et l’utilisation de telles cartes posent cependant de nombreux problèmes, notamment pour garantir l’adéquation entre la carte et le monde réel. Pour cette raison, la plupart des robots trouvent aujourd’hui un compromis entre une approche réactive et une approche utilisant une carte afin de bénéficier de la rapidité et de la robustesse de la première et de la capacité de déplacement à long terme de la seconde. 2.2 Les architectures de contrôle Un robot est un système complexe qui doit satisfaire à des exigences variées et parfois contradictoires. Un exemple typique pour un robot mobile est l’arbitrage qui doit être fait entre l’exécution la plus précise possible d’un plan préétabli pour atteindre un but et la prise en compte d’éléments imprévus, tels que les obstacles mobiles. Ces arbitrages, que ce soit au niveau du choix de stratégie, ou au niveau de l’utilisation des capteurs, des effecteurs ou des ressources de calcul, sont réglés par un ensemble logiciel appelé architecture de contrôle du robot. Cette architecture permet donc d’organiser les relations entre les trois grandes fonctions que sont la perception, la Robotique Mobile - david.filliat@ensta-paristech.fr 22CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION décision et l’action . Nous pouvons reprendre la définition de Ronald Arkin [4] de l’art de concevoir de telles architectures : Robotic architecture is the discipline devoted to the design of highly specific and individual robots from a collection of common software building blocks. Selon cette définition une architecture doit donc être conçue pour un robot précis, mais en utilisant des modules génériques. De manière plus générale il existe également des règles de conception relativement générales qui permettent de réaliser ces implémentations. En fonction de ces règles, les architectures de contrôle peuvent être classées en trois grandes catégories que nous détaillerons par la suite : les contrôleurs hiérarchiques, les contrôleurs réactifs et les contrôleurs hybrides (Figure 2.4). Comme le précise cette définition, toutes ces architectures ne diffèrent pas forcement par les méthodes élémentaires employées mais plutôt par leur agencement et leur relations. A B C PERCEPTION PLANIFICATION ACTION PERCEPTION ACTION PLANIFICATION PERCEPTION ACTION FIGURE 2.4 – Illustration des architectures classiques des contrôleurs pour les robots mobiles : Hiérarchique (A), Réactive (B) et Hybride (C) (Voir le texte pour la description détaillée). 2.2.1 Contrôleurs Hiérarchiques Historiquement, les premiers robots mobiles dérivés des recherches en intelligence artificielle utilisaient des contrôleurs hiérarchiques (cf. figure 2.4 A) dont le fonctionnement repose essentiellement sur la capacité de décision travaillant sur un modèle du monde supposé quasiment-parfait. Ces architectures fonctionnent selon un cycle rigide de modélisation de l’environnement, planifi- cation des actions au sein de cette représentation, puis exécution du plan. La capacité de décision était issue des premiers travaux en intelligence artificielle et reposait essentiellement sur des traitements de données symboliques. Ces architectures ont rapidement montré leurs limites et leur incapacité à fonctionner dans un environnement qui ne soit pas statique et simplifié à l’extrême. L’essentiel des problèmes de ces architectures provient de l’utilisation d’un modèle interne central qui est le seul pris en compte pour guider le robot. Elles se trouvent confrontées à tout les problèmes des premiers développements de l’intelligence artificielle symbolique. 23 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE Ces architectures supposent premièrement qu’un modèle informatique du monde puisse représenter toutes les informations pertinentes pour le déplacement du robot. Or un tel modèle ne peut être suffisant dans un environnement dynamique car au moment de la réalisation de l’action l’environnement peut avoir suffisamment changé pour que la décision ne soit plus valide. Ce problème était particulièrement crucial au début de la robotique mobile ou les capacités de calcul limitées entraînaient des temps de planification de l’ordre de plusieurs dizaines de minutes. Mais l’augmentation des capacités de calcul ne suffit pas à résoudre ce problème qui ne permet pas de gérer un environnement de travail réaliste. C’est un problème intrinsèque lié d’une part à la trop grande longueur de la boucle qui relie la perception à l’action et d’autre part à l’invalidité de l’hypothèse de monde clos faite en intelligence artificielle 1 . De plus, ces architectures permettent peu de contrôle sur l’exécution des actions. En effet, une fois l’action choisie, elle est exécutée en supposant le modèle du monde correct et il n’y a pas de retour direct de la perception sur l’exécution de l’action. Les écarts modèles/environnement ne peuvent être pris en compte que via un nouveau cycle perception/modélisation/planification, ce qui, par définition, est très peu réactif et conduit rapidement à de graves problèmes. 2.2.2 Contrôleurs réactifs Rodney Brooks [20] a proposé une solution radicale à tous ces problèmes sous la forme d’une architecture réactive (cf. figure 2.4 B). Dans cette architecture, un ensemble de comportements réactifs, fonctionnant en parallèle, contrôle le robot sans utiliser de modèle du monde. Cette architecture supprime évidemment les problèmes dûs aux différences entre la réalité, d’une part, et le modèle de l’environnement du robot, d’autre part, mais limite clairement les tâches que peut effectuer le robot (cf. [77] pour une critique). En effet, sans représentation interne de l’état de l’environnement, il est très difficile de planifier une suite d’actions en fonction d’un but à atteindre. Les robots utilisant cette architecture sont donc en général efficaces pour la tâche précise pour laquelle ils ont été conçus, dans l’environnement pour lequel ils ont été prévus, mais sont souvent difficiles à adapter à une tâche différente. Les réussites de ces architectures sont liées au couplage direct entre la perception et l’action qui permet une prise en compte très rapide des phénomènes dynamiques de l’environnement. En donc une bonne robustesse dans des environnements complexes. Comme nous l’avons mentionné, ces architectures sont en général basées sur plusieurs comportements : évitement d’obstacles, déplacement aléatoire, déplacement vers un but, fuite d’un point... Pour guider le robot, il faut donc choisir à chaque instant lequel de ces comportements activer. Ce problème est connu dans la litérature scientifique sous le nom de sélection de l’action. La solution proposée par Brooks, l’architecture de subsomption [21] est devenue un classique et utilise une hiérarchie des comportements qui se déclenchent donc selon un ordre de priorité en fonction des perceptions du robot. 1. L’hypothèse de monde clos dit que la représentation symbolique d’un problème va être suffisante pour pouvoir représenter toutes les conséquences des actions réalisées dans ce monde. Cela s’avère impossible en pratique pour des problèmes autre que des problèmes jouets (par exemple un monde de cubes posés sur une table). Robotique Mobile - david.filliat@ensta-paristech.fr 24CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION 2.2.3 Contrôleurs hybrides La plupart des contrôleurs actuellement utilisés choisissent une solution intermédiaire entre ces deux approches sous la forme d’une architecture hybride [104, 3] (cf. figure 2.4 C). Cette architecture se compose de deux niveaux. Le premier est chargé des tâches de navigation de haut niveau, telles que la localisation, la cartographie et la planification. Pour cela, il s’appuie sur un second niveau réactif qui est chargé d’exécuter les commandes avec le plus de précision possible et de gérer les éléments non modélisés de l’environnement tels que les obstacles inconnus ou dynamiques. L’action conjointe de ces deux niveaux permet de réagir rapidement face aux variations imprévues de l’environnement, tout en permettant la réalisation d’actions planifiées à plus long terme. Le bas niveau de ces architectures peut être réalisé sous forme de comportements, tels que ceux utilisés dans les architectures réactives. Ces comportements sont des boucles sensorimotrices qui relient les action aux perceptions avec un phase de décision très courte, qui assure la réactivité. Dans le même temps, les informations sensorielles sont utilisées par le haut niveau dans une boucle sensorimotrice à une échelle de temps beaucoup plus longue. C’est la mise en parallèles de ces deux échelles de temps qui fait la force de ces architectures. Les exemples d’architectures hybrides foisonnent (4D/RCS, 3T, Harpic...) car de très nombreux laboratoires et organismes travaillant sur la robotique ont développé leur architecture de ce type. 2.2.4 Pour aller plus loin Deux livres intéressants sur le sujet : – Introduction to AI Robotics de Robin Murphy, MIT Press – Behavior based robotics de Ronald C. Arkin, MIT Press 25 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE Robotique Mobile - david.filliat@ensta-paristech.fr 26CHAPITRE 3. LES SOURCES D’INFORMATION Chapitre 3 Les sources d’information Tous les capteurs utilisés en robotique mobile fournissent des informations appartenant à l’une de deux grandes catégories d’informations : les informations proprioceptives et les informations extéroceptives. – Les informations proprioceptives sont des informations internes au robot qui le renseignent, dans le cas de la navigation, sur son déplacement dans l’espace. Ces informations peuvent provenir de la mesure de la rotation de ses roues ou de la mesure de l’accélération grâce à une centrale inertielle. Un processus d’intégration permet alors, en accumulant ces informations au cours du temps, d’estimer la position relative de deux points par lesquels le robot est passé. – Les informations extéroceptives ou plus simplement les perceptions, sont des informations caractéristiques d’une position que le robot peut acquérir dans son environnement. Ces informations peuvent être de nature très variée. Par exemple, un robot peut mesurer la distance des obstacles avec des capteurs infrarouges ou utiliser une caméra. Ces deux sources d’information ont des propriétés opposées que nous détaillons dans les deux sections suivantes. 3.1 Informations proprioceptives Les informations proprioceptives renseignent sur le déplacement du robot dans l’espace. Elles constituent donc une source d’information très importante pour la navigation. Cependant, la pré- cision de cette information se dégrade continuellement au cours du temps, la rendant inutilisable comme seule référence à long terme. Cette dégradation continuelle provient de l’intégration temporelle des mesures effectuées par les capteurs internes. En effet, chaque capteur produit une mesure bruitée du déplacement instantané, de la vitesse ou de l’accélération du robot. Ce bruit, via le processus d’intégration qui a pour but d’estimer le déplacement, conduit inévitablement à une erreur croissante. Malgré ce défaut important, les informations proprioceptives ont l’avantage de dépendre assez peu des conditions environnementales qui perturbent fortement les informations perceptives. La vision, par exemple sera fortement perturbée si l’environnement est plongé dans le noir, mais 27 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES les informations proprioceptives fourniront une information identique, que l’environnement soit éclairé ou non. De plus, comme nous le verrons dans la section suivante, si deux lieux identiques du point de vue des perceptions se trouvent dans l’environnement, les informations perceptives ne permettent pas de les différencier. Les informations proprioceptives sont alors le seul moyen de les distinguer. En robotique, cette information a de plus l’avantage de la simplicité de manipulation. En effet, le processus d’intégration fournit directement une estimation de la position du robot dans un espace euclidien doté d’un repère cartésien. Dans ce type de repère, tous les outils de la géomé- trie mathématique sont utilisables. Ils permettent, par exemple, d’effectuer des calculs de chemin relativement simples lorsque l’on connaît la position du but et des obstacles. 3.2 Informations extéroceptives Les informations extéroceptives, ou plus simplement les perceptions , fournissent un lien beaucoup plus fort entre le robot et son environnement. En effet, les informations proprioceptives fournissent des informations sur le déplacement du robot, alors que les informations perceptives fournissent des informations directement sur la position du robot dans l’environnement. Ces informations assurent un ancrage dans l’environnement, en permettant de choisir des perceptions qui peuvent être utilisées comme points de repère. Ces points de repère sont indépendants des déplacements du robot et pourront être reconnus quelle que soit l’erreur accumulée par les données proprioceptives. La reconnaissance de ces points est évidemment soumise à une incertitude, mais pas à une erreur cumulative, ce qui les rend utilisables comme référence à long terme. 3.2.1 Variabilité perceptuelle Pour être utile, un système de perception doit donc permettre de distinguer le plus de lieux possible. Pour cela, il doit être capable de distinguer le plus de détails possibles, afin de faire la différence entre deux lieux différents mais d’apparences similaires. Or l’augmentation de cette capacité à distinguer de petites variations dans l’environnement rend le système sensible au problème de la variabilité perceptuelle , c’est à dire au changement de perception au cours du temps pour un lieu donné. Cette variabilité peut être due au bruit inhérent au processus de mesure où à des variations de l’environnement non significatives pour le problème de navigation qui nous concerne, par exemple le changement de luminosité. Pour s’affranchir de ce problème, il faut en général mettre en place des processus de traitement des perceptions qui permettront de ne pas dépendre de ces variations et de correctement identifier un lieu donné. 3.2.2 Perceptual aliasing En cherchant à limiter la dépendance aux variations de l’environnement, le concepteur de robot aboutit en général au problème du perceptual aliasing ou d’Ambiguïté des perceptions. Ce problème désigne l’incapacité d’un système de perception à distinguer de manière unique tous Robotique Mobile - david.filliat@ensta-paristech.fr 28CHAPITRE 3. LES SOURCES D’INFORMATION les lieux d’un environnement. Cette situation est très courante lorsque les robots utilisent des capteurs de distance aux obstacles tels que les capteurs à ultrasons. Dans un environnement intérieur de tels capteurs sont, par exemple, capables de mesurer la position du robot par rapport à un coin, mais ne fournissent aucune information sur la position le long d’un couloir rectiligne. Toutes les positions le long d’un couloir correspondent alors à des perceptions identiques. Il est possible d’utiliser des capteurs qui fournissent des données plus précises ou plus discriminantes. Dans le cas des capteurs de distance, il est, par exemple, possible d’utiliser un télémètre laser qui pourra distinguer les renfoncements des portes et sera ainsi plus précis. Mais même en utilisant des capteurs plus informatifs, comme une caméra, ce problème finit par apparaitre lorsque la taille de l’environnement augmente. Il existe toujours une limite matérielle ou logicielle au delà de laquelle l’identification unique de toutes les positions d’un environnement est impossible. Il n’est donc pas possible, en général, de régler complètement le problème du perceptual aliasing, mais seulement d’en repousser l’apparition. Il faut donc bien étudier les capteurs nécessaires en fonction des traitements réalisables et de l’environnement visé pour limiter ce problème. 3.2.3 Utilisation directe Les capteurs sur un robot mobile peuvent être de nature très variée et être utilisés de nombreuses façons différentes. Il est toutefois possible de distinguer deux utilisations distinctes de leurs données pour la navigation. Ces deux utilisations dépendent de l’utilisation ou non d’un modèle métrique associé au capteur, modèle qui permet de traduire les valeurs brutes du capteur en informations sur la géométrie de l’environnement. Ce modèle permet notamment de prévoir la variation des mesures renvoyées par ce capteur en fonction du déplacement du robot. Les perceptions peuvent être utilisées de manière directe, sans aucun modèle métrique, pour comparer directement deux positions en examinant les perceptions recueillies en ces lieux. Cette méthode ne permet cependant que de reconnaître des lieux de l’environnement préalablement explorés par le robot. Sans modèle de la variation des capteurs, il est en effet impossible de prévoir les valeurs que les capteurs relèveront dans un lieu inexploré, même s’il est proche ou entouré de lieux connus. Pour une telle utilisation directe, seules deux procédures permettant, d’une part, de mémoriser une perception et, d’autre part, de comparer deux perceptions, sont alors nécessaires. Ces procédures peuvent être mises en œuvre à partir de tous les types de capteurs existants. Il est, par exemple, possible d’utiliser la couleur dominante de l’environnement autour du robot, la température (en supposant qu’elle caractérise une zone de l’environnement, comme pour une chambre froide), la force du signal wifi ou le temps de retour d’une onde sonore quand elle est envoyée dans une direction donnée. La seule propriété utilisée est la constance des valeurs mesurées par un capteur pour un lieu donné. Cette constance permet de reconnaître un lieu déjà visité ou d’identifier un lieu nouveau dans l’environnement. 29 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES 3.2.4 Utilisation d’un modèle métrique La seconde méthode d’utilisation d’un capteur consiste à utiliser un modèle métrique associé . Un tel modèle permet de traduire les informations données par le capteur dans un espace métrique qui est en général le même que celui utilisé pour estimer la position du robot grâce à l’odométrie. Il est ainsi possible d’estimer la position d’objets de l’environnement par rapport au robot, et ainsi de prévoir les données que ce capteur relèvera pour des positions différentes du robot. L’utilisation d’un tel modèle n’est toutefois possible que pour certains capteurs. Il est, par exemple, possible d’utiliser un tel modèle associé à un capteur à ultrasons, à un télémètre laser ou à une paire de caméras stéréoscopique, mais pas à un capteur d’odeur. a b FIGURE 3.1 – Un modèle métrique pour un capteur permet deux utilisations de ses données. La première est similaire à celle qui traite de telles données sans modèle métrique et requiert la simple mémorisation de ce qui est perçu en un lieu donné (Partie a). La seconde utilise ces données pour reconstituer les objets rencontrés dans l’environnement, objets qui pourront tous être mémorisés dans un cadre de référence commun, indépendamment de la position depuis laquelle ils ont été perçus (Partie b). Avec un tel modèle, les valeurs des capteurs peuvent être utilisées simplement pour caractériser chaque lieu atteint par le robot (cf. figure 3.1a). La méthode est alors la même que celle mise en place quand les capteurs sont utilisés sans modèle métrique. L’utilisation d’un modèle mé- trique présente toutefois l’avantage que les informations recueillies ont une sémantique plus forte et une certaine indépendance au point de vue du robot. En effet, ces informations caractérisent la structure spatiale locale de l’environnement, en plus de la simple apparence de l’environnement depuis la position du robot. Cette structure spatiale peut alors être utilisée lors de la comparaison de différents lieux. Il est par exemple possible de reconnaître un couloir en fonction de sa largeur, indépendamment de la position du robot dans ce couloir. En effet, sans utilisation de modèles métriques, deux perceptions recueillies en des positions différentes du couloir seront simplement différentes. En utilisant un modèle métrique, il est possible de calculer la largeur du couloir, par exemple, à partir des données recueillies et ainsi de déterminer si ces deux positions peuvent correspondre au même couloir. Cependant, grâce à un modèle métrique, les perceptions peuvent être utilisées de manière différente. En effet, dans l’utilisation précédente, sans modèle métrique, elles sont utilisées pour Robotique Mobile - david.filliat@ensta-paristech.fr 30CHAPITRE 3. LES SOURCES D’INFORMATION y x a b c A1 I1 A2 A3 ? I2 A3 ? A3 I1 A1 A2 I2 ? ? Environnement Odométrie Modèle métrique Pas de modèle métrique Odométrie Mémorisation directe Modèle métrique Cadre de référence commun FIGURE 3.2 – Un modèle métrique des perceptions permettent d’inférer les valeurs qui devraient être perçues pour des positions encore non visitées. Dans cet exemple, les données A1 et A2 sont perçues en deux positions reliées par des données proprioceptives I1 (partie a). L’utilisation d’un modèle métrique permet de fusionner ces informations dans un cadre de référence commun où des objets sont représentés, ici deux murs orthogonaux (partie b, haut). Sans modèle métrique, ces données peuvent seulement être mémorisées de manière séparée (partie b, bas). Dans le cas de l’utilisation d’un modèle métrique, les données peuvent ensuite être utilisées pour estimer la perception A3 pour une nouvelle position reliée à la pré- cédente par les données proprioceptives I2. Ici, le modèle permet d’inférer que les données A3 correspondent à un coin de murs (partie c, haut). Sans un tel modèle, seules les positions visitées peuvent être reconnues, et aucune inférence ne peut être faite pour les positions non visitées (partie c, bas). caractériser l’apparence de l’environnement depuis un lieu. Cette caractérisation ne permet pas d’identifier individuellement des objets distants du robot qui pourraient servir de points de repères, les amers. L’utilisation d’un modèle métrique permet l’identification de tels points (cf. figure 3.1b). La perception de ces amers permet alors, en retour, d’obtenir des informations sur la position du robot. Cette utilisation des perceptions offre l’avantage supplémentaire de permettre au robot d’inférer les valeurs que mesureront les capteurs dans des positions différentes, mais voisines de sa position courante (cf. figure 3.2). Par exemple, si un robot perçoit un mur à cinq mètres devant lui, il peut prédire qu’en avançant d’un mètre, il percevra le mur à quatre mètres. Un autre moyen de présenter cette propriété est de dire que les perceptions seules permettent d’estimer la position métrique relative de deux lieux (cf. figure 3.3). Ainsi, si un robot perçoit deux fois un mur devant lui, d’abord à cinq mètres puis à quatre mètres, il pourra en déduire qu’il a avancé d’un mètre. Cette propriété permet au robot d’estimer sa position avec précision sur une part plus importante de son environnement et ne limite plus la localisation aux lieux déjà visités. Cet avantage est une conséquence directe de la fusion des informations proprioceptives et des perceptions au sein 31 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES d’une même représentation, qui permet le passage d’un type d’information à l’autre. A1 A2 I1 = 0 A1 A2 I1? A2 A1 a b c Environnement Modèle métrique Pas de modèle métrique Correspondance Correspondance DIFFERENT I1 I1 FIGURE 3.3 – Un modèle métrique des capteurs permet d’inférer la position relative I1 de deux lieux depuis lesquelles des perceptions A1 et A2 ont été réalisées (partie a). Cette estimation requiert d’abord la recherche d’un objet de l’environnement commun aux deux perceptions (partie b, haut). L’utilisation de cet objet commun rend alors possible l’estimation de la position relative I1 des deux lieux (partie c, haut). Sans modèle métrique, seule la similarité de deux perceptions peut être mesurée (partie b, bas). Il est alors seulement possible d’estimer si ces deux situations peuvent correspondre au même lieu ou non, c’est-à-dire si I1 est nulle ou non (partie c, bas). Toutefois, la mise au point d’un tel modèle métrique peut être difficile. La relation qui lie la valeur mesurée par un capteur à la position des objets du monde réel peut être, en effet, très complexe. Dans le cas des capteurs à ultrasons, par exemple, si un mur se trouve juste dans l’axe du capteur, sa distance est simplement mesurée par le temps mis par l’onde sonore pour revenir au capteur. Mais, dans le cas où le mur est fortement incliné par rapport au capteur, l’écho peut ne pas revenir en direction du capteur qui ne détectera alors aucun obstacle. Un autre problème vient de la texture des murs. Un mur recouvert de textile ou d’un matériau souple renverra les échos très différemment d’un mur de béton. En conséquence, pour une distance donnée, le capteur percevra des distances différentes suivant le matériau des murs. Ces deux exemples montrent que le modèle métrique associé à un capteur ne dépend pas que du capteur. Il dépend aussi fortement de propriétés locales de l’environnement qui sont difficiles ou impossibles à prendre en compte dans un modèle du capteur seul. Robotique Mobile - david.filliat@ensta-paristech.fr 32CHAPITRE 3. LES SOURCES D’INFORMATION 3.3 Fusion d’informations En résumé, les informations proprioceptives sont simples à utiliser, mais dérivent au cours du temps, tandis que les perceptions ne dérivent pas, mais souffrent des problèmes de variabilité perceptuelle et d’Ambiguïté. La solution pour résoudre ces problèmes est de fusionner ces deux types d’information. Il est par exemple possible d’utiliser les informations proprioceptives afin de distinguer deux positions physiquement différentes mais similaires pour le système perceptif. Ainsi deux lieux, dont la position relative mesurée par les données proprioceptives est non nulle, ne seront pas confondus. Cette solution est celle qui est mise en œuvre dans la majorité des systèmes de navigation, car elle permet d’utiliser les deux sources d’informations en limitant les défauts inhérents à chacune. Ainsi la dégradation progressive des informations proprioceptives est compensée par la reconnaissance de positions de l’environnement grâce aux perceptions. Inversement, le problème de perceptual aliasing est réglé par l’utilisation des données proprioceptives. Comme nous le verrons dans ce cours, il existe de nombreuses méthodes pour utiliser conjointement les deux sources d’informations. Ces méthodes diffèrent par leur capacité à utiliser de manière plus ou moins efficace les avantages des deux types d’informations. D’une manière gé- nérale, la qualité d’un système de navigation dépend fortement de cette capacité. 33 Robotique Mobile - david.filliat@ensta-paristech.fr3.3. FUSION D’INFORMATIONS Robotique Mobile - david.filliat@ensta-paristech.fr 34CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Chapitre 4 Matériels courants en robotique mobile 4.1 Les bases mobiles Nous présentons rapidement les différents types de bases mobiles utilisées en robotique, en nous focalisant sur les plateformes mobiles terrestres pour le milieu intérieur. Ce cours ne portant pas sur les méthodes de commande, nous ne rentrerons pas en détails dans les modèles cinématiques ou dynamiques associés. Nous ne parlerons pas non plus des effecteurs permettant au robot d’agir sur son environnement, tels que les bras articulés. 4.1.1 Holonomie En robotique, une plateforme est dite holonome lorsque que le nombre de degrés de libertés contrôlables est égal au nombre total de degrés de liberté. Pour un robot se déplaçant sur un plan, il y a 3 degrés de liberté (deux translations et une rotation). A partir d’une position donnée, une plateforme holonome devra donc pouvoir se déplacer en avant, sur le coté et tourner sur elle-même. Cette capacité permet de contrôler très simplement le robot car tous les déplacements imaginables sont réalisables, ce qui simplifie le problème de planification de trajectoire. De nombreuses plateformes simples ne sont pas holonomes. C’est par exemple le cas des voitures, ce qui oblige à manœuvrer pour réaliser certaines trajectoires. Par exemple, il est né- cessaire de faire un créneau pour réaliser un déplacement latéral. Ces contraintes devront donc être prises en compte lors de la planification de trajectoires. Nous allons cependant voir quelques mécanismes permettant d’obtenir des plateformes holonomes, ou s’en approchant. 4.1.2 Les plates-formes différentielles Une des configurations les plus utilisées pour les robots mobiles d’intérieur est la configuration différentielle qui comporte deux roues commandées indépendamment. Une ou plusieurs roues folles sont ajoutées à l’avant ou à l’arrière du robot pour assurer sa stabilité (Figure 4.1). Cette plate-forme est très simple à commander, puisqu’il suffit de spécifier les vitesses des deux roues, 35 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES et permet de plus au robot de tourner sur place. Cette possibilité permet de traiter dans certains cas le robot comme un robot holonome, ce qui va simplifier la planification de déplacement et la commande du robot. r l v ω ω1 FIGURE 4.1 – Exemple de plate-forme différentielle. Pioneer 2 DX de la société MobileRobots. Urban Robot de la société iRobot. L’estimation du déplacement par odométrie est également très simple à partir de la mesure des vitesses de rotation des deux roues ω1 et ω2. Les vitesses de translation v et de rotation ω sont en effet données par : v = ω1r +ω2r 2 ω = ω1r −ω2r 2l Ce type de plate-forme peut également être utilisé avec des chenilles ce qui fournit une capacité de franchissement de petits obstacles intéressante (Figure 4.1). Ces plates-formes peuvent ainsi être utilisées en extérieur ou dans des décombres. L’utilisation de chenilles conduit cependant à une odométrie très bruitée à cause du contact mal défini entre les chenilles et le sol qui glissent beaucoup, notamment lors des rotations. L’estimation de la direction par l’odométrie sur ce type de plates-formes est donc en général rapidement inutilisable. 4.1.3 Les plates-formes omnidirectionnelles Les plates-formes omnidirectionnelles permettent de découpler de manière plus nette le contrôle de la rotation et de la translation d’un robot et sont donc quasiment holonomes. Il existe différents types de plateformes omnidirectionnelles. Le premier utilise trois ou quatre roues qui tournent à la même vitesse pour fournir une translation et un mécanisme qui permet d’orienter simultanément ces roues dans la direction du déplacement souhaitée (Figure 4.2). Le corps du robot lui-même n’effectue pas de rotation mais uniquement des translations. Ce système permet un contrôle très simple et relativement rapide car les changement de direction ne concernent que les roues et peuvent donc se faire très vite. Par contre ces plates-formes sont relativement limitées en capacité de franchissement et requièrent un sol très plan. Une deuxième catégorie de plateformes utilise des roues dites "suédoises", qui n’offrent pas de résistance au déplacement latéral (Figure 4.3). La plateforme comporte trois roues dont les axes sont fixes. Les déplacements dans toutes les directions et en rotation sont obtenus en faisant varier individuellement les vitesses des roues. La plateforme tourne sur place lorsque les trois Robotique Mobile - david.filliat@ensta-paristech.fr 36CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE FIGURE 4.2 – Exemple de plate-forme omnidirectionnelle à roues orientables. FIGURE 4.3 – Exemple de plate-forme omnidirectionnelle à roues suédoises. roues tournent dans le même sens, à la même vitesse. Lorsque une roue est fixe, et que les deux autres tournent en sens opposé, la plateforme avance en direction de la roue fixe. Différentes combinaisons de vitesses permettent d’obtenir des déplacements quelconques. 4.1.4 Les plates-formes non holonomes Des plates-formes non holonomes, telles que les voitures, sont également utilisées en robotique mobile (Figure 4.4). C’est plus particulièrement le cas dans le domaine des véhicules intelligents. Ces plates-formes sont toutefois plus difficile à commander car elle ne peuvent pas tourner sur place et doivent manœuvrer, ce qui peut être difficile dans des environnements encombrés. La commande de ces plates-formes pour réaliser un déplacement particulier est un problème à part entière que nous n’aborderons pas dans ce cours. Par contre, il est possible de prendre en compte ces contraintes de manière relativement simple dans la planification (voir chapitre III). 37 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES FIGURE 4.4 – Exemple de plate-forme non holonome de type Ackerman. 4.1.5 Les plates-formes à pattes FIGURE 4.5 – Exemples de robots à pattes. Hexapode de AAI Canada, Aibo de Sony, Nao de Aldebarran Robotics. Des plates-formes à deux, quatre ou six pattes peuvent également être utilisée. Elle ont l’avantage théorique de pouvoir se déplacer sur des terrains assez complexes, même si en pratique la plupart de ces plates-formes ne fonctionnent que sur des sols plans. Les plates-formes à six pattes sont relativement pratiques car le robot peut être en équilibre permanent sur au moins 3 pattes, ce qui facilite le contrôle. Les plates-formes à deux ou quatre pattes sont plus complexes à commander et le simple contrôle de la stabilité et d’une allure de marche correcte reste aujourd’hui difficile, ce qui les rend en général relativement lentes. L’odométrie de ce type de plates-formes est de plus généralement d’assez faible qualité. Ces différents facteurs font que ces plates-formes sont rarement utilisées quand l’application visée a un besoin précis de positionnement et de navigation. De telles plates-formes commencent cependant à apparaître à relativement grande échelle (par exemple le robot Nao de Aldebarran Robotics). Robotique Mobile - david.filliat@ensta-paristech.fr 38CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE 4.2 Les capteurs Nous présentons dans cette section les capteurs les plus couramment utilisés en robotique mobile pour les besoins de la navigation ainsi que des modèles probabilistes associés qui seront utilisés dans plusieurs méthodes de navigation. 4.2.1 Les capteurs proprioceptifs Les capteurs proprioceptifs permettent une mesure du déplacement du robot. Ce sont les capteurs que l’on peut utiliser le plus directement pour la localisation, mais ils souffrent d’une dérive au cours du temps qui ne permet pas en général de les utiliser seuls. Odométrie L’odométrie permet d’estimer le déplacement de la plateforme à partir de la mesure de rotation des roues (ou du déplacement des pattes). La mesure de rotation est en général effectuée par un codeur optique disposé sur l’axe de la roue, ou sur le système de transmission (par exemple sur la sortie de la boite de vitesse pour une voiture). Le problème majeur de cette mesure est que l’estimation du déplacement fournie dépend très fortement de la qualité du contact entre la roue (ou la patte) et le sol. Elle peut être relativement correcte pour une plate-forme à deux roues motrices sur un sol plan de qualité uniforme, mais est en général quasiment inutilisable seule pour un robot à chenille par exemple. Pour limiter ce problème, il peut être intéressant de positionner le codeur optique sur une roue non motrice qui glissera moins. Notons cependant que l’erreur de ces méthodes se retrouve en général principalement sur l’estimation de la direction du robot, tandis que la mesure de la distance parcourue est souvent de meilleure qualité. Modèle probabiliste La majorité des modèles de localisation et de cartographie présentés dans ce cours (voir chapitre III) vont faire appel à un modèle probabiliste de cette mesure. Il existe deux types de modèles : les modèles directs (donnant la probabilité de la mesure en fonction du déplacement réel) et les modèles inverses (donnant la probabilité du déplacement réel en fonction de la mesure). Dans le cas de l’odométrie, la plupart des méthodes utilisent un modèle inverse afin d’interpréter les mesures réalisées. Il existe divers types de modèles, mais les plus simples et les plus utilisés sont des modèles supposant que les paramètres du mouvement (direction θ et longueur d du déplacement, changement de direction φ du robot, cf Figure 4.6, gauche) sont statistiquement indépendants et soumis à un bruit Gaussien : P(d,θ,φ|do,θo,φo) = e −  d−do σd 2 ×e −  θ−θo σθ 2 ×e −  φ−φo σφ 2 où d,θ,φ sont les valeurs réelles et do,θo,φo les valeurs observées. 39 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS FIGURE 4.6 – Modèle probabiliste de l’odométrie. Paramètres du déplacement à gauche. Exemple de densité de probabilité après un déplacement rectiligne à droite. En général, les écarts types de ces différentes gaussiennes (σd,σθ,σφ) dépendent de la valeur de la mesure : l’erreur sur la longueur du déplacement pourra par exemple être proportionnelle à cette longueur : σd = γ×d Il est possible d’utiliser des modèles beaucoup plus fins de l’odométrie reposant sur le processus physique utilisé pour la mesure du déplacement. Il est par exemple possible de faire une hypothèse de bruit gaussien sur le capteur réalisant la mesure de rotation de chaque roue puis, par calcul, d’en déduire l’erreur sur l’estimation du déplacement du robot. Cependant, une telle précision n’est souvent pas nécessaire dans de nombreux algorithmes. Comme nous le verrons au chapitre sur la localisation, ces modèles probabilistes peuvent être utilisés pour générer des positions possibles du robot selon la distribution de probabilité déduite de la mesure de l’odométrie. Les systèmes radar doppler et optiques Au lieu de mesurer le déplacement par des mesures sur les roues, il est possible d’utiliser un radar pointé vers le sol qui permet de mesurer la vitesse du véhicule par effet Doppler. Il existe aussi des systèmes optiques, basés sur le même principe que les souris d’ordinateur, qui mesurent le déplacement du véhicule en analysant le mouvement relatif du sol (figure 4.7). Ces systèmes présentent l’avantage d’être plus précis que la mesure passant par les roues, notamment car ils sont indépendants des dérapages possible de ces roues. Il sont cependant en général relativement chers et encombrants et sont assez rares sur les petites plates-formes. Robotique Mobile - david.filliat@ensta-paristech.fr 40CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE FIGURE 4.7 – Exemple d’odomètre optique Correvit L-CE de CORRSYS- DARTON Sensorsysteme GmbH. Les systèmes inertiels La mesure de déplacement potentiellement la plus fiable provient de la mesure des accélé- rations de la plate-forme par des capteurs inertiels. Cette mesure est potentiellement fiable car elle ne dépend pas de la nature locale de l’environnement, cependant les capteurs inertiels sont tous entachés de bruit de mesure qui produit une dérive de l’estimation de la position au cours du temps. La qualité des mesures inertielles dépend très fortement du type de capteurs utilisées. Historiquement, les premiers capteurs ont été réalisés à base de systèmes mécaniques et peuvent fournir des mesures extrêmement précise, au prix d’un coût et d’une masse très élevés. Ces dernières années ont vu apparaître de nouvelles technologies de capteurs, notamment basés sur les techniques de micro-électronique, qui ont permis la réalisation de capteurs inertiels “bas coût” et l’apparition de ces capteurs dans des produits grand public. La précision de ces capteurs est toutefois de quelques ordres de grandeur plus faible, ce qui rend leur utilisation isolée quasiment impossible. Ces capteurs fournissent toutefois un très bon complément à l’odométrie, notamment pour l’estimation de la direction. L’accélération en translation de la plate-forme est mesurée par des accéléromètres. On dispose en général deux accéléromètres pour prendre des mesures dans deux directions perpendiculaires du plan de déplacement du robot. Un troisième peut être disposé verticalement afin de mesurer l’accélération en trois dimensions. L’accélération angulaire est mesurée par des gyromètres. On dispose en général un gyromètre selon l’axe vertical, qui permet ainsi de mesurer l’angle de lacet du robot. Deux autres gyromètres peuvent être positionnés selon deux axes du plan de déplacement afin d’estimer la direction en trois dimensions. Il est également possible de mesurer la rotation du robot par rapport à un axe de référence en utilisant un gyroscope. Cette mesure s’effectue en général par rapport à un axe de référence mis en rotation et isolé mécaniquement le plus possible du robot, ce qui rend sa direction indépendante de la direction du robot. Cette mesure peut être moins bruitée que l’intégration du signal d’accélération mais dépend très fortement de la qualité de la réalisation mécanique du système, 41 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS qui dépend très directement du prix du gyroscope. Enfin, les magnétomètres permettent, par la mesure du champ magnétique terrestre, de dé- duire la direction du nord. Ces capteurs peuvent utiliser différentes technologies et ont l’avantage de fournir une direction de référence stable au cours du temps (au contraire des gyroscopes qui dérivent). Ces capteurs sont toutefois très délicats à utiliser en intérieur car ils sont très sensibles aux masses métalliques présentes dans les bâtiments et leur structure. En pratique, on les utilise donc principalement en extérieur en apportant le plus grand soin à leur positionnement sur le robot pour éviter les influences des composants du robot, notamment les moteurs électriques. FIGURE 4.8 – Centrale intertielle Crista de Cloud Cap Technology. L’ensemble de ces éléments (accéléromètres, gyromètres, magnétomètres) peut être réuni pour former une centrale inertielle qui permet d’estimer complètement les six degrés de libertés de la position dans un espace à 3 dimensions. Les centrales inertielles “bas coût” sont cependant aujourd’hui de qualité insuffisante pour une utilisation isolée, tandis que les centrales de qualité correcte restent très chères. Ce domaine est cependant en évolution rapide avec l’arrivée de nouvelles technologies et l’apparition de centrales “bas coût” de bonne qualité devrait se faire dans les prochaines années. L’utilisation des données fournies par ce type de senseurs passe aussi en général par un modèle probabiliste, qui peut être du type de celui présenté pour l’odométrie. Cependant, la gestion du bruit interne de ces capteurs demande en général des modèles beaucoup plus précis, qui estiment explicitement la dérive des capteurs afin de la corriger. Ceci permet de bénéficier de modèles plus précis en sortie également. 4.2.2 Les télémètres Il existe différents types de télémètres, qui permettent de mesurer la distance aux éléments de l’environnement, utilisant divers principes physiques. Télémètres à ultrason Les télémètres à ultrason sont historiquement les premiers à avoir été utilisés. Il utilisent la mesure du temps de vol d’une onde sonore réfléchie par les obstacles pour estimer la distance Robotique Mobile - david.filliat@ensta-paristech.fr 42CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Zone aveugle Obstacle Télémètre Distance mesurée cone de diffusion de l’onde sonore FIGURE 4.9 – Principe du télémètre à ultrasons et exemple de télémètre réel. (Figure 4.9). Ces télémètres sont très simple et peu cher, et sont donc très répandus, mais possèdent de nombreux inconvénients. En premier lieu, deux télémètres voisins ne peuvent être utilisés simultanément, car il est impossible de savoir par lequel des deux télémètres une onde réfléchie a été émise (phénomène de “crosstalk”). Un robot possédant plusieurs télémètres doit donc les activer l’un après l’autre, ce qui entraîne un taux de rafraîchissement global des mesures relativement faible. Ces télémètres possèdent une “zone aveugle”, de quelques centimètres, en dessous de laquelle ils ne peuvent détecter les obstacles. Cette zone est due a une temporisation entre l’émission de l’onde sonore et le début de la détection de l’onde réfléchie qui est nécessaire pour ne pas perturber cette mesure. De plus, l’onde réfléchie est très sensible aux conditions environnementales locales. Ainsi, si l’angle entre l’obstacle et la direction de l’onde sonore est trop faible, il n’y aura pas de retour de l’onde sonore et l’obstacle ne sera pas perçu. L’onde de retour dépend également de la texture de l’obstacle. Un mur couvert de moquette pourra par exemple ne pas être détecté. Les télémètres ultrason détectent les obstacles se situant dans un cône relativement large (d’angle au sommet d’environ 30 degrés). Cette caractéristique peut être à la fois un avantage et un inconvénient. C’est un inconvénient car un obstacle détecté n’est pas localisé en angle à l’intérieur du cône de détection, et on obtient donc une mesure de la position relativement imprécise. C’est par contre un avantage car des éléments relativement fins (les pieds de table ou de chaise par exemple) sont détectés dans ce cône, alors qu’il pourraient ne pas être détectés par des télémètres ayant un angle d’ouverture très fin. Télémètres à infrarouge Les télémètres infrarouges possèdent l’avantage d’avoir un cône de détection beaucoup plus restreint. Il utilisent une lumière infrarouge au lieu d’une onde sonore pour la détection et peuvent être basés sur différentes techniques qui permettent de recueillir plus ou moins d’information. Il est possible de mesurer simplement le retour ou le non-retour d’une impulsion codée, ce 43 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS FIGURE 4.10 – Principe du télémètre infrarouge à triangulation et exemple de télémètre réel (Sharp). qui permet de détecter la présence ou l’absence d’un obstacle dans une certaine portion de l’espace. Il est également possible de réaliser une triangulation sur le faisceau de retour de l’onde lumineuse, ce qui permet d’avoir une mesure de la distance de l’obstacle (figure 4.10). Les inconvénients de ces télémètres sont liés à leur portée, en général relativement restreinte, et à leur sensibilité aux sources de lumières qui contiennent un fort rayonnement infrarouge. Un projecteur du type de ceux utilisés pour la télévision pointé sur le robot, par exemple, sature en général complètement le récepteur et empêche toute détection d’obstacle. Ils sont également très sensibles à la couleur et à la nature de la surface de l’obstacle (par exemple, ils détectent difficilement les vitres et les obstacles noir mats). Télémètres laser Les télémètres les plus utilisés à l’heure actuelle pour des applications de cartographie et de localisation sont les télémètres laser à balayage. Ils utilisent un faisceau laser mis en rotation afin de balayer un plan, en général horizontal, et qui permet de mesurer la distance des objets qui coupent ce plan (Figure 4.11, 4.11). Cette mesure peut être réalisée selon différentes techniques soit en mesurant le temps de vol d’une impulsion laser, soit par triangulation. Les télémètres courants ont une bonne résolution angulaire car ils permettent d’obtenir une mesure de distance tout les demi degrés, sur une zone de 180 ou 360 degrés selon les modèles. La mesure est de plus relativement précise (avec un bruit de l’ordre de quelques centimètres) à une distance relativement grande (plusieurs dizaines de mètres). La fréquence d’acquisition est en général de l’ordre de la dizaine de Hertz, voire proche de la centaine pour certains modèles. Ces télémètres sont très utilisés en environnement intérieur car il fournissent des données abondantes et précises sur la position des objets caractéristiques de l’environnement tels que les murs. Ils possèdent toutefois un certain nombre d’inconvénients. En premier lieu, leur zone de perception est restreinte à un plan et ne permet donc pas de détecter les obstacles situés hors de ce plan (un petit objet posé au sol par exemple). Ils ne peuvent pas non plus détecter les objets ne réfléchissant pas correctement la lumière du laser (en premier lieu les vitres, mais aussi certains objets très réfléchissants, tels que les objets chromés). Pour limiter ces inconvénients, il est possible de les utiliser en conjonction avec des capteurs à ultrason qui ont un cône de Robotique Mobile - david.filliat@ensta-paristech.fr 44CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Télémètre Mesure obtenue FIGURE 4.11 – Illustration du principe de fonctionnement d’un télémètre Laser et un exemple de Télémètre Laser à balayage, fournissant 720 mesure réparties sur 360 degrés, à 5 Hz (marque Ibeo). détection plus large et qui peuvent détecter les vitres. Enfin, la plupart des algorithmes de cartographie et de localisation existants supposent que le plan de mesure du télémètre laser reste horizontal et à hauteur constante, ce qui n’est plus vrai en cas de sol irrégulier ou, dans la majorité des cas, en extérieur. Il est alors nécessaire de passer à une localisation et une cartographie en 3D. FIGURE 4.12 – Un exemple de télémètre laser à balayage selon 2 axes (à gauche) et de camera permettant d’obtenir une image de profondeur de 320x240 pixels (à droite). Il existe des télémètres laser balayant l’espace selon deux axes 4.12. Ils permettent ainsi d’obtenir une image de distance selon un angle solide de l’ordre de quelques dizaines de degrés dans les deux dimensions. Ces télémètres restent toutefois cher et fragile du fait de la mécanique nécessaire au balayage. De plus, la fréquence d’acquisition est relativement faible (de l’ordre de 45 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS quelques Hertz), ce qui pose problème lorsque le robot est en mouvement. Ces télémètres sont donc plutôt destinés à des applications relativement statiques comme la création de modèles 3D. Il existe également des systèmes sans balayage permettant d’obtenir une image de profondeur de la même manière qu’une caméra couleur standard. Plusieurs technologies sont utilisées, soit par mesure de temps de vol d’une impulsion laser ou infrarouge, soit par triangulation à partir de projecteurs infrarouges. Ces capteurs sont récents, mais sont très intéressants pour la robotique mobile car ils permettent d’obtenir une information dense à une fréquence assez élevée (image de profondeur de 320x240 à 30 Hz pour la caméra Kinect par exemple, figure 4.12). Ces informations peuvent être couplées à une image couleur, on parle alors de caméra RGBD (D pour Depth). Il reste cependant certaines limitations, notamment pour l’emploi en extérieur où l’information de profondeur peut être perdue à cause de la lumière du soleil qui masque la lumière infrarouge. FIGURE 4.13 – Un exemple de télémètre laser à balayage a 64 nappes conçu par Velodyne. Enfin, principalement pour les véhicules intelligents, il existe un compromis qui consiste à utiliser plusieurs nappes laser avec différentes inclinaisons afin d’avoir des modèles assez précis de l’environnement sur 360 degrés (figure 4.13). Ces capteurs restent assez lourds et chers, mais permettent de réaliser quasiment l’ensemble des tâches nécessaires pour un véhicule comme la localisation, la cartographie et la détection de piétons ou de véhicules. Modèle probabiliste Les modèles probabilistes associés aux télémètres permettent de donner la probabilité de la mesure en fonction de la distance réelle de l’obstacle. Pour les capteurs réalisant plusieurs mesures, les probabilités sont en général estimées pour chacune des mesures individuelles prises depuis une position, puis agglomérées par produit en supposant les mesures indépendantes : P(Scan|Obstacles) = M ∏ i=1 P(mesurei |Obstacles) Robotique Mobile - david.filliat@ensta-paristech.fr 46CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE FIGURE 4.14 – Modèle probabiliste de télémètre par composition d’évènements élémentaires et exemple d’application sur des données réelles de sonars ou de télémètres laser (tiré de [135]). Pour estimer la probabilité d’une mesure individuelle, il est possible d’utiliser une simple loi gaussienne autour de la distance réelle comme modèle probabiliste, mais les modèles sont en général un peu plus évolués et utilisent une combinaison de lois qui modélisent plusieurs phénomènes qui peuvent être responsables de la mesure (Figure 4.14) : – la mesure effective de l’obstacle visé, modélisé par une gaussienne en général – la perception d’un obstacle imprévu, par exemple une personne ou un objet dynamique non présent dans la représentation du monde, modélisé par une loi décroissante telle qu’une exponentielle – la non détection d’un écho, qui donne une mesure à la distance maximale du télémètre, modélisé par un pic. Les paramètres de cette combinaison de lois peuvent être réglés manuellement ou estimés à partir d’un ensemble de mesures, par exemple en utilisant un algorithme de maximisation de l’espérance. Ces modèles peuvent être adaptés à tout les types de télémètres (figure 4.14). 47 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS 4.2.3 Les caméras L’utilisation d’une caméra pour percevoir l’environnement est une méthode attractive car elle semble proche des méthodes utilisées par les humains et fournit un grande quantité d’information sur l’environnement. Le traitement des données volumineuses et complexes fournies par ces capteurs est cependant souvent difficile, mais c’est une voie de recherche très explorée et prometteuse pour la robotique. Caméras simples Une caméra standard peut être utilisée de différentes manières pour la navigation d’un robot mobile. Elle peut être utilisée pour détecter des amers visuels (des points particuliers qui servent de repère, tels que des portes ou des affiches) à partir desquels il sera possible de calculer la position du robot. Si ces amers sont simplement ponctuels, ou de petite taille, il sera en général simplement possible d’estimer leur direction. Dans le cas ou les amers sont des objets connus en 2 ou 3 dimensions, il sera en général possible d’estimer complètement la position du robot par rapport à la leur. Elle peut également être utilisée pour détecter des “guides” de navigation pour le robot, tels que des routes ou des couloirs. FIGURE 4.15 – Illustration du principe de base du flot optique. Il est également possible d’utiliser globalement une image pour caractériser une position ou un point de vue dans l’environnement. Il faudra alors comparer cette image aux nouvelles images acquises par le robot pour savoir si le robot est revenu à cette position. Cette comparaison peut faire appel à différentes techniques, notamment celles utilisées dans le domaine de l’indexation d’image. Lorsque le robot est en mouvement, il est également possible de tirer parti du flot optique (le mouvement apparent des objets dans l’image, voir figure 4.15), afin d’avoir une estimation de la distance des objets. En effet, les objets les plus proches ont un déplacement apparent plus important que les objets lointains. Cette méthode permet notamment de réaliser un évitement d’obstacles ou de réaliser une reconstruction tridimensionnelle de l’environnement (par des techniques connues sous le nom de structure from motion, voir section 4.2.3). Robotique Mobile - david.filliat@ensta-paristech.fr 48CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE Caméras stéréoscopiques FIGURE 4.16 – Exemple de données fournies par des caméras stéréoscopiques. Lorsque l’on dispose de deux caméras observant la même partie de l’environnement à partir de deux points de vue différents, il est possible d’estimer la distance des objets et d’avoir ainsi une image de profondeur (Figure 4.16), qui peut être utilisée pour l’évitement d’obstacles ou la cartographie. Cette méthode suppose toutefois un minimum d’éléments saillants dans l’environnement (ou un minimum de texture) et peut être limitée, par exemple dans un environnement dont les murs sont peint de couleurs uniformes. La qualité de la reconstruction risque également de dépendre fortement des conditions de luminosité. La résolution et l’écartement des deux caméras impose également les profondeurs minimum et maximum qui peuvent être perçues, ce qui peut être limitatif pour la vitesse de déplacement du robot. Des techniques similaires peuvent également être utilisées pour estimer la profondeur à partir d’une caméra en mouvement (méthodes de structure from motion, voir par exemple [67]), la difficulté étant alors d’estimer à la fois la profondeur et les positions relatives de la caméra lors de la prise des deux images. Caméras panoramiques Les caméras panoramiques (catadioptriques) sont constituées d’une caméra standard pointant vers un miroir de révolution (par exemple un simple cône, ou un profil plus complexe qui peut s’adapter à la résolution exacte que l’on veut obtenir sur le panorama) (figure 4.17). L’image recueillie permet d’avoir une vision de l’environnement sur 360 degrés autour de la camera. Le secteur angulaire vertical observé dépend de la forme du miroir et peut être adapté aux besoins de chaque application (Figure 4.17). Ce type de caméra est très pratique pour la navigation car une image prise par une camera panoramique orientée verticalement permet de caractériser une position, indépendamment de la direction du robot. En effet, pour une position donnée et pour deux orientations différentes, la même image sera formée par la caméra, à une rotation autour du centre près, tandis que pour une caméra standard, orientée horizontalement, la scène serait différente. Ces caméras sont donc très pratiques lorsque l’on caractérise une position de manière globale, mais peuvent aussi être utilisées pour détecter des amers ou pour estimer le flux optique. Dans ce cas, toutefois, comme la géométrie de l’image formée est relativement complexe et 49 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS FIGURE 4.17 – Principe des caméras panoramiques catadioptriques, exemple d’image obtenue et illustration du flux optique. comme la résolution obtenue varie énormément selon la direction observée, les algorithmes doivent être adaptés, ce qui pose un certain nombre de problèmes. Concernant le flux optique, cependant, les caméras panoramiques possèdent l’avantage de contenir toujours le point d’expansion et le point de contraction dans l’image, ce qui rend l’estimation du mouvement beaucoup plus aisée (figure 4.17). 4.2.4 Autres capteurs Les capteurs tactiles Les robots peuvent être équipés de capteurs tactiles, qui sont le plus souvent utilisés pour des arrêts d’urgence lorsqu’il rencontre un obstacle qui n’avait pas été détecté par le reste du système de perception. Ces capteurs peuvent être de simples contacteurs répartis sur le pourtour du robot. Il ne détectent alors le contact qu’au dernier moment. Il est également possible d’utiliser des petites tiges arquées autour du robot pour servir d’intermédiaire à ces contacteurs, ce qui permet une Robotique Mobile - david.filliat@ensta-paristech.fr 50CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE détection un peu plus précoce et donne ainsi plus de marge pour arrêter le robot. Les balises Dans certaines applications, il est également possible d’utiliser des balises dont on connaît la position, et qui pourront être facilement détectées par le robot, afin de faciliter sa localisation. Des techniques très diverses peuvent être utilisées pour ces balises. On peut par exemple utiliser un signal radio, émis de manière omnidirectionnel par la balise. Le robot sera alors équipé d’une antenne directionnelle qui lui permettra de détecter la direction des différentes balises, afin de déduire sa position par triangulation. On peut également utiliser des codes couleurs ou des codes barres qui pourront être détectés par une caméra. Le GPS Les besoins de localisation étant omniprésents dans de très nombreux secteurs de la vie actuelle, l’idée d’avoir un système de localisation le plus universel possible à donné lieu à l’apparition du Global Positionning System (GPS). C’est un système de balises dont on a placé les balises sur des satellites en orbite terrestre et qui est par conséquent accessible de quasiment partout à la surface du globe. Ce système permet donc d’avoir une mesure de sa position dans un repère global couvrant la terre avec une précision variant de quelques dizaines de mètres à quelques centimètres suivant les équipements. Ce système est cependant loin de résoudre tous les problèmes de localisation des robots mobiles. Il fonctionne en effet difficilement dans des environnements urbains, et n’est pas utilisable à l’intérieur des bâtiments. Sa précision est de plus souvent trop faible pour qu’un robot terrestre puissent utiliser ces informations seules. En pratique, il est souvent couplé à un système inertiel qui permet de palier aux pertes du signal GPS et il ne remplace de toute façon pas les capteurs du robot qui lui permettent de percevoir son environnement immédiat, qui constitue la source d’information principale pour la navigation à court terme (par exemple l’évitement d’obstacles, par opposition à la navigation à long terme qui consiste à rejoindre un but distant). 4.3 Pour aller plus loin Sensors for Mobile Robots : Theory and Application, Everett Une version en ligne est disponible : http://www-personal.engin.umich.edu/~johannb/my_book.htm 51 Robotique Mobile - david.filliat@ensta-paristech.fr4.3. POUR ALLER PLUS LOIN Robotique Mobile - david.filliat@ensta-paristech.fr 52Deuxième partie Navigation réactive 53 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons différentes stratégies de navigation réactive. Ces stratégies peuvent être utilisées dans des architectures de contrôle purement réactives, mais aussi comme modules de bas-niveau dans une architecture hybride. Par définition, les stratégies de navigation réactives n’utilisent que les valeurs courantes des capteurs (ou des valeurs sur une petite fenêtre temporelle), et non des données provenant d’un modèle interne, pour décider de l’action à effectuer. 55 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 56CHAPITRE 5. NAVIGATION VERS UN BUT Chapitre 5 Navigation vers un but Nous commençons ici par des méthodes de navigation correspondant aux deux premières catégories de stratégies de navigation définies dans le chapitre 2, c’est à dire l’approche d’un but défini par un objet ou une configuration d’amers. 5.1 Véhicules de Braitenberg Dans son livre “Vehicles : Experiments in Synthetic Psychology”, Valentino Braitenberg [19] décrit une série d’expériences dans lesquelles des robots extrêmement simples peuvent montrer des comportements complexes, qu’un observateur humain associe en général à différents types d’émotions telles que la peur ou l’agression. Nous nous intéressons ici simplement à la structure de ces robots, qui permet de réaliser simplement des comportements pour rejoindre un but visible. Cette structure est devenue l’archétype des méthodes réactives simples. But M1 M2 C1 C2 FIGURE 5.1 – Dans les véhicules de Braitenberg, la vitesse de chacun des deux moteurs du robot dépend de la valeurs de deux capteurs qui détectent la lumière émise par le but. Dans le livre de Braitenberg, le but est matérialisé par une lumière, visible depuis tout l’environnement. Le robot est simplement une plate-forme différentielle, constituée de deux roues dont 57 Robotique Mobile - david.filliat@ensta-paristech.fr5.2. MODÈLE DE CARTWRIGHT ET COLLET on commande les vitesses de rotation et munie de deux capteurs de lumière situés de part et d’autre de l’avant du robot (Figure 5.1). L’architecture interne du robot est simplement constituée de liens entre ces capteurs et les moteurs qui permettent de calculer la vitesse des moteurs en fonction des valeurs des capteurs. En faisant varier les paramètres des connexions, il est alors possible de définir différents comportements du robot. Si la vitesse de chaque moteur est reliée à la valeur du capteur du coté opposé avec un coefficient positif, le robot se dirigera naturellement vers le but. Si, par contre, la vitesse de chaque moteur est reliée à la valeur du capteur du même coté avec un coefficient positif, le robot fuira le but. Ces véhicules réalisent simplement une remontée ou une descente de gradient sur l’intensité de la lumière. Ils correspondent à un simple contrôleur proportionnel en automatique et sont donc relativement sujets à des oscillations dans le comportement du robot. Ils supposent de plus que le but est visible depuis tout l’environnement, ce qui est rarement le cas en pratique. Ce modèle est donc intéressant car c’est la méthode la plus simple possible pour réaliser un déplacement vers un but, mais est difficile à utiliser dans une application réelle. 5.2 Modèle de Cartwright et Collet Le “snapshot model” a été conçu pour expliquer comment des abeilles peuvent utiliser des informations visuelles pour rejoindre un point donné de l’environnement. Il permet à un robot de rejoindre un but dont la position est définie par la configuration d’amers de l’environnement autour de ce but. Amer Amer Amer FIGURE 5.2 – Exemple de snapshot caractérisant la position du but. Le robot mémorise un panorama contenant la position et la taille apparente des amers. Le système perceptif du robot doit lui permettre de détecter la direction et la taille des amers autour de lui. Le robot commence par mémoriser le but en enregistrant la configuration des amers vus depuis la position de ce but (un snapshot, Figure 5.2). Robotique Mobile - david.filliat@ensta-paristech.fr 58CHAPITRE 5. NAVIGATION VERS UN BUT Perception courantes Perceptions depuis le but FIGURE 5.3 – Pour atteindre le but, chaque amer perçu est associé à un des amers mémorisés. Pour chaque appariement, on déduit un vecteur tangentiel dont la norme augmente avec l’écart entre amer perçus et mémorisés. La somme de ces vecteurs donne la direction à prendre pour atteindre le but. Lorsque, par la suite, le robot veut rejoindre ce but, il prend une nouvelle image des amers et, par comparaison entre la configuration courante et la configuration mémorisée au but, il peut déduire de manière très simple la direction dans laquelle se déplacer pour atteindre le but. Cette comparaison est basée sur un appariement entre les amers perçus et les amers mémorisés, chaque appariement permettant de calculer un vecteur dont la somme, pour tous les appariements d’amers, donne la direction à prendre pour rejoindre le but (Figure 5.3). Le robot effectue alors un déplacement de longueur fixée dans cette direction puis recommence le processus tant que le but n’est pas atteint. Là encore, le système est très simple et réalise une descente de gradient sur la configuration des amers afin d’atteindre le but. Il ne fonctionne cependant pas sur l’ensemble de l’environnement et la qualité du comportement obtenu dépend beaucoup de la configuration des amers qui sont utilisés, un ensemble d’amers lointains et bien répartis tout autour du robot donnant les meilleurs résultats. La qualité de l’appariement entre les amers est également primordiale, en effet, si un amer perçu est associé au mauvais amer mémorisé, le vecteur de déplacement déduit sera faux. Le modèle original supposait des amers noirs sur fond blanc, sans identité particulière, pour lequel l’appariement est relativement hasardeux. Il n’est donc pas applicable en pratique. D’autres travaux ont utilisé des amers colorés et différentes contraintes sur l’appariement qui permettent une meilleur robustesse et sont donc applicables à des robots réels [58]. La plupart des implantations de ce modèles supposent de plus que la direction du robot est connue afin de faciliter l’appariement. Avoir une estimation correcte de cette direction peut se révéler difficile en pratique. 59 Robotique Mobile - david.filliat@ensta-paristech.fr5.3. ASSERVISSEMENT VISUEL 5.3 Asservissement visuel L’asservissement visuel [30] (document disponible en ligne 1 ) est une technique d’asservissement de la position d’un robot qui est basée directement sur l’information extraite d’une image, sans modélisation intermédiaire de l’environnement. Développées à l’origine pour la commande des robots manipulateurs, ces techniques permettent également la commande de robots mobiles. FIGURE 5.4 – Illustration du principe de l’asservissement visuel : l’erreur entre une image courante et une image but (écart entre les croix rouges et vertes ici) est utilisée pour calculer une commande qui permettra au robot d’atteindre la position correspondant à l’image but. Dans ces approches, le but à atteindre est spécifié par l’image que le robot devra percevoir depuis cette position. Différentes mesures sont réalisées sur cette image (par exemple la détection de points d’intérêts) et la commande du robot est conçue pour amener à 0 l’écart entre la mesure réalisée sur l’image courante et la mesure réalisée sur l’image cible (figure 5.4). Les choix de mesures dans l’image et de la loi de commande peuvent être très variés, et vont conditionner les trajectoires obtenues par le robot, leur stabilité, leur robustesse aux mauvaises perceptions ou aux mauvaises modélisations du système, etc... Nous ne détaillerons pas ici ces approches, mais il existe plusieurs applications intéressantes en robotique mobile [15, 123, 34]. Notons que ces modèles sont souvent étendus pour fournir une navigation à long terme en enchainant des tâches de contrôle local sur des séquences d’images. Par exemple, [15] présente un système permettant de guider un robot en environnement intérieur à partir du suivi de motifs détectés sur le plafond par une caméra pointée à la verticale. En enchaînant des asservissements sur une séquence d’images, ce système permet au robot de refaire une trajectoire qui a été montrée au préalable par un opérateur. De même, [123] et [34] réalisent le guidage d’un véhicule en extérieur à l’aide d’une caméra pointée vers l’avant. 1. http://www.irisa.fr/lagadic/pdf/2002_hermes_chaumette.pdf Robotique Mobile - david.filliat@ensta-paristech.fr 60CHAPITRE 6. ÉVITEMENT D’OBSTACLES Chapitre 6 Évitement d’obstacles L’évitement d’obstacles est un comportement de base présent dans quasiment tous les robots mobiles. Il est indispensable pour permettre au robot de fonctionner dans un environnement dynamique et pour gérer les écarts entre le modèle interne et le monde réel. Les méthodes que nous présentons sont efficaces à condition d’avoir une perception correcte de l’environnement. Elles seront par exemple très efficaces avec un télémètre laser, mais donneront des résultats plus bruités avec des sonars. Pour limiter ce problème, il est possible d’appliquer ces méthodes sur une représentation locale (c’est-à-dire de l’environnement proche du robot et centrée sur le robot) de l’environnement qui sera construite en fonction des données de quelques instants précédents. Cette représentation intermédiaire permettra de filtrer une grande partie du bruit des données individuelles (en particulier pour les sonars). Il faut également faire attention à ce que les capteurs détectent tous les obstacles. Par exemple un laser à balayage ne verra pas les objets au dessous ou au dessus de son plan de balayage, et pourra voir du mal à percevoir les vitres. Pour cette raison, on utilise souvent une nappe laser couplée à des sonars, ou un système de plusieurs nappes laser inclinées. 6.1 Méthode des champs de potentiel Dans la méthode d’évitement d’obstacles par champs de potentiels, on assimile le robot à une particule se déplaçant suivant les lignes de courant d’un potentiel créé en fonction de l’environnement perçu par le robot. Ce potentiel traduit différents objectifs tels que l’évitement d’obstacles ou une direction de déplacement préférée. Il est calculé par sommation de différentes primitives de potentiels traduisant chacun de ces objectifs (Figure 6.1). Ces différents potentiels peuvent avoir une étendue spatiale limitée ou non (par exemple, n’avoir une influence que près des obstacles) et leur intensité peut dépendre ou non de la distance. Le gradient de ce potentiel donne, en chaque point de l’espace, la direction de déplacement du robot (Figure 6.1). Comme c’est ce gradient, et non la valeur absolue du potentiel, qui nous intéresse, il est possible de calculer directement en chaque point sa valeur par une simple somme vectorielle en ajoutant les valeurs issues des différents potentiels primitifs. Ainsi, pour un robot se déplaçant en ligne droite en espace ouvert et évitant les obstacles qu’il peut rencontrer, nous 61 Robotique Mobile - david.filliat@ensta-paristech.fr6.1. MÉTHODE DES CHAMPS DE POTENTIEL Déplacement selon une direction Eloignement d’une paroi Répulsion d’un point Attraction vers un point Potentiel Ligne de courant FIGURE 6.1 – Illustration de potentiels primitifs dont la combinaison guide les déplacements du robot. Le robot se déplacera selon les lignes de courant. FIGURE 6.2 – Illustration de la combinaison de différents potentiels primitifs. obtenons par exemple les lignes de courant illustrées figure 6.2. De plus, dans la pratique, pour l’évitement d’obstacles, le potentiel est en général calculé dans l’espace relatif au robot et ne sert qu’a décider de la vitesse et de la direction courante. Il n’est donc nécessaire de l’estimer que pour la position courante du robot, en sommant simplement la contribution des différents éléments perçus (Figure 6.3). Le principal inconvénient de cette méthode d’évitement d’obstacles est l’existence, pour certaines configurations d’obstacles (relativement courantes) de minimum locaux du potentiel qui ne permettent pas de décider de la direction à prendre (Figure 6.3). Ce problème peut être traité de différentes façons. Il est par exemple possible de déclencher un comportement particulier lorsque l’on rencontre un tel minimum (déplacement aléatoire, suivi de murs ....). Il est aussi possible d’imposer que le potentiel calculé soit une fonction harmonique, ce qui garanti qu’il n’ait pas de minima, mais rend son estimation beaucoup plus lourde en calcul. Le principe de ces champs de potentiels est formalisé sous le nom de schéma moteur par R. Arkin [4]. Pour lui, un schéma moteur est une action définie sous forme de potentiel en fonction des perceptions du robot. Ces schémas sont utilisés comme contrôleur de bas niveau dans une architecture hybride. Robotique Mobile - david.filliat@ensta-paristech.fr 62CHAPITRE 6. ÉVITEMENT D’OBSTACLES FIGURE 6.3 – Gauche : Illustration de la combinaison de différents potentiels primitifs dans l’espace relatif au robot. Droite : Exemple de minimum local dans un champ de potentiel. 6.2 Méthode Vector Field Histogram La méthode "Vector Field Histogram" [17] a été conçue spécifiquement pour utiliser une grille d’occupation locale construite a partir de capteurs à ultrasons. Cette grille est construite de manière très rapide par la méthode "Histogrammic in motion mapping" (voir section 11.2.3) qui produit une grille dont chaque cellule contient un nombre d’autant plus élevé qu’elle a souvent été perçue comme contenant un obstacle (Figure 6.4 haut). Un histogramme représentant l’occupation de l’environnement autour du robot est ensuite construit à partir de cette grille d’occupation locale. Pour cela, l’environnement est discrétisé en secteurs angulaires pour lesquels la somme des valeurs des cellules est calculée (figure 6.4 bas). Un seuil permettant de tolérer un certain bruit est ensuite utilisé pour déterminer les directions possibles pour le robot : toutes les directions dont la valeur est inférieure au seuil sont considé- rées. Le choix de la direction est finalement réalisé parmi les directions possibles en fonction de contraintes externes (par exemple la direction la plus proche de la direction du but). Cette méthode est extrêmement rapide (elle fonctionne sur un PC 386 à 20MHz !) et a permis historiquement un déplacement réactif à des vitesses assez élevées (environ 1 m/s). Diverses améliorations pour permettre le réglage de la vitesse du robot en fonction de la densité des obstacles ou de la largeur de l’espace angulaire libre sont possibles. 6.3 Méthode de la fenêtre dynamique La méthode de la fenêtre dynamique [47] permet de sélectionner une trajectoire locale du robot qui va éviter les obstacles et dont les variations dans le temps vont respecter des contraintes telles que les capacités de freinage maximales du robot. Pour appliquer l’algorithme, les trajectoires locales sont paramétrées et peuvent prendre des formes différentes en fonction des contraintes d’holonomie du robot par exemple. Une méthode simple applicable à de nombreuses plateformes est d’utiliser les vitesses de translation et de rotation du robot. La méthode de la fenêtre dynamique permet donc, à partir de la perception locale de l’environnement, de sélectionner un couple (v,ω) de vitesses de translation et de rotation du robot qui répond à différentes contraintes, dont celle d’éviter les obstacles. Un tel couple de vitesses, 63 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE Obstacle +1 +1 2 6 5 5 3 8 5 3 6 8 1 1 2 6 5 5 3 8 5 3 6 8 1 1 0 1 ... 11 ... 0 11 Seuil Secteur Somme des cellules FIGURE 6.4 – Partie supérieure : Grille d’occupation locale construite par la méthode "Histogrammic in motion mapping". La grille est construite dans le référentiel du robot : un compteur est incrémenté pour chaque cellule appartenant au secteur angulaire dans lequel un obstacle a été détecté et les valeurs sont déplacées d’une cellule à l’autre en fonction des déplacements du robot. Partie Inférieure : Utilisation de l’histogramme des obstacles pour déterminer la direction de déplacement du robot. Robotique Mobile - david.filliat@ensta-paristech.fr 64CHAPITRE 6. ÉVITEMENT D’OBSTACLES lorsqu’il est appliqué au robot, produit une trajectoire circulaire, pour laquelle la satisfaction des différentes contraintes peut être évaluée. A l’issu de l’évaluation de toutes les contraintes pour tous les couples de vitesses possibles, la méthode de la fenêtre dynamique permet de sélectionner le couple le plus pertinent (qui répond le mieux aux contraintes). v2,ω2 = succès v1,ω1 = échec Environnement réel Perceptions du robot v2,ω2 v1,ω1 FIGURE 6.5 – Contrainte d’évitement d’obstacles pour la méthode de la fenêtre dynamique. La première contrainte est la contrainte d’évitement d’obstacles. C’est une contrainte dure au sens ou elle est binaire (succès / échec) et doit obligatoirement être satisfaite. Elle est évaluée pour chacune des trajectoires possibles à partir de la perception locale de l’environnement à un instant donné et de la position estimée du robot à un pas de temps fixé dans le futur pour la trajectoire courante. Si le robot n’a pas rencontré d’obstacles à cet horizon, la contrainte est respectée ; dans le cas contraire, elle ne l’est pas (Figure 6.5). ω v ωmin ωmax vmax Vitesses conduisant à percuter un obstacle Vitesses conduisant à un déplacement sur Vitesses courantes Vitesses accessibles au prochain pas de temps FIGURE 6.6 – Fenêtre de sélection des vitesses tenant compte de la dynamique du robot. Le respect ou le non respect de cette contrainte est reporté dans un graphe des vitesses qui indique, pour chaque couple de vitesses possible (donc chaque trajectoire), si le robot va ou ne va pas rencontrer un obstacle (Figure 6.6). Dans ce graphe, il est alors possible de tracer la fenêtre des vitesses accessibles au prochain pas de temps à partir des vitesses courantes du robot et 65 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE des valeurs d’accélération et décélération maximales. C’est cette fenêtre qui donne son nom à la méthode car elle permet de prendre en compte la dynamique du robot (à travers la capacité de freinage et d’accélération). Il reste alors à choisir, au sein de cette fenêtre, un couple de vitesses qui ne conduise pas à percuter un obstacle pour garantir un déplacement sûr du robot. ω v ωmin ωmax vmax Direction préférentielle FIGURE 6.7 – Contrainte “souple” exprimant une préférence sur la direction à prendre. Pour faire le choix parmi toutes les vitesses possibles au sein de cette fenêtre, il est possible d’utiliser des contraintes “souples” supplémentaires pour exprimer des préférences au sein de cet espace des vitesses accessibles. Ces contraintes s’expriment par une fonction de coût G(v,ω) qui est en général la somme de plusieurs termes. Ces termes peuvent exprimer une préférence a priori sur les vitesses, une préférence pour les trajectoires s’éloignant le plus des obstacles, ou une préférence de direction si l’on dispose par exemple d’une estimation de la direction d’un but à long terme (Figure 6.7). Le couple de vitesses minimisant ce coût au sein de la fenêtre est alors sélectionné. Il garantit un déplacement sans rencontrer d’obstacles et le meilleur respect possible des contraintes souples dans ce cadre. Dans la pratique, les valeurs des différentes contraintes sont évaluées en différents points du graphe des vitesses, le nombre de points dépendant notamment de la puissance de calcul disponible et de la complexité de l’évaluation de chaque contrainte. L’utilisation de la fenêtre dynamique est très intéressante pour un robot se déplaçant rapidement, ou pour un robot ayant des capacités d’accélération et de ralentissement limitées. Elle permet alors de produire un déplacement du robot sûr et régulier. Pour des robots qui ont une forte capacité d’accélération et de décélération (par exemple un robot léger avec de bons moteurs électriques), on peut considérer que toutes les vitesses sont accessibles presque instantanément. Il peut alors être suffisant de ne considérer que la cinématique, et non la dynamique, ce qui se traduit par la prise en compte d’un seul point du graphe, et non d’une fenêtre. La recherche du couple de vitesse est ainsi simplifiée. Robotique Mobile - david.filliat@ensta-paristech.fr 66CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT Chapitre 7 Apprentissage par renforcement Les méthodes que nous avons vu jusqu’à présent sont des associations entre perceptions et actions conçues par des ingénieurs. Or il existe des techniques d’apprentissage (notamment l’apprentissage par renforcement) permettant de créer des associations de ce type à partir d’informations d’assez haut niveau sur la tâche à réaliser. L’apprentissage par renforcement est une méthode qui permet de trouver, par un processus d’essais et d’erreurs, l’action optimale à effectuer pour chacune des situations que le robot va percevoir afin de maximiser une récompense. C’est une méthode d’apprentissage orientée objectif qui va conduire à un contrôleur optimal pour la tâche spécifiée par les récompenses. Cette méthode est de plus non supervisée car la récompense ne donne pas l’action optimale à réaliser mais simplement une évaluation de la qualité de l’action choisie. Elle permet enfin de résoudre les problèmes de récompense retardée pour lesquels il faut apprendre a sacrifier une récompense à court terme pour obtenir une plus forte récompense à long terme et donc apprendre de bonnes séquences d’actions qui permettront de maximiser la récompense à long terme. Du fait de toutes ces caractéristiques, l’apprentissage par renforcement est une méthode particulièrement adaptée à la robotique. 7.1 Formalisation Le problème de l’apprentissage par renforcement pour un agent se formalise à partir des éléments suivants : – Un ensemble d’états S correspondant à la perception que l’agent a de l’environnement, – Un ensemble d’actions possibles A , – Une fonction de récompense R : {S,A} → R. L’agent va interagir avec son environnement par pas de temps discrets, en percevant l’état de l’environnement st , en choisissant une action at en fonction de cet état et en recevant la récompense rt+1 associée (Figure 7.1). L’évolution du robot dans son environnement est régi par un Processus de Décision Markovien (MDP en anglais) qui décrit l’évolution de l’état et de la récompense en fonction des actions du robot. Ce MDP (7.2), qui spécifie complètement la tâche du robot par le jeu des récompenses, se 67 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION Environnement état S récompense R action A FIGURE 7.1 – Formalisation du problème d’apprentissage par renforcement. décrit simplement à l’aide de deux fonctions : – Une fonction de transition P a ss0 = P(st+1 = s 0 |st = s,at = a) qui donne la probabilité de passer dans l’état s 0 lorsque l’agent effectue l’action a dans l’état s, – Une fonction de récompense R a ss0 = E(rt+1|st = s,at = a,st+1 = s 0 ) qui donne la récompense moyenne lorsque l’agent passe de l’état s à s 0 en faisant l’action a. FIGURE 7.2 – Exemple de MDP très simple. Chaque case correspond à un état et, pour chaque état, 4 actions sont possibles qui conduisent aux cases voisines. La récompense est nulle partout, sauf pour les actions qui mènent à la case "S", pour lesquelles la récompense est 1. Le comportement de l’agent est défini par une politique π : {S,A} → [0,1], qui guide l’agent de manière probabiliste en spécifiant, pour chaque état s la probabilité de réaliser l’action a (et donc ∑a π(s,a) = 1). Le but de l’apprentissage par renforcement va être de trouver la politique optimale π ∗ maximisant la récompense à long terme 1 . 1. L’apprentissage par renforcement n’utilise que l’état courant pour prendre une décision, il suppose donc que toute l’information nécessaire est contenue dans cet état. Le problème est donc considéré comme étant Markovien, ce qui est rarement le cas en pratique en robotique. Si le problème est non markovien, c’est a dire si pour un même état deux actions différentes sont optimales en fonction d’une variable inconnue au robot, l’apprentissage par Robotique Mobile - david.filliat@ensta-paristech.fr 68CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT La récompense à long terme, que nous appellerons revenu Rt , peut être définie de différentes manières en fonction de la tâche considérée. Si la tâche consiste à répéter des épisodes qui durent un nombre de pas de temps fixe, le revenu pourra être la somme des récompenses instantanées pendant un épisode. Si au contraire la tâche se déroule de manière continue, le revenu pourra se définir comme la somme des récompenses futures pondérées par une exponentielle décroissante : Rt = ∞ ∑ k=0 γ k rt+k+1 où γ ∈ [0,1] est un facteur indiquant l’importance que l’on accorde aux récompenses futures. Les algorithmes d’apprentissage par renforcement que nous verrons plus loin utilisent quasiment tous une fonction de valeur V π (Figure 7.3) qui permet, pour une politique π donnée, d’estimer le revenu moyen (les récompenses futures) pour un état donné si l’on suit la politique considérée : V π (s) = Eπ(Rt |st = s) FIGURE 7.3 – La fonction de valeur optimale dans notre exemple : pour chaque état, le niveau de gris indique la récompense à long terme qui sera obtenue en prenant le chemin le plus court vers le but. Ces fonctions de valeurs peuvent aussi se définir non pas pour un état mais pour un état et une action réalisée dans cet état : Q π (s,a) = Eπ(Rt |st = s,at = a) La fonction de valeur pour un état s étant la moyenne des Q π (s,a), pondérées par la probabilité de chaque action : V π (s) = ∑a π(s,a)Q π (s,a) renforcement fournira la politique optimale, mais seulement dans l’ensemble des politiques “myopes”, n’ayant pas toutes les informations pour une décision optimale. 69 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION Une propriété essentielle de ces fonctions de valeur va permettre de créer les différents algorithmes d’apprentissage, il s’agit de la relation de récurrence connue sous le nom d’équation de Bellman : V π (s) = ∑a π(s,a)∑ s 0 P a ss0 R a ss0 +γV π (s 0 ) Cette équation traduit une cohérence de la fonction de valeur en reliant la valeur d’un état à la valeur de tous les état qui peuvent lui succéder . Elle se déduit simplement de la définition de v π de la manière suivante : V π (s) = Eπ(Rt |st = s) = Eπ( ∞ ∑ k=0 γ k rt+k+1|st = s) = Eπ(rt+1 +γ ∞ ∑ k=0 γ k rt+k+2|st = s) = ∑a π(s,a)∑ s 0 P a ss0 " R a ss0 +γEπ ∞ ∑ k=0 γ k rt+k+2|st+1 = s 0 !# = ∑a π(s,a)∑ s 0 P a ss0 R a ss0 +γV π (s 0 ) La fonction de valeur permet de caractériser la qualité d’une politique, elle donne, pour chaque état, le revenu futur si l’on suit cette politique. Elle permet également de comparer les politiques en définissant un ordre partiel : π ≥ π 0 ⇔ ∀s,V π (s) ≥ V π 0 (s) Cet ordre permet de définir la fonction de valeur de la politique optimale (Figure 7.3) que l’apprentissage par renforcement va chercher à estimer : V ? (s) = max π V π (s) fonction qui peut aussi s’exprimer pour un couple état-action : Q ? (s,a) = max π Q π (s,a) avec la relation suivante : Q ? (s,a) = E(rt+1 +γV ? (st+1)|st = a,at = a) Il est également possible d’écrire une relation de récurrence pour la fonction de valeur optimale qui sera légèrement différente de l’équation de Bellman. On parle alors d’équation d’optimalité de Bellman, qui peut s’écrire : V ∗ (s) = max a E (rt+1 +γV ∗ (st+1)|st = s,at = a) = max a ∑ s 0 P a ss0 R a ss0 +γV ∗ (s 0 ) Robotique Mobile - david.filliat@ensta-paristech.fr 70 Intelligence Artificielle et Syst`emes Multi-Agents Badr Benmammar To cite this version: Badr Benmammar. Intelligence Artificielle et Syst`emes Multi-Agents. Ecole d’ing´enieur. 2009. ´ HAL Id: cel-00660507 https://cel.archives-ouvertes.fr/cel-00660507 Submitted on 16 Jan 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar bbm@badr-benmammar.comPlan  La première partie : L’intelligence artificielle (IA)  Définition de l’intelligence artificielle (IA)  Domaines d’application de l’IA  La reconnaissance de formes  Le traitement automatique des langues  Les systèmes experts  L’apprentissage automatique  L’intelligence artificielle distribuée (IAD)Plan  La deuxième partie : La technologie Agent  Définition d’un agent  Les agents intelligents et les agents mobiles  Les caractéristiques multidimensionnelles d’un agent  Architecture concrète pour un agent  Les agents logiques  Les agents réactifs  Les agents BDI  Les agents multi-niveaux  Modèle type d’un agentLa première partie : L’intelligence artificielle (IA)Définition de l’intelligence artificielle (IA)  L’IA Désigne la simulation des mécanismes de la pensée par un ordinateur  La faculté de reproduire un raisonnement par des moyens informatiques  Un ensemble de réalisations et de recherches qui essaient d'imiter artificiellement les performances humaines  L'émergence des systèmes ''adaptatifs''Domaines d’application de l’IA Systèmes experts Apprentissage automatique Traitement automatique des langues Reconnaissance des formes, des visages et la vision en généralLa reconnaissance de formesLa reconnaissance de formes RdF  La reconnaissance de formes (ou parfois reconnaissance de motifs) est un ensemble de techniques et méthodes visant à identifier des motifs à partir de données brutes afin de prendre une décision dépendant de la catégorie attribuée à ce motif.Définition  L’homme est le plus parfait des systèmes de RdF.  Reconstitution sur «machine» des fonctions typiquement humaines:  Perception ;  Analyse et représentation ;  Interprétation.Analogies Système de RdF  Composantes d’un système de RdF :  Mécanique (satellite, bras d’un robot, …)  Saisie (caméra, scanner, micro, …)  Electronique (carte mémoire, CPU, …)  ALGORITHMIQUEProcessus de RdF  Les informations issues du monde réel sont généralement :  trop volumineuses  peu pertinentes  Le processus de RdF est un processus de réduction progressive et sélective de l’informationProcessus de RdF  Etapes de traitement d’un processus de RdF:  Prétraitements binarisation, segmentation, élimination du bruit, normalisation, …  Extraction des informations pertinentes parole: fréquence, … image: contours, …  Représentation de ces informations en vue de leur classification vecteur, graphe,  Classification de la forme apprentissage/décision, +_ Quantité d’informationsLe traitement automatique des languesLe traitement automatique des langues  Le Traitement automatique des langues est une discipline à la frontière de :  La linguistique ;  L’informatique ;  L’intelligence artificielle.  Concerne l’application de programmes et techniques informatiques à tous les aspects du langage humain. Applications  La traduction automatique ;  La correction orthographique ;  La recherche d'information et la fouille de textes ;  Le résumé automatique de texte ;  La génération automatique de textes ; Fouille de Texte (Text Mining)Qu’est-ce que le Text Mining ?  Le Text Mining est l’ensemble des :  Technologies et méthodes  … destinées au traitement automatique  … de données textuelles  … disponibles sous forme informatique,  … en assez grande quantité  … en vue d’en dégager et structurer le contenu, les thèmes dans une perspective d’analyse rapide de découverte d’informations cachées ou de prise automatique de décisionDéfinition  Text Mining  Procédé consistant à synthétiser (classer, structurer, résumer, …) les textes en analysant les relations et les règles entre unités textuelles (mots, groupes, phrases, documents) Processus de Text Mining: Vue simplifiée Produit des vecteurs de fréquence des mots importantsAnalyse et Préparation  Corriger l'orthographe  Eliminer les mots vides  Découper les textes en unités  Associer des termes à une catégorie grammaticale ou sémantique  Réduire le nombre de termes à traiterCalculs de fréquence des termesRéduction des dimensions  Réduire les dimensions de la table de fréquences  En déterminant les termes les plus significatifs  En groupant les termes par affinité (profile)Domaines d’application  Exploration du contenu des documents  Questions ouvertes dans une enquête  Commentaires et plaintes des clients  Analyse des réclamations de garantie  Affectation de documents à des thèmes prédéfinis  Traitement des e-mails (redirection, filtrage)  Recherche d’information  Interrogation de textes par concepts, mots-clés, sujets, phrases visant à obtenir des résultats triés par ordre de pertinence, à la GoogleEtapes de la fouille de textes  Sélection de textes  Extraction des termes  Analyse grammaticale  Filtrage des termes extraits  Transformation  Réduction des dimensions  Classification  Visualisation des résultats  Interprétation des résultatsLes systèmes expertsLes systèmes experts  Un système expert est un logiciel capable de répondre à des questions, en effectuant un raisonnement à partir de faits et de règles connus. Il peut servir notamment comme outil d’aide à la décision. Les systèmes experts  Un système expert se compose de 3 parties :  Une base de faits ;  Une base de règles ;  Un moteur d’inférence.Faits et règles  Faits  Ensemble de vérités connues  Règles  Partie condition : prémisses  Partie action : conclusion, calcul, affichage ...  Éventuellement : coefficient de confiance SI condition ALORS action [coefficient]Les systèmes experts  Pour l’essentiel, ils utilisent la règle d'inférence suivante :  Si P est vrai (fait ou prémisse) et si on sait que P implique Q (règle) alors, Q est vrai (nouveau fait ou conclusion). Le moteur d’inférence Le moteur d’inférence est capable d’utiliser faits et règles pour produire de nouveaux faits, jusqu’à parvenir à la réponse à la question experte posée. La plupart des systèmes experts existants reposent sur des mécanismes de logique formelle et utilisent le raisonnement déductif. Pourquoi un SE ?  Problèmes mal formalisés ou dont la formulation évolue  Médecine : nouveaux examens, nouvelles connaissances, nouvelles thérapies  Pas d’algorithme connu (ou algorithme trop complexe)  Reconnaissance de l’écriture  Jeu d’échecs  Affectation des ressources, ordonnancementLes systèmes expertsArchitecture Base de faits Moteur d’inférence Filtrage Sélection Assertion Exécution Base de règlesMode de raisonnements  Il existe de nombreux types de moteurs, capables de traiter différentes formes de règles logiques pour déduire de nouveaux faits à partir de la base de connaissance.  On distingue souvent trois catégories, basées sur la manière dont les problèmes sont résolus :  Les moteurs - dit à « chaînage avant » - qui partent des faits et règles de la base de connaissance, et tentent de s’approcher des faits recherchés par le problème.  Les moteurs - dits à « chaînage arrière » - qui partent des faits recherchés par le problème, et tentent par l’intermédiaire des règles, de « remonter » à des faits connus,  Les moteurs - dits à « chaînage mixte » - qui utilisent une combinaison de ces deux approches chaînage avant et chaînage arrière. Chaînage avant Raisonnement guidé par les données :  Détecter les règles dont les prémisses sont vérifiées (filtrage)  Sélectionner la règle à appliquer  Appliquer la règle  Recommencer jusqu'à ce qu'il n'y ait plus de règle applicableChaînage arrière  But initial placé au sommet d’une pile  Détection des règles qui concluent à ce but  Résolution de conflits  Application de la règles, i.e, les éléments des prémisses deviennent de nouveau sous- buts à atteindre.  Arrêt : pile vide ou aucune règle applicableExercice  Exercice 1  Soit la base de règles suivantes :  R1 : (┐A B) P  R2 : (P et Q) F  R3 : (C A) Q  R4 : F (D K)  R5 : K (M et L)  La base initiale de faits est : (A, D).  Prouvez le fait M par chaînage avant. Projet IP-SIG : Signalisation g´en´erique du monde IP Badr Benmammar To cite this version: Badr Benmammar. Projet IP-SIG : Signalisation g´en´erique du monde IP. 3`eme cycle. 2005. HAL Id: cel-00682308 https://cel.archives-ouvertes.fr/cel-00682308 Submitted on 26 Mar 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Projet IP-SIG Signalisation générique du monde IP 21 Juillet 2005 Badr BENMAMMAR Université Bordeaux 12 PLAN • Présentation du projet – Objectif du projet et motivations – Organisation du projet • Partenaires et durée • Les sous-projets • Échéances et livrables – Rappels sur la signalisation IPSIG • Présentation des travaux – Sous-projet 3 • Réalisation du protocole GiSP • Tests du protocole GiSP • Démonstration – Sous-projet 4 • Définition d’un SLS dynamique • Réalisation de l’environnement dynamique • Démonstration – Etude des travaux en cours à l’IETF • Démonstration 3 Motivations et Objectif • Motivations – Plusieurs protocoles de signalisation existants • RSVP, RSVP-TE, CR-LDP, Radius, Diameter – Support des besoins de QoS, sécurité et mobilité • Objectif – Définition d’une signalisation Universelle • Unifier le processus de signalisation • Définition de SLS et de SLS dynamique 4 Organisation du projet • Projet Exploratoire – 24 mois + 6 mois • Partenaires : • ALCATEL, ENST, ISEP, LIP6, LIPN, UTT et THALES • Quatre sous-projets – SP1 : SLS et protocoles de signalisation • Livrable 1.1 : Définition d'un SLS • Livrable 1.2 : Comparaison des protocoles de signalisation – SP2 : Les briques de base et l'architecture globale • Livrable 2.1 : Architecture du système de signalisation • Livrable 2.2 : Spécification des briques de base – SP3 : Le protocole GiSP (Generic Signaling Protocol) • Livrable 3.1 : Réalisation du démonstrateur • Livrable 3.2 : Tests du démonstrateur – SP4 : Dynamique de l’environnement • Livrable 4.1 : Définition d’un SLS dynamique • Livrable 4.2 : Maquette de l'environnement dynamique5 Livrables et échéances Livrable 3.1 Réalisation T0+20 Septembre 04 Livrable 4.2 Maquette Livrable 3.2 Tests T0+24 Janvier 05 Livrable 4.1 Déf. d’un SLS dynamique Livrable 2.2 Spec des briques de base T0+18 Juillet 04 Livrable 2.1 Arch. du système de signalisation Livrable 1.2 Étude des protocoles T0+12 Livrable 1.1 déf. D’un SLS T0+9 SP4 Dynamique de l’environnement SP3 Le protocole GSP SP2 Architecture globale SP1 Définition d’un SLS et protocoles de signalisation6 Livrables et échéances - Nouvelle planification Livrable 3.1.1 : Réalisation Livrable 3.1.3 : QoS NSLP (NSIS WG) T0+26 Mars 05 Livrable 4.2 : Maquette Livrable 3.1.2 : Emulation GIMPS (NSIS WG) Livrable 3.2 :Tests T0+30 Juillet 05 Livrable 4.1 Déf. d’un SLS dynamique Livrable 2.2 Spec des briques de base T0+18 Juillet 04 Livrable 2.1 Arch. du système de signalisation Livrable 1.2 Étude des protocoles T0+12 Livrable 1.1 déf. D’un SLS T0+9 SP4 Dynamique de l’environnement SP3 Le protocole GSP SP2 Architecture globale SP1 Définition d’un SLS et protocoles de signalisation7 Rappels - Architecture protocolaire • Architecture protocolaire de NSIS NSIS Signaling Layer Protocol “NSLP” NSIS Transport Layer Protocol “NTLP” NSLP pour QoS NSLP pour middlebox NSLP pour … IP layer NSIS Transport Layer Protocol “NTLP” Signalisation IPSIG (GiSP : Generic Service Signaling Protocol)8 Rappels - Besoins du protocole GiSP • Fonctionnalités de signalisation • Deux modes de fonctionnement – Path coupled – Path decoupled • Gestion des états – Installer/modifier/supprimer un état • Sensibilité au changement de routage • Sensibilité à la mobilité • Fonctionnalités de transport • Transport fiable et non fiable • Transport sécurisé • Contrôle de congestion • Fragmentation • Bundling9 Rappels – Le protocole GiSP (Rappels) • Définition d’un format de message – ::= • Définition de l’en-tête – SM Flag : Mode de fonctionnement – M_Type : Type de message – New • Permet d’installer une nouvelle session (rapidement sans vérifier si la session est déjà établie) – Mod • Établit une session dans le sens inverse du flux de données (de New) • Modifier une session établie (sens forward et Backward) • Établit une session dans un nouveau chemin suite à un changement de route – Info • Échange de l’information entre éléments de signalisation – Notification des erreurs • Supporter le management d’état – Rafraîchissement des états – Suppression des états • Définition d’un ensemble d’objets – Transportant les informations nécessaires pour réaliser les fonctionnalités du protocole GiSP10 Rappels – Le protocole GiSP (Rappels) • Caractéristiques – Etablissement rapide d’un état dans un nœud en ½ RTT: • Un message New (ou Mod) contient toute l’information pour établir un état – Réduction du trafic de détection du changement de routage • Au lieu d’envoyer un message complet, GISP envoie seulement l’identification de session – Mobilité: changement de la CoA (Care of Address) • Utiliser l’identification de session et non l’identification de flux pour identifier une session de bout en bout • Mécanismes développés – Proposition d’un mécanisme de rafraîchissement performant • Réduction du trafic de rafraîchissement • Optimisation la gestion des timers – Mise en place d’un transport fiable et non fiable • Les messages sont explicitement acquittés ou non selon le besoin – Mise en place d’un contrôle de congestion • Dans le cas où GISP ne connaît pas le nœud suivant (mode non-connecté) GISP limite le trafic de signalisation traversant une interface • Dans le cas où GISP connaît le nœud suivant (mode connecté) GISP applique un mécanisme de contrôle de congestion qui s’inspire des mécanismes de TCP, SCTP et DDCP (contrôle de congestion par fenêtre en supportant le mode fiable et non fiable).Le projet IPSIG Dynamique de l’environnement12 Dynamique de l’environnement Deux Aspects : I. Négociation dynamique de SLA/SLS II. Impact de la mobilité du terminal sur la QoS13 Introduction I. Négociation dynamique de SLA/SLS – Identification des besoins de l’utilisateur – Agents pour la négociation de SLA/SLS – Protocole de négociation de paramètres de SLS14 Protocole SLN NSLP • Protocole de négociation de paramètres de SLS – Environnement NSIS NSIS Signaling Layer Protocol “NSLP” NSIS Transport Layer Protocol “NTLP” NSLP pour QoS NSLP pour middlebox NSIS Transport Layer Protocol “NTLP” NSLP pour la négociation15 Protocole SLN NSLP - Négociation intra ou inter domaines. • Entités de négociation16 Protocole SLN NSLP • Architecture globale17 Protocole SLN NSLP - Temps de service : période de garantie du niveau de service - Scope : point d’entrée et de sortie d’un domaine - Identification du trafic : @IP, Port source/destination... - Garantie de performance : délai, gigue, taux de perte, bande passante - Description et conformité du trafic : taille des paquets, débit crête, paramètres du Token Bucket. - Traitement d’excès : lissage, marquage, élimination - Mode de négociation : SLS prédéfini ou non - Intervalle de renégociation : dépend du type de négociation. - Priorité et fiabilité : MDT, MTTR • Paramètres du SLS de QoS18 Protocole Messages SLN NSLP - Negotiate : Emis du SNI vers le SNR, permet de spécifier les attributs sur lesquels on veut négocier ainsi que leurs valeurs. - Revision : Emis par le SNR vers le SNI pour proposer une alternative aux attributs et valeurs reçus dans le message Negotiate. - Response : Emis par le SNR ou SNI suite a un message précèdent contenant un objet Response Request. - Modify : Emis par le SNI vers le SNR en spécifiant le SLS ID sur le quel la modification va porter - Notify : Emis par le SNR (ou SNF) pour demander au SNI de dégrader ou rétablir un niveau de service qui a été déjà négocié. - Release : Emis par le SNI vers le SNR pour résilier un SLS déjà négocié. • Messages SLN NSLP19 Protocole SLN NSLP 00 / 30 ms D=100ms ; G=20ms ; P=0,1% ; D= 704 Kbit/s 9h17h LundiJeudi @IP SNI @IP SNR @IP Host A @IP Host B Mode /interv alle Temps de Garantie de Performance Service Identification du Scope trafic 00 / 30 ms D<150ms ; G<30ms ; P<1% ; D= 696 Kbit/s 9h17h LundiJeudi @IP SNI @IP SNR @IP Host A @IP Host B Mode / intervalle Temps de Garantie de Performance Service Identification du Scope trafic SLS Demandé pour la visioconférence SLS accepté par le SNR • Exemples de négociation20 Cas d’une Visioconférence SNI / SIP PROXY SNF SNR Host Negotiate B Communication Host A Negotiate Revision Revision Response {Ack} Response {Ack} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Invite Invite 180 Ringing 180 Ringing ACK 200 OK 200 OK SLN NSLP QoS NSLP SIP21 Cas de la téléphonie IP SNI / SIP PROXY SNF Host B SNR Negotiate Communication Host A Negotiate Response {Ack} Response {Ack} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Reserve {Qspec} Invite Invite 180 Ringing 180 Ringing ACK 200 OK 200 OK SLN NSLP QoS NSLP SIP 183 Progress Bye OK Release {SLS ID} Release {SLS ID} 22 Conclusion • SLN NSLP est une proposition de protocole de signalisation dans la bande pour la négociation de niveau de service. • SLN NSLP est indépendant du modèle de QoS grâce a l’architecture de signalisation générique définie dans NSIS. • SLN NSLP est indépendant des objets de négociation donc il est réutilisable.23 Dynamique de l’environnement 2. Impact de la mobilité du terminal sur QoS – Réservation de ressources à l’avance • Messages de QoS NSLP • Profil de mobilité fourni par l’interface utilisateur MSpec = » : the MSpec identifier » : , » : ,, etc. – Procédure de handover • Protocole CTP (Context Transfer Protocol)24 ∑ Pij = 1 = n j 1 ∑ = n i 1 Pi (tr) * Pij Pj (tr+1) = Cj Cn Cn-1 Ci C2 C1 tr+1 tr P1j P2j Pij Pnj Pn-1j P1 Pn Pn-1 Pi P2 Détermination du MSpec • Basée sur les chaînes de Markov en temps continu • Le système est dans l’état i si le terminal mobile est dans la cellule Ci Pij : probabilité de transition de la cellule Ci vers la cellule Cj Pi (tr) : probabilité de localisation du terminal mobile dans la cellule Ci à l’instant tr 25 ∑ = m d 1 Pij Pij = (d) /m Profil de mobilité du terminal - La matrice de transition contenant les Pij M = [Pij] [N*N] Pij(d): probabilité de transition de la cellule i vers la cellule j durant d associations m: nombre d’associations -Le vecteur contenant les Pi (to) V = [Pi(to)] [N] Pi (to): probabilité de localisation du terminal mobile dans la cellule Ci à l’instant to26 { 0: no handover 1: vertical handover UMTS HD [Cell ID, App ID] = Profil de mobilité du terminal - Les futures localisations du terminal mobile MSpec (tr) = {Cj / Pj (tr+1) ≥ x } x : un seuil fixe ou variable utilisé pour sélectionner les cellules - La décision de handover27 • Procédure de réservation de ressources à l’avance - Extension de QoS NSLP • Différents scénarios (environnement HMIPv6) - Réservation à l’initiative du demandeur ou du récepteur - Entre un terminal fixe et un terminal mobile - Entre terminaux mobiles • Procédure de handover - Horizontal - Vertical Protocole MQoS NSLP28 • Impact du seuil x Simulations29 • Protocole de réservation de ressources à l’avance - Dans un environnement NSIS - Extension de QoS NSLP • Réservations basées sur l’objet MSpec - Déterminé par le terminal mobile - Utilisation des chaînes de Markov en continu • Méthode hybride • Validation Conclusion30 Maquette Utilisateur Fournisseur Jade Négociation Gold | prix Silver | prix Bronze | prix Best effort | prix • (Re)négociation à l’initiative de l’utilisateur31 Maquette • (Re)négociation à l’initiative du fournisseur Réseau DiffServ EndUserGenerator New EndUser Utilisateur Fournisseur data Traffic Sender Jade J-Sim Négociation Nouveau Prix fonction de la charge du réseau Decision finale Gold | prix Silver | prix Bronze | prix Best effort | prix32 Architecture de l’interface proposée Fournisseur Réseau Terminal Utilisateur Interface graphique/Messages/Capteurs Couche Gestion de profil Apprentissage (SOM) Couche de Contrôle Couche de négociation Couche protocolaire Profils Propriétés Paramètres de performance SLS33 Identité des personnes : rôles, préférences, permissions, etc. Localisation des personnes : domicile, gare, travail, etc. Période : l’heure, le jour, le mois, etc. Contraintes : des utilisateurs, des applications, etc. Active device : Laptop, PC, cellular Connectivité : LAN, WLAN, cellular network Informations contextuelles Les r´eseaux sans fil et la nouvelle signalisation IP Badr Benmammar To cite this version: Badr Benmammar. Les r´eseaux sans fil et la nouvelle signalisation IP. 3`eme cycle. 2004. HAL Id: cel-00660842 https://cel.archives-ouvertes.fr/cel-00660842 Submitted on 17 Jan 2012 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Les réseaux sans fil et la nouvelle signalisation IP Badr BENMAMMAR Université Bordeaux 1 1 École DNAC d'hiver Sur le Nil, Égypte, du 11 au 18 décembre 20041 PLAN • Introduction • QoS NSLP • Réservation de ressources à l’avance • Format du MSpec • Réservation de ressources à l’avance avec QoS NSLP • Le transfert de contexte • La procédure de handover • Méthodes de prédiction • Conclusion 22 IP-SIG (1/2) Les objectifs de ce projet sont :  La définition d'une architecture de signalisation universelle (les besoins de QoS, de mobilité et de sécurité)  La définition d'un SLS standard  Une étude prospective sur la dynamisation du SLS 1. ENST 2. ALCATEL 3. UTT 4. Université de Paris 13 5. ISEP 6. LIP6 7. THALES Partenaires du projet 33 Quatre sous-projets: Sous-projet 1 – SLA-SLS et protocoles de signalisation (Responsable ALCATEL) Sous-projet 2 – Les briques de base et l'architecture globale (Responsable LIP6) Sous-projet 3 – Le protocole GSP (Generic Signaling Protocol) (Responsable ISEP) Sous-projet 4 – Dynamique de l’environnement (Responsable LIPN) IP-SIG (2/2) Négociation dynamique de SLA/SLS Impact de la mobilité sur la signalisation 44 NSIS (Next Steps In Signaling) • Standardiser une architecture comprenant deux couches: - NTLP : NSIS Transport Layer Protocol - NSLP : NSIS signaling Layer Protocol IP IP Layer Security UDP TCP SCTP DCCP Transport Layer Security GIMPS: Messaging Layer GIMPS Encapsulation GIMPS State Maintenance NTLP Signaling Application 1 Signaling Application 2 Signaling Application 3 NSLP 55 QoS NSLP • QoS NSLP permet de générer une signalisation pour fournir un certain niveau de QoS indépendamment du modèle de QoS (Diffserv, Intserv,...) • QoS NSLP + NTLP RSVP 6 • La création d’un état • Le rafraîchissement d’un état • La modification d’un état • L’élimination d’un état6 Les messages de QoS NSLP • Reserve : le seul à manipuler l’état de la réservation (rafraîchir, créer, supprimer). • Query : demande des informations aux nœuds QNE (les ressources disponibles) • Response : permet d’envoyer un résultat associé à un message antérieur • Notify : permet d’informer un nœud sans demande préalable 77 • Sender Initiated Reservation Réservation de ressources avec QoS NSLP (1/2) RESPONSE NI NF NF NR RESERVE RESERVE RESERVE RESPONSE RESPONSE 88 Réservation de ressources avec QoS NSLP (2/2) • Receiver Initiated Reservation NR NF NF NI RESERVE RESERVE RESERVE RESPONSE RESPONSE RESPONSE QUERY QUERY QUERY 99 • NSIS (Next Steps In Signaling): fournir une signalisation universelle • Objectif: étudier l’impact de la mobilité sur la signalisation NSIS • Proposition : utiliser les messages de QoS NSLP afin de faire des réservations à l’avance • La QoS • La sécurité • La mobilité 10 Proposition10 Réservation de ressources à l’avance • Réservation à l'avance dans tous les endroits que l'utilisateur peut visiter • Un profil de mobilité est déterminée soit par le réseau, soit par le terminal mobile • L’objet MSpec (Mobility Specification) détermine les futures localisations du MH (Mobile Host) • L’objet MSpec est inclus dans les messages de QoS NSLP 1111 Travaux réalisés dans les réseaux mobiles (1/2) • Anup Kumar Talukdar, B. R. Badrinath, Arup Acharya. MRSVP: a resource reservation protocol for an integrated services network with mobile hosts, ACM Journal of Wireless Networks, vol. 7, 2001 12 • MSPEC (Mobility Specification): pas de format, les futures localisations • La réservation active: si les paquets de ce flux passent par ce lien afin d’arriver au récepteur • La réservation passive: si les ressources sont réservées pour ce flux sur le lien, mais les paquets actuels pour ce flux ne sont pas transmis sur ce lien12 • Min-Sun Kim, Young-Joo Suh, Young-Jae Kim, Young Choi. A Resource Reservation Protocol in Wireless Mobile Networks. ICPP Workshops, Valencia, Spain September 03 - 07, 2001 Travaux réalisés dans les réseaux mobiles (2/2) • La classe Free : elle représente les ressources utilisées en BE • La classe Reserved : elle représente les ressources réservées et actuellement utilisées, pour un flux spécifique • La classe Prepared : elle représente les ressources réservées pour un flux spécifique et qui ne sont pas actuellement utilisées 1313 Inconvénients • Le nombre de flux qui peut être supporté par le routeur est réduit • Le MSPEC est très difficile à déterminer à l’avance Avantages • Meilleure QoS (délai et pertes de paquets) • Application en temps réel. 1414 Format du MSpec MSpec = : identificateur unique du MSpec • : , : ,,, etc. 1515 Procédure de réservation de ressources à l’avance avec QoS NSLP (fixe,mobile) -1 : Router Advertissement, un bit Q 0 : Registration Request, bit Q, QSpec et MSpec 1 : NOTIFY: QSpec et MSpec 2 : RESERVE: QSpec 3 : RESERVE 4 : RESPONSE 5 : RESPONSE Réservation de ressources à l’avance avec QoS NSLP CN HA Internet HN MAP AR AR AR MH FN 2 4 5 5 0 -1 3 1 3 NI NF NF NF NF NR 1616 Le Protocole CTP Context Transfer Protocol (WG Seamoby) 17 • Contexte: l'information nécessaire sur l'état actuel d'un service afin de le rétablir sur un nouveau sous-réseau • les services candidats: • Authentication, Authorization et Accounting (AAA) • Header Compression • Quality de Service (QoS) • Point to point protocol (PPP) • Politiques17 Le déclenchement de transfert de contexte (1/3) • Déclenché à l’initiative du : – nœud mobile (mobile controlled). – pAR ou nAR (network controlled). • Exemple : mobile controlled, initié par le nœud mobile MN nAR pAR CT trigger CTAR CT Request CTD 1818 Le déclenchement de transfert de contexte (2/3) MN nAR pAR CT trigger CTAR CTD CTDR • Exemple : network controlled, initié par le pAR 1919 Le déclenchement de transfert de contexte (3/3) MN nAR pAR CT trigger CT Request CTAR CTD CTDR • Exemple : network controlled, initié par le nAR 2020 La procédure de handover 21 La procédure de handover CN HA Internet HN MAP AR AR AR MH FN MH MIPv6 NOTIFY : en incluant le nouveau MSpec RESERVE 1 2 CTD CT Request Analyse le nouveau MSpec21 Exemple 22 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MH MSpec1 = {Cell1, Cell3}22 Exemple 23 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MSpec1 = {Cell1, Cell3} MH MSpec2 = {Cell2, Cell4}23 Exemple 24 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MSpec1 = {Cell1, Cell3} MH MSpec2 = {Cell2, Cell4}24 Exemple 25 AR1 MAP AR2 AR3 AR4 Cell1 Cell2 Cell3 Cell4 MSpec1 = {Cell1, Cell3} MH MSpec2 = {Cell2, Cell4}25 26 i = 1 Ci : cellule courante MSpeci i = 1 ∀ C ∈ MSpec1 : créer une réservation passive pour la cellule C Oui handover après une période t1 passée dans la cellule C1 i = i+1 Non  La réservation dans la cellule Ci devient active  ∀C∈{MSpeci-MSpeci-1-Ci-1} : créer une nouvelle réservation pour la cellule C  ∀C∈{ MSpeci-1- MSpeci-Ci}: supprimer la réservation pour la cellule C Oui La réservation devient passive pour la cellule Ci-1 Supprimer la réservation pour la cellule Ci-1 handover après une période ti passée dans la cellule Ci Non Ci-1∈ MSpeci Les actions réalisées par le MAP dans le cas d’une communication fixe-mobile26 Procédure de réservation de ressources à l’avance avec QoS NSLP (mobile-mobile) 27 Internet HA HN AR AR MAP2 AR AR AR MH1 MAP1 0 MH2 2 AR 1 3 4 5 6 7 7 8 8 9 9 Réservation de ressources à l’avance avec QoS NSLP 0 : Router Advertissement , le bit Q. 1 : Registration Request, QSpec et MSpec2 2 : NOTIFY, QSpec et MSpec2 3 : Router Advertissement, le bit Q 4 : Registration Request, QSpec et MSpec1 5 : NOTIFY, QSpec et MSpec1 6 : RESERVE, QSpec 7 : NOTIFY 8 : RESERVE 9 : RESERVE27 La procédure de handover 28 Internet HA HN AR MAP2 AR MH1 MAP1 4 5 5 6 6 AR AR MH1 MH2 AR 3 CT Request CTD 2 MH2 1 AR MIPv6 MIPv6 La procédure de handover 1 : RESERVE 2 : RESPONSE 3 : NOTIFY 4 : RESERVE 5: NOTIFY, l’ancien MSpec1 et le nouveau MSpec1 6 : RESERVE Analyse le nouveau MSpec228 Modélisation par les chaînes de Markov • Le système est un modèle pouvant évoluer entre n états définis par l’ensemble: C = (C1, C 2, ........Ci........ Cn) • Le système est à l’état i = le terminal mobile se trouve dans la cellule Ci • Pij : la probabilité de transition de la cellule Ci vers la cellule Cj • Pi (t) : la probabilité pour que le terminal mobile se trouve dans la cellule Ci à l’instant t ∑ Pij = 1, i = 1 à n et 0 ≤ Pij ≤ 1 = n j 1 ∑= n i 1 Pi (t) * Pij Pj (t+1) = Cj Cn Cn-1 Ci C 2 C1 t+1 t P1j P2j Pij Pnj Pn-1j P1 Pn Pn-1 Pi P 2 2929 Le profil de mobilité (1/2) • Construire un modèle comportemental pour l’utilisateur • il contient les informations suivantes : - Un identificateur unique de l’utilisateur : user_id - Les informations personnelles de l’utilisateur - nom - prénom - age - adresse - ... - Les préférences de l’utilisateur Exemple : quand l’utilisateur se déplace vers la cellule1, qui couvre le Forum, il commence toujours par le lancement d’un jeu vidéo durant 1h. 3030 Le profil de mobilité (2/2) - M = [Pij] [N*N] : une matrice de transition qui contient les Pij - V = [Pi(0)] [N] : un vecteur qui contient les Pi(0). (Pi (0): la probabilité pour que le terminal mobile se trouve dans la cellule Ci à l’instant 0) - Le MSpec (Mobility Specification): un ensemble dynamique, il est modifié après chaque handover 3131 Calculer la matrice M et le vecteur V (1/2) • Besoin de m connexions afin de déterminer les Pi(0) et les Pij • l(d) : le nombre de transitions dans le système pour la dème connexion (1≤ d ≤ m) • tij(d) : le nombre de transition de la cellule i à la cellule j pendant la dème connexion • li(d) : le nombre de transitions sortantes de la cellule i pendant la dème connexion 32 • M = [Pij] [N*N] • On le calcule de la manière suivante : l i(d) = ∑= n j 1 tij(d) ∑= n i 1 li(d) = l(d)32 Calculer la matrice M et le vecteur V (2/2) 33 • La probabilité de transition de la cellule i à la cellule j pendant la dème connexion (Pij(d)) est calculée de la manière suivante : Pij(d) = tij(d)/l i(d) • Après m connexions, la probabilité de transition de la cellule i à la cellule j est calculée de la manière suivante : ∑= m d 1 Pij Pij = (d) /m. i,j = 1,n • Si à l’instant t = 0, l’utilisateur se connecte k fois dans la cellule i durant les m •connexions alors : Pi(0) = k/m ou (k*100/m)% • V = [Pi(0)] [N]33 Prédire le MSpec à l’aide des chaînes de Markov •Le MSpec est un sous ensemble de C MSpec = {a1 C1, a2 C2,..........., ai Ci,.........., an Cn} / ai = {0, 1} ∑= n i 1 ai Ci / ai MSpec = = {0,1} • On définit θ (0 ≤ θ ≤ 1) : un seuil fixe ou variable, pour sélectionner les cellules de plus grandes probabilités. Le MSpec est défini comme suit : MSpec = {Cj / Pj (t+1) ≥ θ } 3434 Non Fin Consulter le profil de mobilité de l’utilisateur Début Identifier l’utilisateur t = 0, MSpec = { } C = (C1, C2, ........Ci........Cn) Non Utilisateur Oui = ancien Initier la matrice de transition: M = [Pij], {i, j} =1, 2, ..... n Initier Pi (0) i =1, 2, ….. n J=1 ; 0 ≤ θ ≤ 1 MSpec = MSpec ∪ Cj j = j+1 Oui Non Oui j ≤ N Pj (t+1) ≥ θ ∑ = n i 1 Pj (t+1) = Pi (t) * Pij Prédiction du MSpec à l’aide des chaînes de Markov 3535 t0 t1 s0 s1 f1 f0 Temps du handover de la cellule Ci-1 à la cellule Ci Temps du handover de la cellule Ci à la cellule Ci+1 Le temps passé dans la cellule Ci Temps du lancement de la méthode de prédiction Temps de la détermination du MSpec Temps de la détermination du MSpec Temps de la procédure de réservation de ressources à l’avance temps La cellule Ci-1 La cellule Ci La cellule Ci+1 Le temps d’attente dans la cellule Ci ≥ le temps de la détermination du MSpec + le temps de la réservation de ressources à l’avance Simulation 36 Systeme informatique de commande du robot V 80 V. Dupourque To cite this version: V. Dupourque. Systeme informatique de commande du robot V 80. RT-0035, 1984, pp.93. HAL Id: inria-00070123 https://hal.inria.fr/inria-00070123 Submitted on 19 May 2006 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es. Lecture 10: Robust outlier detection with L0-SVDD Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 February 28, 2014Roadmap 1 Robust outlier detection with L0-SVDD L0 SVDD 4 iterations of Adaptive L0 SVDDRecall SVDD    min R,c,ξ R + C Xn i=1 ξi with kxi − ck 2 ≤ R + ξi , i = 1, . . . , n and ξi ≥ 0, i = 1, . . . , n (1) Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 3 / 11SVDD + outlier C =1/16 C =1/8 C =1/4 C = 1/2 (¾') Figure: Example of SVDD solutions with different C values, m = 0 (red) and m = 5 (magenta). The circled data points represent support vectors for both m. Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 4 / 11The L0 norm kξk0 ≤ t    min c∈IRp ,R∈IR,ξ∈IRn R + Ckξk0 with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 5 / 11L0 relaxations p norm exponenetial piecewise linear log    min c∈IRp ,R∈IR,ξ∈IRn R + C Xn i=1 log(γ + ξi) with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n . Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 6 / 11DC programing log(γ + t) = f (t) − g(t) with f (t) = t and g(t) = t − log(γ + t), both functions f and g being convex. The DC framework consists in minimizing iteratively (R plus a sum of) the following convex term: f (ξ) − g ′ (ξ)ξ = ξ −  1 − 1 γ + ξ old  ξ = ξ γ + ξ old , where ξ old i denotes the solution at the previous iteration. Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 7 / 11The DC idea applied to our L0 SVDD approximation consists in building a sequence of solutions of the following adaptive SVDD:    min c∈IRp ,R∈IR,ξ∈IRn R + C Xn i=1 wi ξi with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n with wi = 1 γ + ξ old i . Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 8 / 11Stationary conditions of the KKT give: c = Pn i=1 αi xi and Pn i=1 αi = 1 where the αi are the Lagrange multipliers associated with the inequality constraints kxi − ck 2 ≤ R+ξi . The dual of this problem is ( min α∈IRn α ⊤XX ⊤α − α ⊤diag(XX ⊤) with Pn i=1 αi = 1 0 ≤ αi ≤ Cwi i = 1, n (2) Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 9 / 11Algorithm 1 L0 SVDD for the linear kernel Data: X, y, C , γ Result: R , c, ξ , α wi = 1; i = 1, n while not converged do (α, λ) ← solve_QP(X, C,w) % solve problem (2) c ← X ⊤α R ← λ + c ⊤c ξi ← max(0, kxi − ck 2 − R) i = 1, n wi ← 1/(γ + ξi) i = 1, n end Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 10 / 11Bibliography Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 11 / 11 Lecture 9: Multi Kernel SVM Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 16, 2014Roadmap 1 Tuning the kernel: MKL The multiple kernel problem Sparse kernel machines for regression: SVR SimpleMKL: the multiple kernel solutionStandard Learning with Kernels User Learning Machine kernel k data f http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21Learning Kernel framework User Learning Machine kernel family km data f , k(., .) http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21from SVM SVM: single kernel k f (x) = Xn i=1 αi k (x, xi) + b = http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL) SVM: single kernel k MKL: set of M kernels k1, . . . , km, . . . , kM ◮ learn classier and combination weights ◮ can be cast as a convex optimization problem f (x) = Xn i=1 αi X M m=1 dm km(x, xi) + b X M m=1 dm = 1 and 0 ≤ dm = http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL) SVM: single kernel k MKL: set of M kernels k1, . . . , km, . . . , kM ◮ learn classier and combination weights ◮ can be cast as a convex optimization problem f (x) = Xn i=1 αi X M m=1 dm km(x, xi) + b X M m=1 dm = 1 and 0 ≤ dm = Xn i=1 αiK(x, xi) + b with K(x, xi) = X M m=1 dm km(x, xi) http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21Multiple Kernel The model f (x) = Xn i=1 αi X M m=1 dmkm(x, xi) + b, X M m=1 dm = 1 and 0 ≤ dm Given M kernel functions k1, . . . , kM that are potentially well suited for a given problem, find a positive linear combination of these kernels such that the resulting kernel k is “optimal” k(x, x ′ ) = X M m=1 dmkm(x, x ′ ), with dm ≥ 0, X m dm = 1 Learning together The kernel coefficients dm and the SVM parameters αi , b. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 5 / 21Multiple Kernel: illustration Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 6 / 21Multiple Kernel Strategies Wrapper method (Weston et al., 2000; Chapelle et al., 2002) ◮ solve SVM ◮ gradient descent on dm on criterion: ⋆ margin criterion ⋆ span criterion Kernel Learning & Feature Selection ◮ use Kernels as dictionary Embedded Multi Kernel Learning (MKL) Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 7 / 21Multiple Kernel functional Learning The problem (for given C) min f ∈H,b,ξ,d 1 2 kf k 2 H + C X i ξi with yi f (xi) + b  ≥ 1 + ξi ; ξi ≥ 0 ∀i X M m=1 dm = 1 , dm ≥ 0 ∀m , f = X m fm and k(x, x ′ ) = X M m=1 dmkm(x, x ′ ), with dm ≥ 0 The functional framework H = M M m=1 H′ m hf , giH′ m = 1 dm hf , giHm Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 8 / 21Multiple Kernel functional Learning The problem (for given C) min {fm},b,ξ,d 1 2 X m 1 dm kfmk 2 Hm + C X i ξi with yi X m fm(xi) + b  ≥ 1 + ξi ; ξi ≥ 0 ∀i X m dm = 1 , dm ≥ 0 ∀m , Treated as a bi-level optimization task min d∈IRM    min {fm},b,ξ 1 2 X m 1 dm kfmk 2 Hm + C X i ξi with yi X m fm(xi) + b  ≥ 1 + ξi ; ξi ≥ 0 ∀i s.t. X m dm = 1 , dm ≥ 0 ∀m , Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 9 / 21Multiple Kernel representer theorem and dual The Lagrangian: L = 1 2 X m 1 dm kfmk 2 Hm + C X i ξi − X i αi  yi X m fm(xi) + b  − 1 − ξi  − X i βi ξi Associated KKT stationarity conditions: ∇mL = 0 ⇔ 1 dm fm(•) = Xn i=1 αi yikm(•, xi) m = 1, M Representer theorem f (•) = X m fm(•) = Xn i=1 αi yi X m dmkm(•, xi) | {z } K(•,xi ) We have a standard SVM problem with respect to function f and kernel K. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 10 / 21Multiple Kernel Algorithm Use a Reduced Gradient Algorithm1 min d∈IRM J(d) s.t. X m dm = 1 , dm ≥ 0 ∀m , SimpleMKL algorithm set dm = 1 M for m = 1, . . . , M while stopping criterion not met do compute J(d) using an QP solver with K = P m dmKm compute ∂J ∂dm , and projected gradient as a descent direction D γ ← compute optimal stepsize d ← d + γD end while −→ Improvement reported using the Hessian 1Rakotomamonjy et al. JMLR 08 Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 11 / 21Computing the reduced gradient At the optimal the primal cost = dual cost 1 2 X m 1 dm kfmk 2 Hm + C X i ξi | {z } primal cost = 1 2 α ⊤Gα − e ⊤α | {z } dual cost with G = P m dmGm where Gm,ij = km(xi , xj) Dual cost is easier for the gradient ∇dm J(d) = 1 2 α ⊤Gmα Reduce (or project) to check the constraints P m dm = 1 → P m Dm = 0 Dm = ∇dm J(d) − ∇d1 J(d) and D1 = − X M m=2 Dm Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 12 / 21Complexity For each iteration: SVM training: O(nnsv + n 3 sv). Inverting Ksv,sv is O(n 3 sv), but might already be available as a by-product of the SVM training. Computing H: O(Mn2 sv) Finding d: O(M3 ). The number of iterations is usually less than 10. −→ When M < nsv, computing d is not more expensive than QP. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 13 / 21MKL on the 101-caltech dataset http://www.robots.ox.ac.uk/~vgg/software/MKL/ Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 14 / 21Support vector regression (SVR) the t-insensitive loss ( min f ∈H 1 2 kf k 2 H with |f (xi) − yi | ≤ t, i = 1, n The support vector regression introduce slack variables (SVR) ( min f ∈H 1 2 kf k 2 H + C P|ξi | with |f (xi) − yi | ≤ t + ξi 0 ≤ ξi i = 1, n a typical multi parametric quadratic program (mpQP) piecewise linear regularization path α(C,t) = α(C0,t0) + ( 1 C − 1 C0 )u + 1 C0 (t − t0)v 2d Pareto’s front (the tube width and the regularity)Support vector regression illustration 0 1 2 3 4 5 6 7 8 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Support Vector Machine Regression x y 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 −1.5 −1 −0.5 0 0.5 1 1.5 Support Vector Machine Regression x y C large C small there exists other formulations such as LP SVR...Multiple Kernel Learning for regression The problem (for given C and t) min {fm},b,ξ,d 1 2 X m 1 dm kfmk 2 Hm + C X i ξi s.t. X m fm(xi) + b − yi ≤ t + ξi ∀iξi ≥ 0 ∀i X m dm = 1 , dm ≥ 0 ∀m , regularization formulation min {fm},b,d 1 2 X m 1 dm kfmk 2 Hm + C X i max( X m fm(xi) + b − yi − t, 0) X m dm = 1 , dm ≥ 0 ∀m , Equivalently min fm},b,ξ,d X i max X m fm(xi) + b − yi − t, 0  + 1 2C X m 1 dm kfmk 2 Hm + µ X m |dm| Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 17 / 21Multiple Kernel functional Learning The problem (for given C and t) min {fm},b,ξ,d 1 2 X m 1 dm kfmk 2 Hm + C X i ξi s.t. X m fm(xi) + b − yi ≤ t + ξi ∀iξi ≥ 0 ∀i X m dm = 1 , dm ≥ 0 ∀m , Treated as a bi-level optimization task min d∈IRM    min {fm},b,ξ 1 2 X m 1 dm kfmk 2 Hm + C X i ξi s.t. X m fm(xi) + b − yi ≥ t + ξi ∀i ξi ≥ 0 ∀i s.t. X m dm = 1 , dm ≥ 0 ∀m , Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 18 / 21Multiple Kernel experiments 0 0.2 0.4 0.6 0.8 1 −1 −0.5 0 0.5 1 LinChirp 0 0.2 0.4 0.6 0.8 1 −2 −1 0 1 2 x 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Wave 0 0.2 0.4 0.6 0.8 1 0 0.5 1 x 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Blocks 0 0.2 0.4 0.6 0.8 1 0 0.2 0.4 0.6 0.8 x 0 0.2 0.4 0.6 0.8 1 0.2 0.4 0.6 0.8 1 Spikes 0 0.2 0.4 0.6 0.8 1 0 0.5 1 x Single Kernel Kernel Dil Kernel Dil-Trans Data Set Norm. MSE (%) #Kernel Norm. MSE #Kernel Norm. MSE LinChirp 1.46 ± 0.28 7.0 1.00 ± 0.15 21.5 0.92 ± 0.20 Wave 0.98 ± 0.06 5.5 0.73 ± 0.10 20.6 0.79 ± 0.07 Blocks 1.96 ± 0.14 6.0 2.11 ± 0.12 19.4 1.94 ± 0.13 Spike 6.85 ± 0.68 6.1 6.97 ± 0.84 12.8 5.58 ± 0.84 Table: Normalized Mean Square error averaged over 20 runs. Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 19 / 21Conclusion on multiple kernel (MKL) MKL: Kernel tuning, variable selection. . . ◮ extention to classification and one class SVM SVM KM: an efficient Matlab toolbox (available at MLOSS)2 Multiple Kernels for Image Classification: Software and Experiments on Caltech-1013 new trend: Multi kernel, Multi task and ∞ number of kernels 2 http://mloss.org/software/view/33/ 3 http://www.robots.ox.ac.uk/~vgg/software/MKL/Bibliography A. Rakotomamonjy, F. Bach, S. Canu & Y. Grandvalet. SimpleMKL. J. Mach. Learn. Res. 2008, 9:2491–2521. M. Gönen & E. Alpaydin Multiple kernel learning algorithms. J. Mach. Learn. Res. 2008;12:2211-2268. http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf http://www.robots.ox.ac.uk/~vgg/software/MKL/ http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 21 / 21 Lecture 7: Tuning hyperparameters using cross validation Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 4, 2014Roadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Motivation: the influence of C on SVM 0 0.5 1 1.5 2 2.5 3 3.5 4 0.22 0.24 0.26 0.28 0.3 error C (log. scale) 0 0 1 −1 C too small 0 0 0 1 1 1 −1 −1 −1 −1 −1 nice C 0 0 0 0 0 1 1 1 1 1 1 −1 −1 −1 −1 −1 C too largeMotivation: Need for model selection (tuning the hyper parameters) Require a good estimation of the performance on future data Choose a relevant performance measureRoadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Machine learning without data minimizing IP(error)Roadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Training and test data Split dataset into two groups randomly picked (hold out strategy) Training set: used to train the classifier Test set: used to estimate the error rate of the trained classifier (X,y) total available data (Xa,ya) training data (Xt,yt) test data (Xa, ya, Xt, yt) ← split(X, y, option = 1 3 ) Generally, the larger the training data the better the classifier The larger the test data the more accurate the error estimateAssessing the quality of a trained SVM: minimum error rate Definition (The confusion matrix) A matrix showing the predicted and actual classifications. A confusion matrix is of size L × L, where L is the number of different classes. Observed / predicted Positive Negative positive a b negative c d Error rate = 1 - Accuracy = b + c a + b + c + d = b + c n = 1 − a + d n True positive rate (Recall, Sensitivity) d/(c+d). True negative rate (Specificity) a/(a+b). Precision, False positive rate, False negative rate...Other performances measures N. Japkowicz & M. Shah, "Evaluating Learning Algorithms: A Classification Perspective", Cambridge University Press, 2011The learning equation Learning = training + testing + tuning Table: my experimental error rates State of the art my new method Bayes error problem 1 10% ± 1.25 8.5% ± .5 problem 2 5 % (.25) 4 % (.5) is my new method good for problem 1?The learning equation Learning = training + testing + tuning Table: my experimental error rates State of the art my new method Bayes error problem 1 10% ± 1.25 8.5% ± .5 11 % problem 2 5 % (.25) 4 % (.5) 2 % is my new method good for problem 1?Error bars on Bernouilli trials Error rate = bp B(p) with confidence α: (Normal approximation interval) p = IP(error) in bp ± u1−α/2 s bp (1 − bp) nt with confidence α: (improved approximation) p = IP(error) in 1 1 + 1 K u 2 1−α/2  bp ± u1−α/2 s bp (1 − bp) nt   what if bp = 0? http://en.wikipedia.org/wiki/Binomial_proportion_confidence_intervalTo improve the estimate Random Subsampling (The repeated holdout method) K-Fold Cross-Validation (K = 10 or K = 2 or k = n) Leave-one-out Cross-Validation (k = 1) BootstrapError bars: the gaussian approximation ... and to stabilize: iterate K times - do it say K = 10 times The repeated holdout method Holdout estimate can be made more reliable by repeating the process with different subsamples In each iteration, use a different random splitting Average the error rates on the different iterations mean error rate e = 1 K X K k=1 ek variance σb 2 = 1 K − 1 X K k=1 (ek − e) 2 . e + tα/2,K−1 r σb 2 K t0.025,9 = 2.262Cross validation Definition (Cross-validation) A method for estimating the accuracy of an inducer by dividing the data into K mutually exclusive subsets (the “folds”) of approximately equal size. Exemple of K = 3-Fold Cross-Validation training data test data How many folds are needed (K =?) large: small bias, large variance as well as computational time small: computation time reduced, small variance, large bias A common choice for K-Fold Cross Validation is K=5Leave one out cross validation Theoretical guaranteesThe bootstrapComparing results Two different issues what is the best method for my problem? how good is my learning algorithm?Comparing two algorithms: Mc Nemar’s test build the confusion matrix of the two algorithms Algo 1 / Algo 2 right wrong right number of examples well classified by both e01 number of examples well classified by 1 but not by 2 wrong e10 number of examples missclassified by 1 but not by 2 number of examples missclassified by both H0: if the two algorithms are the same (we expect e10 = e01 = e10+e01 2 ) (|e10 − e01| − 1) 2 e10 + e01 ∼ χ 2 1 Beware: if e10 + e01 < 20 better use the sign test Matlab function: http://www.mathworks.com/matlabcentral/fileexchange/189-discrim/content/discrim/ mcnemar.m J. L. Fleiss (1981) Statistical Methods for Rates and Proportions. Second Edition. Wiley.Roadmap 1 Tuning hyperparameters Motivation Machine learning without data Assessing the quality of a trained SVM Model selection log of the bandwith log of C 1.5 2 2.5 3 3.5 4 4.5 ï1 0 1 2 3 4 “Evaluation is the key to making real progress in data mining”, [Witten & Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Model selection strategy Model selection criteria attempt to find a good compromise between The complexity of a model Its prediction accuracy on the training data 1 (Xa, ya, Xt, yt) ← split(X, y, options) 2 (C, b) ← tune(Xa, ya, options) 3 model ← train(Xa, ya, C, b, options) 4 error ← test(Xt, yt, C, b, options) Occam’s Razor: the best theory is the smallest one that describes all the factsModel selection: the tuning function function (C, b) ← tune(Xa, ya, options) 1 (Xℓ, yℓ, Xv, yv) ← split(Xa, ya, options) 2 loop on a grid for C 3 loop on a grid for b 1 model ← train(Xℓ, yℓ, C, b, options) 2 error ← test(Xv, yv, C, b, options) The three sets Training set: a set of examples used for learning: to fit the parameters Validation set: a set of examples used to tune the hyper parameters Test set: independent instances that have played no part in formation of classifierhow to design the grids A grid on b A much simpler trick is to pick, say 1000 pairs (x,x’) at random from your dataset, compute the distance of all such pairs and take the median, the 0.1 and the 0.9 quantile. Now pick b to be the inverse any of these three numbers. http://blog.smola.org/post/940859888/easy-kernel-width-choice A grid on C from Cmin to ∞ to much!The coarse to fine strategy 1 use a large coarse grid on a few data to localize interesting values 2 fine tuning on all data in this zone 1 (Xa, ya, Xt, yt) ← split(X, y) 2 (C, b) ← tune(Xa, ya, coarsegrids,smalltrainingset) 3 finegrids ← fit_grid(C, b) 4 (C, b) ← tune(Xa, ya, finegrids, largetrainingset) 5 model ← train(Xa, ya, C, b, options) 6 error ← test(Xt, yt, C, b, options) The computing time is the key issueEvaluation measures the span boundBibliography http://research.cs.tamu.edu/prism/lectures/iss/iss_l13.pdf http://www.cs.odu.edu/~mukka/cs795sum13dm/Lecturenotes/Day3/Chapter5.pdf http://www.cs.cmu.edu/~epxing/Class/10701-10s/Lecture/lecture8.pdf http://www.mohakshah.com/tutorials/icml2012/Tutorial-ICML2012/Tutorial_at_ICML_ 2012_files/ICML2012-Tutorial.pdf Stéphane Canu (INSA Rouen - LITIS) April 4, 2014 26 / 26 Lecture 6: Minimum encoding ball and Support vector data description (SVDD) Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 May 12, 2014Plan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD)The minimum enclosing ball problem [Tax and Duin, 2004] Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004] the center Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004] the radius Given n points, {xi , i = 1, n} . ( min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n What is that in the convex programming hierarchy? LP, QP, QCQP, SOCP and SDP Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The convex programming hierarchy (part of) LP    min x f ⊤x with Ax ≤ d and 0 ≤ x QP ( min x 1 2 x ⊤Gx + f ⊤x with Ax ≤ d QCQP    min x 1 2 x ⊤Gx + f ⊤x with x ⊤Bix + a ⊤ i x ≤ di i = 1, n SOCP    min x f ⊤x with kx − aik ≤ b ⊤ i x + di i = 1, n The convex programming hierarchy? Model generality: LP < QP < QCQP < SOCP < SDP Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 4 / 35MEB as a QP in the primal Theorem (MEB as a QP) The two following problems are equivalent, ( min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n ( min w,ρ 1 2 kwk 2 − ρ with w⊤xi ≥ ρ + 1 2 kxik 2 with ρ = 1 2 (kck 2 − R 2 ) and w = c. Proof: kxi − ck 2 ≤ R 2 kxik 2 − 2x ⊤ i c + kck 2 ≤ R 2 −2x ⊤ i c ≤ R 2 − kxik 2 − kck 2 2x ⊤ i c ≥ −R 2 + kxik 2 + kck 2 x ⊤ i c ≥ 1 2 (kck 2 − R 2 ) | {z } ρ + 1 2 kxik 2 Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 5 / 35MEB and the one class SVM SVDD: ( min w,ρ 1 2 kwk 2 − ρ with w⊤xi ≥ ρ + 1 2 kxik 2 SVDD and linear OCSVM (Supporting Hyperplane) if ∀i = 1, n, kxik 2 = constant, it is the the linear one class SVM (OC SVM) The linear one class SVM [Schölkopf and Smola, 2002] ( min w,ρ′ 1 2 kwk 2 − ρ ′ with w⊤xi ≥ ρ ′ with ρ ′ = ρ + 1 2 kxik 2 ⇒ OC SVM is a particular case of SVDD Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 6 / 35When ∀i = 1, n, kxik 2 = 1 0 c kxi − ck 2 ≤ R 2 ⇔ w ⊤xi ≥ ρ with ρ = 1 2 (kck 2 − R + 1) SVDD and OCSVM "Belonging to the ball" is also "being above" an hyperplane Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 7 / 35MEB: KKT L(c, R, α) = R 2 + Xn i=1 αi kxi − ck 2 − R 2  KKT conditionns : stationarty ◮ 2c Pn i=1 αi − 2 Pn i=1 αixi = 0 ← The representer theorem ◮ 1 − Pn i=1 αi = 0 primal admiss. kxi − ck 2 ≤ R 2 dual admiss. αi ≥ 0 i = 1, n complementarity αi kxi − ck 2 − R 2  = 0 i = 1, n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: KKT the radius L(c, R, α) = R 2 + Xn i=1 αi kxi − ck 2 − R 2  KKT conditionns : stationarty ◮ 2c Pn i=1 αi − 2 Pn i=1 αixi = 0 ← The representer theorem ◮ 1 − Pn i=1 αi = 0 primal admiss. kxi − ck 2 ≤ R 2 dual admiss. αi ≥ 0 i = 1, n complementarity αi kxi − ck 2 − R 2  = 0 i = 1, n Complementarity tells us: two groups of points the support vectors kxi − ck 2 = R 2 and the insiders αi = 0 Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: Dual The representer theorem: c = Pn i=1 αixi Pn i=1 αi = Xn i=1 αixi L(α) = Xn i=1 αi kxi − Xn j=1 αjxjk 2  Xn i=1 Xn j=1 αiαjx ⊤ i xj = α ⊤Gα and Xn i=1 αi x ⊤ i xi = α ⊤diag(G) with G = XX⊤ the Gram matrix: Gij = x ⊤ i xj ,    min α∈IRn α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi , i = 1 . . . n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 9 / 35SVDD primal vs. dual Primal    min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n d + 1 unknown n constraints can be recast as a QP perfect when d << n Dual    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi , i = 1 . . . n n unknown with G the pairwise influence Gram matrix n box constraints easy to solve to be used when d > nSVDD primal vs. dual Primal    min R∈IR,c∈IRd R 2 with kxi − ck 2 ≤ R 2 , i = 1, . . . , n d + 1 unknown n constraints can be recast as a QP perfect when d << n Dual    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi , i = 1 . . . n n unknown with G the pairwise influence Gram matrix n box constraints easy to solve to be used when d > n But where is R 2 ?Looking for R 2 ( min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1, 0 ≤ αi , i = 1, n The Lagrangian: L(α, µ, β) = α ⊤Gα − α ⊤diag(G) + µ(e ⊤α − 1) − β ⊤α Stationarity cond.: ∇αL(α, µ, β) = 2Gα − diag(G) + µe − β = 0 The bi dual ( min α α ⊤Gα + µ with −2Gα + diag(G) ≤ µe by identification R 2 = µ + α ⊤Gα = µ + kck 2 µ is the Lagrange multiplier associated with the equality constraint Xn i=1 αi = 1 Also, because of the complementarity condition, if xi is a support vector, then βi = 0 implies αi > 0 and R 2 = kxi − ck 2 .Plan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 12 / 35The minimum enclosing ball problem with errors the slack The same road map: initial formuation reformulation (as a QP) Lagrangian, KKT dual formulation bi dual Initial formulation: for a given C    min R,a,ξ R 2 + C Xn i=1 ξi with kxi − ck 2 ≤ R 2 + ξi , i = 1, . . . , n and ξi ≥ 0, i = 1, . . . , n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 13 / 35The MEB with slack: QP, KKT, dual and R 2 SVDD as a QP:    min w,ρ 1 2 kwk 2 − ρ + C 2 Xn i=1 ξi with w⊤xi ≥ ρ + 1 2 kxik 2 − 1 2 ξi and ξi ≥ 0, i = 1, n again with OC SVM as a particular case. With G = XX ⊤ Dual SVDD:    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi ≤ C, i = 1, n for a given C ≤ 1. If C is larger than one it is useless (it’s the no slack case) R 2 = µ + c ⊤c with µ denoting the Lagrange multiplier associated with the equality constraint Pn i=1 αi = 1.Variations over SVDD Adaptive SVDD: the weighted error case for given wi , i = 1, n    min c∈IRp,R∈IR,ξ∈IRn R + C Xn i=1 wi ξi with kxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, n The dual of this problem is a QP [see for instance Liu et al., 2013] ( min α∈IRn α ⊤XX ⊤α − α ⊤diag(XX ⊤) with Pn i=1 αi = 1 0 ≤ αi ≤ Cwi i = 1, n Density induced SVDD (D-SVDD):    min c∈IRp,R∈IR,ξ∈IRn R + C Xn i=1 ξi with wikxi − ck 2 ≤ R+ξi ξi ≥ 0 i = 1, nPlan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 16 / 35SVDD in a RKHS The feature map: IRp −→ H c −→ f (•) xi −→ k(xi , •) kxi − ckIRp ≤ R 2 −→ kk(xi , •) − f (•)k 2 H ≤ R 2 Kernelized SVDD (in a RKHS) is also a QP    min f ∈H,R∈IR,ξ∈IRn R 2 + C Xn i=1 ξi with kk(xi , •) − f (•)k 2 H ≤ R 2+ξi i = 1, n ξi ≥ 0 i = 1, nSVDD in a RKHS: KKT, Dual and R 2 L = R 2 + C Xn i=1 ξi + Xn i=1 αi kk(xi , .) − f (.)k 2 H − R 2−ξi  − Xn i=1 βi ξi = R 2 + C Xn i=1 ξi + Xn i=1 αi k(xi , xi) − 2f (xi) + kf k 2 H − R 2−ξi  − Xn i=1 βi ξi KKT conditions Stationarity ◮ 2f (.) Pn i=1 αi − 2 Pn i=1 αik(., xi) = 0 ← The representer theorem ◮ 1 − Pn i=1 αi = 0 ◮ C − αi − βi = 0 Primal admissibility: kk(xi , .) − f (.)k 2 ≤ R 2 + ξi , ξi ≥ 0 Dual admissibility: αi ≥ 0 , βi ≥ 0 Complementarity ◮ αi kk(xi , .) − f (.)k 2 − R 2 − ξi  = 0 ◮ βi ξi = 0SVDD in a RKHS: Dual and R 2 L(α) = Xn i=1 αik(xi , xi) − 2 Xn i=1 f (xi) + kf k 2 H with f (.) = Xn j=1 αjk(., xj) = Xn i=1 αik(xi , xi) − Xn i=1 Xn j=1 αiαj k(xi , xj) | {z } Gij Gij = k(xi , xj)    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi≤ C, i = 1 . . . n As it is in the linear case: R 2 = µ + kf k 2 H with µ denoting the Lagrange multiplier associated with the equality constraint Pn i=1 αi = 1.SVDD train and val in a RKHS Train using the dual form (in: G, C; out: α, µ)    min α α ⊤Gα − α ⊤diag(G) with e ⊤α = 1 and 0 ≤ αi≤ C, i = 1 . . . n Val with the center in the RKHS: f (.) = Pn i=1 αik(., xi) φ(x) = kk(x, .) − f (.)k 2 H − R 2 = kk(x, .)k 2 H − 2hk(x, .), f (.)iH + kf (.)k 2 H − R 2 = k(x, x) − 2f (x) + R 2 − µ − R 2 = −2f (x) + k(x, x) − µ = −2 Xn i=1 αik(x, xi) + k(x, x) − µ φ(x) = 0 is the decision border Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 20 / 35An important theoretical result For a well-calibrated bandwidth, The SVDD estimates the underlying distribution level set [Vert and Vert, 2006] The level sets of a probability density function IP(x) are the set Cp = {x ∈ IRd | IP(x) ≥ p} It is well estimated by the empirical minimum volume set Vp = {x ∈ IRd | kk(x, .) − f (.)k 2 H − R 2 ≥ 0} The frontiers coincidesSVDD: the generalization error For a well-calibrated bandwidth, (x1, . . . , xn) i.i.d. from some fixed but unknown IP(x) Then [Shawe-Taylor and Cristianini, 2004] with probability at least 1 − δ, (∀δ ∈]0, 1[), for any margin m > 0 IP kk(x, .) − f (.)k 2 H ≥ R 2 + m  ≤ 1 mn Xn i=1 ξi + 6R 2 m √ n + 3 r ln(2/δ) 2nEquivalence between SVDD and OCSVM for translation invariant kernels (diagonal constant kernels) Theorem Let H be a RKHS on some domain X endowed with kernel k. If there exists some constant c such that ∀x ∈ X , k(x, x) = c, then the two following problems are equivalent,    min f ,R,ξ R + C Xn i=1 ξi with kk(xi , .) − f (.)k 2 H ≤ R+ξi ξi ≥ 0 i = 1, n    min f ,ρ,ξ 1 2 kf k 2 H − ρ + C Xn i=1 εi with f (xi) ≥ ρ − εi εi ≥ 0 i = 1, n with ρ = 1 2 (c + kf k 2 H − R) and εi = 1 2 ξi .Proof of the Equivalence between SVDD and OCSVM    min f ∈H,R∈IR,ξ∈IRn R + C Xn i=1 ξi with kk(xi , .) − f (.)k 2 H ≤ R+ξi , ξi ≥ 0 i = 1, n since kk(xi , .) − f (.)k 2 H = k(xi , xi) + kf k 2 H − 2f (xi)    min f ∈H,R∈IR,ξ∈IRn R + C Xn i=1 ξi with 2f (xi) ≥ k(xi , xi) + kf k 2 H − R−ξi , ξi ≥ 0 i = 1, n. Introducing ρ = 1 2 (c + kf k 2 H − R) that is R = c + kf k 2 H − 2ρ, and since k(xi , xi) is constant and equals to c the SVDD problem becomes    min f ∈H,ρ∈IR,ξ∈IRn 1 2 kf k 2 H − ρ + C 2 Xn i=1 ξi with f (xi) ≥ ρ− 1 2 ξi , ξi ≥ 0 i = 1, nleading to the classical one class SVM formulation (OCSVM)    min f ∈H,ρ∈IR,ξ∈IRn 1 2 kf k 2 H − ρ + C Xn i=1 εi with f (xi) ≥ ρ − εi , εi ≥ 0 i = 1, n with εi = 1 2 ξi . Note that by putting ν = 1 nC we can get the so called ν formulation of the OCSVM    min f ′∈H,ρ′∈IR,ξ′∈IRn 1 2 kf ′k 2 H − nνρ′ + Xn i=1 ξ ′ i with f ′ (xi) ≥ ρ ′ − ξ ′ i , ξ′ i ≥ 0 i = 1, n with f ′ = Cf , ρ ′ = Cρ, and ξ ′ = Cξ.Duality Note that the dual of the SVDD is ( min α∈IRn α ⊤Gα − α ⊤g with Pn i=1 αi = 1 0 ≤ αi ≤ C i = 1, n where G is the kernel matrix of general term Gi,j = k(xi , xj) and g the diagonal vector such that gi = k(xi , xi) = c. The dual of the OCSVM is the following equivalent QP ( min α∈IRn 1 2 α ⊤Gα with Pn i=1 αi = 1 0 ≤ αi ≤ C i = 1, n Both dual forms provide the same solution α, but not the same Lagrange multipliers. ρ is the Lagrange multiplier of the equality constraint of the dual of the OCSVM and R = c + α ⊤Gα − 2ρ. Using the SVDD dual, it turns out that R = λeq + α ⊤Gα where λeq is the Lagrange multiplier of the equality constraint of the SVDD dual form.Plan 1 Support Vector Data Description (SVDD) SVDD, the smallest enclosing ball problem The minimum enclosing ball problem with errors The minimum enclosing ball problem in a RKHS The two class Support vector data description (SVDD) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 27 / 35The two class Support vector data description (SVDD) −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 4 −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 4 .    min c,R,ξ+,ξ− R 2+C X yi =1 ξ + i + X yi =−1 ξ − i  with kxi − ck 2 ≤ R 2+ξ + i , ξ+ i ≥ 0 i such that yi = 1 and kxi − ck 2 ≥ R 2−ξ − i , ξ− i ≥ 0 i such that yi = −1 Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 28 / 35The two class SVDD as a QP    min c,R,ξ+,ξ− R 2+C X yi =1 ξ + i + X yi =−1 ξ − i  with kxi − ck 2 ≤ R 2+ξ + i , ξ+ i ≥ 0 i such that yi = 1 and kxi − ck 2 ≥ R 2−ξ − i , ξ− i ≥ 0 i such that yi = −1  kxik 2 − 2x ⊤ i c + kck 2 ≤ R 2+ξ + i , ξ+ i ≥ 0 i such that yi = 1 kxik 2 − 2x ⊤ i c + kck 2 ≥ R 2−ξ − i , ξ− i ≥ 0 i such that yi = −1 2x ⊤ i c ≥ kck 2 − R 2 + kxik 2−ξ + i , ξ+ i ≥ 0 i such that yi = 1 −2x ⊤ i c ≥ −kck 2 + R 2 − kxik 2−ξ − i , ξ− i ≥ 0 i such that yi = −1 2yix ⊤ i c ≥ yi(kck 2 − R 2 + kxik 2 )−ξi , ξi ≥ 0 i = 1, n change variable: ρ = kck 2 − R 2    min c,ρ,ξ kck 2 − ρ + C Pn i=1 ξi with 2yixi ⊤c ≥ yi(ρ − kxik 2 )−ξi i = 1, n and ξi ≥ 0 i = 1, nThe dual of the two class SVDD Gij = yi yjxix ⊤ j The dual formulation:    min α∈IRn α ⊤Gα − Pn i=1 αi yikxik 2 with Xn i=1 yiαi = 1 0 ≤ αi ≤ C i = 1, n Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 30 / 35The two class SVDD vs. one class SVDD The two class SVDD (left) vs. the one class SVDD (right) Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 31 / 35Small Sphere and Large Margin (SSLM) approach Support vector data description with margin [Wu and Ye, 2009]    min w,R,ξ∈IRn R 2+C X yi =1 ξ + i + X yi =−1 ξ − i  with kxi − ck 2 ≤ R 2 − 1+ξ + i , ξ+ i ≥ 0 i such that yi = 1 and kxi − ck 2 ≥ R 2 + 1−ξ − i , ξ− i ≥ 0 i such that yi = −1 kxi − ck 2 ≥ R 2 + 1−ξ − i and yi = −1 ⇐⇒ yi kxi − ck 2 ≤ yiR 2 − 1+ξ − i L(c, R, ξ, α, β) = R 2+C Xn i=1 ξi + Xn i=1 αi yikxi − ck 2 − yiR 2 + 1−ξi  − Xn i=1 βi ξi −4 −3 −2 −1 0 1 2 3 −3 −2 −1 0 1 2 3 4SVDD with margin – dual formulation L(c, R, ξ, α, β) = R 2+C Xn i=1 ξi + Xn i=1 αi yikxi − ck 2 − yiR 2 + 1−ξi  − Xn i=1 βi ξi Optimality: c = Xn i=1 αi yixi ; Xn i=1 αi yi = 1 ; 0 ≤ αi ≤ C L(α) = Xn i=1 αi yikxi − Xn j=1 αi yjxjk 2  + Xn i=1 αi = − Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi + Xn i=1 kxik 2 yiαi + Xn i=1 αi Dual SVDD is also a quadratic program problem D    min α∈IRn α ⊤Gα − e ⊤α − f ⊤α with y ⊤α = 1 and 0 ≤ αi ≤ C i = 1, n with G a symmetric matrix n × n such that Gij = yi yjx ⊤ j xi and fi = kxik 2 yiConclusion Applications ◮ outlier detection ◮ change detection ◮ clustering ◮ large number of classes ◮ variable selection, . . . A clear path ◮ reformulation (to a standart problem) ◮ KKT ◮ Dual ◮ Bidual a lot of variations ◮ L 2 SVDD ◮ two classes non symmetric ◮ two classes in the symmetric classes (SVM) ◮ the multi classes issue practical problems with translation invariant kernels .Bibliography Bo Liu, Yanshan Xiao, Longbing Cao, Zhifeng Hao, and Feiqi Deng. Svdd-based outlier detection on uncertain data. Knowledge and information systems, 34(3):597–618, 2013. B. Schölkopf and A. J. Smola. Learning with Kernels. MIT Press, 2002. John Shawe-Taylor and Nello Cristianini. Kernel methods for pattern analysis. Cambridge university press, 2004. David MJ Tax and Robert PW Duin. Support vector data description. Machine learning, 54(1):45–66, 2004. Régis Vert and Jean-Philippe Vert. Consistency and convergence rates of one-class svms and related algorithms. The Journal of Machine Learning Research, 7:817–854, 2006. Mingrui Wu and Jieping Ye. A small sphere and large margin approach for novelty detection using training data with outliers. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 31(11):2088–2092, 2009. Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 35 / 35 Lecture 5: SVM as a kernel machine Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 26, 2014Plan 1 Kernel machines Non sparse kernel machines Sparse kernel machines: SVM SVM: variations on a theme Sparse kernel machines for regression: SVR −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1Interpolation splines find out f ∈ H such that f (xi) = yi , i = 1, ..., n It is an ill posed problemInterpolation splines: minimum norm interpolation ( min f ∈H 1 2 kf k 2 H such that f (xi) = yi , i = 1, ..., n The lagrangian (αi Lagrange multipliers) L(f , α) = 1 2 kf k 2 − Xn i=1 αi f (xi) − yi Interpolation splines: minimum norm interpolation ( min f ∈H 1 2 kf k 2 H such that f (xi) = yi , i = 1, ..., n The lagrangian (αi Lagrange multipliers) L(f , α) = 1 2 kf k 2 − Xn i=1 αi f (xi) − yi  optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn i=1 αik(xi , x)Interpolation splines: minimum norm interpolation ( min f ∈H 1 2 kf k 2 H such that f (xi) = yi , i = 1, ..., n The lagrangian (αi Lagrange multipliers) L(f , α) = 1 2 kf k 2 − Xn i=1 αi f (xi) − yi  optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn i=1 αik(xi , x) dual formulation (remove f from the lagrangian): Q(α) = − 1 2 Xn i=1 Xn j=1 αiαjk(xi , xj) +Xn i=1 αi yi solution: max α∈IRn Q(α) Kα = yRepresenter theorem Theorem (Representer theorem) Let H be a RKHS with kernel k(s,t). Let ℓ be a function from X to IR (loss function) and Φ a non decreasing function from IR to IR. If there exists a function f ∗minimizing: f ∗ = argmin f ∈H Xn i=1 ℓ yi , f (xi)  + Φ kf k 2 H  then there exists a vector α ∈ IRn such that: f ∗ (x) = Xn i=1 αik(x, xi) it can be generalized to the semi parametric case: + Pm j=1 βjφj(x)Elements of a proof 1 Hs = span{k(., x1), ..., k(., xi), ..., k(., xn)} 2 orthogonal decomposition: H = Hs ⊕ H⊥ ⇒ ∀f ∈ H; f = fs + f⊥ 3 pointwise evaluation decomposition f (xi) = fs (xi) + f⊥(xi) = hfs (.), k(., xi)iH + hf⊥(.), k(., xi)iH | {z } =0 = fs (xi) 4 norm decomposition kf k 2 H = kfsk 2 H + kf⊥k 2 H | {z } ≥0 ≥ kfsk 2 H 5 decompose the global cost Xn i=1 ℓ yi , f (xi)  + Φ kf k 2 H  = Xn i=1 ℓ yi , fs (xi)  + Φ kfsk 2 H + kf⊥k 2 H  ≥ Xn i=1 ℓ yi , fs (xi)  + Φ kfsk 2 H  6 argmin f ∈H = argmin f ∈Hs .Smooting splines introducing the error (the slack) ξ = f (xi) − yi (S)    min f ∈H 1 2 kf k 2 H + 1 2λ Xn i=1 ξ 2 i such that f (xi) = yi + ξi , i = 1, n 3 equivalent definitions (S ′ ) min f ∈H 1 2 Xn i=1 f (xi ) − yi 2 + λ 2 kf k 2 H    min f ∈H 1 2 kf k 2 H such that Xn i=1 f (xi ) − yi 2 ≤ C ′    min f ∈H Xn i=1 f (xi ) − yi 2 such that kf k 2 H ≤ C ′′ using the representer theorem (S ′′) min α∈IRn 1 2 kKα − yk 2 + λ 2 α ⊤Kα solution: (S) ⇔ (S ′ ) ⇔ (S ′′) ⇔ α = (K + λI) −1 y 6= ridge regression: min α∈IRn 1 2 kKα − yk 2 + λ 2 α ⊤α with α = (K ⊤K + λI) −1K ⊤yKernel logistic regression inspiration: the Bayes rule D(x) = sign f (x) + α0  =⇒ log  IP(Y =1|x) IP(Y =−1|x)  = f (x) + α0 probabilities: IP(Y = 1|x) = expf (x)+α0 1 + expf (x)+α0 IP(Y = −1|x) = 1 1 + expf (x)+α0 Rademacher distribution L(xi , yi , f , α0) = IP(Y = 1|xi) yi +1 2 (1 − IP(Y = 1|xi)) 1−yi 2 penalized likelihood J(f , α0) = − Xn i=1 log L(xi , yi , f , α0)  + λ 2 kf k 2 H = Xn i=1 log  1 + exp−yi (f (xi )+α0)  + λ 2 kf k 2 HKernel logistic regression (2) (R)    min f ∈H 1 2 kf k 2 H + 1 λ Xn i=1 log 1 + exp−ξi  with ξi = yi (f (xi) + α0), i = 1, n Representer theorem J(α, α0) = 1I⊤ log  1I + expdiag(y)Kα+α0y  + λ 2 α ⊤Kα gradient vector anf Hessian matrix: ∇αJ(α, α0) = K y − (2p − 1I)  + λKα HαJ(α, α0) = Kdiag p(1I − p)  K + λK solve the problem using Newton iterations α new = α old+ Kdiag p(1I − p)  K + λK −1 K y − (2p − 1I) + λαLet’s summarize pros ◮ Universality ◮ from H to IRn using the representer theorem ◮ no (explicit) curse of dimensionality splines O(n 3 ) (can be reduced to O(n 2 )) logistic regression O(kn3 ) (can be reduced to O(kn2 ) no scalability! sparsity comes to the rescue!Roadmap 1 Kernel machines Non sparse kernel machines Sparse kernel machines: SVM SVM: variations on a theme Sparse kernel machines for regression: SVR −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 −1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Stéphane Canu (INSA Rouen - LITIS) April 26, 2014 11 / 38SVM in a RKHS: the separable case (no noise)    max f ,b m with yi f (xi) + b  ≥ m and kf k 2 H = 1 ⇔ ( min f ,b 1 2 kf k 2 H with yi f (xi) + b  ≥ 1 3 ways to represent function f f (x) | {z } in the RKHS H = X d j=1 wj φj(x) | {z } d features = Xn i=1 αi yi k(x, xi) | {z } n data points ( min w,b 1 2 kwk 2 IRd = 1 2 w⊤w with yi w⊤φ(xi) + b  ≥ 1 ⇔ ( min α,b 1 2 α ⊤Kα with yi α ⊤K(:, i) + b  ≥ 1using relevant features... a data point becomes a function x −→ k(x, •)Representer theorem for SVM ( min f ,b 1 2 kf k 2 H with yi f (xi) + b  ≥ 1 Lagrangian L(f , b, α) = 1 2 kf k 2 H − Xn i=1 αi yi(f (xi) + b) − 1  α ≥ 0 optimility condition: ∇f L(f , b, α) = 0 ⇔ f (x) = Xn i=1 αi yik(xi , x) Eliminate f from L:    kf k 2 H = Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) Xn i=1 αi yif (xi) = Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) Q(b, α) = − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) − Xn i=1 αi yib − 1 Dual formulation for SVM the intermediate function Q(b, α) = − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) − b Xn i=1 αi yi  + Xn i=1 αi max α min b Q(b, α) b can be seen as the Lagrange multiplier of the following (balanced) constaint Pn i=1 αi yi = 0 which is also the optimality KKT condition on b Dual formulation    max α∈IRn − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) +Xn i=1 αi such that Xn i=1 αi yi = 0 and 0 ≤ αi , i = 1, nSVM dual formulation Dual formulation    max α∈IRn − 1 2 Xn i=1 Xn j=1 αiαjyi yjk(xi , xj) +Xn i=1 αi with Xn i=1 αi yi = 0 and 0 ≤ αi , i = 1, n The dual formulation gives a quadratic program (QP) ( min α∈IRn 1 2 α ⊤Gα − I1 ⊤α with α ⊤y = 0 and 0 ≤ α with Gij = yi yjk(xi , xj) with the linear kernel f (x) = Pn i=1 αi yi(x ⊤xi) = Pd j=1 βjxj when d is small wrt. n primal may be interesting.the general case: C-SVM Primal formulation (P)    min f ∈H,b,ξ∈IRn 1 2 kf k 2 + C p Xn i=1 ξ p i such that yi f (xi) + b  ≥ 1 − ξi , ξi ≥ 0, i = 1, n C is the regularization path parameter (to be tuned) p = 1 , L1 SVM ( max α∈IRn − 1 2 α ⊤Gα + α ⊤1I such that α ⊤y = 0 and 0 ≤ αi ≤ C i = 1, n p = 2, L2 SVM ( max α∈IRn − 1 2 α ⊤ G + 1 C I  α + α ⊤1I such that α ⊤y = 0 and 0 ≤ αi i = 1, n the regularization path: is the set of solutions α(C) when C variesData groups: illustration f (x) = Xn i=1 αi k(x, xi ) D(x) = sign f (x) + b  useless data important data suspicious data well classified support α = 0 0 < α < C α = C the regularization path: is the set of solutions α(C) when C variesThe importance of being support f (x) = Xn i=1 αi yik(xi , x) data point α constraint value set xi useless αi = 0 yi f (xi) + b  > 1 I0 xi support 0 < αi < C yi f (xi) + b  = 1 Iα xi suspicious αi = C yi f (xi) + b  < 1 IC Table : When a data point is « support » it lies exactly on the margin. here lies the efficiency of the algorithm (and its complexity)! sparsity: αi = 0The active set method for SVM (1)    min α∈IRn 1 2 α ⊤Gα − α ⊤1I such that α ⊤y = 0 i = 1, n and 0 ≤ αi i = 1, n    Gα − 1I − β + by = 0 α ⊤y = 0 0 ≤ αi i = 1, n 0 ≤ βi i = 1, n αiβi = 0 i = 1, n αa 0 − − + b 1 1 0 β0 ya y0 = 0 0 G α − − 1I β + b y = 0 Ga Gi G0 G ⊤ i (1) Gaαa − 1Ia + bya = 0 (2) Giαa − 1I0 − β0 + by0 = 0 1 solve (1) (find α together with b) 2 if α < 0 move it from Iα to I0 goto 1 3 else solve (2) if β < 0 move it from I0 to Iα goto 1The active set method for SVM (2) Function (α, b, Iα) ←Solve_QP_Active_Set(G, y) % Solve minα 1/2α⊤Gα − 1I⊤α % s.t. 0 ≤ α and y⊤α = 0 (Iα, I0, α) ← initialization while The_optimal_is_not_reached do (α, b) ← solve  Gaαa − 1Ia + bya y⊤ a αa = 0 if ∃i ∈ Iα such that αi < 0 then α ← projection( αa, α) move i from Iα to I0 else if ∃j ∈ I0 such that βj < 0 then use β0 = y0(Kiαa + b1I0) − 1I0 move j from I0 to Iα else The_optimal_is_not_reached ← FALSE end if end while α α old α new Projection step of the active constraints algorithm d = alpha - alphaold; alpha = alpha + t * d; Caching Strategy Save space and computing time by computing only the needed parts of kernel matrix GTwo more ways to derivate SVM Using the hinge loss min f ∈H,b∈IR 1 p Xn i=1 max 0, 1 − yi(f (xi) + b) p + 1 2C kf k 2 Minimizing the distance between the convex hulls    min α ku − vk 2 H with u(x) = X {i|yi =1} αik(xi , x), v(x) = X {i|yi =−1} αik(xi , x) and X {i|yi =1} αi = 1, X {i|yi =−1} αi = 1, 0 ≤ αi i = 1, n f (x) = 2 ku − vk 2 H u(x) − v(x)  and b = kuk 2 H − kvk 2 H ku − vk 2 H the regularization path: is the set of solutions α(C) when C variesRegularization path for SVM min f ∈H Xn i=1 max(1 − yif (xi), 0) + λo 2 kf k 2 H Iα is the set of support vectors s.t. yi f (xi) = 1; ∂f J(f ) = X i∈Iα γi yiK(xi , •) − X i∈I1 yiK(xi , •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM min f ∈H Xn i=1 max(1 − yif (xi), 0) + λo 2 kf k 2 H Iα is the set of support vectors s.t. yi f (xi) = 1; ∂f J(f ) = X i∈Iα γi yiK(xi , •) − X i∈I1 yiK(xi , •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[ Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged In particular at point xj ∈ Iα (fo (xj) = fn(xj) = yj) : ∂f J(f )(xj) = 0 P i∈Iα γioyiK(xi , xj) = P i∈I1 yiK(xi P , xj) − λo yj i∈Iα γinyiK(xi , xj) = P i∈I1 yiK(xi , xj) − λn yj G(γn − γo) = (λo − λn)y avec Gij = yiK(xi , xj) γn = γo + (λo − λn)w w = (G) −1 yExample of regularization path γi ∈] − 1, 0[ yiγi ∈] − 1, −1[ λ = 1 C γi = − 1 C αi ; performing together estimation and data selectionHow to choose ℓ and P to get linear regularization path? the path is piecewise linear ⇔ one is piecewise quadratic and the other is piecewise linear the convex case [Rosset & Zhu, 07] min β∈IRd ℓ(β) + λP(β) 1 piecewise linearity: lim ε→0 β(λ + ε) − β(λ) ε = constant 2 optimality ∇ℓ(β(λ)) + λ∇P(β(λ)) = 0 ∇ℓ(β(λ + ε)) + (λ + ε)∇P(β(λ + ε)) = 0 3 Taylor expension lim ε→0 β(λ + ε) − β(λ) ε = ∇2 ℓ(β(λ)) + λ∇2P(β(λ))−1∇P(β(λ)) ∇2 ℓ(β(λ)) = constant and ∇2P(β(λ)) = 0 Lecture 4: kernels and associated functions Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 4, 2014Plan 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHSIntroducing non linearities through the feature map SVM Val f (x) = X d j=1 xjwj + b = Xn i=1 αi(x ⊤ i x) + b  t1 t2  ∈ IR2 x1 x2 x3 x4 x5 linear in x ∈ IR5 Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map SVM Val f (x) = X d j=1 xjwj + b = Xn i=1 αi(x ⊤ i x) + b  t1 t2  ∈ IR2 φ(t) = t1 x1 t 2 1 x2 t2 x3 t 2 2 x4 t1t2 x5 linear in x ∈ IR5 quadratic in t ∈ IR2 The feature map φ : IR2 −→ IR5 t 7−→ φ(t) = x x ⊤ i x = φ(ti) ⊤φ(t) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map A. Lorena & A. de Carvalho, Uma Introducão às Support Vector Machines, 2007 Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 4 / 37Non linear case: dictionnary vs. kernel in the non linear case: use a dictionary of functions φj(x), j = 1, p with possibly p = ∞ for instance polynomials, wavelets... f (x) = X p j=1 wjφj(x) with wj = Xn i=1 αi yiφj(xi) so that f (x) = Xn i=1 αi yi X p j=1 φj(xi)φj(x) | {z } k(xi ,x) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37Non linear case: dictionnary vs. kernel in the non linear case: use a dictionary of functions φj(x), j = 1, p with possibly p = ∞ for instance polynomials, wavelets... f (x) = X p j=1 wjφj(x) with wj = Xn i=1 αi yiφj(xi) so that f (x) = Xn i=1 αi yi X p j=1 φj(xi)φj(x) | {z } k(xi ,x) p ≥ n so what since k(xi , x) = Pp j=1 φj(xi)φj(x) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37closed form kernel: the quadratic kernel The quadratic dictionary in IRd : Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1,s1,s2, ...,sd ,s 2 1 ,s 2 2 , ...,s 2 d , ...,sisj , ... in this case Φ(s) ⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s 2 1 t 2 1 + ... + s 2 d t 2 d + ... + sisjtitj + ... Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel The quadratic dictionary in IRd : Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1,s1,s2, ...,sd ,s 2 1 ,s 2 2 , ...,s 2 d , ...,sisj , ... in this case Φ(s) ⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s 2 1 t 2 1 + ... + s 2 d t 2 d + ... + sisjtitj + ... The quadratic kenrel: s, t ∈ IRd , k(s, t) = s ⊤t + 1 2 = 1 + 2s ⊤t + s ⊤t 2 computes the dot product of the reweighted dictionary: Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1, √ 2s1, √ 2s2, ..., √ 2sd ,s 2 1 ,s 2 2 , ...,s 2 d , ..., √ 2sisj , ... Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel The quadratic dictionary in IRd : Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1,s1,s2, ...,sd ,s 2 1 ,s 2 2 , ...,s 2 d , ...,sisj , ... in this case Φ(s) ⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s 2 1 t 2 1 + ... + s 2 d t 2 d + ... + sisjtitj + ... The quadratic kenrel: s, t ∈ IRd , k(s, t) = s ⊤t + 1 2 = 1 + 2s ⊤t + s ⊤t 2 computes the dot product of the reweighted dictionary: Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1, √ 2s1, √ 2s2, ..., √ 2sd ,s 2 1 ,s 2 2 , ...,s 2 d , ..., √ 2sisj , ... p = 1 + d + d(d+1) 2 multiplications vs. d + 1 use kernel to save computration Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37kernel: features throught pairwise comparizons x φ(x) e.g. a text e.g. BOW K n examples n examples Φ p features n examples k(xi , xj) = X p j=1 φj(xi)φj(xj) K The matrix of pairwise comparizons (O(n 2 )) Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 7 / 37Kenrel machine kernel as a dictionary f (x) = Xn i=1 αik(x, xi) αi influence of example i depends on yi k(x, xi) the kernel do NOT depend on yi Definition (Kernel) Let X be a non empty set (the input space). A kernel is a function k from X × X onto IR. k : X × X 7−→ IR s, t −→ k(s, t)Kenrel machine kernel as a dictionary f (x) = Xn i=1 αik(x, xi) αi influence of example i depends on yi k(x, xi) the kernel do NOT depend on yi Definition (Kernel) Let X be a non empty set (the input space). A kernel is a function k from X × X onto IR. k : X × X 7−→ IR s, t −→ k(s, t) semi-parametric version: given the family qj(x), j = 1, p f (x) = Xn i=1 αik(x, xi)+ X p j=1 βjqj(x)Kernel Machine Definition (Kernel machines) A (xi , yi)i=1,n  (x) = ψ Xn i=1 αik(x, xi) +X p j=1 βjqj(x)  α et β: parameters to be estimated. Exemples A(x) = Xn i=1 αi(x − xi) 3 + + β0 + β1x splines A(x) = signX i∈I αi exp− kx−xi k 2 b +β0  SVM IP(y|x) = 1 Z expX i∈I αi1I{y=yi }(x ⊤xi + b) 2  exponential familyPlan 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHS Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 10 / 37In the beginning was the kernel... Definition (Kernel) a function of two variable k from X × X to IR Definition (Positive kernel) A kernel k(s,t) on X is said to be positive if it is symetric: k(s,t) = k(t,s) an if for any finite positive interger n: ∀{αi}i=1,n ∈ IR, ∀{xi}i=1,n ∈ X , Xn i=1 Xn j=1 αiαjk(xi , xj) ≥ 0 it is strictly positive if for αi 6= 0 Xn i=1 Xn j=1 αiαjk(xi , xj) > 0Examples of positive kernels the linear kernel: s, t ∈ IRd , k(s, t) = s ⊤t symetric: s ⊤t = t ⊤s positive: Xn i=1 Xn j=1 αiαj k(xi , xj ) = Xn i=1 Xn j=1 αiαj x ⊤ i xj = Xn i=1 αi xi !⊤  Xn j=1 αj xj   = Xn i=1 αi xi 2 the product kernel: k(s, t) = g(s)g(t) for some g : IRd → IR, symetric by construction positive: Xn i=1 Xn j=1 αiαj k(xi , xj ) = Xn i=1 Xn j=1 αiαj g(xi )g(xj ) = Xn i=1 αi g(xi ) !  Xn j=1 αj g(xj )   = Xn i=1 αi g(xi ) !2 k is positive ⇔ (its square root exists) ⇔ k(s, t) = hφs, φti J.P. Vert, 2006Example: finite kernel let φj , j = 1, p be a finite dictionary of functions from X to IR (polynomials, wavelets...) the feature map and linear kernel feature map: Φ : X → IRp s 7→ Φ = φ1(s), ..., φp(s)  Linear kernel in the feature space: k(s, t) = φ1(s), ..., φp(s) ⊤ φ1(t), ..., φp(t)  e.g. the quadratic kernel: s, t ∈ IRd , k(s, t) = s ⊤t + b 2 feature map: Φ : IRd → IRp=1+d+ d(d +1) 2 s 7→ Φ = 1, √ 2s1, ..., √ 2sj , ..., √ 2sd ,s 2 1 , ...,s 2 j , ...,s 2 d , ..., √ 2sisj , ...Positive definite Kernel (PDK) algebra (closure) if k1(s,t) and k2(s,t) are two positive kernels DPK are a convex cone: ∀a1 ∈ IR+ a1k1(s, t) + k2(s, t) product kernel k1(s, t)k2(s, t) proofs by linearity: Xn i=1 Xn j=1 αiαj a1k1(i, j) + k2(i, j)  = a1 Xn i=1 Xn j=1 αiαj k1(i, j) +Xn i=1 Xn j=1 αiαj k2(i, j) assuming ∃ψℓ s.t. k1(s, t) = X ℓ ψℓ(s)ψℓ(t) Xn i=1 Xn j=1 αiαj k1(xi , xj )k2(xi , xj ) = Xn i=1 Xn j=1 αiαj X ℓ ψℓ(xi )ψℓ(xj )k2(xi , xj )  = X ℓ Xn i=1 Xn j=1 αiψℓ(xi )  αjψℓ(xj )  k2(xi , xj ) N. Cristianini and J. Shawe Taylor, kernel methods for pattern analysis, 2004Kernel engineering: building PDK for any polynomial with positive coef. φ from IR to IR φ k(s,t)  if Ψis a function from IRd to IRd k Ψ(s), Ψ(t)  if ϕ from IRd to IR+, is minimum in 0 k(s,t) = ϕ(s + t) − ϕ(s − t) convolution of two positive kernels is a positive kernel K1 ⋆ K2 Example : the Gaussian kernel is a PDK exp(−ks − tk 2 ) = exp(−ksk 2 − ktk 2 + 2s ⊤t) = exp(−ksk 2 ) exp(−ktk 2 ) exp(2s ⊤t) s ⊤t is a PDK and function exp as the limit of positive series expansion, so exp(2s ⊤t) is a PDK exp(−ksk 2 ) exp(−ktk 2 ) is a PDK as a product kernel the product of two PDK is a PDK O. Catoni, master lecture, 2005an attempt at classifying PD kernels stationary kernels, (also called translation invariant): k(s,t) = ks (s − t) ◮ radial (isotropic) gaussian: exp  − r 2 b  , r = ks − tk ◮ with compact support c.s. Matèrn : max 0, 1 − r b κ  r b kBk r b  , κ ≥ (d + 1)/2 ◮ locally stationary kernels: k(s,t) = k1(s + t)ks (s − t) K1 is a non negative function and K2 a radial kernel. non stationary (projective kernels): k(s,t) = kp(s ⊤t) ◮ separable kernels k(s,t) = k1(s)k2(t) with k1 and k2(t) PDK in this case K = k1k ⊤ 2 where k1 = (k1(x1), ..., k1(xn)) MG Genton, Classes of Kernels for Machine Learning: A Statistics Perspective - JMLR, 2002some examples of PD kernels... type name k(s,t) radial gaussian exp  − r 2 b  , r = ks − tk radial laplacian exp(−r/b) radial rationnal 1 − r 2 r 2+b radial loc. gauss. max 0, 1 − r 3b d exp(− r 2 b ) non stat. χ 2 exp(−r/b), r = P k (sk−tk ) 2 sk+tk projective polynomial (s ⊤t) p projective affine (s ⊤t + b) p projective cosine s ⊤t/kskktk projective correlation exp  s⊤t kskktk − b  Most of the kernels depends on a quantity b called the bandwidththe importance of the Kernel bandwidth for the affine Kernel: Bandwidth = biais k(s, t) = (s ⊤t + b) p = b p  s ⊤t b + 1 p for the gaussian Kernel: Bandwidth = influence zone k(s, t) = 1 Z exp  − ks − tk 2 2σ 2  b = 2σ 2the importance of the Kernel bandwidth for the affine Kernel: Bandwidth = biais k(s, t) = (s ⊤t + b) p = b p  s ⊤t b + 1 p for the gaussian Kernel: Bandwidth = influence zone k(s, t) = 1 Z exp  − ks − tk 2 2σ 2  b = 2σ 2 Illustration 1 d density estimation b = 1 2 b = 2 + data (x1, x2, ..., xn) – Parzen estimate IPb(x) = 1 Z Xn i=1 k(x, xi)kernels for objects and structures kernels on histograms and probability distributions kernel on strings spectral string kernel k(s, t) = P u φu(s)φu(t) using sub sequences similarities by alignements k(s, t) = P π exp(β(s, t, π)) kernels on graphs the pseudo inverse of the (regularized) graph Laplacian L = D − A A is the adjency matrixD the degree matrix diffusion kernels 1 Z(b) expbL subgraph kernel convolution (using random walks) and kernels on HMM, automata, dynamical system... Shawe-Taylor & Cristianini’s Book, 2004 ; JP Vert, 2006Multiple kernel M. Cuturi, Positive Definite Kernels in Machine Learning, 2009Gram matrix Definition (Gram matrix) let k(s,t) be a positive kernel on X and (xi)i=1,n a sequence on X . the Gram matrix is the square K of dimension n and of general term Kij = k(xi , xj). practical trick to check kernel positivity: K is positive ⇔ λi > 0 its eigenvalues are posivies: if Kui = λiui ; i = 1, n u ⊤ i Kui = λiu ⊤ i ui = λi matrix K is the one to be usedExamples of Gram matrices with different bandwidth raw data Gram matrix for b = 2 b = .5 b = 10different point of view about kernels kernel and scalar product k(s, t) = hφ(s), φ(t)iH kernel and distance d(s, t) 2 = k(s, s) + k(t, t) − 2k(s, t) kernel and covariance: a positive matrix is a covariance matrix IP(f) = 1 Z exp − 1 2 (f − f0) ⊤K −1 (f − f0)  if f0 = 0 and f = Kα, IP(α) = 1 Z exp − 1 2 α⊤Kα Kernel and regularity (green’s function) k(s, t) = P ∗Pδs−t for some operator P (e.g. some differential)Let’s summarize positive kernels there is a lot of them can be rather complex 2 classes: radial / projective the bandwith matters (more than the kernel itself) the Gram matrix summarize the pairwise comparizonsRoadmap 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHS Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 25 / 37From kernel to functions H0 =    f mf < ∞; fj ∈ IR;tj ∈ X , f (x) = Xmf j=1 fjk(x,tj)    let define the bilinear form (g(x) = Pmg i=1 gi k(x, si )) : ∀f , g ∈ H0, hf , giH0 = Xmf j=1 Xmg i=1 fj gi k(tj ,si) Evaluation functional: ∀x ∈ X f (x) = hf (•), k(x, •)iH0 from k to H for any positive kernel, a hypothesis set can be constructed H = H0 with its metricRKHS Definition (reproducing kernel Hibert space (RKHS)) a Hilbert space H embeded with the inner product h•, •iH is said to be with reproducing kernel if it exists a positive kernel k such that ∀s ∈ X , k(•,s) ∈ H ∀f ∈ H, f (s) = hf (•), k(s, •)iH Beware: f = f (•) is a function while f (s) is the real value of f at point s positive kernel ⇔ RKHS any function in H is pointwise defined defines the inner product it defines the regularity (smoothness) of the hypothesis set Exercice: let f (•) = Pn i=1 αik(•, xi). Show that kf k 2 H = α ⊤KαOther kernels (what really matters) finite kernels k(s, t) = φ1(s), ..., φp(s) ⊤ φ1(t), ..., φp(t)  Mercer kernels positive on a compact set ⇔ k(s, t) = Pp j=1 λjφj(s)φj(t) positive kernels positive semi-definite conditionnaly positive (for some functions pj) ∀{xi}i=1,n, ∀αi , Xn i αipj(xi) = 0; j = 1, p, Xn i=1 Xn j=1 αiαjk(xi , xj) ≥ 0 symetric non positive k(s, t) = tanh(s ⊤t + α0) non symetric – non positive the key property: ∇Jt (f ) = k(t, .) holds C. Ong et al, ICML , 2004The kernel map observation: x = (x1, . . . , xj , . . . , xd ) ⊤ ◮ f (x) = w⊤x = hw, xi IRd feature map: x −→ Φ(x) = (φ1(x), . . . , φj(x), . . . , φp(x))⊤ ◮ Φ : IRd 7−→ IRp ◮ f (x) = w⊤Φ(x) = hw, Φ(x)iIRp kernel dictionary: x −→ k(x) = (k(x, x1), . . . , k(x, xi), . . . , k(x, xn))⊤ ◮ k : IRd 7−→ IRn ◮ f (x) = Xn i=1 αik(x, xi) = hα, k(x)iIRn kernel map: x −→ k(•, x) p = ∞ ◮ f (x) = hf (•),K(•, x)iHRoadmap 1 Statistical learning and kernels Kernel machines Kernels Kernel and hypothesis set Functional differentiation in RKHSFunctional differentiation in RKHS Let J be a functional J : H → IR f 7→ J(f ) examples: J1(f ) = kf k 2 H, J2(f ) = f (x), J directional derivative in direction g at point f dJ(f , g) = lim ε → 0 J(f + εg) − J(f ) ε Gradient ∇J (f ) ∇J : H → H f 7→ ∇J (f ) if dJ(f , g) = h∇J (f ), giH exercise: find out ∇J1 (f ) et ∇J2 (f )Hint dJ(f , g) = dJ(f + εg) dε ε=0Solution dJ1(f , g) = lim ε → 0 kf +εgk 2−kf k 2 ε = lim ε → 0 kf k 2+ε 2kgk 2+2εhf ,giH−kf k 2 ε = lim ε → 0 εkgk 2 + 2hf , giH = h2f , giH ⇔ ∇J1 (f ) = 2f dJ2(f , g) = lim ε → 0 f (x)+εg(x)−f (x) ε = g(x) = hk(x, .), giH ⇔ ∇J2 (f ) = k(x, .)Solution dJ1(f , g) = lim ε → 0 kf +εgk 2−kf k 2 ε = lim ε → 0 kf k 2+ε 2kgk 2+2εhf ,giH−kf k 2 ε = lim ε → 0 εkgk 2 + 2hf , giH = h2f , giH ⇔ ∇J1 (f ) = 2f dJ2(f , g) = lim ε → 0 f (x)+εg(x)−f (x) ε = g(x) = hk(x, .), giH ⇔ ∇J2 (f ) = k(x, .) Minimize f ∈H J(f ) ⇔ ∀g ∈ H, dJ(f , g) = 0 ⇔ ∇J (f ) = 0Subdifferential in a RKHS H Definition (Sub gradient) a subgradient of J : H 7−→ IR at f0 is any function g ∈ H such that ∀f ∈ V(f0), J(f ) ≥ J(f0) + hg,(f − f0)iH Definition (Subdifferential) ∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f . H = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1} H = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0} Theorem (Chain rule for linear Subdifferential) Let T be a linear operator H 7−→ IR and ϕ a function from IR to IR If J(f ) = ϕ(Tf ) Then ∂J(f ) = {T ∗g | g ∈ ∂ϕ(Tf )}, where T ∗ denotes T’s adjoint operatorexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α build the adjoint hTf , αiIRn = hf ,T ∗αiHexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α = Xn i=1 αik(•, xi) build the adjoint hTf , αiIRn = hf ,T ∗αiH hTf , αiIRn = Xn i=1 f (xi)αi = Xn i=1 hf (•), k(•, xi)iHαi = hf (•), Xn i=1 αik(•, xi) | {z } T∗α iHexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α = Xn i=1 αik(•, xi) build the adjoint hTf , αiIRn = hf ,T ∗αiH hTf , αiIRn = Xn i=1 f (xi)αi = Xn i=1 hf (•), k(•, xi)iHαi = hf (•), Xn i=1 αik(•, xi) | {z } T∗α iH TT∗ : IRn −→ IRn α 7−→ TT∗α = Xn j=1 αjk(xj , xi) = Kαexample of subdifferential in H evaluation operator and its adjoint T : H −→ IRn f 7−→ Tf = (f (x1), . . . , f (xn))⊤ T ∗ : IRn −→ H α 7−→ T ∗α = Xn i=1 αik(•, xi) build the adjoint hTf , αiIRn = hf ,T ∗αiH hTf , αiIRn = Xn i=1 f (xi)αi = Xn i=1 hf (•), k(•, xi)iHαi = hf (•), Xn i=1 αik(•, xi) | {z } T∗α iH TT∗ : IRn −→ IRn α 7−→ TT∗α = Xn j=1 αjk(xj , xi) = Kα Example of subdifferentials x given J5(f ) = |f (x)| ∂J5(f0) =  g(•) = αk(•, x) ; −1 < α < 1 x given J6(f ) = max(0, 1 − f (x)) ∂J6(f1) =  g(•) = αk(•, x) ; −1 < α < 0 Optimal conditions Theorem (Fermat optimality criterion) When J(f ) is convex, f ⋆ is a stationary point of problem min f ∈H J(f ) If and only if 0 ∈ ∂J(f ⋆ ) f f ⋆ ⋆ ∂J(f ⋆ ) exercice: find for a given y ∈ IR (from Obozinski) min x∈IR 1 2 (x − y) 2 + λ|x|Let’s summarize positive kernels ⇔ RKHS = H ⇔ regularity kf k 2 H the key property: ∇Jt (f ) = k(t, .) holds not only for positive kernels f (xi) exists (pointwise defined functions) universal consistency in RKHS the Gram matrix summarize the pairwise comparizons Lecture 3: Linear SVM with slack variables Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 23, 2014The non separable case −1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3 −1 −0.5 0 0.5 1 1.5 2 2.5Road map 1 Linear SVM The non separable case The C (L1) SVM The L2 SVM and others “variations on a theme” The hinge loss 0 0 Slack jThe non separable case: a bi criteria optimization problem Modeling potential errors: introducing slack variables ξi (xi , yi)  no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0 error: ξi = 1 − yi(w⊤xi + b) > 0 0 0 Slack j    min w,b,ξ 1 2 kwk 2 min w,b,ξ C p Xn i=1 ξ p i with yi(w⊤xi + b) ≥ 1 − ξi ξi ≥ 0 i = 1, n Our hope: almost all ξi = 0Bi criteria optimization and dominance    L(w) = 1 p Xn i=1 ξ p i P(w) = kwk 2 Dominance w1 dominates w2 if L(w1) ≤ L(w2) and P(w1) ≤ P(w2) Pareto front (or Pareto Efficient Frontier) it is the set of all nondominated solutions P(w) = || w ||2 L(w) = 1/p Y n i=1 j p i admisible set Pareto’s front w = 0 Admissible solution Figure: dominated point (red), non dominated point (purple) and Pareto front (blue). Pareto frontier ⇔ Regularization path Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 5 / 293 equivalent formulations to reach Pareto’s front min w∈IRd 1 p Xn i=1 ξ p i + λ kwk 2 it works for CONVEX criteria! Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front min w∈IRd 1 p Xn i=1 ξ p i + λ kwk 2    min w 1 p Xn i=1 ξ p i with kwk 2 ≤ k it works for CONVEX criteria! Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front min w∈IRd 1 p Xn i=1 ξ p i + λ kwk 2    min w 1 p Xn i=1 ξ p i with kwk 2 ≤ k    min w kwk 2 with 1 p Xn i=1 ξ p i ≤ k ′ it works for CONVEX criteria! Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 29The non separable case Modeling potential errors: introducing slack variables ξi (xi , yi)  no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0 error: ξi = 1 − yi(w⊤xi + b) > 0 Minimizing also the slack (the error), for a given C > 0    min w,b,ξ 1 2 kwk 2 + C p Xn i=1 ξ p i with yi(w⊤xi + b) ≥ 1 − ξi i = 1, n ξi ≥ 0 i = 1, n Looking for the saddle point of the lagrangian with the Lagrange multipliers αi ≥ 0 and βi ≥ 0 L(w, b, α, β) = 1 2 kwk 2 + C p Xn i=1 ξ p i − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  − Xn i=1 βi ξiThe KKT(p = 1) L(w, b, α, β) = 1 2 kwk 2 + C p Xn i=1 ξ p i − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  − Xn i=1 βi ξi stationarity w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 C − αi − βi = 0 i = 1, . . . , n primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n ξi ≥ 0 i = 1, . . . , n dual admissibility αi ≥ 0 i = 1, . . . , n βi ≥ 0 i = 1, . . . , n complementarity αi  yi(w⊤xi + b) − 1 + ξi  = 0 i = 1, . . . , n βi ξi = 0 i = 1, . . . , n Let’s eliminate β!KKT (p = 1) stationarity w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n ξi ≥ 0 i = 1, . . . , n; dual admissibility αi ≥ 0 i = 1, . . . , n C − αi ≥ 0 i = 1, . . . , n; complementarity αi  yi(w⊤xi + b) − 1 + ξi  = 0 i = 1, . . . , n (C − αi) ξi = 0 i = 1, . . . , n sets I0 IA IC αi 0 0 < α < C C βi C C − α 0 ξi 0 0 1 − yi(w⊤xi + b) yi(w⊤xi + b) > 1 yi(w⊤xi + b) = 1 yi(w⊤xi + b) < 1 useless usefull (support vec) suspiciousThe importance of being support −2 −1 0 1 2 3 4 −2 −1 0 1 2 3 4 −2 −1 0 1 2 3 4 −2 −1 0 1 2 3 4 . data point α constraint value set xi useless αi = 0 yi w⊤xi + b  > 1 I0 xi support 0 < αi < C yi w⊤xi + b  = 1 Iα xi suspicious αi = C yi w⊤xi + b  < 1 IC Table: When a data point is « support » it lies exactly on the margin. here lies the efficiency of the algorithm (and its complexity)! sparsity: αi = 0Optimality conditions (p = 1) L(w, b, α, β) = 1 2 kwk 2 + C Xn i=1 ξi − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  − Xn i=1 βi ξi Computing the gradients:    ∇wL(w, b, α) = w − Xn i=1 αi yixi ∂L(w, b, α) ∂b = Xn i=1 αi yi ∇ξiL(w, b, α) = C − αi − βi no change for w and b βi ≥ 0 and C − αi − βi = 0 ⇒ αi ≤ C The dual formulation:    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi ≤ C i = 1, nSVM primal vs. dual Primal    min w,b,ξ∈IRn 1 2 kwk 2 + C Xn i=1 ξi with yi(w⊤xi + b) ≥ 1 − ξi ξi ≥ 0 i = 1, n d + n + 1 unknown 2n constraints classical QP to be used when n is too large to build G Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi ≤ C i = 1, n n unknown G Gram matrix (pairwise influence matrix) 2n box constraints easy to solve to be used when n is not too largeThe smallest C C small ⇒ all the points are in IC : αi = C −2 −1 0 1 2 3 4 −3 −2 −1 0 1 2 3 4 5 6 −1 ≤ fj = C Xn i=1 yi(x ⊤ i xj)+b ≤ 1 fM = max(f ) fm = min(f ) Cmax = 2 fM − fmRoad map 1 Linear SVM The non separable case The C (L1) SVM The L2 SVM and others “variations on a theme” The hinge loss 0 0 Slack jL2 SVM: optimality conditions (p = 2) L(w, b, α, β) = 1 2 kwk 2 + C 2 Xn i=1 ξ 2 i − Xn i=1 αi yi(w ⊤xi + b) − 1 + ξi  Computing the gradients:    ∇wL(w, b, α) = w − Xn i=1 αi yixi ∂L(w, b, α) ∂b = Xn i=1 αi yi ∇ξiL(w, b, α) = Cξi − αi no need of the positivity constraint on ξi no change for w and b Cξi − αi = 0 ⇒ C 2 Pn i=1 ξ 2 i − Pn i=1 αi ξi = − 1 2C Pn i=1 α 2 i The dual formulation:    min α∈IRn 1 2 α ⊤(G + 1 C I)α − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, nSVM primal vs. dual Primal    min w,b,ξ∈IRn 1 2 kwk 2 + C 2 Xn i=1 ξ 2 i with yi(w⊤xi + b) ≥ 1 − ξi d + n + 1 unknown n constraints classical QP to be used when n is too large to build G Dual    min α∈IRn 1 2 α ⊤(G + 1 C I)α − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix is regularized n box constraints easy to solve to be used when n is not too largeOne more variant: the ν SVM    max v,a m with min i=1,n |v ⊤xi + a| ≥ m kvk 2 = k    min v,a 1 2 kvk 2 − ν m + Pn i=1 ξi with yi(v ⊤xi + a) ≥ m − ξi ξi ≥ 0, m ≥ 0 The dual formulation:    min α∈IRn 1 2 α ⊤Gα with y ⊤α = 0 and 0 ≤ αi ≤ 1/n i = 1, n m ≤ e ⊤αThe convex hull formulation Minimizing the distance between the convex hulls    min α ku − vk with u = X {i|yi =1} αixi , v = X {i|yi =−1} αixi and X {i|yi =1} αi = 1, X {i|yi =−1} αi = 1, 0 ≤ αi ≤ C i = 1, n w ⊤x = 2 ku − vk u ⊤x − v ⊤x  and b = kuk − kvk ku − vkSVM with non symetric costs Problem in the primal (p = 1)    min w,b,ξ∈IRn 1 2 kwk 2 + C + X {i|yi =1} ξi + C − X {i|yi =−1} ξi with yi w⊤xi + b  ≥ 1 − ξi , ξi ≥ 0, i = 1, n for p = 1 the dual formulation is the following: ( max α∈IRn − 1 2 α ⊤Gα + α ⊤e with α ⊤y = 0 and 0 ≤ αi ≤ C + or C − i = 1, n It generalizes to any cost (useful for unbalanced data)Road map 1 Linear SVM The non separable case The C (L1) SVM The L2 SVM and others “variations on a theme” The hinge loss 0 0 Slack jEliminating the slack but not the possible mistakes    min w,b,ξ∈IRn 1 2 kwk 2 + C Xn i=1 ξi with yi(w⊤xi + b) ≥ 1 − ξi ξi ≥ 0 i = 1, n Introducing the hinge loss ξi = max 1 − yi(w ⊤xi + b), 0  min w,b 1 2 kwk 2 + C Xn i=1 max 0, 1 − yi(w ⊤xi + b)  Back to d + 1 variables, but this is no longer an explicit QPOoops! the notion of sub differential Definition (Sub gradient) a subgradient of J : IRd 7−→ IR at f0 is any vector g ∈ IRd such that ∀f ∈ V(f0), J(f ) ≥ J(f0) + g ⊤(f − f0) Definition (Subdifferential) ∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f . IRd = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1} IRd = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0}Regularization path for SVM min w Xn i=1 max(1 − yiw ⊤xi , 0) + λo 2 kwk 2 Iα is the set of support vectors s.t. yiw⊤xi = 1; ∂wJ(w) = X i∈Iα αi yixi − X i∈I1 yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM min w Xn i=1 max(1 − yiw ⊤xi , 0) + λo 2 kwk 2 Iα is the set of support vectors s.t. yiw⊤xi = 1; ∂wJ(w) = X i∈Iα αi yixi − X i∈I1 yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[ Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged In particular at point xj ∈ Iα (w ⊤ o xj = w ⊤ n xj = yj) : ∂wJ(w)(xj) = 0 P i∈Iα αioyix ⊤ i xj = P i∈I1 yix ⊤ i P xj − λo yj i∈Iα αinyix ⊤ i xj = P i∈I1 yix ⊤ i xj − λn yj G(αn − αo) = (λo − λn)y with Gij = yix ⊤ i xj αn = αo + (λo − λn)d d = (G) −1 ySolving SVM in the primal min w,b 1 2 kwk 2 + C Xn i=1 max 0, 1 − yi(w ⊤xi + b)  What for: Yahoo!, Twiter, Amazon, Google (Sibyl), Facebook. . . : Big data Data-intensive machine learning systems "on terascale datasets, with trillions of features,1 billions of training examples and millions of parameters in an hour using a cluster of 1000 machines" How: hybrid online+batch approach adaptive gradient updates (stochastic gradient descent) Code available: http://olivier.chapelle.cc/primal/Solving SVM in the primal J(w, b) = 1 2 kwk 2 2 + C 2 Xn i=1 max 1 − yi(w ⊤xi + b), 0 2 = 1 2 kwk 2 2 + C 2 ξ ⊤ξ with Xn ξi = max 1 − yi(w ⊤xi + b), 0  ∇wJ(w, b) = w − C Xn i=1 max 1 − yi(w ⊤xi + b), 0  yixi = w − C (diag(y)X) ⊤ξ HwJ(w, b) = Id + C Xn i∈/I0 xix ⊤ i Optimal step size ρ in the Newton direction: w new = w old − ρ H −1 w ∇wJ(w old , b old)The hinge and other loss Square hinge: (huber/hinge) and Lasso SVM min w,b k w k 1 + C Xni=1 max 1 − yi ( w ⊤ x i + b ) , 0  p Penalized Logistic regression (Maxent) min w,b k w k 22 − C Xni=1 log 1 + exp − 2 yi ( w ⊤ x i + b )  The exponential loss (commonly used in boosting) min w,b k w k 22 + C Xni=1 exp − yi ( w ⊤ x i + b ) The sigmoid loss min w,b k w k 22 − C Xni=1 tanh yi ( w ⊤ x i + b )  − 1 0 1 01 yf(x) classification loss 0/1 loss hinge hinge 2 logistic exponential sigmoidChoosing the data fitting term and the penalty For a given C: controling the tradeoff between loss and penalty min w,b pen(w) + C Xn i=1 Loss yi(w ⊤xi + b)  For a long list of possible penalties: A Antoniadis, I Gijbels, M Nikolova, Penalized likelihood regression for generalized linear models with non-quadratic penalties, 2011. A tentative of classification: convex/non convex differentiable/non differentiable What are we looking for consistency efficiency −→ sparcityConclusion: variables or data point? seeking for a universal learning algorithm ◮ no model for IP(x, y) the linear case: data is separable ◮ the non separable case double objective: minimizing the error together with the regularity of the solution ◮ multi objective optimisation dualiy : variable – example ◮ use the primal when d < n (in the liner case) or when matrix G is hard to compute ◮ otherwise use the dual universality = nonlinearity ◮ kernelsBibliography C. Cortes & V. Vapnik, Support-vector networks, Machine learning, 1995 J. Bi & V. Vapnik, Learning with rigorous SVM, COLT 2003 T. Hastie, S. Rosset, R. Tibshirani, J. Zhu, The entire regularization path for the support vector machine, JMLR, 2004 P. Bartlett, M. Jordan, J. McAuliffe, Convexity, classification, and risk bounds, JASA, 2006. A. Antoniadis, I. Gijbels, M. Nikolova, Penalized likelihood regression for generalized linear models with non-quadratic penalties, 2011. A Agarwal, O Chapelle, M Dudík, J Langford, A reliable effective terascale linear learning system, 2011. informatik.unibas.ch/fileadmin/Lectures/FS2013/CS331/Slides/my_SVM_without_b.pdf http://ttic.uchicago.edu/~gregory/courses/ml2010/lectures/lect12.pdf http://olivier.chapelle.cc/primal/ Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 29 / 29 Lecture 2: Linear SVM in the Dual Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 12, 2014Road map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM: the problem Linear SVM are the solution of the following problem (called primal) Let {(xi , yi); i = 1 : n} be a set of labelled data with xi ∈ IRd , yi ∈ {1, −1}. A support vector machine (SVM) is a linear classifier associated with the following decision function: D(x) = sign w⊤x + b  where w ∈ IRd and b ∈ IR a given thought the solution of the following problem: ( min w,b 1 2 kwk 2 = 1 2w⊤w with yi(w⊤xi + b) ≥ 1 i = 1, n This is a quadratic program (QP): ( min z 1 2 z ⊤Az − d ⊤z with Bz ≤ e z = (w, b)⊤, d = (0, . . . , 0)⊤, A =  I 0 0 0  , B = −[diag(y)X, y] et e = −(1, . . . , 1)⊤Road map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dualA simple example (to begin with) ( min x1,x2 J(x) = (x1 − a) 2 + (x2 − b) 2 with x x ⋆ ∇xJ(x) iso cost lines: J(x) = kA simple example (to begin with) ( min x1,x2 J(x) = (x1 − a) 2 + (x2 − b) 2 with H(x) = α(x1 − c) 2 + β(x2 − d) 2 + γx1x2 − 1 Ω = {x|H(x) = 0} x x ⋆ ∇xJ(x) ∆x ∇xH(x) tangent hyperplane iso cost lines: J(x) = k ∇xH(x) = λ ∇xJ(x)The only one equality constraint case ( min x J(x) J(x + εd) ≈ J(x) + ε∇xJ(x) ⊤d with H(x) = 0 H(x + εd) ≈ H(x) + ε∇xH(x) ⊤d Loss J : d is a descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 J(x + εd) < J(x) ⇒ ∇xJ(x) ⊤d < 0 constraint H : d is a feasible descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 H(x + εd) = 0 ⇒ ∇xH(x) ⊤d = 0 If at x ⋆ , vectors ∇xJ(x ⋆ ) and ∇xH(x ⋆ ) are collinear there is no feasible descent direction d. Therefore, x ⋆ is a local solution of the problem.Lagrange multipliers Assume J and functions Hi are continuously differentials (and independent) P =    min x∈IRn J(x) avec H1(x) = 0 et H2(x) = 0 . . . Hp(x) = 0Lagrange multipliers Assume J and functions Hi are continuously differentials (and independent) P =    min x∈IRn J(x) avec H1(x) = 0 λ1 et H2(x) = 0 λ2 . . . Hp(x) = 0 λp each constraint is associated with λi : the Lagrange multiplier.Lagrange multipliers Assume J and functions Hi are continuously differentials (and independent) P =    min x∈IRn J(x) avec H1(x) = 0 λ1 et H2(x) = 0 λ2 . . . Hp(x) = 0 λp each constraint is associated with λi : the Lagrange multiplier. Theorem (First order optimality conditions) for x ⋆ being a local minima of P, it is necessary that: ∇x J(x ⋆ ) +X p i=1 λi∇xHi(x ⋆ ) = 0 and Hi(x ⋆ ) = 0, i = 1, pPlan 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 8 / 32The only one inequality constraint case ( min x J(x) J(x + εd) ≈ J(x) + ε∇xJ(x) ⊤d with G(x) ≤ 0 G(x + εd) ≈ G(x) + ε∇xG(x) ⊤d cost J : d is a descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 J(x + εd) < J(x) ⇒ ∇xJ(x) ⊤d < 0 constraint G : d is a feasible descent direction if it exists ε0 ∈ IR such that ∀ε ∈ IR, 0 < ε ≤ ε0 G(x + εd) ≤ 0 ⇒ G(x) < 0 : no limit here on d G(x) = 0 : ∇xG(x) ⊤d ≤ 0 Two possibilities If x ⋆ lies at the limit of the feasible domain (G(x ⋆ ) = 0) and if vectors ∇xJ(x ⋆ ) and ∇xG(x ⋆ ) are collinear and in opposite directions, there is no feasible descent direction d at that point. Therefore, x ⋆ is a local solution of the problem... Or if ∇xJ(x ⋆ ) = 0Two possibilities for optimality ∇xJ(x ⋆ ) = −µ ∇xG(x ⋆ ) and µ > 0; G(x ⋆ ) = 0 or ∇xJ(x ⋆ ) = 0 and µ = 0; G(x ⋆ ) < 0 This alternative is summarized in the so called complementarity condition: µ G(x ⋆ ) = 0 µ = 0 G(x ⋆ ) < 0 G(x ⋆ ) = 0 µ > 0First order optimality condition (1) problem P =    min x∈IRn J(x) with hj(x) = 0 j = 1, . . . , p and gi(x) ≤ 0 i = 1, . . . , q Definition: Karush, Kuhn and Tucker (KKT) conditions stationarity ∇J(x ⋆ ) +X p j=1 λj∇hj(x ⋆ ) +X q i=1 µi∇gi(x ⋆ ) = 0 primal admissibility hj(x ⋆ ) = 0 j = 1, . . . , p gi(x ⋆ ) ≤ 0 i = 1, . . . , q dual admissibility µi ≥ 0 i = 1, . . . , q complementarity µigi(x ⋆ ) = 0 i = 1, . . . , q λj and µi are called the Lagrange multipliers of problem PFirst order optimality condition (2) Theorem (12.1 Nocedal & Wright pp 321) If a vector x ⋆ is a stationary point of problem P Then there existsa Lagrange multipliers such that x ⋆ , {λj}j=1:p, {µi}i=1:q  fulfill KKT conditions a under some conditions e.g. linear independence constraint qualification If the problem is convex, then a stationary point is the solution of the problem A quadratic program (QP) is convex when. . . (QP) ( min z 1 2 z ⊤Az − d ⊤z with Bz ≤ e . . . when matrix A is positive definiteKKT condition - Lagrangian (3) problem P =    min x∈IRn J(x) with hj(x) = 0 j = 1, . . . , p and gi(x) ≤ 0 i = 1, . . . , q Definition: Lagrangian The lagrangian of problem P is the following function: L(x, λ, µ) = J(x) +X p j=1 λjhj(x) +X q i=1 µigi(x) The importance of being a lagrangian the stationarity condition can be written: ∇L(x ⋆ , λ, µ) = 0 the lagrangian saddle point max λ,µ min x L(x, λ, µ) Primal variables: x and dual variables λ, µ (the Lagrange multipliers)Duality – definitions (1) Primal and (Lagrange) dual problems P =    min x∈IRn J(x) with hj(x) = 0 j = 1, p and gi(x) ≤ 0 i = 1, q D = ( max λ∈IRp,µ∈IRq Q(λ, µ) with µj ≥ 0 j = 1, q Dual objective function: Q(λ, µ) = inf x L(x, λ, µ) = inf x J(x) +X p j=1 λjhj(x) +X q i=1 µigi(x) Wolf dual problem W =    max x,λ∈IRp,µ∈IRq L(x, λ, µ) with µj ≥ 0 j = 1, q and ∇J(x ⋆ ) +X p j=1 λj∇hj(x ⋆ ) +X q i=1 µi∇gi(x ⋆ ) = 0Duality – theorems (2) Theorem (12.12, 12.13 and 12.14 Nocedal & Wright pp 346) If f , g and h are convex and continuously differentiablea , then the solution of the dual problem is the same as the solution of the primal a under some conditions e.g. linear independence constraint qualification (λ ⋆ , µ⋆ ) = solution of problem D x ⋆ = arg min x L(x, λ⋆ , µ⋆ ) Q(λ ⋆ , µ⋆ ) = arg min x L(x, λ⋆ , µ⋆ ) = L(x ⋆ , λ⋆ , µ⋆ ) = J(x ⋆ ) + λ ⋆H(x ⋆ ) + µ ⋆G(x ⋆ ) = J(x ⋆ ) and for any feasible point x Q(λ, µ) ≤ J(x) → 0 ≤ J(x) − Q(λ, µ) The duality gap is the difference between the primal and dual cost functionsRoad map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM dual formulation - The lagrangian ( min w,b 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n Looking for the lagrangian saddle point max α min w,b L(w, b, α) with so called lagrange multipliers αi ≥ 0 L(w, b, α) = 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  αi represents the influence of constraint thus the influence of the training example (xi , yi)Stationarity conditions L(w, b, α) = 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  Computing the gradients:    ∇wL(w, b, α) = w − Xn i=1 αi yixi ∂L(w, b, α) ∂b = Pn i=1 αi yi we have the following optimality conditions    ∇wL(w, b, α) = 0 ⇒ w = Xn i=1 αi yixi ∂L(w, b, α) ∂b = 0 ⇒ Xn i=1 αi yi = 0KKT conditions for SVM stationarity w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n dual admissibility αi ≥ 0 i = 1, . . . , n complementarity αi  yi(w⊤xi + b) − 1  = 0 i = 1, . . . , n The complementary condition split the data into two sets A be the set of active constraints: usefull points A = {i ∈ [1, n] yi(w ∗⊤xi + b ∗ ) = 1} its complementary A¯ useless points if i ∈ A/ , αi = 0The KKT conditions for SVM The same KKT but using matrix notations and the active set A stationarity w − X ⊤Dyα = 0 α ⊤y = 0 primal admissibility Dy (Xw + b I1) ≥ I1 dual admissibility α ≥ 0 complementarity Dy (XAw + b I1A) = I1A αA¯ = 0 Knowing A, the solution verifies the following linear system:    w −X ⊤ A DyαA = 0 −DyXAw −byA = −eA −y ⊤ AαA = 0 with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :).The KKT conditions as a linear system    w −X ⊤ A DyαA = 0 −DyXAw −byA = −eA −y ⊤ AαA = 0 with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :). = I −X ⊤ A Dy 0 −DyXA 0 −yA 0 −y ⊤ A 0 w αA b 0 −eA 0 we can work on it to separate w from (αA, b)The SVM dual formulation The SVM Wolfe dual    max w,b,α 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  with αi ≥ 0 i = 1, . . . , n and w − Xn i=1 αi yixi = 0 and Xn i=1 αi yi = 0 using the fact: w = Xn i=1 αi yixi The SVM Wolfe dual without w and b    max α − 1 2 Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi + Xn i=1 αi with αi ≥ 0 i = 1, . . . , n and Xn i=1 αi yi = 0Linear SVM dual formulation L(w, b, α) = 1 2 kwk 2 − Xn i=1 αi yi(w ⊤xi + b) − 1  Optimality: w = Xn i=1 αi yixi Xn i=1 αi yi = 0 L(α) = 1 2 Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi | {z } w⊤w − Pn i=1 αi yi Xn j=1 αjyjx ⊤ j | {z } w⊤ xi − b Xn i=1 αi yi | {z } =0 + Pn i=1 αi = − 1 2 Xn i=1 Xn j=1 αjαi yi yjx ⊤ j xi + Xn i=1 αi Dual linear SVM is also a quadratic program problem D    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n with G a symmetric matrix n × n such that Gij = yi yjx ⊤ j xiSVM primal vs. dual Primal    min w∈IRd ,b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n d + 1 unknown n constraints classical QP perfect when d << n Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix (pairwise influence matrix) n box constraints easy to solve to be used when d > nSVM primal vs. dual Primal    min w∈IRd ,b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n d + 1 unknown n constraints classical QP perfect when d << n Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix (pairwise influence matrix) n box constraints easy to solve to be used when d > n f (x) = X d j=1 wjxj + b = Xn i=1 αi yi(x ⊤xi) + bThe bi dual (the dual of the dual)    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n L(α, λ, µ) = 1 2 α ⊤Gα − e ⊤α + λ y ⊤α − µ ⊤α ∇αL(α, λ, µ) = Gα − e + λ y − µ The bidual    max α,λ,µ − 1 2 α ⊤Gα with Gα − e + λ y − µ = 0 and 0 ≤ µ since kwk 2 = 1 2 α ⊤Gα and DXw = Gα ( max w,λ − 1 2 kwk 2 with DXw + λ y ≥ e by identification (possibly up to a sign) b = λ is the Lagrange multiplier of the equality constraintCold case: the least square problem Linear model yi = X d j=1 wjxij + εi , i = 1, n n data and d variables; d < n min w = Xn i=1  Xd j=1 xijwj − yi   2 = kXw − yk 2 Solution: we = (X ⊤X) −1X ⊤y f (x) = x ⊤ (X ⊤X) −1X ⊤y | {z } we What is the influence of each data point (matrix X lines) ? Shawe-Taylor & Cristianini’s Book, 2004data point influence (contribution) for any new data point x f (x) = x ⊤ (X ⊤X)(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } we = x ⊤ X ⊤ X(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } αb x⊤ n examples d variables X ⊤ αb we f (x) = X d j=1 wejxjdata point influence (contribution) for any new data point x f (x) = x ⊤ (X ⊤X)(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } we = x ⊤ X ⊤ X(X ⊤X) −1 (X ⊤X) −1X ⊤y | {z } αb x⊤ n examples d variables X ⊤ αb we x⊤xi f (x) = X d j=1 wejxj = Xn i=1 αbi (x ⊤xi) from variables to examples αb = X(X ⊤X) −1we | {z } n examples et we = X ⊤αb | {z } d variables what if d ≥ n !SVM primal vs. dual Primal    min w∈IRd ,b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n d + 1 unknown n constraints classical QP perfect when d << n Dual    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n n unknown G Gram matrix (pairwise influence matrix) n box constraints easy to solve to be used when d > n f (x) = X d j=1 wjxj + b = Xn i=1 αi yi(x ⊤xi) + bRoad map 1 Linear SVM Optimization in 10 slides Equality constraints Inequality constraints Dual formulation of the linear SVM Solving the dual Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Solving the dual (1) Data point influence αi = 0 this point is useless αi 6= 0 this point is said to be support f (x) = X d j=1 wjxj + b = Xn i=1 αi yi(x ⊤xi) + bSolving the dual (1) Data point influence αi = 0 this point is useless αi 6= 0 this point is said to be support f (x) = X d j=1 wjxj + b = X 3 i=1 αi yi(x ⊤xi) + b Decison border only depends on 3 points (d + 1)Solving the dual (2) Assume we know these 3 data points    min α∈IRn 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 and 0 ≤ αi i = 1, n =⇒ ( min α∈IR3 1 2 α ⊤Gα − e ⊤α with y ⊤α = 0 L(α, b) = 1 2 α ⊤Gα − e ⊤α + b y ⊤α solve the following linear system  Gα + b y = e y ⊤α = 0 U = chol(G); % upper a = U\ (U’\e); c = U\ (U’\y); b = (y’*a)\(y’*c) alpha = U\ (U’\(e - b*y));Conclusion: variables or data point? seeking for a universal learning algorithm ◮ no model for IP(x, y) the linear case: data is separable ◮ the non separable case double objective: minimizing the error together with the regularity of the solution ◮ multi objective optimisation dualiy : variable – example ◮ use the primal when d < n (in the liner case) or when matrix G is hard to compute ◮ otherwise use the dual universality = nonlinearity ◮ kernels SVM and Kernel machine Lecture 1: Linear SVM Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 March 12, 2014Road map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 margin "The algorithms for constructing the separating hyperplane considered above will be utilized for developing a battery of programs for pattern recognition." in Learning with kernels, 2002 - from V .Vapnik, 1982Hyperplanes in 2d: intuition It’s a line!Hyperplanes: formal definition Given vector v ∈ IRd and bias a ∈ IR Hyperplane as a function h, h : IRd −→ IR x 7−→ h(x) = v ⊤x + a Hyperplane as a border in IRd (and an implicit function) ∆(v, a) = {x ∈ IRd v ⊤x + a = 0} The border invariance property ∀k ∈ IR, ∆(kv, ka) = ∆(v, a) ∆ = {x ∈ IR2 | v ⊤x + a = 0} the decision border ∆ (x, h(x)) = v ⊤x + a) (x, 0) h(x) d(x, ∆)Separating hyperplanes Find a line to separate (classify) blue from red D(x) = sign v ⊤x + a Separating hyperplanes Find a line to separate (classify) blue from red D(x) = sign v ⊤x + a  the decision border: v ⊤x + a = 0Separating hyperplanes Find a line to separate (classify) blue from red D(x) = sign v ⊤x + a  the decision border: v ⊤x + a = 0 there are many solutions... The problem is ill posed How to choose a solution?This is not the problem we want to solve {(xi , yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y) unknown we want to be able to classify new observations: minimize IP(error)This is not the problem we want to solve {(xi , yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y) unknown we want to be able to classify new observations: minimize IP(error) Looking for a universal approach use training data: (a few errors) prove IP(error) remains small scalable - algorithmic complexityThis is not the problem we want to solve {(xi , yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y) unknown we want to be able to classify new observations: minimize IP(error) Looking for a universal approach use training data: (a few errors) prove IP(error) remains small scalable - algorithmic complexity with high probability (for the canonical hyperplane): IP(error) < IPb (error) | {z } =0 here + ϕ( 1 margin | {z } =kvk ) Vapnik’s Book, 1982Margin guarantees min i∈[1,n] dist(xi , ∆(v, a)) | {z } margin: m Theorem (Margin Error Bound) Let R be the radius of the smallest ball BR(a) =  x ∈ IRd | kx − ck < R , containing the points (x1, . . . , xn) i.i.d from some unknown distribution IP. Consider a decision function D(x) = sign(v ⊤x) associated with a separating hyperplane v of margin m (no training error). Then, with probability at least 1 − δ for any δ > 0, the generalization error of this hyperplane is bounded by IP(error) ≤ 2 r R2 n m2 + 3 r ln(2/δ) 2n R v’x = 0 m theorem 4.17 p 102 in J Shawe-Taylor, N Cristianini Kernel methods for pattern analysis, Cambridge 2004Statistical machine learning – Computation learning theory (COLT) {xi , yi} {xi , yi} i = 1, n A f = v ⊤x + a x yp = f (x) IPb (error) = 1 n L(f (xi), yi) Loss L Vapnik’s Book, 1982Statistical machine learning – Computation learning theory (COLT) {xi , yi} {xi , yi} i = 1, n A f = v ⊤x + a x yp = f (x) IPb (error) = 1 n L(f (xi), yi) y Loss L IP(error) = IE(L) ∀IP ∈ P P IP Prob  ≤ + ϕ(kvk) ≥ δ Vapnik’s Book, 1982linear discrimination Find a line to classify blue and red D(x) = sign v ⊤x + a  the decision border: v ⊤x + a = 0 there are many solutions... The problem is ill posed How to choose a solution ? ⇒ choose the one with larger marginRoad map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 marginMaximize our confidence = maximize the margin the decision border: ∆(v, a) = {x ∈ IRd v ⊤x + a = 0} 0 0 0 margin maximize the margin max v,a min i∈[1,n] dist(xi , ∆(v, a)) | {z } margin: m Maximize the confidence    max v,a m with min i=1,n |v ⊤xi + a| kvk ≥ m the problem is still ill posed if (v, a) is a solution, ∀ 0 < k (kv, ka) is also a solution. . .Margin and distance: details Theorem (The geometrical margin) Let x be a vector in IRd and ∆(v, a) = {s ∈ IRd v ⊤s + a = 0} an hyperplane. The distance between vector x and the hyperplane ∆(v, a)) is dist(xi , ∆(v, a)) = |v⊤x+a| kvk Let sx be the closest point to x in ∆ , sx = arg min s∈∆ kx − sk. Then x = sx + r v kvk ⇔ r v kvk = x − sx So that, taking the scalar product with vector v we have: v ⊤r v kvk = v ⊤(x − sx ) = v ⊤x − v ⊤sx = v ⊤x + a − (v ⊤sx + a) | {z } =0 = v ⊤x + a and therefore r = v⊤x + a kvk leading to: dist(xi , ∆(v, a)) = min s∈∆ kx − sk = r = |v⊤x + a| kvkGeometrical and numerical margin ∆ = {x ∈ IR2 | v ⊤x + a = 0} the decision border ∆ d(x, ∆) = |v ⊤x + a| kvk the geometrical margin d(xb, ∆) (xr, v ⊤xr + a) (xr, 0) mr d(xr, ∆) (xb, v ⊤xb + a) mb (xb, 0) m = |v ⊤x + a| the numerical marginFrom the geometrical to the numerical margin +1 ï1 ï1/|w| 1/|w| {x | wT x = 0} <ï ï marge > x w T x Valeur de la marge dans le cas monodimensionnel Maximize the (geometrical) margin    max v,a m with min i=1,n |v ⊤xi + a| kvk ≥ m if the min is greater, everybody is greater (yi ∈ {−1, 1})    max v,a m with yi(v ⊤xi + a) kvk ≥ m, i = 1, n change variable: w = v mkvk and b = a mkvk =⇒ kwk = 1 m    max w,b m with yi(w⊤xi + b) ≥ 1 ; i = 1, n and m = 1 kwk    min w,b kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, nThe canonical hyperplane ( min w,b kwk 2 with yi(w⊤xi + b) ≥ 1 i = 1, n Definition (The canonical hyperplane) An hyperplane (w, b) in IRd is said to be canonical with respect the set of vectors {xi ∈ IRd , i = 1, n} if min i=1,n |w ⊤xi + b| = 1 so that the distance min i=1,n dist(xi , ∆(w, b)) = |w⊤x + b| kwk = 1 kwk The maximal margin (=minimal norm) canonical hyperplaneRoad map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 marginLinear SVM: the problem The maximal margin (=minimal norm) canonical hyperplane 0 0 0 margin Linear SVMs are the solution of the following problem (called primal) Let {(xi , yi); i = 1 : n} be a set of labelled data with x ∈ IRd , yi ∈ {1, −1} A support vector machine (SVM) is a linear classifier associated with the following decision function: D(x) = sign w⊤x + b  where w ∈ IRd and b ∈ IR a given thought the solution of the following problem: ( min w∈IRd , b∈IR 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1 , i = 1, n This is a quadratic program (QP): ( min z 1 2 z ⊤Az − d ⊤z with Bz ≤ eSupport vector machines as a QP The Standart QP formulation ( min w,b 1 2 kwk 2 with yi(w⊤xi + b) ≥ 1, i = 1, n ⇔ ( min z∈IRd+1 1 2 z ⊤Az − d ⊤z with Bz ≤ e z = (w, b) ⊤, d = (0, . . . , 0) ⊤, A =  I 0 0 0  , B = −[diag(y)X, y] and e = −(1, . . . , 1) ⊤ Solve it using a standard QP solver such as (for instance) % QUADPROG Quadratic programming . % X = QUADPROG (H ,f ,A ,b ) attempts to solve the quadratic programming problem : % % min 0.5* x ’* H*x + f ’* x subject to : A*x <= b % x % so that the solution is in the range LB <= X <= UB For more solvers (just to name a few) have a look at: plato.asu.edu/sub/nlores.html#QP-problem www.numerical.rl.ac.uk/people/nimg/qp/qp.htmlRoad map 1 Linear SVM Separating hyperplanes The margin Linear SVM: the problem Linear programming SVM 0 0 0 marginOther SVMs: Equivalence between norms L1 norm variable selection (especially with redundant noisy features) Mangassarian, 1965    max m,v,a m with yi(v ⊤xi + a) ≥ m kvk2 ≥ m 1 √ d kvk1 i = 1, n 1-norm or Linear Programming-SVM (LP SVM) ( min w,b kwk1 = Pp j=1 |wj | with yi(w ⊤xi + b) ≥ 1 ; i = 1, n Generalized SVM (Bradley and Mangasarian, 1998) ( min w,b kwk p p with yi(w ⊤xi + b) ≥ 1 ; i = 1, n p = 2: SVM, p = 1: LPSVM (also with p = ∞), p = 0: L0 SVM, p= 1 and 2: doubly regularized SVM (DrSVM)Linear support vector support (LP SVM) ( min w,b kwk1 = Pp j=1 w + j + w − j with yi(w ⊤xi + b) ≥ 1 ; i = 1, n w = w + − w − with w + ≥ 0 and w − ≥ 0 The Standart LP formulation    min x f ⊤x with Ax ≤ d and 0 ≤ x x = [w +; w −; b] f = [1 . . . 1; 0] d = −[1 . . . 1] ⊤ A = [−yiXi yiXi − yi] % linprog (f ,A ,b , Aeq , beq ,LB , UB ) % attempts to solve the linear programming problem : % min f ’* x subject to : A* x <= b % x % so that the solution is in the range LB <= X <= UBAn example of linear discrimination: SVM and LPSVM true line QP SVM LPSVM Figure: SVM and LP SVMThe linear discrimination problem from Learning with Kernels, B. Schölkopf and A. Smolla, MIT Press, 2002.Conclusion SVM = Separating hyperplane (to begin with the simpler) + Margin, Norm and statistical learning + Quadratic and Linear programming (and associated rewriting issues) + Support vectors (sparsity) SVM preforms the selection of the most relevant data pointsBibliography V. Vapnik, the generalized portrait method p 355 in Estimation of dependences based on empirical data, Springer, 1982 B. Boser, I. Guyon & V. Vapnik, A training algorithm for optimal margin classifiers. COLT, 1992 P. S. Bradley & O. L. Mangasarian. Feature selection via concave minimization and support vector machines. ICML 1998 B. Schölkopf & A. Smolla, Learning with Kernels, MIT Press, 2002 M. Mohri, A. Rostamizadeh & A. Talwalkar, Foundations of Machine Learning, MIT press 2012 http://agbs.kyb.tuebingen.mpg.de/lwk/sections/section72.pdf http://www.cs.nyu.edu/~mohri/mls/lecture_4.pdf http://en.wikipedia.org/wiki/Quadratic_programming Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 25 / 25 Understanding SVM (and associated kernel machines) through the development of a Matlab toolbox Stephane Canu To cite this version: Stephane Canu. Understanding SVM (and associated kernel machines) through the development of a Matlab toolbox. Ecole d’ing´enieur. Introduction to Support Vector Machines (SVM), ´ Sao Paulo, 2014, pp.33. HAL Id: cel-01003007 https://cel.archives-ouvertes.fr/cel-01003007 Submitted on 8 Jun 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Lecture 8: Multi Class SVM Stéphane Canu stephane.canu@litislab.eu Sao Paulo 2014 April 10, 2014Roadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 23 different strategies for multi class SVM 1 Decomposition approaches ◮ one vs all: winner takes all ◮ one vs one: ⋆ max-wins voting ⋆ pairwise coupling: use probability ◮ c SVDD 2 global approach (size c × n), ◮ formal (different variations)    min f ∈H,α0,ξ∈IRn 1 2 Xc ℓ=1 kfℓk 2 H + C p Xn i=1 Xc ℓ=1,ℓ6=yi ξ p iℓ with fyi (xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi non consistent estimator but practically useful ◮ structured outputs 3 A coupling formulation using the convex hulls3 different strategies for multi class SVM 1 Decomposition approaches ◮ one vs all: winner takes all ◮ one vs one: ⋆ max-wins voting ⋆ pairwise coupling: use probability – best results ◮ c SVDD 2 global approach (size c × n), ◮ formal (different variations)    min f ∈H,α0,ξ∈IRn 1 2 Xc ℓ=1 kfℓk 2 H + C p Xn i=1 Xc ℓ=1,ℓ6=yi ξ p iℓ with fyi (xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi non consistent estimator but practically useful ◮ structured outputs 3 A coupling formulation using the convex hullsMulticlass SVM: complexity issues n training data n = 60, 000 for MNIST c class c = 10 for MNIST approach problem size number of sub problems discrimination rejection 1 vs. all n c ++ - 1 vs. 1 2n c c(c−1) 2 ++ - c SVDD n c c - ++ all together n × c 1 ++ - coupling CH n 1 + +Roadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 2Multi Class SVM by decomposition One-Against-All Methods → winner-takes-all strategy One-vs-One: pairwise methods → max-wins voting → directed acyclic graph (DAG) → error-correcting codes → post process probabilities Hierarchical binary tree for multi-class SVM http://courses.media.mit.edu/2006fall/ mas622j/Projects/aisen-project/SVM and probabilities (Platt, 1999) The decision function of the SVM is: sign f (x) + b  log IP(Y = 1|x) IP(Y = −1|x) should have (almost) the same sign as f (x) + b log IP(Y = 1|x) IP(Y = −1|x) = a1(f (x) + b) + a2 IP(Y = 1|x) = 1 − 1 1 + expa1(f (x)+b)+a2 a1 et a2 estimated using maximum likelihood on new data max a1,a2 L with L = Yn i=1 IP(Y = 1|xi) yi + (1 − IP(Y = 1|xi))(1−yi ) and log L = Pn i=1 yi log(IP(Y = 1|xi)) + (1 − yi)log(1 − IP(Y = 1|xi)) = Pn i=1 yi log IP(Y =1|xi ) 1−IP(Y =1|xi )  + log(1 − IP(Y = 1|xi)) = Pn i=1 yi a1(f (xi) + b) + a2  − log(1 + expa1(f (xi )+b)+a2 ) = Pn i=1 yi a ⊤zi  − log(1 + expa ⊤zi) Newton iterations: a new ← a old − H −1∇logLSVM and probabilities (Platt, 1999) max a∈IR2 log L = Xn i=1 yi a ⊤zi  − log(1 + expa ⊤zi) Newton iterations a new ← a old − H −1∇logL ∇logL = Xn i=1 yi zi − expa ⊤z 1 + expa⊤z zi = Xn i=1 yi − IP(Y = 1|xi)  zi = Z ⊤(y − p) H = − Xn i=1 zi z ⊤ i IP(Y = 1|xi) 1 − IP(Y = 1|xi)  = −Z ⊤WZ Newton iterations a new ← a old + (Z ⊤WZ) −1Z ⊤(y − p)SVM and probabilities: practical issues y −→ t =    1 − ε+ = n+ + 1 n+ + 2 if yi = 1 ε− = 1 n− + 2 if yi = −1 1 in: X, y, f /out: p 2 t ← 3 Z ← 4 loop until convergence 1 p ← 1 − 1 1+expa⊤z 2 W ← diag p(1 − p)  3 a new ← a old + (Z ⊤WZ) −1Z ⊤(t − p)SVM and probabilities: pairwise coupling From pairwise probabilities IP(cℓ , cj) to class probabilities pℓ = IP(cℓ |x) min p Xc ℓ=1 X ℓ−1 j=1 IP(cℓ , cj) 2 (pℓ − pj) 2  Q e e ⊤ 0  p µ  =  0 1  with Qℓj =  IP(cℓ , cj) 2 P ℓ 6= j i IP(cℓ , ci) 2 ℓ = j The global procedure : 1 (Xa, ya, Xt, yt) ← split(X, y) 2 (Xℓ, yℓ, Xp, yp) ← split(Xa, ya) 3 loop for all pairs (ci , cj) of classes 1 modeli,j ← train_SVM(Xℓ, yℓ,(ci , cj)) 2 IP(ci , cj) ← estimate_proba(Xp, yp, model) % Platt estimate 4 p ← post_process(Xt, yt,IP) % Pairwise Coupling Wu, Lin & Weng, 2004, Duan & Keerti, 05SVM and probabilities Some facts SVM is universally consistent (converges towards the Bayes risk) SVM asymptotically implements the bayes rule but theoretically: no consistency towards conditional probabilities (due to the nature of sparsity) to estimate conditional probabilities on an interval (typically[ 1 2 − η, 1 2 + η]) to sparseness in this interval (all data points have to be support vectors) Bartlett & Tewari, JMLR, 07SVM and probabilities (2/2) An alternative approach g(x) − ε −(x) ≤ IP(Y = 1|x) ≤ g(x) + ε +(x) with g(x) = 1 1+4−f (x)−α0 non parametric functions ε − and ε + have to verify: g(x) + ε +(x) = exp−a1(1−f (x)−α0)++a2 1 − g(x) − ε −(x) = exp−a1(1+f (x)+α0)++a2 with a1 = log 2 and a2 = 0 Grandvalet et al., 07Roadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 2Multi class SVM: the decision function One hyperplane by class fℓ(x) = w ⊤ ℓ x + bℓ ℓ = 1, c Winner takes all decision function D(x) = Argmax ℓ=1,c w ⊤ 1 x + b1, w ⊤ 2 x + b2, . . . , w ⊤ ℓ x + bℓ , . . . , w ⊤ c x + bc  We can revisit the 2 classes case in this setting c × (d + 1) unknown variables (wℓ, bℓ); ℓ = 1, cMulti class SVM: the optimization problem The margin in the multidimensional case m = min ℓ6=yi v ⊤ yi xi − ayi − v ⊤ ℓ xi + aℓ  = v ⊤ yi xi + ayi − max ℓ6=yi v ⊤ ℓ xi + aℓ  The maximal margin multiclass SVM    max vℓ,aℓ m with v ⊤ yi xi + ayi − v ⊤ ℓ xi − aℓ ≥ m for i = 1, n; ℓ = 1, c; ℓ 6= yi and 1 2 Xc ℓ=1 kvℓk 2 = 1 The multiclass SVM    min wℓ,bℓ 1 2 Xc ℓ=1 kwℓk 2 with x ⊤ i (wyi − wℓ) + byi − bℓ ≥ 1 for i = 1, n; ℓ = 1, c; ℓ 6= yiMulti class SVM: KKT and dual form: The 3 classes case    min wℓ,bℓ 1 2 X 3 ℓ=1 kwℓk 2 with w⊤ yi xi + byi ≥ w⊤ ℓ xi + bℓ + 1 for i = 1, n; ℓ = 1, 3; ℓ 6= yi    min wℓ,bℓ 1 2 kw1k 2 + 1 2 kw2k 2 + 1 2 kw3k 2 with w⊤ 1 xi + b1 ≥ w⊤ 2 xi + b2 + 1 for i such that yi = 1 w⊤ 1 xi + b1 ≥ w⊤ 3 xi + b3 + 1 for i such that yi = 1 w⊤ 2 xi + b2 ≥ w⊤ 1 xi + b1 + 1 for i such that yi = 2 w⊤ 2 xi + b2 ≥ w⊤ 3 xi + b3 + 1 for i such that yi = 2 w⊤ 3 xi + b3 ≥ w⊤ 1 xi + b1 + 1 for i such that yi = 3 w⊤ 3 xi + b3 ≥ w⊤ 2 xi + b2 + 1 for i such that yi = 3 L = 1 2 (kw1k 2 + kw2k 2 + kw3k 2 ) −α ⊤ 12(X1(w1 − w2) + b1 − b2 − 1) −α ⊤ 13(X1(w1 − w3) + b1 − b3 − 1) −α ⊤ 21(X2(w2 − w1) + b2 − b1 − 1) −α ⊤ 23(X2(w2 − w3) + b2 − b3 − 1) −α ⊤ 31(X3(w3 − w1) + b3 − b1 − 1) −α ⊤ 32(X3(w3 − w2) + b3 − b2 − 1)Multi class SVM: KKT and dual form: The 3 classes case L = 1 2 kwk 2 − α ⊤(XMw + Ab − 1) with w =   w1 w2 w3   ∈ IR3d M = M ⊗ I =   I −I 0 I 0 −I −I I 0 0 I −I −I 0 I 0 −I I   a 6d × 3d matrix where I the identity matrix and X =   X1 0 0 0 0 0 0 X1 0 0 0 0 0 0 X2 0 0 0 0 0 0 X2 0 0 0 0 0 0 X3 0 0 0 0 0 0 X3   a 2n × 6d matrix with input data X =   X1 X2 X3   n × dMulti class SVM: KKT and dual form: The 3 classes case KKT Stationality conditions = ∇wL = w − M⊤X ⊤α ∇bL = A ⊤α The dual min α∈IR2n 1 2 α ⊤Gα − e ⊤α with Ab = 0 and 0 ≤ α With G = XMM⊤X ⊤ = X (M ⊗ I)(M ⊗ I) ⊤X ⊤ = X (MM⊤ ⊗ I)X ⊤ = (MM⊤ ⊗ I). × XX ⊤ = (MM⊤ ⊗ I). × 1I K 1I⊤ and M =   1 −1 0 1 0 −1 −1 1 0 0 1 −1 −1 0 1 0 −1 1  Multi class SVM and slack variables (2 variants) A slack for all (Vapnik & Blanz, Weston & Watkins 1998)    min wℓ,bℓ,ξ∈IRcn 1 2 Xc ℓ=1 kwℓk 2 + C Xn i=1 Xc ℓ=1,ℓ6=yi ξiℓ with w⊤ yi xi + byi − w⊤ ℓ xi − bℓ ≥ 1 − ξiℓ and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi The dual min α∈IR2n 1 2 α ⊤Gα − e ⊤α with Ab = 0 and 0 ≤ α ≤ C Max error, a slack per training data (Cramer and Singer, 2001)    min wℓ,bℓ,ξ∈IRn 1 2 Xc ℓ=1 kwℓk 2 + C Xn i=1 ξi with (wyi − wℓ) ⊤xi ≥ 1 − ξi for i = 1, n; ℓ = 1, c; ℓ 6= yi X i=1 and ξi ≥ 0 for i = 1, nMulti class SVM and Kernels    min f ∈H,α0,ξ∈IRcn 1 2 Xc ℓ=1 kfℓk 2 H + C Xn i=1 Xc ℓ=1,ℓ6=yi ξiℓ with fyi (xi) + byi − fℓ(xi) − bℓ ≥ 1 − ξiℓ Xn i=1 and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi The dual min α∈IR2n 1 2 α ⊤Gα − e ⊤α with Ab = 0 and 0 ≤ α≤ C where G is the multi class kernel matrixOther Multi class SVM Lee, Lin & Wahba, 2004    min f ∈H λ 2 Xc ℓ=1 kfℓk 2 H + 1 n Xn i=1 Xc ℓ=1,ℓ6=yi (fℓ(xi) + 1 c − 1 )+ with Xc ℓ=1 fℓ(x) = 0 ∀x Structured outputs = Cramer and Singer, 2001 MSVMpack : A Multi-Class Support Vector Machine Package Fabien Lauer & Yann GuermeurRoadmap 1 Multi Class SVM 3 different strategies for multi class SVM Multi Class SVM by decomposition Multi class SVM Coupling convex hulls 1.5 1.5 1.5 1.5 1.5 1.5 2.5 2.5 2.5 −0.5 0 0.5 1 1.5 0 0.5 1 1.5 2One more way to derivate SVM Minimizing the distance between the convex hulls    min α ku − vk 2 with u(x) = X {i|yi =1} αi(x ⊤ i x), v(x) = X {i|yi =−1} αi(x ⊤ i x) and X {i|yi =1} αi = 1, X {i|yi =−1} αi = 1, 0 ≤ αi i = 1, nThe multi class case    min α Xc ℓ=1 Xc ℓ ′=1 kuℓ − uℓ ′k 2 with uℓ(x) = X {i|yi =ℓ} αi,ℓ(x ⊤ i x), ℓ = 1, c and X {i|yi =ℓ} αi,ℓ = 1, 0 ≤ αi,ℓ i = 1, n; ℓ = 1, cBibliography Estimating probabilities ◮ Platt, J. (2000). Probabilistic outputs for support vector machines and comparison to regularized likelihood methods. In Advances in large margin classifiers. MIT Press. ◮ T. Lin, C.-J. Lin, R.C. Weng, A note on Platt’s probabilistic outputs for support vector machines, Mach. Learn. 68 (2007) 267–276 ◮ http://www.cs.cornell.edu/courses/cs678/2007sp/platt.pdf Multiclass SVM ◮ K.-B. Duan & S. Keerthi (2005). "Which Is the Best Multiclass SVM Method? An Empirical Study". ◮ T.-F. Wu, C.-J. Lin, R.C. Weng, Probability estimates for multi-class classification by pairwise coupling, JMLR. 5 (2004) 975–1005. ◮ K. Crammer & Y. Singer (2001). "On the Algorithmic Implementation of Multiclass Kernel-based Vector Machines". JMLR 2: 265–292. ◮ Lee, Y.; Lin, Y.; and Wahba, G. (2001). "Multicategory Support Vector Machines". Computing Science and Statistics 33. ◮ http://www.loria.fr/~guermeur/NN2008_M_SVM_YG.pdf ◮ http://jmlr.org/papers/volume12/lauer11a/lauer11a.pdf Stéphane Canu (INSA Rouen - LITIS) April 10, 2014 25 / 25 https://hal.inria.fr/cel-01082588v2/document Tutoriel Android - TP de prise en main Dima Rodriguez To cite this version: Dima Rodriguez. Tutoriel Android - TP de prise en main. Ecole d’ing´enieur. France. 2014, ´ pp.51. HAL Id: cel-01082588 https://hal.archives-ouvertes.fr/cel-01082588v2 Submitted on 26 Nov 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Tutoriel Android TM TP de prise en main Dima RodriguezPolytech’ Paris Sud Tutoriel AndroidTM Dima Rodriguez Novembre 2014 TP de prise en mainTable des matières Préambule 4 1 Installation de l’IDE 5 2 Configuration de l’IDE 6 Installation des paquets supplémentaires et des mises à jours . . . . . . 6 Configuration d’un émulateur . . . . . . . . . . . . . . . . . . . . . . . 6 3 Notre première application Android 10 Création d’un projet et d’une application “Hello World” . . . . . . . . . 10 Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . . . . 11 Se repérer dans le projet . . . . . . . . . . . . . . . . . . . . . . . . . 14 Modification de l’interface utilisateur . . . . . . . . . . . . . . . . . . . 16 Répondre aux évènements . . . . . . . . . . . . . . . . . . . . . . . . . 21 Créer et lancer une autre activité . . . . . . . . . . . . . . . . . . . . . 22 Créer des animations . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Créer un View personnalisé pour gérer un jeu . . . . . . . . . . . . . . 32 Temporisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Rajouter un bouton sur la barre d’action . . . . . . . . . . . . . . . . . 40 Lancement d’une autre application . . . . . . . . . . . . . . . . . . . . 41 Changement de langue . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Annexes 46 Explication du code généré par défaut pour la classe Principale . . . . . 46 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . . . . 49 2Table des figures 2.1 SDK Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 Android Virtual Device Manager . . . . . . . . . . . . . . . . . . 8 2.3 Création d’un appareil virtuel . . . . . . . . . . . . . . . . . . . . 9 3.1 Création d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 Créer une activité . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.3 Nouvelle activité . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.4 Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . 13 3.5 Aperçu de l’interface Eclipse . . . . . . . . . . . . . . . . . . . 14 3.6 Hiérarchie de LinearLayout . . . . . . . . . . . . . . . . . . . . . 17 3.7 Premier test de l’application modifiée . . . . . . . . . . . . . . . . 20 3.8 Champ de saisie et bouton . . . . . . . . . . . . . . . . . . . . . 21 3.9 Création d’une nouvelle activité . . . . . . . . . . . . . . . . . . . 23 3.10 Nouveau xml pour définir une animation . . . . . . . . . . . . . . 28 3.11 Animation en LinearLayout . . . . . . . . . . . . . . . . . . . . . 30 3.12 Animation en RelativeLayout . . . . . . . . . . . . . . . . . . . . 31 3.13 Création de la classe MonViewPerso . . . . . . . . . . . . . . . . 33 3.14 Ajout d’un bouton pour lancer le jeu . . . . . . . . . . . . . . . . 36 3.15 Activité avec vue personnalisée . . . . . . . . . . . . . . . . . . . 39 3.16 Barre d’action . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.17 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . 50 3Préambule Le système d’exploitation Android est actuellement l’OS le plus utilisé dans le monde faisant tourner des smartphones, tablettes, montres connectées, liseuses électroniques, télévisions interactives, et bien d’autres. C’est un système, open source qui utilise le noyau Linux. Il a été créée par Android, Inc. qui fut rachetée par Google en 2005. Le développement d’applications pour Android s’effectue en Java en utilisant des bibliothèques spécifiques. Le but de ce tutoriel est de vous familiariser avec l’esprit de développement Android et ses bibliothèques. Nous introduirons les concepts de bases de création d’application en mettant en œuvre quelques fonctionnalités simples. Ce tutoriel n’est en aucun cas exhaustive, le potentiel des applications Android est beaucoup plus ample, les exemples cités dans ce document ne devront pas brider votre imagination ni votre curiosité. Sur le site officiel pour les développeurs Android vous trouverez la documentation des classes, des tutoriels ainsi que les lignes directrices pour préparer une distribution Google Play. Un lexique à la fin de ce document définit quelques mot du vocabulaire Android utilisé dans ce tutoriel. 41 Installation de l’IDE Dans cette section nous allons décrire la procédure d’installation d’un environnement de développement Android. Attention : Il faut exécuter les étapes dans l’ordre cité ci-dessous. a. Téléchargez le JDK7 (Java Development Kit) que vous pouvez trouver sur le site d’Oracle 1 . b. Désinstallez des éventuelles versions antérieures du JDK c. Installez le nouveau JDK d. Téléchargez le paquet ADT (Android Developer Tools). Il contient le SDK (Software Development Kit) Android et une version d’Eclipse avec ADT intégré. e. Pour installer l’IDE, il faut juste placer le dossier téléchargé dans le répertoire où vous avez l’habitude d’installer vos programmes (ou directement sur votre partition principale) et le dé-zipper. Vous pouvez également lui changer de nom si vous souhaitez, mais veillez à ne pas mettre des espaces ou des accents quand vous le renommez. f. Dans le dossier dé-zippé vous trouverez un exécutable Eclipse que vous pouvez désormais lancer pour commencer la configuration de votre environnement. i Au moment de l’écriture de ce document, Eclipse est le seul IDE (Integrated Development Environment) officiellement supporté. Un nouvel environnement, Android Studio, est en cours de développement mais est encore en version bêta pas très stable. Si vous souhaitez utiliser une version d’Eclipse que vous avez déjà sur votre machine il faudrait prendre le SDK et un plugin ADT et configurer Eclipse pour son utilisation. 1. Ce tutoriel a été réalisé avec JDK7u60 52 Configuration de l’IDE Installation des paquets supplémentaires et des mises à jours a. Lancez Eclipse b. On commencera par s’assurer que l’environnement installé est à jour. Dans le menu Help sélectionnez Check for Updates et installez les mises à jour le cas échéant. c. Pour vérifier la version du SDK installé, allez dans le menu Window > Android SDK Manager et lancez le gestionnaire du SDK. Dans le gestionnaire (fig.2.1) vous verrez la version du SDK installé (avec les mises jour disponibles) et aussi la version de l’API (Application Programming Interface) installée et la version du OS pour laquelle elle vous permettra de développer. Installez les paquets proposés par défaut. i Si vous voulez développer pour des versions Android plus anciennes il faut installer les versions API correspondantes. Configuration d’un émulateur Un émulateur permet de reproduire le comportement d’un appareil réel d’une façon virtuelle. L’utilisation d’un émulateur nous évite d’avoir à charger à chaque fois l’application dans un appareil pour la tester. On pourra ainsi lancer l’application dans l’IDE et elle s’exécutera sur un appareil virtuel appelé Android Virtual Device AVD qui émule le comportement d’un téléphone, une tablette ou autre. Eclipse ne propose pas d’émulateur par défaut, avant de commencer à créer notre application il faut en configurer un. 6Tutoriel Android 7 Figure 2.1 – SDK Manager Dans cet exemple, il existe une mise à jour disponible pour le SDK. L’API installée est la version 20 qui permet un développement pour Android 4.4, mais il existe une API plus récente pour Android 5.0. Polytech’ Paris Sud Dima RodriguezTutoriel Android 8 Figure 2.2 – Android Virtual Device Manager Allez dans le menu Window > Android Virtual Device Manager, une fois le gestionnaire ouvert cliquez sur le bouton Create (fig. 2.2). Une fenêtre de configuration s’affiche (fig. 2.3a). On propose de configurer un émulateur Nexus One avec les paramètres indiqués (fig.2.3b). Notez qu’à la création de l’appareil sa résolution vous est signalée. Dans cet exemple l’appareil a une résolution 480x800 qui correspond à hdpi (high density dots per inch). Ceci est important à noter pour l’intégration d’images dans l’application. i Notez que pour certains émulateurs proposés le processeur n’est pas installé par défaut, pour pouvoir les créer il faut installer un processeur adapté dans le SDK Manager. Polytech’ Paris Sud Dima RodriguezTutoriel Android 9 (a) Fenêtre de création AVD (b) Création d’un appareil Nexus One Figure 2.3 – Création d’un appareil virtuel Polytech’ Paris Sud Dima Rodriguez3 Notre première application Android Création d’un projet et d’une application “Hello World” a. Dans le menu File > New, sélectionnez Android Application Project , et renseignez les informations comme dans la figure 3.1 Application name : c’est le nom qui va apparaitre dans la liste des applications sur l’appareil et dans le Play Store. Project name : c’est le nom utilisé par Eclipse (typiquement le même que celui de l’application). Package name : il est utilisé comme identifiant de l’application, il permet de considérer différentes versions d’une application comme étant une même application. Minimum required SDK : c’est la version Android la plus ancienne sur laquelle l’application peut tourner. Il faut éviter de remonter trop en arrière ça réduirait les fonctionnalités que vous pourriez donner à votre application. Target SDK : c’est la version pour laquelle l’application est développée et testée. Typiquement la dernière version API que vous avez installée. 1 Compile with : c’est la version d’API à utiliser pour la compilation. Typiquement la dernière version du SDK installée. Theme : c’est l’apparence par défaut qu’aura votre application. 1. Ce tutoriel a été réalisé avec la version 4.4.2 10Tutoriel Android 11 b. Cliquez sur Next et laissez les choix par défaut. Vous pouvez éventuellement modifier l’emplacement de votre projet en décochant Create Project in Workspace et parcourir le disque pour sélectionner un autre dossier. c. Cliquez sur Next. La fenêtre suivante vous propose de définir une icône pour votre application. Nous laisserons l’icône proposée par défaut. Vous pourrez ultérieurement créer votre propre icône pour vos applications. Remarquez que l’image doit être proposée avec différentes résolutions pour s’adapter aux différents appareils. d. Cliquez sur Next. Nous arrivons à la création d’une activité (un écran avec une interface graphique). Sélectionnez Blank Activity (fig. 3.2) et cliquez Next. e. Selon la version de l’ADT que vous avez, vous verrez soit la fenêtre de la figure 3.3a ou celle de la figure 3.3b. La dernière version impose l’utilisation de fragments. Chaque activité dispose d’un layout qui définit la façon dont les composants seront disposés sur l’écran. Une activité peut être divisée en portions (ou fragments) chacune ayant son propre layout. La notion de fragment a été introduite pour favoriser la ré-utilisabilité de morceaux d’activité (un fragment peut être définit une fois et réutilisé dans plusieurs activités). Renseignez les champs comme indiqué dans la figure. f. Cliquez sur Finish, le projet est crée. ! Si vous créez un fragment ce sera le fichier fragment_principale.xml que vous devriez modifier dans la suite du tutoriel sinon vous modi- fierez le fichier activite_principale.xml. Exécution de l’application Sur l’émulateur Appuyez sur le bouton d’exécution (fig.3.4 ) et sélectionnez Android Application dans la fenêtre qui s’affiche. L’émulateur se lance, ça peut prendre quelques minutes soyez patients. Rassurez-vous, vous n’aurez pas à le relancer à chaque fois que vous compilez votre projet, laissez-le ouvert et à chaque fois que vous compilez et relancez votre application, elle sera rechargée dans l’émulateur en cours. Polytech’ Paris Sud Dima RodriguezTutoriel Android 12 Figure 3.1 – Création d’un projet Figure 3.2 – Créer une activité Polytech’ Paris Sud Dima RodriguezTutoriel Android 13 (a) Création d’activité sans fragment (b) Création d’activité avec fragment Figure 3.3 – Nouvelle activité Figure 3.4 – Exécution de l’application Polytech’ Paris Sud Dima RodriguezTutoriel Android 14 Explorateur Palette des composants graphiques Navigateur des fichiers ouverts Liste des composants de l'activité Propritétés du composant selectionné Navigation entre vue graphique et xml Output Aperçu de l'activité Debug et Execution Figure 3.5 – Aperçu de l’interface Eclipse Sur un appareil réel Connectez l’appareil par câble USB à l’ordinateur et installez le pilote si nécessaire. Activez l’option de débogage USB sur votre appareil (en général sous Settings > Applications > Development). Lancez l’application depuis Eclipse comme précédemment. Eclipse charge l’application sur votre appareil et la lance. i Une fois que votre application est compilée, un fichier MonAppli.apk est créé dans le dossier bin de votre répertoire de travail. C’est l’exé- cutable de votre application. C’est ce fichier que vous devez déployer pour distribuer votre application. Le contenu de ce fichier peut être inspecté à l’aide de n’importe quel logiciel standard de compression/- décompression de fichiers. Se repérer dans le projet La figure 3.5 montre les principaux éléments de l’interface Eclipse. Tout projet Android doit respecter une hiérarchie bien précise qui permettra au compilateur de retrouver les différents éléments et ressources lors de la génération de l’application. Cette hiérarchie favorise la modularité des applications Android. A la création du projet, Eclipse crée automatiquement des dossiers pour contenir Polytech’ Paris Sud Dima RodriguezTutoriel Android 15 les fichiers de code Java, les fichiers XML, et les fichiers multimédias. L’explorateur de projet vous permettra de naviguer dans ces dossiers. Les dossiers que nous utiliserons le plus sont src et res. Le premier contient le code Java qui définit le comportement de l’application et le second comporte des sous dossiers où sont stockés les ressources qui définissent l’interface de l’application (l’apparence). i La séparation entre fonctionnalité et apparence est un point essentiel de la philosophie Android. Le code de la classe principale de l’application (Principale.java) est situé dans le sous dossier polytech.android.monappli de src. Vous trouverez en annexe une brève explication du code qui y est généré par défaut. C’est dans le dossier src que seront enregistrées toutes les classes que nous allons créer dans ce projet. Par ailleurs, tout ce qui touche à l’interface utilisateur sera intégré dans les sous dossiers de res, dont voici une brève description : layout regroupe les fichiers XML qui définissent la disposition des composants sur l’écran. Il contient déjà, dès la création du projet, le layout de l’activité principale que nous avons créée. drawable-**** contient tout élément qui peut être dessiné sur l’écran : images (en PNG de préférence), formes, animations, transitions, icône, etc.. Cinq dossiers drawable permettent aux développeurs de proposer des éléments graphiques pour tout genre d’appareil Android en fonction de sa résolution. En populant correctement ces dossiers on peut ainsi créer des applications avec une interface qui s’adapte à chaque résolution d’écran avec un seul fichier .apk. ldpi low-resolution dots per inch. Pour des images destinées à des écrans de basse résolution (~120dpi) mdpi pour des écrans de moyenne resolution (~160dpi) hdpi pour des écrans de haute résolution (~240dpi) xhdpi pour des écrans ayant une extra haute résolution (~320dpi) xxhdpi pour des écrans ayant une extra extra haute résolution (~480dpi). menu contient les fichiers XML définissant les menus Polytech’ Paris Sud Dima RodriguezTutoriel Android 16 values contient les fichiers XML qui définissent des valeurs constantes (des chaines de caractères, des dimensions, des couleurs, des styles etc.) Dans le dossier gen vous verrez du code java généré automatiquement par Eclipse. Nous nous intéresserons particulièrement au fichier R.java dans le package polytech.android.monappli. Ce fichier définit une classe R dans laquelle sont définis les identifiants des ressources de l’application. A chaque fois que vous rajouterez une ressource à votre application un identifiant sera généré automatiquement dans cette classe vous permettant par la suite de pouvoir le référencer pour l’utiliser dans votre code 2 . Vous trouverez également sur la racine du projet un fichier nommé AndroidManifest.xml. Ce fichier est obligatoire dans tout projet Android, et doit toujours avoir ce même nom. Ce fichier permet au système de reconnaitre l’application. Modification de l’interface utilisateur Pour l’instant notre application ne fait qu’afficher un message sur l’écran, dans cette section nous allons modifier l’interface pour y mettre un champ de saisie et un bouton. Une interface utilisateur est en général constituée de ce qu’on appelle des ViewGroups qui contiennent des objets de type View ainsi que d’autres ViewGroups. Un View est un composant, tel un bouton ou un champ de texte, et les ViewGroups sont des conteneurs qui définissent une disposition des composants (Views) qui y sont placés. ViewGroup définit la classe de base des différents layouts. Comprendre le layout La disposition de notre interface est définie dans le fichier fragment_principale.xml situé dans le dossier layout de res. (ou bien le fichier activite_principale.xml si vous n’avez pas définit de fragment à la création de votre projet). Ouvrez ce fichier. 2. A l’intérieur de classe R sont définies plusieurs classes, dites nichées, telles que string, drawable, layout, menu, id, etc. Une classe nichée est membre de la classe qui la contient. On a recours à ce genre de classe en général lorsqu’on veut définir une classe qui n’est utilisée qu’à l’intérieur d’une autre classe. Si on la déclare privée elle ne sera visible qu’a l’intérieur de la classe qui l’a définie. Par ailleurs cette dernière peut également accéder aux attributs privés de la classe nichée. C’est une façon d’améliorer la lisibilité du code en regroupant les fonctionnalités qui vont ensemble. Dans notre cas toutes les classes nichées dans R sont publiques, donc accessibles depuis l’extérieur, mais comme elles sont membres de la classe R, pour y accéder, il faut passer par R. On utilisera des notations telles que R.string puisque ces classes sont statiques. Polytech’ Paris Sud Dima RodriguezTutoriel Android 17 La première balise que vous retrouverez est qui définit le type du conteneur qui compose l’interface, il impose la façon dont les composants seront disposés. Plusieurs types de conteneurs existent, les plus communs sont RelativeLayout, LinearLayout, TableLayout, GridView, ListView. L’utilisation d’un RelativeLayout, par exemple, implique que les composants seront placés selon des positions relatives les uns par rapport aux autres. Un LinearLayout implique une disposition linéaire verticale ou horizontale, un GridView permet la disposition des éléments selon une grille qui peut défiler, etc. A l’intérieur de la balise vous verrez un ensemble d’attributs définis selon le format plateforme:caractéristique=”valeur” Par exemple le premier attribut xmlns:android précise où sont définis les balises Android utilisées dans ce fichier. La balise , fille de la balise , définit un composant texte qui sera placé sur le layout. En effet, c’est sur ce composant là qu’on écrit le “Hello World” qu’affiche notre application. Cette chaine de caractère est définie par l’attribut android:text. La notation "@string/hello_world" fait référence à une chaine de caractère qui s’appelle hello_world et qui est définie dans le fichier strings.xml (dans le dossier values). Modifier le type de layout Nous allons maintenant modifier le type du layout pour le transformer en LinearLayout. La figure 3.6 trace la dérivation de la classe LinearLayout. Nous rajouterons ensuite nos composants sur ce layout dans une disposition linéaire. Figure 3.6 – Hiérarchie de LinearLayout Les layouts sont des ViewGroup qui sont eux mêmes des View [1] Dans le fichier fragment_principale.xml Polytech’ Paris Sud Dima RodriguezTutoriel Android 18 . supprimez l’élément . remplacez l’élément par . rajoutez l’attribut android:orientation et mettre sa valeur à “horizontal” Le code dans le fichier devient ainsi Rajouter d’un champ de saisie . Rajoutez un élément dans le tel que Nous avons ainsi placé un champ de saisie avec les attributs suivants : android :id permet de donner un identifiant unique à ce View qu’on utilisera pour référencer cet objet à l’intérieur de notre code. Le symbol @ est nécessaire pour faire référence à un objet ressource à partir d’un fichier XML. id est le type de ressource et chp_saisie est le nom qu’on donne à notre ressource. Le symbole + est utilisé pour définir un ID pour la première fois. Il indique aux outils du SDK qu’il faudrait générer un ID dans le fichier R.java pour référencer cet objet. Un attribut public static final chp_saisie sera défini dans la classe id.Le symbole + ne doit être utilisé qu’une seule fois au moment où on déclare la ressource pour la première fois. Par la suite si on veut faire référence à cet élément, à partir d’un XML, il suffira d’écrire @id/chp_saisie. Polytech’ Paris Sud Dima RodriguezTutoriel Android 19 android :layout_width permet de spécifier la largeur de élément. “wrap_content” signifie que le View doit être aussi large que nécessaire pour s’adapter à la taille de son contenu. Si en revanche on précise “match_parent” comme on l’avait fait pour le LinearLayout, dans ce cas le EditText occuperait toute la largeur de l’écran puisque sa largeur sera celle de son parent c-à-d le LinearLayout android :layout_height idem que pour le layout_width mais pour la hauteur android :hint précise le texte par défaut à afficher dans le champ de saisie quand il est vide. Nous aurions pu préciser directement la chaine de caractère ici codée en dur, mais on préfère utiliser plutôt une ressource qu’on définira dans strings.xml . Noter que l’utilisation de + ici n’est pas nécessaire parce qu’on fait référence à une ressource concrète (qu’on définira dans le fichier xml) et non pas à un identifiant que le SDK doit créer dans la classe R. i Privilégiez toujours l’utilisation des ressources strings plutôt que des chaines de caractères codées en dur. Cela permet de regrouper tout le texte de votre interface dans un seul endroit pour simplifier la recherche et la mise à jour du texte, de plus ceci est indispensable pour que votre application puisse être multilingue. l’IDE vous affichera un avertissement en cas de non respect de cette recommandation. Après la modification du code que nous venons de faire, quand vous sauvegarderez le fichier, un message d’erreur vous indiquera que l’identifiant str_chp_saisie n’est pas connu. Nous allons donc le définir. . Ouvrez le fichier strings.xml qui se trouve dans res>values . Rajoutez une nouvelle string nommée str_chp_saisie et dont la valeur est “Entrer un texte” . Vous pouvez éventuellement supprimer la ligne qui définit “hello_world” Votre fichier strings.xml ressemblera donc à ceci MonAppli Entrer un texte Polytech’ Paris Sud Dima RodriguezTutoriel Android 20 Figure 3.7 – Premier test de l’application modifiée Settings . Une fois que vos modifications sont sauvegardées vous remarquerez la création de deux attributs dans le fichier R.java. • Un attribut constant nommé chp_saisie dans la classe id. C’est un numéro unique qui identifie l’élément EditText que nous venons de rajouter. Cet identifiant nous permettra de manipuler l’élément à partir du code. • Un attribut constant nommé str_chp_saisie dans la classe string. Il fait référence à la chaine de caractère et nous permettra de l’utiliser dans le code. Lancez l’application, l’émulateur affichera un écran tel que dans la figure 3.7. Tapez un texte et remarquez comment la taille du champ de saisie s’adapte à la longueur du texte. Polytech’ Paris Sud Dima RodriguezTutoriel Android 21 (a) Disposition par défaut (b) Le EditText a un poids de 1 Figure 3.8 – Champ de saisie et bouton Rajouter un bouton . Dans le fichier strings.xml rajoutez une chaine de caractère qui s’appelle "btn_envoyer" et qui vaut Envoi. . Dans le fichier du layout rajoutez un élément