Supposons que j'essaie de créer un réseau neuronal pour reconnaître des caractères sur une simple grille de pixels 5x5. J'ai seulement 6 caractères possibles (symboles) - X,+,/,\,|
Reconnaissance de caractères de réseau neuronal
En ce moment j'ai un Feedforward Neural Network - avec 25 noeuds d'entrée, 6 noeuds cachés et un seul noeud de sortie (entre 0 et 1 - sigmoïde).
La sortie correspond à un symbole. Tels que 'X' = 0.125
, '+' = 0.275
, '/' = 0.425
etc.
Quelle que soit la sortie du réseau (lors du test), correspond à n'importe quel caractère le plus proche numériquement. i.e - 0.13 = 'X'
En entrée, 0,1 signifie que le pixel n'est pas ombré du tout, 0,9 signifie entièrement ombré.
Après avoir entraîné le réseau sur les 6 symboles, je l'ai testé en ajoutant du bruit.
Malheureusement, si j'ajoute un tout petit peu de bruit à '/', le réseau pense qu'il est '\'. Je pensais que peut-être l'ordre des 6 symboles (c'est-à-dire, e - quelle représentation numérique ils correspondent à) pourrait faire une différence. Peut-être que le nombre de nœuds cachés est à l'origine de ce problème. Peut-être que mon concept général de mappage des caractères aux nombres est à l'origine du problème.
Toute aide serait grandement appréciée pour rendre le réseau plus précis.
Utilisez un réseau de neurones convolutionnels pour cette tâche et non un MLP. Obtenir plus de données est également un bon moyen d'améliorer les performances. –