Generalization in Multi-Layer Perceptrons 

Introduction

Cette applet illustre les possibilités de généralisation dans les Perceptrons multi-couche. Elle permet de définir différents ensembles de données : un pour l'apprentissage et l'autre pour la validation croisée (cross-validation). Ces deux ensembles sont nécessaires pour étudier la généralisation de manière systématique.

Auteur

L'applet originale a été écrite par Olivier Michel. Elle a été modifiée par Alix Herrmann et Angelo Arleo pour agir dans [-1,1].

Instructions

Utiliser le menu popup pour choisir l'ensemble de points d'apprentissage ou de validation croisée. Le graphe affichera en noir l'erreur sur l'ensemble d'apprentissage et en vert l'erreur sur l'ensemble de validation croisée.

Applet

 

Questions

Pour toutes ces questions, sauf la dernière, laissez un delai (paramètre decay) de zéro.
  1. Problème simple: placez deux groupes simples, un rouge (1) et un bleu (-1) de points d'apprentissage linéairement séparables et bien distincts. Ensuite, ajoutez des points de validation croisée dans chacun des groupes. Pour être réaliste, les points de validation croisée doivent être le même couleur que les autres points dans le même groupe. Lancez l'apprentissage pour environ 100 itérations et observer le résultat sur le graphe de l'erreur. Que pouvez-vous dire sur les deux erreurs obtenues ?
  2. Problème plus compliqué: utilisez deux groupes similaires, mais placez certains points de validation croisée un peu à l'extérieur des groupes d'apprentissage. Observez vous des changements dans les courbes d'erreurs ? Pourquoi ?
  3. Problème difficil: maintenant, créez deux groupes linéairement séparables, mais très proche l'un de l'autre. Créez des points de validation croisée légèrement à l'extérieur des groupes, et même à l'intérieur de l'autre groupe. Lancez l'apprentissage et commentez les résultats. Observez-vous que le graphe de l'erreur atteind un minimum avant de croître légèrement ? Comment expliquer cela ?
  4. Problème non-linéairement séparable: Placez 3 points d'apprentissage bleus à gauche de l'espace, 6 points d'apprentissage rouges au centre et 3 points d'apprentissage bleus à droite. Ajoutez 3 points de validation croisée dans le premier, 6 dans le second et 3 dans le dernier. Changez le numbre de neurones cachés et les paramètres si nécessaire pour obtenir la convergence vers une erreur nulle sur l'ensemble d'apprentissage. Pouvez-vous observer un graphe d'erreur similaire à celui de la question 1 ? Pourquoi ?
  5. De plus en plus compliqué: Essayez de résoudre des problèmes plus compliqués (similaires aux question 2 et 3) avec des problèmes non linéairement séparables.
  6. Questions générales: Comment caractériseriez-vous l'évolution de l'erreur sur un ensemble de validation croisée ? Comment doit-on concevoir un ensemble d'apprentissage pour obtenir les meilleurs résultats ?
  7. Algorithme d'élimination de poids: Comme on a vu en cours, le paramètre de delai (decay) contrôle un paramètre supplémentaire dans la mise à jour du poids. Fixer ce delai à une petite valeur comme 0.001 et utilisez plusieurs (au moins 4) neurones dans la couche cachée (n'oubliez pas de cliquer sur "Init" à chaque fois que vous changez les paramètres du réseau). Comparez les résultats obtenus à la rétro-propagation standard (delai = 0.0).