Introduction
Cette applet illustre les possibilités de reconnaissance des formes
des perceptrons multi-couches avec une application de reconnaissance optique
de caractères (OCR, Optical Character Recognition). Une base de
données est utilisée pour apprendre à reconnaitre
les chiffres manuscripts allant de 0 à 9. L'utilisateur peut alors
dessiner lui-même un chiffre et essayer de le faire reconnaitre au
perceptron.
Auteur
L'applet originale a été écrite par Olivier
Michel.
Instructions
A cause de raisons de sécurité (accès au fichier de
bases de donnée de caractères), cette applet ne fonctionne
que sur Netscape 4.04 et pas sur Netscape 4.05.
Une base de donnée de bitmaps est utilisée pour apprendre
à reconnaitre des chiffres manuscripts entre 0 et 9. Chaque bitmap
est une carte de 15x20 pixels représentant un chiffre manuscript.
Les 100 exemples (10 pour chaque chiffre) ont été dessinés
à la main avec une souris d'ordinateur. La couche d'entrée
du réseau de neurones contient 80 neurones représentant une
matrix de 8x10 qui est un sous-échantillonage de la matrice originelle
(15x20). Pour chaque neurone d'entrée, un module de préprocessing
calcule une valeur égale à la moyenne des quatres pixels
d'entrée correspondant sur la matrice originelle. La sortie du réseau
est faire de 10 neurones, chacun représentant une valeur symbolique
pour chiffre reconnu.
Applet
Questions
-
Apprentissage: Combien d'itérations sont nécessaires
pour que l'erreur atteigne 0 sur l'ensemble d'apprentissage ? Quels paramètres
(taux d'apprentissage, momentum, nombre de neurones cachés) donnent
le compromis optimal entre performance et temps de convergence ?
-
Apprentissage: Essayez de trouver les paramètres optimaux
pour un réseau de neurone sans couche cachée (la valeur de
H1 doit être fixée à zéro). Comparez la performance
obtenue à celle de plus gros réseaux. Que pouvez-vous en
conclure vis-à-vis de la séparabilité des classes
de l'ensemble d'apprentissage ?
-
Test: Essayez de dessiner des chiffres avec la souris et de tester
la réponse du réseau de neurones. Pensez-vous qu'il a de
bonnes propriétés de généralisation ? Comment
expliquez-vous cela ?
-
Amélioration de l'apprentissage: Dans le but d'obtenir de
meilleurs résultata de test, comment peut-on changer l'apprentissage
de manière que la généralisation soit améliorée
? La technique du "early stopping" donne-t-elle de bons résultats
en généralisation ?