Projet Final IFT-4102 et IFT-7025 : Techniques avanc´ ees en Intelligence Artifi
Projet Final IFT-4102 et IFT-7025 : Techniques avanc´ ees en Intelligence Artificielle ` A rendre avant le 3 Mai 2019 ` a 23h55 Introduction Dans la premi` ere partie du projet, nous avons couvert deux techniques d’apprentissage auto- matique, K-Plus Proches Voisins et la classification Naive Bay´ esienne. Dans cette deuxi` eme partie du projet, nous allons voir deux autres techniques plus ´ elabor´ ees et plus performantes, les Arbres de D´ ecision (Decision Trees) et les R´ eseaux de Neurones (Neural Networks). 1 Datasets Comme pour la premi` ere partie du projet, vous allez tester votre code sur les datasets Iris, Monks et Congressional. 2 M´ ethodes ` a d´ evelopper Cette section d´ ecrit les m´ ethodes (ou techniques) que vous aurez ` a impl´ ementer pour mettre en œuvre et tester les datasets fournis. Notes : →Partagez vos donn´ ees sur deux ensembles, un ensemble d’entrainement et un ensemble de test. C’est ` a vous de choisir le ration train/test (70/30 est recommand´ e), sauf pour le dataset Monks, le train et test sont d´ ej` a s´ epar´ es. →Dans ce qui suit, la courbe d’apprentissage et la validation crois´ ee se font seulement sur l’ensemble d’entrainement. L’ensemble test est utilis´ e seulement pour faire le test final de votre mod` ele. →Assurez vous de garder les mˆ emes notations adopt´ ee dans le projet partiel, train(...), predict(...), test(...). Vous pouvez rajouter autant de param` etres que vous vou- lez pour ces m´ ethodes. Vous pouvez aussi rajouter d’autres m´ ethodes au besoin, as- surez vous juste que l’entrainement du mod` ele est fait dans la m´ ethode train(...) et le test dans la m´ ethode test(...). 1 2.1 Arbres de D´ ecision Pour cette m´ ethode, vous allez mettre en œuvre un arbre de d´ ecision qui divise selon l’attribut qui offre le gain d’information maximal comme vu dans le cours et d´ ecrit dans la section 18.3 du manuel. 2.1.1 Impl´ ementation Impl´ ementez cette technique (sans utiliser des biblioth` eques de machine learning). Les ques- tions suivantes sont ` a faire pour chaque dataset. 2.1.2 Courbe d’apprentissage La courbe d’apprentissage est souvent utile pour faire le sanity-check de votre algorithme d’apprentissage, autrement dit, elle vous permet de v´ erifier si votre algorithme est entrain d’apprendre ` a partir des exemples que vous lui pr´ esenter et ` a quelle vitesse. — Tracez la courbe d’apprentissage pour cet algorithme comme d´ ecrit dans le dernier paragraphe du chapitre 18.3.3 du manuel (La courbe va ressembler ` a la figure 18.7 du manuel). Commentez le r´ esultat. 2.1.3 Entrainement et Test Entrainez votre mod` ele avec les donn´ ees d’entrainement. Ensuite testez le avec les donn´ ees de test, et : — Donnez la matrice de confusion (pas la peine de donner la pr´ ecision et le rappel, on sait comment les d´ eriver de cette matrice) — Donnez l’Accuracy. Question optionnelle : Mettre en œuvre l’´ elagage tel que d´ ecrit dans la section 18.3.5 du manuel. Refaire les questions 2 et 3. Ensuite comparer les r´ esultats avec et sans ´ elagage. 2.2 R´ eseaux de Neurones Artificiels Pour cette m´ ethode, vous allez impl´ ementer un r´ eseau de neurones tel que d´ ecrit dans la section 18.7 du manuel. Assurez vous d’utiliser au moins une couche cach´ ee parce qu’un r´ eseau de neurones avec seulement deux couches (couche d’entr´ ee et couche de sortie) n’est qu’un classificateur lin´ eaire. 2.2.1 Impl´ ementation Impl´ ementez cette technique (sans utiliser des biblioth` eques de machine learning) et assurez vous que votre code prend en param` etre le nombre de couches du r´ eseau et le nombre de neurones dans chaque couche. Vous en aurez besoin pour faire des tests par la suite. 2 2.2.2 Choix du nombre de neurones dans la couche cach´ ee L’architecture d’un R´ eseaux de Neurones (not´ e RN) joue un grand rˆ ole dans la performance de l’algorithme, le nombre de neurones dans la couche cach´ ee est l’une des plus importante caract´ eristiques. Il existe plusieurs fa¸ cons empiriques pour choisir ce nombre. Pour votre cas vous allez utiliser la validation crois´ ee (k-fold cross validation) pour choisir le nombre de neurones (la dimension) pour chaque dataset. Voici bri` evement comment proc´ eder : →Vous divisez vos donn´ ees d’entraˆ ınement en k parties de taille ´ egale (appel´ ees folds). Choisissez k entre 5 et 10. →Vous choisissez un nombre appropri´ e de dimensions (nombre de neurones) candidates pour votre couche cach´ ee. Choisissez [4, 5, 6, 7, 8, 9, ..., 50]. (vous pouvez tester pour d’autres nombres) →Pour chacune de ces dimensions candidates, entrainez le RN k fois, en utilisant k − 1 parties comme donn´ ees d’entraˆ ınement et le keme comme donn´ ees de test. Notez l’erreur moyenne pour chacune des dimensions. →Vous choisissez le nombre de neurones dont l’erreur moyenne de test est la plus faible. →Faites ¸ ca pour chaque dataset, et notez la meilleure architecture pour chacun. Questions : 1. Pour chaque dataset, tracez la courbe [Erreur Moyenne (sur l’axe des y)/Nombre de neurones dans la couche cach´ ee (sur l’axe des x)]. Commentez chacun des trac´ es. 2. Quelle architecture choisissez-vous pour chaque dataset ? Note : notez bien que vous n’avez pas touch´ e aux donn´ ees de test jusqu’ici, vous avez s´ electionn´ e la meilleure architecture ` a l’aide des donn´ ees d’entrainement et la validation crois´ ee seulement. 2.2.3 Choix du nombre de couches cach´ ees Dans un R´ eseau de Neurones nous pouvons avoir autant de couches cach´ ees que l’on veut. Pour comprendre l’effet de la profondeur d’un RN, vous allez comparez cinq (ou plus si vous voulez) architectures de RNs : un avec 3 couches (comme celui de la question pr´ ec´ edente) soit RN-3C, un avec 4 couches (une couche d’entr´ ee, deux couches cach´ ees et une couche de sortie) soit RN-4C, ainsi de suite, jusqu’` a RN-7C. (Pour chaque dataset, gardez le mˆ eme nombre de neurones dans les couche cach´ ee que vous avez trouv´ e dans la questions pr´ ec´ edente). Pour chaque dataset, tracez dans la mˆ eme figure la courbe d’apprentissage des cinq RNs. — Commentez les r´ esultats. — Quel mod` ele choisiriez-vous pour chacun des dataset ? — Googlez le terme Vanishing Gradient. 2.2.4 Initialisation des poids du R´ eseau de Neurones L’initialisation de tous les poids du R´ eseau de Neurones ` a la mˆ eme valeur (z´ ero ou autre) n’est pas une bonne pratique. Il existe plusieurs techniques d’initialisation dans la litt´ erature, 3 faites alors une recherche rapide sur ces techniques et choisissez en une qui vous convient. 1 - Expliquez bri` evement la techniques que vous avez choisie. Pour comprendre l’effet de l’initialisation des poids d’un RN vous allez comparer deux RNs pour chaque dataset. Appelons votre RN avec l’initialisation de poids ` a z´ ero RN-ZERO et celui avec l’initialisation que vous avez choisie RN-NON-ZERO. Question : pour chaque dataset — Tracez dans la mˆ eme figure la courbe d’apprentissage de RN-ZERO et celle de RN- NON-ZERO. Commentez le r´ esultat. 2.2.5 Entrainement et Test Maintenant que vous avez d´ efini, pour chaque dataset, une architecture appropri´ ee, et une technique d’initialisation des poids, entrainez votre mod` ele avec les donn´ ees d’entrainement et testez le avec les donn´ ees de test, et : — Donnez la matrice de confusion (pas la peine de donner la pr´ ecision et le rappel) — Donnez l’Accuracy. Note importante : l’entrainement d’un R´ eseau de Neurones peut n´ ecessiter plusieurs ´ epoques d’entrainement. Cela veut dire que vous pouvez entrainer le mod` ele plusieurs fois sans r´ e-initialisation avec le mˆ eme ensemble d’entrainement, en m´ elangeant les exemples dans chaque ´ epoque. Mais cela peut induire un sur-apprentissage. Pour palier ` a ¸ ca, vous pouvez utiliser la validation crois´ ee pour choisir le nombre d’´ epoques appropri´ e pour chacun des r´ eseaux. 2.3 Comparaison entre R´ eseaux de Neurones et Arbres de D´ ecision Comparez dans un tableau, les performances des R´ eseaux de Neurones contre les Arbres de D´ ecision selon : — Accuracy ou Taux d’erreur sur l’ensemble de test — Temps de pr´ ediction d’un seul exemple — Temps d’apprentissage du mod` ele Dans une conclusion, faites un r´ ecapitulatifs de ce que vous appris dans ce projet. 3 Directives Commencez par voir et examiner le code (dans le dossier Code) qui vous est donn´ e en attach´ e. Impl´ ementer les deux techniques en suivant le squelette des classes tel qu’on vous l’a indiqu´ e dans les fichier python en attach´ e. — Utilisez le fichier load_datasets.py, que vous avez d´ evelopp´ e dans la premi` ere partie du projet pour lire les datasets. 4 — Lisez bien le fichier classifieur.py (nous l’avons un peu modifi´ e par rapport ` a la premi` ere partie du projet) pour vous aider ` a uploads/Voyage/ projet-final.pdf
Documents similaires
-
30
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mar 05, 2021
- Catégorie Travel / Voayage
- Langue French
- Taille du fichier 0.1004MB