Reconnaissance des lettres de l`alphabet par un réseau de neurone
Transcription
Reconnaissance des lettres de l`alphabet par un réseau de neurone
MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg Reconnaissance des lettres de l’alphabet par un réseau de neurone Rafidison M.A.1, Randriamitantsoa A.A.2, Randriamitantsoa P.A.3 Laboratoire de Recherche en Télécommunication, Automatique, Signal et Images (LR-TASI) Département Télécommunication – Ecole Supérieure Polytechnique Antananarivo Université d’Antananarivo BP 1500, Ankatso – Antananarivo 101 - Madagascar 1 [email protected], 2 [email protected], 3 [email protected] neural network, more precisely using single-layer of perceptron. The input layer has 30 independent output neurons and 120 (12x20) neurons. The 30 inputs neurons are represented in matrix form as 6x5 and we are able to present all the letters, the matrix is transformed into a single-column with 30 lines. Finally, a matrix of 30x26 will be at the entrance. The desired response is an enlargement of the entrance, a matrix of 120 rows and 23 columns. The perceptron uses supervised learning, using the threshold function as transfer function with the rule of Widrow-Hoff. The result is reliable with a noiseless letter and the recognition is faster with a minimum response time. However a noisy letter as input creates confusion with other letters in the output result, but this can be remedied by introducing a hidden layer that will not discussed in this article. Résumé Dans cet article, nous proposons une méthode permettant de reconnaitre les lettres de l’alphabet avec un réseau de neurone, plus précisément à l’aide de perceptron monocouche. La couche d’entrée est constituée de 30 neurones indépendants et la sortie 120 (12x20) neurones. Les 30 neurones d’entrées sont représentés sous forme matricielle de 6x5 et enfin de pouvoir mettre toutes les lettres, la matrice est transformée en uni-colonne avec 30 lignes. Finalement, une matrice de 30x26 sera à l’entrée. La réponse désirée est un agrandissement de l’entrée, une matrice composée de 120 lignes et 23 colonnes. Le perceptron utilise l’apprentissage supervisé en utilisant la fonction à seuil comme fonction de transfert avec la règle de Widrow-Hoff. Le résultat est fiable avec une lettre claire non bruitée et la reconnaissance est rapide avec un temps de réponse minimale par contre pour une lettre bruitée, une confusion avec les autres lettres est fortement probable mais cela peut être remédié en introduisant une couche cachée qui ne sera pas abordée dans cet article. Keywords: neural networks, perceptron, learning, recognition, square sum of errors, letter, alphabets. 1. Introduction Les réseaux de neurones, fabriqués de structures cellulaires artificielles, constituent une approche permettant d’aborder sous des angles nouveaux les problèmes de perception, de mémoire, d’apprentissage et de raisonnement. Ils s’avèrent aussi des alternatives très prometteuses pour contourner certaines des Mots clés : réseaux de neurone, perceptron, apprentissage, reconnaissance, somme carrée des erreurs, lettre, alphabets. Abstract In this article, we propose a method to recognize the letters of the alphabet with a 10 MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg limitations des ordinateurs classiques. Grâce à leur traitement parallèle de l’information et à leurs mécanismes inspirés des cellules nerveuses (neurones), ils infèrent des propriétés émergentes permettant de solutionner des problèmes jadis qualifiés de complexes. Nous, les humains sont capables de connaitre facilement une lettre de l’alphabet même si elle n’est pas écrite correctement comme il faut. Inspiré de cette facilité, nous élaborons un système de réseau de neurone artificiel avec une simple architecture et un temps de réponse minimal. Cela ne veut pas dire que notre réseau a pu surmonter la capacité humaine mais à peu près le même avec un certain avantage comme l’automatisation. 2.2. Couche d’entrées La couche d’entrées est composée de 30 neurones indépendants. Dans ce cas, chaque lettre est donc représentée dans une matrice de 6 lignes et 5 colonnes. La lettre « A » est représentée comme suit : Figure 02 : Lettre « A » Ce tableau doit être alors transforme en une matrice de 6 lignes et de 5 colonnes pour pouvoir être manipule mathématiquement. De ce fait, on représente les cages noires par des valeurs {1} et les cages vides par des valeurs {0}. La matrice d’entrée n’a alors que des composants {0, 1} et se présente comme suit : 2. Réseau de neurone utilisé pour la reconnaissance 2.1. Architecture du réseau Pour l’architecture du réseau, on a choisi le perceptron monocouche comme réseau utilisé. L’algorithme d’apprentissage sera représenté dans le prochain paragraphe, il apprend les lettres de l’alphabet (A à Z) avec un apprentissage supervise. Ce dernier est le plus compatible pour le perceptron dans le but de corriger les erreurs. Dans ce cas, le perceptron utilise alors la connexion locale dont la connexion entre chaque cellule d’entrée et cellule de sortie est munie d’un poids. Nous avons la structure suivant : Figure 03 : Représentation de l’entrée «A» Ces entrées sont représentées simultanément pour former la lettre « A ». Il en est de même pour les autres lettres. 2.3. Couche de sorties La couche de sortie est composée de 120 neurones dont 12 lignes et 10 colonnes. Chaque cellule est indépendante les uns des autres mais leurs ensembles forment la matrice de sortie. Les cellules de sorties sortent des valeurs 0 et 1 représentant les cellules actives et Figure 01 : Architecture du perceptron 11 MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg On représente chaque lettre de l’alphabet en forme d’un vecteur chacun. Pour les avoir, on normalise la transformation comme suit : inactives. Pour cela, les cellules ayant les valeurs 0 sont des cellules inactives et celles ayant des valeurs 1 sont actives. En prenant comme exemple la sortie de la lettre « A » après l’apprentissage, on la représente comme montre le tableau suivant : Les composantes de la première ligne d’une lettre sont placées dans les cinq premières lignes du vecteur Les composantes de la deuxième sont placées dans les cinq lignes suivantes et ainsi de suite jusqu’à la sixième ligne. Après les transformations de toutes les lettres en vecteur colonne, on les introduit dans une grande matrice d’entrée (30 × 26). Chaque lettre est alors représentée par une colonne. Figure 04 : Représentation de la sortie "A" 2.4. Fonction de transfert La fonction de transfert la plus utilisée pour le perceptron est la fonction à seuil. De ce fait, les valeurs de sorties obtenues sont alors des valeurs {0,1}. Figure 06 : Matrice d’entrée E (30 x 26) Dans notre cas, on utilise aussi la fonction à seuil comme fonction de transfert. ( )= 0, 1, <0 ≥0 Cet apprentissage nécessite des réponses prédéfinies pour la recherche des poids . Comme la sortie est une matrice de 120 composantes, distribuées dans un vecteur ligne (120 × 1), on prend une matrice (120 × 26) représentant les réponses désirées des 26 lettres de l’alphabet. Cette matrice D n’est qu’un agrandissement de la matrice d’entrée (30 × 26). (01) Pour cela, on agrandit 4 fois chaque lettre de l’alphabet avant de l’introduire dans la matrice D. Figure 05 : Fonction de transfert 12 MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg 3ème étape : On calcule la valeur de sortie suivant la fonction de transfert, fonction à seuil Pour la matrice des poids W, chaque colonne représente les connexions des neurones d’entrées pour un neurone de sortie . ≤ 0, alors Si Concernant le corps d’apprentissage, on a maintenant 26 exemples d’apprentissage d’après les 26 lettres. = −1 =1 Sinon = 0,597 > 0 Dans ce cas, =1 2.5. Apprentissages D’où Comme on utilise un perceptron, l’apprentissage est le suivant : La première cellule de sortie de la lettre « A » doit être inactive vue la matrice D alors que la sortie indique que la sortie est active. Donc, on passe au changement des poids avec erreur = ( , ) − donc erreur = -2 1ère étape : On initialise la matrice des poids (30 × 120) avec des valeurs aléatoires et la constante = 0.95. Pour le poids première entrée de la connexion de la et la première sortie . D’où = (04) + . . = + ( − ) = (−1.19) + (0.95)(0 − 1)(−1) = 0.71 Alors, il devient : Figure 07 : Extrait du tableau W Et pour de la connexion entre la deuxième entrée et la première sortie . 2ème étape : On calcule la somme pondéré du premier neurone de sortie en prenant la colonne de la lettre « A » comme le premier exemple d’apprentissage : = =( . )+( +( +( = + . . (05) = (0.87) + (0.95)(−1)(1) = −0.08 (02) . = 0.71 Le calcul se répète alors jusqu’à = 30 et le dernier est : ) . )+⋯ ) . . (03) = (−0.76) + (0.95)(−1)(1) = −0.19 On calcul aussi l’erreur au carré pour avoir à la fin la somme des carrées des erreurs 2 =( = (−1,19. 0) + (0,87. 1) + (0,6. 1) + ⋯ + (−0,76. 1) = 0,597 ) 2 =1 13 (06) MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg boucle comprenant d’apprentissage. Les calculs sont les mêmes pour la deuxième cellule de sortie jusqu’à la dernière. Par la suite, on obtient une nouvelle matrice des poids avec les nouvelles valeurs. Or dans le cas où l’erreur est nulle, c'est-à-dire que , = , il n’y aura pas de changement de poids. les 26 exemples Enfin, l’apprentissage est réussi avec 10 boucles de 26 exemples d’apprentissage et on a la nouvelle matrice des poids avec la somme des carrés des erreurs =0 On revient à la deuxième étape pour la deuxième colonne de la matrice d’entrée E qui va être présentée aux 30 neurones d’entrées. Alors, la somme pondérée est : =( . )+( +( . )+⋯ ) . (07) = (0,11.1) + (−0,77.1) + ⋯ + (0,12.0) = 0.14 Et on obtient = −1 si si > 0, d’où = 1. ≤ 0 et Figure 08 : Extrait de finale On peut aussi représenter la variation de la somme des carrées des erreurs qui converge vers la valeur nulle par la figure suivante =1 Dans ce cas, = alors il n’y aura pas de changement de poids, l’erreur est alors nulle alors 2 = 0. Le calcul continue donc jusqu’à la sortie = et pour cette dernière, on obtient : 2 . Pour avoir la somme des carrées des erreurs de cette première partie de l’apprentissage, on additionne toutes ces valeurs de l’erreur au carrée 2, d’où la somme des carrées des erreurs est : = 2 (08) Figure 09 : Convergence de la somme au carré 3. Phase de test et résultat Donc = 94 Etant donné que l’apprentissage est fini, on pourra entamer le test en présentant un ensemble d’entrée « Et » au réseau. Ce dernier doit donner un ensemble de sortie en fonction de ces entrées et la matrice des poids W. Pour ce faire, on va prendre comme exemple la lette « B ». Pour réussir l’apprentissage, c'est-à-dire pour avoir les valeurs de poids nécessaires satisfaisant les 26 exemples d’apprentissage, on répète ces étapes précédentes jusqu’à ce que la somme des carrées des erreurs « sce » soit nulle et que les poids ne changent plus durant une 14 MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg Il suffit alors de calculer les activations " " de chaque cellule de sortie avec les valeurs de la matrice . = Et si > 0, alors Figure 11 : Résultat du 2ème test D’après ce deuxième test, on constate que la forme trouvée est une forme quelconque qui ne ressemble guerre à la lettre B cherchée. Alors, les valeurs des poids finales ne sont pas compatibles pour les tests bruités. (09) . = 1 sinon =0 Le réseau n’est pas robuste aux bruits. Donc, il n’est pas vraiment efficace pour la détection des lettres de l’alphabet. 1er test L’entrée est la lettre B complète : 4. Commentaires Pour le premier test, la lettre présentée est une lettre déjà apprise par le perceptron durant l’apprentissage. Donc, il est facile pour lui de reconnaitre la lettre et de sortie ensuite un résultat correct. Pourtant, le résultat du deuxième test nous montre que le perceptron ne peut pas reconstruire la forme correcte de la lettre voulue. On peut dire alors dans ce cas que le perceptron monocouche avec un apprentissage non bruité n’est pas robuste envers les bruits. Pour remédier à ce problème de robustesse aux bruits, il existe plusieurs méthodes comme l’insertion d’une ou de plusieurs couches cachées entre la couche d’entrée et la couche de sortie, ou l’insertion des bruits lors de l’apprentissage, apprentissage bruité, ou aussi agrandissement des réseaux en augmentant les nombres de cellules des couches d’entrées et de sorties → Entrée (6x5) Sortie (12 x 10) Figure 10 : Résultat du 1er test D’après ce test, o peut maintenant dire que le réseau réussi bien à reconstituer la forme de la lettre B. Cela veut dire que les valeurs trouvées lors de l’apprentissage sont correctes et que l’apprentissage vraiment est réussi. La perception simple peut détecter donc une lettre alphabétique déjà apprise. 2ème test On vérifie si le réseau peut résister aux bruits. Pour cela, on présente la lettre B à l’entrée avec des bruits (cellules en gris) : 5. Conclusion L’usage de perceptron pour la reconnaissance des lettres de l’alphabet est fiable à condition que la lettre à l’entrée ne soit pas bruitée. Une amélioration du perceptron est possible en insérant de couches cachées et avec des entrées bruitées. On refait l’apprentissage avec un apprentissage bruité. Pour cela, les lettres de l’alphabet ne changent pas mais on additionne avec elles tout simplement les lettres mal → Entrée (6x5) Sortie (12 x 10) 15 MADA-ETI, ISSN 2220-0673, Vol.2, 2013, www.madarevues.gov.mg P. Leray, «Quelques types de formées, dérivées des 26 lettres de l’alphabet. 6. Références réseaux de neurones », Rouen, Décembre [1] 2005. [10] B. Samy, « An Introduction to statistical machine learning », IDIAP, May 12, 2003. [2] L. Philippe, « Apprentissage et généralisation », Cours INSA France, Janvier 2004. [3] R. Fabrice, «Réseaux de neurones : le perceptron multicouches», Université Paris-IX Dauphine, Octobre 2011. [4] P. Marc, «Réseaux de neurones », UGIF-21140 et GIF-64326, Université Laval, 2006. [5] C. Jérôme, « Introduction à l’intelligence artificielle », Université de Lille, 2006. [6] J. Julien, « Smart Building », Haute Ecole spécialisée de suisse occidentale, 18 Juin 2010. [7] V. Karine, « Réseaux de neurones», 2007. [8] R. Claude, « Historique de la logique floue. Une approche sociologique des pratiques de démonstration.», Revue de synthèse, vol. 4, 4, octobre-décembre 1998. [9] P. Erik, « Réseaux de neurones », Calcul Scientifique, 2007. 16