1. Principe

Mon réseau ne comporte qu'une seule couche, avec autant de neurones que de formes à reconnaître, avec autant d'entrées que de pixels des formes et donnant en sortie la probabilité (%) qu'il s'agisse de la bonne forme. Il s'agit d'un apprentissage supervisé, si la forme reconnue est la bonne on renforce l'apprentissage selon l'écart avec la seconde forme reconnue, si le réseau s'est trompé il renforce les valeurs de la forme qui aurait due être reconnue et les baisse pour la forme reconnue.

2. Résultats

Mon ANN parvient à reconnaître parfaitement les 26 lettres minuscules en une quarantaine d'apprentissages, en reconnaissant la lettre en moyenne à 80%, avec une moyenne d'écart de 50% avec les autres lettres, 20% avec la lettre arrivant en seconde position, et un écart minimum entre la lettre reconnue et la seconde tournant autour de quelques %.
On arrive à atteindre un écart moyen avec le second de 80% et un écart minimum de plus de 70% au bout d'environ 300 apprentissages, apprentissage automatique bien sûr :).

Il parvient également à identifier les lettres parmi trois polices différentes avec un écart minimum supérieur à 5% après quelques 1500 apprentissages, c'est à dire qu'on lui présente un  'a' d'une police ou d'une autre il reconnaitra un 'a'.

3. Utilisation du programme

Reconnaissance

On commence par charger dans "classes (ANN)" les formes qui consitueront les types de formes à reconnaître (fichiers bitmap .bmp qui doivent tous avoir les mêmes dimensions, possibilité d'ouvrir plusieurs fichiers en une fois).
A chaque clic sur sur une forme, celle-ci se dessine et une reconnaissance s'effectue automatiquement, les résultats pour chaque classe s'affichant à gauche (probabilité en % pour qu'il s'agisse de la bonne forme). La classe reconnue s'affiche en rouge et se focalise, et la seconde classe reconnue s'affiche en bleu foncé.
On peut charger de même dans "formes" les formes que l'on souhaite, qui seront identifiées par rapport aux classes.

Apprentissage

Après chaque reconnaissance, on peut choisir "apprendre", après avoir éventuellement sélectionné la bonne classe dans la liste déroulante sous le bouton, que le réseau se soit trompé ou non .


Apprentissage automatique

Le programme comporte une fonction d'apprentissage automatique.


type :
arret : initialiser ANN : précise si une réinitialisation du réseau doit être effectuée avant un apprentissage automatique

inclure formes : précise si les formes chargées dans "formes" doivent être apprises. Il faut dans ce cas que leur nombre soit multiple du nombre de classes, et chaque forme est supposée comme appartenant à la classe correspondante dans "classes (ANN)". Les formes sont alors prises en compte pour tous les paramètres et dans l'évalutation de l'apprentissage.

n apprentissages, n reconnaissances : précise le nombre d'apprentissages et de reconnaissances qui ont été effectuées lors du dernier apprentissage automatique.

Si l'apprentissage ne se termine pas, par exemple parce que vous avez chargé des formes identiques, ou exigé un écart avec le second trop important, vous pouvez appuyer sur le bouton "stop" pour arrêter immédiatement l'apprentissage automatique.


Evaluation apprentissage

Après chaque apprentissage, une évaluation est effectuée, affichant plusieurs paramètres :

trouvé moy. : pourcentage moyen de reconnaissance des formes
ecart moy. : écart moyen entre la forme reconnue et les autres
ecart 2° moy. : écart moyen entre la forme reconnue et la seconde
ecart 2° min : écart minimum entre une forme reconnue et la seconde

Les paramètres les plus importants sont les deux derniers, et surtout le dernier.

Si toutes les valeurs sont à 0, cela signifie qu'au moins une forme n'a pas été correctement reconnue.

Autres

intervalle init [0,1] +- : précise l'intervalle d'initialisation des poids du réseau.
continuite min ]0,2] : fait en sorte que la différence entre deux poids de pixels voisins ne dépasse pas la valeur spécifiée. Cette option est prévue pour de ne pas rendre un pixel trop décisif afin d'optimiser les capacités de généralisation du réseau, mais elle s'est révélée peu efficace.

4. Contacts

Ce programme fait partie d'un TIPE portant sur la Prévision de température par réseaux neuronaux.
Le dossier est disponible en téléchargement à l'adresse suivante :
  www.crteknologies.fr.st/projets/tipe_reseaux_neuronaux/


Cyril ROUSSILLON

cyril@crtek.fr.st
www.crteknologies.fr.st