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 :
Ip Ap Figure 1: un réseau de neurones à n couche, complètement
connecté et biaisé.
Wijk = poids du neurone i (dans la couche v) vers
le neurone j (dans la couche v+1).
Pour changer la structure du perceptron multi-couche :
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.
cliquer sur le bouton "Init" permet de construire la structure demandée
et d'initialiser les poids.
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.
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).
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 ...
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 ?
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).
Essayez de changer la force d'apprentissage (learning rate) ? Cela modifie-t-il
le comportement du réseau ?
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 ?