Mise en oeuvre d un réseau de neurones simple : le Perceptron

Documents pareils
Coup de Projecteur sur les Réseaux de Neurones

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

L apprentissage automatique

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

La classification automatique de données quantitatives

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Organigramme / Algorigramme Dossier élève 1 SI

Feuille TD n 1 Exercices d algorithmique éléments de correction

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Machines virtuelles Cours 1 : Introduction

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Cours d Informatique

Analyse de grandes bases de données en santé

Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires

4.2 Unités d enseignement du M1

Francis BISSON ( ) Kenny CÔTÉ ( ) Pierre-Luc ROGER ( ) IFT702 Planification en intelligence artificielle

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

Projet audio. Analyse des Signaux ELE2700

MIS 102 Initiation à l Informatique

Nouveau Barème W.B.F. de points de victoire 4 à 48 donnes

Recherche dans un tableau

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Programmation linéaire

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

= constante et cette constante est a.

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

UE Programmation Impérative Licence 2ème Année

Introduction au Data-Mining

Optimisation de la compression fractale D images basée sur les réseaux de neurones

Algorithmes d'apprentissage

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Algorithmique et structures de données I

Cours de Master Recherche

«Cours Statistique et logiciel R»

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Introduction au datamining

Druais Cédric École Polytechnique de Montréal. Résumé

Typologie à dire d expert des systèmes de production agricole du district de Cho Don, province de Bac Kan

Algorithme. Table des matières

Processus d Informatisation

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

Sécurité des applications Retour d'expérience

Pourquoi l apprentissage?

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

COMPTABILITE SAGE LIGNE 30

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Agrégation des portefeuilles de contrats d assurance vie

Chp. 4. Minimisation d une fonction d une variable

UE C avancé cours 1: introduction et révisions

CH.6 Propriétés des langages non contextuels

Optimisation, traitement d image et éclipse de Soleil

ARBRES BINAIRES DE RECHERCHE

1 Recherche en table par balayage

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Manuel d utilisation DeveryLoc

Complexité. Licence Informatique - Semestre 2 - Algorithmique et Programmation

Système immunitaire artificiel

Chapitre 5 : Flot maximal dans un graphe

Eléments de Théorie des Graphes et Programmation Linéaire

Application 1- VBA : Test de comportements d'investissements

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Résolution d équations non linéaires

Les algorithmes de base du graphisme

Architecture des Systèmes d Information Architecture des Systèmes d Information

Exercices Corrigés Premières notions sur les espaces vectoriels

Quelques algorithmes simples dont l analyse n est pas si simple

de calibration Master 2: Calibration de modèles: présentation et simulation d

Algorithmique et Programmation, IMA

Objectifs du cours d aujourd hui. Informatique II : Cours d introduction à l informatique et à la programmation objet. Complexité d un problème (2)

Rapport de Stage. Titre : Clustering à l aide d une représentation supervisée

Déroulement d un projet en DATA MINING, préparation et analyse des données. Walid AYADI

Théorie et Codage de l Information (IF01) exercices Paul Honeine Université de technologie de Troyes France

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Chap III : Les tableaux

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Transmission d informations sur le réseau électrique

Organisé par StatSoft France et animé par Dr Diego Kuonen, expert en techniques de data mining.

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Algorithmes récursifs

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Représentation d un entier en base b

ALGORITHMIQUE ET PROGRAMMATION En C

Informatique Générale

Bases de programmation. Cours 5. Structurer les données

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

Algorithmique, Structures de données et langage C

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Notice d Utilisation du logiciel Finite Element Method Magnetics version 3.4 auteur: David Meeker

CADRE OBLIGATOIRE DU MEMOIRE JUSTIFICATIF

Continuité et dérivabilité d une fonction

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

A.P.I. Kuka Manuel de l utilisateur Version 0.0.5

Calculabilité Cours 3 : Problèmes non-calculables.

MANUEL D UTILISATION - Précis Poste de Traitement d Images 1 - Déconvolution

Transcription:

Mise en oeuvre d un réseau de neurones simple : le Perceptron Mathieu Petit, Thomas Le Bras 26 mars 2008 Résumé L un des problèmes majeurs en intelligence artificielle est la distinction entre deux classes. Il se pose comme la base de systèmes d IA beaucoup plus complexes. Par exemple, en traitement automatique du langage, on cherche à distinguer les voyelles des consonnes ; en reconnaissance des formes, on distingue un carré d un cercle ; pour les systèmes experts, il s agit de reconnaître un cas particulier d un autre. L utilisation d un réseau de neurones permet de résoudre ces problèmes de classification. Un neurone sait faire la différence entre deux classes dès lors qu il a appris par des exemples successifs à correctement classer (apprentissage supervisé). Ce TD vous amène à découvrir les réseaux de neurones et à construire un perceptron pour le cas concret de la distinction entre deux groupes de bateaux. Pour ce TD, nous vous demandons de nous rendre trois choses : le fichier source perceptron.cpp commenté ; vos notes de compte-rendu, dans lesquelles vous formulez les réponses aux questions, indiquez les résultats de vos expérimentations et les difficultés rencontrées ; la feuille de résultats sur laquelle vous tracerez les droites séparatrices (n oubliez pas d indiquer votre nom!). 1 Neurone artificiel D inspiration biologique, les neurones artificiels sont des petites unités de traitement composés d une ou plusieurs entrées, d une sortie et d un corps de cellule qui effectue des calculs à partir des données de l entrée pour produire la sortie (Fig 1). En pratique, un neurone est capable de discriminer deux classes, c est à dire de produire 1 ou 1 à sa sortie. 1.1 Entrées x 1 à x n : données en entrée du neurone. Celles-ci peuvent être des données d entrée du réseau ou des valeurs intermédiaires provenant de sorties d autres neurones. Un vecteur E T entree = (x 1,..., x i,..., x n ) caractérise un élément d entrée du neurone. Il peut s agir par exemple de coordonnées cartesiennes (x, y, z) T Chacune de ces entrées est pondérée par un poids ω. Ces poids constituent un vecteur de pondération des entrées P T entree = (ω 1,..., ω i,..., ω n ) La dernière entrée est appelée entrée de biais. Sa valeur est toujours égale à 1, sont poids associé b est appelé le biais du neurone. 1

