• Aucun résultat trouvé

Apprentissage Automatique

D. Ces équations proviennent en

particulier de tests de QI et d’examens tels que les Scholastic Aptitude Tests utilisés fréquemment à l’entrée des universités américaines (D est la troisième figure).

d’adaptatif, utilisant des mécanismes d’inhibition et de renforcement. On retrouve dans cette classe 2 types d’apprentissage : - l’apprentissage connexionniste, et - l’apprentissage génétique.

a)Réseau de neurones artificiels : Le connexionnisme, s’est inspiré de la structure du cerveau pour construire des machines qui s’y apparentent. Son élément de base est le neurone formel. Cet apprentissage consiste à présenter des exemples aux neurones d’entrée du réseau l’un après l’autre. A chaque exemple, on observe la réponse du réseau et on essaie de réduire l’écart entre celle-ci et la réponse que l’on souhaite en obtenir. Cela se fait soit en intervenant sur les coefficients synaptiques des neurones donnant une réponse incorrecte soit en modifiant les coefficients de tous les neurones, proportionnellement à la différence entre réponse obtenue et réponse espérée. Dans des cas de figures simples, au bout d’un certain nombre de présentations, les efficacités synaptiques finissent par se stabiliser : l’algorithme converge et l’apprentissage est réalisé. L’une des motivations de l’apprentissage de réseaux de neurones artificiels (RNA) est d’essayer de capturer le type de calcul hautement parallèle effectué par le cerveau sur des représentations distribuées [Mit 97]. Ainsi, l’apprentissage de RNA est particulièrement bien approprié à des problèmes où l’échantillon d’entraînement est constitué de données issues de capteurs tels que des caméras ou des microphones. Par ailleurs, l’apprentissage de RNA est robuste (tolère les erreurs issues de l’échantillonnage). Il est utilisé, entre autres, dans la reconnaissance de caractères [Lec 89], dans la reconnaissance de la parole [Lan 90]et dans la reconnaissance de visages [Cot 90]. Exemple : pour reconnaitre la forme d’un caractère en niveau de gris, on le représente généralement au moyen d'un vecteur de caractéristiques X = [x1,

x2, ..., xd]t et on utilise un classificateur dont le rôle est de déterminer, parmi un ensemble fini de classe, à quelle classe appartient cet objet. Donc, le classificateur doit être capable de définir les frontières séparant les classes les unes des autres sous forme d’une fonction dite discriminante, qui permet d'exprimer le critère de classification comme suit : Assigner la classe

wi à l’objet représenté par le vecteur X si, et seulement si, la valeur de la fonction discriminante

de la classe wi est supérieure à celle de la fonction discriminante de n’importe quelle autre

classe wj. Les étapes, les plus importantes dans cet ordre, par lesquelles on passe pour pouvoir classifier l’objet sont : le prétraitement, l’extraction des caractéristiques et la classification.

a1) Prétraitement : L'image digitalisée de l’objet peut être sujette à des perturbations aléatoires

(comme les bruits, la rotation et la translation) conduisant à une possibilité d’erreur dans sa classification. Ce qui peut diminuer l’efficacité du classificateur. Le prétraitement est la phase qui permet de normaliser l’image pour résoudre le problème de ces perturbations non déterministes.

a11) Réduction du bruit : Cette étape vise à nettoyer l'image de l'entrée et éliminer les points

redondants pouvant causer des confusions pour le classificateur. Le bruit est une valeur découlant habituellement de la reproduction, de la numérisation et de la transmission de l'image originale. Le bruit ne peut pas toujours être entièrement supprimé. On utilise souvent le lissage pour remplacer la valeur d'un pixel par la moyenne des valeurs des pixels l’entourant (y compris la sienne). Lorsqu'il s'agit d'images balayées, le lissage peut provoquer du maculage4, et lorsqu'il est appliqué sur du texte en ligne, il peut provoquer du découpage des points d'extrémité [Kha 99].

a12) Segmentation : La segmentation est une procédure qui va séparer les régions dans l'image.

C'est une étape importante étant donné qu’un classificateur n'est pas capable de reconnaître simultanément un ensemble d'objets dans l'image.

a13) Normalisation : Après segmentation, les tailles des images des caractères segmentés sont

variées. Ce phénomène peut perturber le système de reconnaissance des formes. On a besoin de normaliser les images obtenues pour éliminer l'impact de la rotation, de la translation, et du facteur d'échelle. Le classificateur s’effectue plus efficacement sur des images de même taille.

4

82

a14) Squelettisation : Dans la plupart des cas, la formes à reconnaître ne dépend pas

géométriquement de l'épaisseur du tracé de l'objet. La squelettisation est une procédure qui a pour but de réduire l'épaisseur du tracé d'un caractère à un pixel seulement. La réduction des pixels redondants à un seul point peut constituer une procédure très utile (cette phase est décisive dans la reconnaissance des empreintes digitales par exemple).

