Apprentissage automatique IV. Introduction aux réseaux de neurones Université de Provence Master Pro I2A/GSI Année 2007-2008 Weka et les réseaux de neurones L’objectif de ce TP est de vous familiariser avec l’algorithme des réseaux de neurones multi-couches proposé par le logiciel Weka. L’apprentissage des poids du réseau est effectué par la technique de rétropropagation du gradient. Il existe d’autres techniques que celleci pour l’apprentissage de réseaux de neurones multi-couches mais cette technique est un standard et il est indispensable que vous sachiez l’utiliser. En supplément du cours, vous trouverez de nombreux documents sur cette méthode sur le web. N’hésitez pas à chercher la signification des paramètres de la méthode car la documentation de Weka est assez limitée et certains de ces paramètres jouent un rôle primordial dans la qualité de l’apprentissage. Ne vous contentez pas de lancer l’algorithme avec la configuration par défaut car elle n’est pas fixée pour être optimale sur le jeu de données sur lequel vous lancez l’algorithme comme c’est le cas dans Enterprise Miner. Paramètres principaux Pour ce premier travail, utilisez le jeu de données Ionosphere disponible à l’adresse habituelle. N’appliquez aucun filtre et passez directement à l’onglet classify. Choisissez la méthode MultilayerPerceptron disponible dans la catégorie functions des classifieurs. Lancez une première fois l’algorithme avec un partitionnement 2/3 - 1/3 des données pour l’apprentissage - test. Observez les résultats obtenus, trouvez le taux d’erreur sur les données test ainsi que la matrice de confusion. Ouvrez la fenêtre de paramétrage de l’algorithme. L’objectif de cet exercice est de vous familiariser avec les principaux paramètres de la méthode. Pour l’instant, n’utilisez pas l’interface graphique et ne modifiez pas les paramètres correspondants. Grâce à votre cours, à la documentation de Weka et au web, trouvez ce que sont les paramètres Hidden Layers, Training Time, Learning Rate, Momentum, Decay. Ces paramètres sont les plus importants de la méthode et comprendre ce qu’ils représentent est indispensable à une bonne utilisation de l’algorithme. Vous devez faire une synthèse du rôle de chacun de ces paramètres, issue des sources que vous aurez trouvé durant la séance de TP. De plus, toujours sur le même jeu de données, testez différentes valeurs pour ces paramètres et indiquez l’impact de ces nouvelles valeurs de paramètres sur les performances de l’algorithme. Enfin, indiquez les paramètres qui vous ont permis d’obtenir les meilleurs résultats sur les données test. Vos synthèses devront m’être envoyées par mail à la fin de la séance à l’adresse habituelle : [email protected]. 1 Eviter le piège du sur-apprentissage Toujours sur le même jeu de données, lancez l’algorithme avec les paramètres par défaut (rechargez-le) et testez le modèle obtenu sur les données d’apprentissage. Que constatezvous par rapport aux performances obtenues lorsque vous testez le modèle sur des données test indépendantes ? Pour éviter le phénomène de sur-apprentissage, on peut utiliser un troisième ensemble de données (validation) qui ne sert pas à apprendre mais à arrêter l’algorithme avant de faire du sur-apprentissage. Les paramètres validation set size et validation threshold permettent de configurer soi-même l’arrêt de l’algorithme. Ainsi, même si le taux d’erreur diminue sur les données d’apprentissage, on peut choisir d’arrêter le processus d’apprentissage des poids du réseau lorsqu’il semble qu’il n’y ai plus d’améliorations sur les données de validation. Trouvez un moyen de mettre en évidence ce phénomène et rédigez une petite synthèse de ce travail que vous enverrez en même temps que vos réponses aux questions précédentes. GUI et construction manuelle du réseau de neurones Activez maintenant l’interface graphique proposée sans changer le paramètre autoBuild. Lancez l’algorithme et observez l’interface ainsi que le processus d’apprentissage que vous lancerez vous-même. Vous allez maintenant fabriquer vous-même votre réseau de neurones à l’aide de l’interface graphique. Pour une question de simplification, chargez le jeu Iris que vous trouverez dans le répertoire data de Weka. Vous testerez les modèles sur les données d’apprentissage. Pour faire ce réseau, désactivez l’option autoBuild et lancez l’algorithme. Vous construirez un réseau à une seule couche cachée en commencant par un seul neurone sur la couche. Puis, vous augmenterez ce nombre de neurones de 1 à chaque étape jusqu’à obtenir un taux d’erreur qui ne descende plus sur les données d’apprentissage. Combien de neurones ont été nécessaires ? Trouvez un réseau qui permet de réduire encore l’erreur d’apprentissage, indiquez sa constitution. 2