1.2 Cellule Fig. 1 Structure d un neurone L unique fonction de la cellule est de produire une sortie égale à 1 ou 1. Pour cela, elle effectue la somme pondérée des éléments entrés : f (S) = b + n x i ω i Connaissant cette somme, on utilise une fonction de seuil qui renvoie 1 si la somme est négative ou 1 si la somme est positive : { 1 si f(s) 0 y = 1 sinon 1.3 Sortie La sortie d une cellule est une valeur binaire 1 ou 1 dans le cas d un neurone à seuil. C est la réponse du neurone à un problème de tri entre deux ensembles d éléments de dimension n. Dans un réseau de neurones, cette sortie (pondérée ou non) peut constituer l entrée d un nouveau neurone (Fig 2). i=1 Fig. 2 Réseau de deux neurones d entrée et un neurone de sortie 2

2 Apprentissage et Classement Nous nous intéresserons pour la suite au plus simple des réseaux de neurones : le perceptron. Inventé en 1957 par Franck Rosenblatt du laboratoire d aéronautique de Cornell, le perceptron peut être vu comme un unique neurone capable de séparer linéairement un ensemble de vecteurs E entree en deux groupes distincts étiquetés A et B 2.1 Apprentissage Dans son état initial, un perceptron ne sais pas comment séparer les deux groupes, il faut qu il apprenne. Nous disposons pour cela d un échantillon d apprentissage constitué de vecteurs d entrée particuliers, dont on connaît le groupe g d appartenance : Elearn T = (x 1,..., x n, g) avec { 1 sielearn A g = 1 sie learn B L algorithme d apprentissage consiste à donner les vecteurs E learn en entrée du perceptron et comparer la sortie y à la sortie attendue g. Si sortie réelle et sortie attendue sont différents, on va adapter le vecteur de pondération des entrées P entree et le biais b en les incrémentant ou déc rementant d un pas d apprentissage α fixée arbitrairement. On répète ces étapes t fois. Plus t est grand, plus le perceptron apprend (Fig 3). initialiser P entree et b à 0 initialiser α (0 < α 1) initialiser t pour j allant de 1 à t faire fin pour présenter un vecteur E learn à l entrée du perceptron calculer la réponse y du perceptron si y g alors fin si pour chaque dimension ω de P entree, i allant de 1 à dim(p entree ), faire fin pour ω i ω i + x i α g b b + α g Fig. 3 Algorithme du perceptron 2.2 Classement Après l apprentissage, les poids et le biais du perceptron sont fixes. On soumet alors des vecteurs E entree et la sortie du perceptron doit correspondre au groupe g dans lequel ils seraient classés (Fig 4). 3

(a) Avant apprentissage (b) Après apprentissage Fig. 4 Exemple d apprentissage de séparation entre deux groupes. Ici les vecteurs E entree ont deux dimensions. les vecteurs marqués par un symbole appartiennent au groupe A, les vecteurs marqués par + sont du groupe B. Ces deux ensembles forment la base d apprentissage E learn. L équation de séparatrice résultat du perceptron est dans ce cas x 1 ω 1 + x 2 ω 2 + b = 0. Or comme avant l apprentissage, P entree et b sont à 0, la séparatrice vaut 0. Après apprentissage, poids et biais sont ajustés, on trouve la séparatrice 0.38x 1 0.18x 2 + 0.2 = 0. 3 Exercice Imaginons la situation maritime proposée (Fig 5(a)). Nous distinguons deux groupes de bateaux, l un au sud, l un au nord. Nous voulons réaliser un programme informatique qui va classer automatiquement tout nouveau bateau arrivant sur la carte dans l un des deux groupes, soit Nord, soit Sud. Il semble approprié d utiliser pour cela un perceptron. Pour localiser les bateaux, nous utiliserons un système de coordonnées dans le plan (x x1, y x2). Pour des raisons liées au fonctionnement du perceptron, x1 [0, 1] et x2 [0, 1]. Le modèle informatique (Fig 5(b)) représente les deux groupes d apprentissage ( et + ) 3.1 Apprentissage Avec Dev-C++, écrivez un programme qui implémente l algorithme du perceptron. Effectuez un apprentissage à partir des données du cas d application. En sortie, le programme renverra les poids et biais modifiés. E learn, P entree, b, α sont de type float utilisez un tableau LEARN [NB CAS][dim(E learn )] pour stocker les vecteurs E learn de l ensemble d apprentissage utilisez un tableau POIDS[dim(E learn ) 1] pour stoker le vecteur de poids P entree Effectuez quelques tests d apprentissage en faisant varier le pas α et le nombre d itération d apprentissage. Représentez les différentes lignes séparatrices résultantes de ces test sur la feuille jointe. Quel serait pour le cas d application un couple efficace du pas α et du nombre d itération t? 4

(a) monde réel (b) modèle informatique Fig. 5 Situation d apprentissage 3.2 test de classification Après l apprentissage, demandez la saisie d un nouveau vecteur de coordonnées correspondant à un bateau que l on veut classer soit dans le groupe Nord soit dans le groupe Sud. Le programme retournera alors le groupe d appartenance du vecteur saisi. Utilisez la sortie y du perceptron (1 ou -1) pour décider quel groupe retourner 3.3 limites du perceptron Testez un apprentissage à partir du cas de Fig 6. Dessinez la séparatrice résultante de l apprentissage sur la feuille jointe. Celle-ci fonctionne-t-elle? Ex- Fig. 6 Cas d apprentissage avec deux classes confondues pliquez pourquoi le perceptron n arrive pas à un résultat d apprentissage convainquant. En vous documentant sur internet, expliquez quelle serait une méthode pour contourner le problème. 5

6