DÉPARTEMENT DE GÉNIE LOGICIEL ET DES TI LOG770 - SYSTÈMES INTELLIGENTS ÉTÉ 2012 Laboratoire 4 Développement d un système intelligent 1 Introduction Ce quatrième et dernier laboratoire porte sur le développement d un système intelligent pour le problème de la reconnaissance faciale ou du filtrage de pourriels. En vous basant sur les concepts vus en classe, vous devrez réaliser toutes les étapes de conception d un tel système, depuis la sélection du modèle jusqu à sa validation. L évaluation de ce travail sera basée sur la qualité de la conception, de même que sur la performance du système à l évaluation. Pour la réalisation du laboratoire, vous devrez choisir un seul problème parmi les deux suivants. 1.1 La reconnaissance faciale La reconnaissance faciale est un problème important de l apprentissage machine, ayant diverses applications en robotique, et en sécurité des systèmes. L objectif de ce problème consiste à reconnaître une personne parmi K individus possibles, à partir d une image montrant le visage de cette personne. Il s agît donc d une instance du problème de classification à K classes. Algorithmes suggérés Un grand nombre d approches a été proposé pour le problème de reconnaissance faciale. Parmi ces approches, nous suggérons les suivantes : L algorithme Eigenfaces [1], basé sur l analyse en composantes principales (PCA) L algorithme Fisherfaces [2], basé sur le discriminant de Fisher (LDA) Les machines à vecteurs de support (SVM) Les réseaux de neurones. 1
Les données Pour entraîner et évaluer la performance de votre méthode, des données vous sont fournies dans le fichier Faces-dataset.zip. L ensemble d entraînement est composé de 360 visages de 40 individus différents, où les images correspondant au i-ème individu sont situées dans le sousrépertoire nommé si. Les données employées pour l évaluation de la méthode sont situées dans le sous-répertoire test/ et comportent une image additionnelle pour chaque individu. L image porte le nom du sousrépertoire associé à l individu. Toutes les images sont en format PNG. 1.2 Le filtrage de pourriels Le problème de filtrage de pourriel (SPAM filtering) consiste à identifier les courriels non-sollicités dans une liste de courriels. Il s agît d un problème de classification binaire, où les deux classes sont spam et non spam. Comme tout problème de classification de données texte, la première étape consiste à extraire les mots les plus pertinents du corpus, c est-à-dire l ensemble de documents employé pour l entraînement de la méthode de classification. Ainsi, les mots qui sont fréquents dans les deux classes (ex : articles, pronoms, verbes être, etc.) n apportent aucune information utile à la classification, et sont retirés. Cette étape de pré-traitement a déjà été effectuée pour vous. Algorithmes suggérés Plusieurs approches d apprentissage machine existent pour le problème du filtrage de pourriels. Parmi ces approches, nous suggérons les suivantes : Une méthode basée sur le Classifieur naïf de Bayes [3] L approche de Latent Semantic Indexing, basé sur la PCA [4] Les arbres de décision Les machines à vecteurs de support (SVM) Les réseaux de neurones. Les données Les données d entraînement et de test sont fournies dans le fichier Spam-dataset.zip. Les exemples d entraînement se situent dans le fichier train.txt, où chaque ligne représente un exemple avec les caractéristiques suivantes : 48 valeurs réelles représentant la fréquence de 48 mots significatifs extraits du corpus : freq(w) = 100 Nombre de fois que le mot w apparaît dans le courriel Nombre total de mots dans le courriel 2
6 valeurs réelles donnant la fréquence de 6 caractères importants extraits du corpus : freq(c) = 100 Nombre de fois que le caractère c apparaît dans le courriel Nombre total de caractères dans le courriel 1 valeur réelle donnant la longueur moyenne des séquences ininterrompues de lettres majuscules 1 valeur réelle donnant la longueur de la plus longue séquence ininterrompue de lettres majuscules 1 valeur réelle donnant le nombre total de lettres majuscules dans le courriel 1 valeur binaire indiquant si le courriel et un pourriel (1) ou non (0). Voir les fichiers README.txt et names.txt pour plus d informations. Les données de test ont le même format et se trouvent dans le fichier test.txt. 2 Travail à réaliser La réalisation du laboratoire se fera en trois étapes : la modélisation de la méthode, l implémentation de la méthode et la validation de la méthode. Conception de la méthode Une fois le problème choisi parmi les deux options disponibles, vous devrez tout d abord faire la conception de la méthode employée pour résoudre le problème. Cette étape comprend normalement les éléments suivants : 1. Une courte revue de la littérature 2. Une analyse des données (ex : type des attributs, distribution des exemples, etc.) 3. La sélection d une approche de classification pour le problème (ex : Eigenfaces ou Fisherfaces pour le problème de reconnaissance faciale) 4. La définition du modèle et de ses paramètres (ex : distributions de vraisemblance et apriori dans une approcha bayésienne) 5. La définition de l approche de validation. Au terme de l étape de conception, vous devrez remettre un court rapport (environ 3-4 pages) détaillant votre démarche de conception, la solution retenue, ainsi qu une brève justification des choix de conception. Votre rapport devra clairement citer toute source d information utilisée durant la conception. Implémentation de la méthode Une fois l étape de conception terminée, vous devrez ensuite implémenter la solution retenue. Pour ce faire, vous avez la liberté d utiliser le langage de programmation de votre choix, ainsi que tout 3
logiciel ou librairie d apprentissage machine (ex : WEKA) pouvant faciliter votre travail. À noter qu il est interdit d utiliser tout logiciel implémentant la totalité de votre solution (ex : un logiciel faisant la reconnaissance de visage), au risque d obtenir la note 0 pour cette partie du laboratoire. L évaluation de l implémentation sera basée sur la fonctionnalité du programme, ainsi que sur la qualité et la clarté du code. Validation de la méthode Durant l élaboration de votre méthode, les données d entraînement (i.e., ensemble train) seront utilisées pour la sélection et l apprentissage des paramètres. Au terme du laboratoire, les solutions proposées par les différentes équipes seront évaluées sur les données de test (i.e., ensemble test). Une partie de l évaluation du laboratoire sera basée sur les résultats obtenus. 2.1 Consignes de remise Ce laboratoire comporte trois livrables : un rapport de conception, un rapport final et l implémentation (code source, scripts, etc.) de la solution. Le rapport de conception devra être remis au début de la troisième séance de ce laboratoire, soit au plus tard le vendredi, 13 juillet 8h00. Ce rapport d environ 3-4 pages, devra comporter les éléments suivants : 1. Une description du problème à résoudre 2. Une présentation de la démarche de conception 3. Une description de la solution retenue, en prenant soin de préciser le modèle et ses paramètres, et une justification de ce choix 4. Une présentation de l approche de validation utilisée 5. Les références à la littérature consultée. Ensuite, au plus tard le vendredi, 3 août 8h00, vous devrez remettre votre implémentation ainsi qu un rapport final d environ 6-8 pages, qui ajoute au rapport de conception les éléments suivants : 1. Une description de l implémentation (logiciels ou librairies employés, paramètres d utilisation, fonctionnalités, etc.) 2. Les résultats obtenus, selon l approche de validation proposée 3. Une discussion faisant l analyse des résultats, décrivant les problèmes rencontrés, et proposant des améliorations à la solution développée. Tous les livrables doivent être remis électroniquement à l adresse courriel log770.etsmtl@gmail.com. Les fichiers de remise doivent être dans un répertoire compressé ayant comme nom log770-labo4-equipex, où X est le numéro de votre équipe. Consultez le site du cours pour avoir plus de détails sur les consignes de remise. 4
2.2 Barème de correction L évaluation du laboratoire sera faite sur un total de 50 points, distribués comme suit : COMPOSANTE POINTS Implémentation : (20 pts) Performance (précision) 5 Fonctionnalité 10 Clarté et documentation 5 Rapport de conception : (15 pts) Description du problème 1 Démarche de conception 2 Description de la solution retenue 5 Justification des choix de conception 4 Approche de validation 2 Références 1 Orthographe et présentation Pénalité jusqu à 4 pts Rapport final : (15 pts) Description de l implémentation 6 Présentation des résultats 3 Discussion et conclusion 6 Orthographe et présentation Pénalité jusqu à 4 pts TOTAL 50 2.3 Pénalités et retard Une pénalité de 10% par jour, incluant les jours de fin de semaine, sera systématiquement appliquée à tout travail remis en retard. Un travail en retard de plus de trois (3) jours recevra automatiquement la note 0. Une pénalité allant jusqu à 10% pourra également être appliquée à tout travail ne respectant pas rigoureusement les directives de remise. Références [1] Turk, M.A. et Pentland, A.P. Face recognition using eigenfaces, Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 91), pp.586-591, 1991. [2] Belhumeur, P.N., Hespanha, J.P., et Kriegman, D.J. Eigenfaces vs. Fisherfaces : recognition using class specific linear projection, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.19, no.7, pp.711-720, 1997. [3] Sahami, M., Dumais, S., Heckerman, D., et Horvitz, E. A Bayesian approach to filtering junk email, AAAI Workshop on Learning for Text Categorization, July 1998, Madison, Wisconsin. 5
[4] Gee, K.R. Using latent semantic indexing to filter spam, In Proceedings of the 2003 ACM symposium on Applied computing (SAC 03). ACM, New York, NY, USA, pp.460-464, 2003. 6