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

Documents pareils