Perceptron multi-couche {0;1}

Introduction

Un perceptron multi-couche est fait de plusieurs couches de neurones. Chaque couche est complètement connectée à la suivante. De plus, chaque neurone reçoit une entrée de biais additionnelle comme le montre la figure 1 :
IAp
Figure 1: un réseau de neurones à n couche, complètement connecté et biaisé.
Dans cette applet, la sortie des neurones appartient à l'intervalle {0;1}.

Auteur

L'applet originale a été écrite par Olivier Michel.

Instructions

Pour changer la structure du perceptron multi-couche :
  1. changer les valeurs H1, H2 et H3 correspondant au nombre de neurones dans la première, la deuxième et la troisième couche cachée. Si H3 est égal à 0, alors seulement deux couches cachées sont crées ; si, à la fois, H2 et H3 sont nuls, une seule couche cachée est créée et enfin si H1, H2 et H3 sont nuls, aucune couche cachée n'est créée, ce dernier cas de figure correspond à un perceptron simple couche.
  2. cliquer sur le bouton "Init" permet de construire la structure demandée et d'initialiser les poids.
  3. au départ, il faut disposer sur le plan les points des deux classes que l'on souhaite faire apprendre au réseau, puis appuyer sur le bouton "Learn" pour lancer l'apprentissage.
  4. une fois l'apprentissage fini, le graphe de l'erreur apparaît dans une autre fenêtre, et chaque point du plan est coloré en fonction de la classe donnée par le réseau (un rouge franc pour la classe 0, un bleu franc pour la classe 1, et toutes les nuances intermédiaires).
  5. après un cycle d'apprentissage (le nombre spécifié d'itérations), il est toujours possible de continuer en appuyant de nouveau sur le bouton learn.

Applet

 

Questions

remarque : l'apprentissage peut prendre jusqu'à plus de 2000 itérations. Si au bout de 2000 itérations, l'erreur n'est pas descendue, peut-être faudrait-il modifier la structure du réseau ...
  1. Essayez de caractériser les problèmes qu'un perceptron multi-couche le plus simple possible est capable de résoudre. Rappel : le plus simple perceptron multi-couche aurait une seule couche cachée ne contenant qu'un seul neurone. Est-il capable de résoudre des problèmes non-linéairement séparables ?
  2. Placez trois groupes de points en ligne : un rouge avec 10 points, un bleu avec 10 points et encore un rouge avec 10 points. Est-ce que le perceptron multi-couche le plus simple est capable de résoudre ce problème ? Si ce n'est pas le cas, quelle est la structure minimale qui permet de résoudre ce problème ? (ne pas oublier de cliquer sur le bouton Init à chaque modification de structure du réseau).
  3. Essayez de changer la force d'apprentissage (learning rate) ? Cela modifie-t-il le comportement du réseau ?
  4. Placez un groupe de points rouges (une dizaine) au centre, entourré par des points bleus. Quel structure de réseau  permettent de résoudre un tel problème ?