a2) Extraction des caractéristiques : Normalement, l'image de l'objet est représentée par une

matrice de pixels et le classificateur ne fonctionne pas bien lorsque l'entrée est une matrice de grande dimension. L'extraction de caractéristiques est une procédure très importante pour extraire des particularités qu’on représente sous forme d’un vecteur de caractéristiques.

a3) classification des formes d’entrées : Pour un objet représenté par son vecteur de

caractéristiques à l'entrée, le classificateur doit décider à quelle classe appartient cet objet. Ici, on s’intéresse à l'approche connexionniste usant d’un réseau de neurones artificiels.

Un neurone artificiel est une fonction non linéaire, paramétrée (voir Figure.3.4).

Il existe plusieurs fonctions d'activation comme :

• La fonction à seuil f(s) = sign(s) = +1 si, s > 0 et f(s) = -1 si s ≤ 0 (3.1)

• Fonction sigmoïde f(s) = 1 / (1+ e−s) (3.2)

Il est plus commun d'employer une fonction non linéaire bornée et dérivable plutôt qu'une fonction linéaire par morceaux. Un réseau de neurones est un assemblage de neurones connectés entre eux. Généralement, un réseau réalise une fonction en sortie, par composition des fonctions réalisées par chacun des neurones. La capacité de traitement de ce réseau est stockée sous forme de poids d'interconnexions obtenus par un processus d'apprentissage à partir d'un ensemble d'exemples d'apprentissage.

Apprentissage : L'apprentissage peut être considéré comme le problème de la mise-à-jour des

poids des connexions au sein du réseau afin de réussir la tâche qui lui incombe. L'apprentissage est la caractéristique principale de RNA, il peut se faire de différentes manières et selon différentes règles [Neur] :

- Apprentissage supervisé : Dans ce type d'apprentissage, le réseau s'adapte par la

comparaison entre le résultat qu'il a calculé, en fonction des entrées fournies, et la réponse attendue en sortie. Ainsi, le réseau va s’ajuster progressivement jusqu'à ce qu'il trouve la bonne sortie, c'est-à-dire celle attendue, correspondant à une entrée donnée [Neur].

- Apprentissage non supervisé : On dispose d’un ensemble de données représentées par des

vecteurs de grande dimension, l'apprentissage consiste à les regrouper selon des critères de ressemblance qui sont inconnus à priori. Dans ce type d'apprentissage, on ne connait pas la catégorie de chaque forme fournie à l'entrée pour apprendre le réseau.

Figure.3.4-Neurone artificiel : Un neurone est

considéré comme une unité élémentaire de traitement. Il reçoit des entrées et produit un résultat en sortie. s = ∑ 𝒘𝒘𝑵𝑵 𝒊𝒊𝒙𝒙𝒊𝒊+

𝒊𝒊=𝟏𝟏 𝜽𝜽 = 𝑾𝑾𝑿𝑿 + 𝜽𝜽 et y = f(s). Notons que x1, x2, ..., xN sont les entrées qui proviennent de l'environnement externe au réseau ou d'autres neurones, y est la sortie et w1, w2, ..., wN sont les poids associés à chaque connexion. X est le vecteur d'entrée, W' est le vecteur poids, θ est appelé le bias. La fonction f est appelée fonction d'activation.

Selon la topologie de connexion des neurones, on distingue plusieurs modèles de réseaux de neurones, comme les réseaux non bouclés et les réseaux bouclés. Prenons le cas des réseaux non bouclés (réseaux statiques) et exactement un réseau multicouche (voir Figure.3.5) :

Le temps ne joue aucun rôle fonctionnel dans un réseau de neurones non bouclé : si les entrées sont constantes, les sorties le sont aussi. Le temps nécessaire pour le calcul de la fonction réalisée par chaque neurone est négligeable et on peut considérer, fonctionnellement, ce calcul comme instantané.

Segmentation : Les caractères peuvent être produits en lettres attachées. Ils peuvent également

se chevaucher. Il est nécessaire de déterminer où débute et où prend fin un caractère. C'est pourquoi on utilise la phase de segmentation. La procédure de segmentation s'avère être une phase critique parce que les erreurs commises ici seront difficilement récupérables dans les étapes ultérieures, selon le type de périphérique utilisé, les points élémentaires de l’image, ou

pixels, peuvent prendre une valeur binaire 0/1, ou une valeur quantifiée représentant un niveau

de gris ou une couleur. Dans ces derniers cas, l’image doit subir un processus de binarisation.

Extraction de caractéristiques : un caractère digitalisé est représenté par une matrice de

