Projets Outils de simulation
Transcription
Projets Outils de simulation
Unité d’Ouverture « Intelligence Artificielle (OV5-IA) » ESIEE-PARIS - Année scolaire 2011/2012 Professeur responsable : Tarik AL ANI Département Informatique e-mail : [email protected] Projets Délivrables : A. Pour les élèves qui souhaitent réaliser un projet sous Matlab (ou autres outil) Pour chaque groupe : binôme, il faut m'envoyer par e-mail un dossier : le rapport détaillé (version uniquement en word ou pdf) les codes Matlab un fichier ReadMe pour expliquer le mode d’emploi de ce code Le rapport doit montrer clairement la contribution de chaque étudiant au projet. B. Pour les élèves (1 élève/sujet) qui souhaitent réaliser un rapport de synthèse sur un sujet concernant une ou plusieurs approches dans les domaines de l’intelligence artificiel, de reconnaissance de formes, classification, etc avec leurs applications, il faut m’envoyer ce rapport en word ou pdf. Le dossier doit être envoyé en format compressé (zip ou rar) au plus tard le 20 Janvier 2012. Outils de simulation : 1. Matlab (versions 2010a) – Neural network toolbox Quelques boites à outils gratuits : 2. Boites à outil sur le web Stuttgart Neural Network Simulator (SNNS) http://www-ra.informatik.uni-tuebingen.de/SNNS/ 3. Artificial Neural Network (ANN) in Scilab http://www.scilab.org/contrib/index_contrib.php?page=download&category=MODELING%20AND%20CONTROL%20TOOLS 4. Netlab neural network software (NetLab) (plutôt méthodes stochastiques et autres approches non traitées dans le cours) http://www.ncrg.aston.ac.uk/netlab/index.php 5. THE NNSYSID TOOLBOX http://www.iau.dtu.dk/research/control/nnsysid.html 6. Apprentissage par renforcement (Reinforcement learning) 2 http://www.dacya.ucm.es/jam/download.htm Liens (cours, tutorials, …) : 1. Neural Networks & Connectionist Systems: http://www.aaai.org/AITopics/html/neural.html 2. Neural networks- Warehouse Tutorials http://neuralnetworks.ai-depot.com/Tutorials.html 3. Mes supports de cours http://www.esiee.fr/~alanit/ Projets de réalisations Les documentations pour vous aider à réaliser vos projets se trouvent à l’adresse suivantes : http://www.esiee.fr/~alanit/Intel_Artif.html 1. Réseaux de neurones type “feedforward” pour l’identification et contrôle des systèmes dynamiques. Concevoir un RN pour l’identification et le contrôle d’un système dynamique. Outil de simulation : Matlab 2. Réseaux de neurones type “feedforward” pour la reconnaissance de formes 2D Nous proposons un système de réseaux de neurones pour la reconnaissance de formes 2D partiellement cachés. La stratégie est la suivante : à partir de coordonnées de points dans l’espace 2D, on trace les segments de la figure correspondante. Ensuite, grâce à des fonctions de reconnaissance d’angles (une fonction de reconnaissance est une fonction logique qui est vraie lorsque des configurations angulaires spécifiques sont trouvées dans la figure), nous reconnaissons quelle figure nous désirons analyser. Les valeurs (booléennes) de ces fonctions alimentent un réseau de neurones multicouches entraîné selon l’algorithme de rétropropagation avec inertie. Pendant la phase d’apprentissage, on entraîne le réseau de neurones à reconnaître des figures géométriques simples telles que des carrés, losanges, triangles… Puis, le réseau est testé sur les mêmes figures légèrement déformées, puis sur des figures totalement déformées. 3. Reconnaissance de caractères Pour ce projet il s’agit de réaliser un réseau de neurones permettant d’effectuer une reconnaissance de caractères. L’apprentissage du réseau sera réalisé en plaçant en entrée successivement toutes les lettres de l’alphabet ainsi que les chiffres. Vous utiliserez de plus un jeu d’exemple de validation afin d’améliorer la réponse du réseau et surtout d’éviter le surentraînement. Commencer par réaliser un réseau de neurones type Feedforward avec une couche cachée (voir démonstration dans Matlab). La simulation permet de tester le réseau et donc 3 trouver une organisation des couches réellement efficace. Le plus gros du travail étant de connaître le nombre de neurones de la couche cachée et l’algorithme d’apprentissage. Ensuite utiliser autres types de réseaux (SVM, RBF, …), puis comparer les résultats. 4. Application performante des cartes de Kohonen à la compression d’images. Nous nous sommes plus particulièrement intéressés à la compression d'image utilisant les Cartes de Kohonen. Nous adopterons l'approche développée dans l'article (disponible) : José M. Bardalho, A. Duarte D. Neto, José A. F. Costa and Màrcio L. A. Netto, “Hierarchical SOM Applied to Image Compression”, IEEE 442--447, 2001 qui propose l'application à la compression d'image d'une méthode originale visant à réduire la complexité de calcul de cet algorithme de O(N) à O(log(N)). Cette Méthode est connue sous le nom de Carte de Kohonen Hiérarchique ou Hierarchical Self-Organising Map (HSOM).. Outil de simulation : Matlab 5. Cartes Auto-organisées (Self Organizing Map avec une architectures dynamique pour quantification efficace des couleurs. Le but de l'algorithme est de déterminer le nombre de couleurs (2n couleurs, n à déterminer) nécessaires pour afficher une image afin d'obtenir une erreur globale inférieure ou égale a une valeur donnée. 6. Conception d’un réseau de neurones pour les prévisions financières Concevoir un réseau de neurones prévisionnel en finance. Nous décomposons le problème en deux parties distinctes, tout d’abord la modélisation du problème, puis la conception du réseau de neurones. Attention : Il faut faire une recherche pour trouver une base de données pour l’apprentissage et le test. Tutorial : www.geocities.com/francorbusetti/KaastraArticle.pdf 7. Reconnaissance des visages Utilisez les bases d’mages données ici http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/faces.html www.bmva.ac.uk/bmvc/1996/howell_1.ps.gz 8. Application des réseaux de neurones à la reconnaissance des arythmies cardiaques http://www.univ-tlemcen.dz/manifest/CISTEMA2003/cistema2003/articles/Articles%20-%20GBM/GBM16.pdf Base de données sur physionet : http://www.physionet.org/ 4 9. Un robot qui suit les contours d'une pièce (A réaliser sousr Matlab) Le but de ce projet est de simuler le fonctionnement d'un robot qui suit les contours d'une pièce à l'aide de plusieurs types de réseaux de neurones (FFNN, RBF, SVM,…). Le robot possède huit capteurs, pour détecter la présence d'un obstacle dans les directions nord, nord-est, est, sud-est, sud, sud-ouest, ouest et nord-ouest. Cela correspond à un vecteur d'entrée de huit neurones. Il possède également quatre moteurs, chacun lui permettant de se déplacer dans une des directions nord, est, sud ou ouest. Ces actions correspondent à un vecteur de sortie de quatre neurones. Le réseau est entraîné à l'aide d'une base d'apprentissage, puis ils entrent en phase de reconnaissance pour décider l'action à mener lors d'une nouvelle situation. Hypothèses initiales Puisque le robot n'a pas la mémoire de ses actions passées, on suppose qu'il n'y a pas de couloir dans la pièce, ou ce qu'on appelle des « tight spaces ». Dans une situation donnée, le robot ne se base que sur l'état des capteurs pour décider de l'action à mener. Cela n'est pas approprié pour suivre les contours d'une pièce qui comporte des couloirs, car le robot positionné dans un couloir va toujours suivre la même direction en un point donné. Implémentation Projet à réaliser en Java ou Matlab. Si vous utilisez Java, le modèle constitué de la structure de la pièce et de la position du robot peut être défini dans la classe Model, la vue représentant une image de la pièce avec la position du robot dans une classe « View ». Le contrôleur défini dans une classe « Controller » initialise le réseau, l'entraîne avec la base d'apprentissage, initialise le modèle, et met à jour la vue au fur et à mesure qu'on présente le nouveau modèle au réseau. 10. Utilisation de réseau de neurones pour la différentiation de forme 2D Ce projet qui a été réalisé en 2008/2009, avait pour but la reconnaissance de forme et d’objet en utilisant les réseaux de neurones, le travail sera réalisé en MATLAB. L’idée proposée par ce projet est de découvrir l’utilisation d’intelligence artificielle en réalisant une différenciation de formes assez simple pour détecter des différents objets (par exemple humains ou des véhicules). Dans un premier temps on analyse l’image pour déduire des caractéristiques propres de l’objet détecté. La technique du « background substruction » est utilisée pour parvenir à l’extraction de la forme. Les caractéristiques de la forme sont mises sous forme de vecteur représentant le gabarit. Ces vecteurs seront ensuite utilisés pour l’apprentissage et la reconnaissance de formes à travers le réseau de neurones. Le réseau de neurone étudié dans ce projet est une représentation pour une classification, elle utilise une couche de réseau RBF ainsi qu’une couche de compétitivité. 1. Rajouter des nouvelles méthodes dans la partie analyse l’image pour déduire des caractéristiques propres de l’objet détecté 2. Rajouter des nouvelles méthodes d’apprentissage (par exemple SVM) 3. Faire une étude comparative 11. Modélisation et filtrage adaptatifs des systèmes non linéaires par réseaux de neurones Pour certaines classes de systèmes non linéaires ou des séries temporelles, un modèle ARMA qui dépend du point de fonctionnement peut être utilisé pour représenter le système. Ce projet consiste à simuler un réseau de neurones pour identifier ces modèles. Une représentation équivalente dans l’espace d’état peut ensuite être obtenue. En utilisant cette dernière représentation, un filtre de Kalman peut ensuite être appliqué pour estimer 5 l’état. Un exemple de simulation d’un système physique sera développé. Vous pouvez adopter l'approche développée dans l'article : Zhi Qiao Wu and Chris J. Harris, “Modelling and Adaptive Filtering of Nonlinear Systems Using Neural Network”, Image, Speech and Intelligent System Research Group. ou proposer une autre méthode. 12. Réseaux de neurones reconfigurable (Hardware) http://ipdps.cc.gatech.edu/1998/raw/haenni.pdf 13. Application réseau de neurones à la reconnaissance automatique de signaux de communication Utiliser d’abord le réseau RBF pour effectuer la reconnaissance de huit sortes de signaux modulés. Ensuite utiliser autres types de réseaux (FFNN, SVM, …), puis comparer les résultats. 14. Projets proposés par vous même qui sont inspirés des projets sur les sites de Electrical and Computer Engineering (ECE) - University of Maine ECE/CS/ME 539 http://homepages.cae.wisc.edu/~ece539/spring00/project/projlist.html http://homepages.cae.wisc.edu/~ece539/project/f01/index.html http://homepages.cae.wisc.edu/~ece539/project/f03/index.html http://homepages.cae.wisc.edu/~ece539/project/f05/index.html http://homepages.cae.wisc.edu/~ece539/fall08/project/index.html Codes Matlab utiles pour ces projets : http://homepages.cae.wisc.edu/~ece539/software/index.html http://homepages.cae.wisc.edu/~ece539/matlab/index.html Liens utiles pour ces projets : http://homepages.cae.wisc.edu/~ece539/data/index.html http://homepages.cae.wisc.edu/~ece539/resources/link.html 14. Autre projets, proposés par vous mêmes