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