grande dimension. Si on laisse le réseau de neurones travailler directement sur cette matrice, cela peut causer un problème de performance et d'efficacité. L'entrainement des paramètres du réseau de neurones sera très complexe. C'est pourquoi, une procédure efficace de prétraitement des images des caractères qui est capable d'extraire des primitives est souvent requise pour un système de reconnaissance de caractères à l'aide de réseaux de neurones. L'extraction des primitives est une étape très importante. Si cette étape ne fonctionne pas bien, les étapes de l'apprentissage et de la reconnaissance fonctionneront mal. Pour la reconnaissance des caractères manuscrits, les primitives à extraire doivent présenter d'une part une certaine invariance géométrique et d'autre part une certaine invariance statistique. Tandis que l'invariance géométrique signifie une tolérance aux modifications causées par la translation, la rotation et le changement d'échelle, l'invariance statistique signifie une tolérance au bruit.

Extraction de Primitives : Plusieurs méthodes existent, parmi lesquelles on peut citer : - la

méthode des pixels moyennés, et - la méthode de chaîne de code.

- La Méthode des pixels moyennés : Dans cette méthode, la matrice de l'image est divisée en

p × q zones de même taille. Pour chaque zone, on calcule la valeur moyenne de niveaux de gris

de tous les pixels dans cette zone et le résultat obtenu sera un élément dans le vecteur de caractéristiques. Donc, le vecteur de caractéristiques est de taille p × q (voir Figure.3.6).

Figure.3.5-Réseau multicouche : La

sortie du réseau g(x, w) est une fonction linéaire des poids de la dernière couche de connexions (qui relient les Nc neurones cachés au M neurones de sortie), et elle est une fonction non linéaire des paramètres de la première couche de connexions (qui relient les N entrées du réseau aux Nc neurones cachés).

Figure.3.6-Méthode des pixels moyennés :

la matrice image de 4×4 pixels est divisée en 4 zones de même taille de 2×2 pixels et pour chaque zone la moyenne des valeurs des pixels est prise pour représenter la zone. Le descripteur X contient alors 4 éléments.

84 - Méthode de chaîne de code : On prédéfinit en premier les directions (voir Figure.3.7.a), ensuite, selon le tracé du caractère, on va représenter ce caractère par une chaîne de code correspondante (voir Figure.3.7.b).

Pour classifier les formes représentées par des vecteurs de caractéristiques de ce genre, on utilise une méthode de classification par les réseaux de neurones basés sur le perceptron multicouche en utilisant l’algorithme de rétro-propagation. Les résultats sont présentés sur

Figure.3.8.

b)Algorithme génétique : Un autre type d’apprentissage adaptatif est celui des algorithmes

génétiques. Le principe général de ces méthodes consiste à parcourir, d’une manière plus ou

moins aléatoire, l’espace des hypothèses pour en extraire un ensemble appelé population. Ces hypothèses subissent aléatoirement des opérations dites génétiques, qui donneront naissance à d’autres hypothèses qui remplaceront les hypothèses non sélectionnées jusqu’à ce que l’adéquation soit satisfaisante vis-à-vis de l’échantillon. Les opérations sont du type croisement ou mutation. En se représentant une hypothèse comme un ensemble d’instructions, le croisement de deux hypothèses revient à échanger des sous-séquences, alors qu’une mutation consiste à insérer, supprimer ou transformer des instructions. Ainsi l’évolution d’une population s’effectue par croisement ou mutation de ses éléments les plus forts pour remplacer les éléments les plus faibles, d’où l’appellation d’algorithmes génétiques. Exemple : Goldberg présente en

1989 un exemple simple mais significatif [Yil 04] ; Il consiste à trouver le maximum de la fonction f (x) = x, sur l’intervalle [0,31] où x est un entier. La première étape consiste à coder la fonction. Par exemple, nous utilisons un codage binaire de x, la séquence (chromosome) contenant au maximum 5 bits. Ainsi, nous avons x = 2 codé par {0, 0, 0, 1, 0}, de même x = 31 codé par {1, 1, 1, 1, 1}. Nous recherchons donc le maximum d’une fonction de fitness dans un espace de 32 valeurs possibles de x.

Tirage et évaluation de la population initiale : la taille de la population est fixée à N = 4. On

tire donc aléatoirement 4 chromosomes sachant qu’un chromosome est composé de 5 bits. Chaque bit dispose d’une probabilité 1/2 de contenir 0 ou 1. Le maximum, 31, est atteint par la deuxième séquence. Voyons comment l’algorithme va tenter d’améliorer ce résultat.

Tableau.3.2-Evaluation initiale : la

fitness est la valeur de la séquence binaire convertie en décimale, pour le chromosome n° 1 le % du total = 5/35 = 14.3 et ainsi de suite.

Figure.3.8-Résultat de l'extraction de caractéristiques utilisée par chaîne de code : Les images pour

l'apprentissage sont de taille 120×120. Le nombre d'entrées est de 68, le nombre de neurones de la couche cachée est de 40, le nombre de neurones de sortie est de 10, le taux de reconnaissance est de 70%.

Figure.3.7- Méthode par chaîne de code : (a) on a dans cette

exemple 4 directions numérotés de 0 à 3, (b) est un exemple de la