Weka et les réseaux de neurones

publicité
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
Téléchargement