Carte de Kohonen pour reconnaissance de forme

Fermé
sunmat Messages postés 3 Date d'inscription samedi 26 janvier 2008 Statut Membre Dernière intervention 9 février 2008 - 26 janv. 2008 à 20:42
 chchchch - 23 déc. 2008 à 18:06
Bonjour,
Je me penche actuellement sur l'utilisation de cartes de kohonen pour la reconnaissance de caractères manuscrits, dans le cadre de mon TIPE de maths spé. Or mes résultats ne sont pas excellents, donc si vous aviez des conseils à me donner...

Bref voilà le problème :
j'utilise la base de donnée MNIST pour les chiffres de 0 à 9 (environ 60000 échantillons). Les chiffres sont affichés sur des bitmaps en nuances de gris de 28*28 pixels.
Mon réseau est un réseau carré de N*N neurones à 28*28 poids. (N variant selon les expériences)
Les testes sur une base de donnée constituée à partir des polices de windows ont données 85% de reconnaissance, avec un réseau à 6*6 neurones.
Pour les caractères manuscrits, la variabilité des formes est trop grande et l'utilisation d'une simple matrice de confusion ne suffit pas (je n'excède pas 65% de reconnaissance juste).
J'ai donc eut deux idées :

1) à partir d'un réseau 12*12 neurones, effectuer l'apprentissage non-supervisé sur 10000 exemples, afin de forcer la sous-classification (j'explique : la distinction entre un 1 droit, un 1 penché à droite, un 1 penché à gauche par exemple...).
Puis j'effectue un bouclage sur des échantillons de tests pour voir pour chaque neurone du réseau quel sous-ensemble de {0,1,...9} il est susceptible de représenter. (par exemple un neurone peut avoir eut une distance minimum pour des 9 et des 4).
Au lieu de considérer une matrice de confusion et d'extraire les 10 neurones les plus représentatifs des 10 classes, la décision de fait sur le principe suivant :
on calcule la distance de l'image à chaque neurone, on trouve non pas la plus petite distance, mais LES plus petites distances (suivant un critère de proximité à la plus petite distante). On a donc un ensemble de neurones susceptibles de représenter l'échantillon passé en entrée. Chaque neurone étant associé à un ensemble de chiffres, on fait l'intersection de ces ensembles. Si cette intersection est réduite à un singleton, on a trouvé le chiffre en question. Sinon, le programme répond "je ne sais pas".
Sur ce principe j'ai obtenu une reconnaissance à 75% des chiffres, 20% de "je ne sais pas", et 5% d'erreur. Pas très glorieux.

2) deuxième possibilité (que je n'ai pas encore expérimenté) : des cartes de Kohonen en cascade. On considère une carte 3*3 qui réalise l'apprentissage des 10 chiffres. forcément vu sa taille, les neurones obtenus sont très flous, ils ne représentent rien. Chaque neurone est associé à une sous-carte de Kohonen 3*3 qui réalise un apprentissage uniquement sur les échantillons qui ont minimisé la distance du neurone en amont. Et ce de façon récursive sur 4 ou 5 niveaux. Ensuite on crée une matrice de confusion uniquement pour les cartes du dernier niveau, ce qui permet la classification.

Que pensez-vous des expériences menées et de la deuxième méthode en particulier (que j'ai imaginé à partir d'une étude utilisant des classificateurs en cascade qui n'étaient pas des réseaux de Kohonen, mais réalisaient de la même manière un template matching pour la reconnaissance de caractères.) ?
Avez-vous des idées d'amélioration, ou des expériences différentes à proposer (restant dans le cadre de la reconnaissance par template matching) ?
Rester sur 75% de reconnaissance m'embête un peu (surtout pour le passage à l'ENS ou les premières question qui viendront dans l'entretien seront à propos des faibles résultats comparé aux algorithmes actuels qui atteignent 99%), donc si vous pouviez m'aider à trouver une bonne voie de recherche à partir de mes résultats actuels, je vous en serais très reconnaissant.
@+
A voir également:

2 réponses

salut désolée j'ai pas de reponse à votre pb mais j'ai une question.pouvez vous me montrer l'algorithme qui permet d'appliquer la matrice de confusion sur une carte de kohonen(je travaille sur la reconnaissance des contour prosodique en utilisant SOM) merci
0
Je pense que c'est un problème de classification qui est plus lié à la caractérisation. Sur quel méthode t'appuis-tu pour extraire les caractéristiques des caractères?
0
salut
je travailles sur la base TMIT c'est une base sonore ou il y a des enregisrements de sequence vocales.on a extrait d cette derniére une base de voyelles appelée sd train vowels mel sur cette base je veux appliquer une matrice de confusion ;d'abord j'ai crée la carte de kohonen a partir de sd train vowels mel et 'ai pas su coment lui appliquer la matrice de confusion
0