Sunteți pe pagina 1din 45

Mémoire de maîtrise intitulé:

OPTIMISATION DE RÉSEAUX DE NEURONES POUR LA


RECONNAISSANCE DE CHIFFRES MANUSCRITS ISOLÉS :
SÉLECTION ET PONDÉRATION DES PRIMITIVES PAR
ALGORITHMES GÉNÉTIQUES

Présenté par: Nadia Benahmed


Plan de la présentation

Introduction

État de l’art
Reconnaissance des caractères
Réseaux de neurones
Algorithmes Génétiques

Méthodologie

Expériences et Résultats

Discussion

Conclusion
Introduction

- Projet exploratoire

- Objectifs

1/ réduire le nombre de primitives


==> sélection

2/ classer les primitives


==> pondération
État de l’art
Reconnaissance des caractères (1)

Document papier

SCANNING

Image Binaire

PRÉ-TRAITEMENT

Image binaire
nettoyée
EXTRACTION DES
PRIMITIVES

Vecteurs de SÉLECTION DES


primitives PRIMITIVES

CLASSIFICATION

Forme classée

Étapes de système de reconnaissance de caractères


État de l’art
Reconnaissance des caractères (2)

Sélection des primitives

Méthodes de sélection des primitives

Complète Heuristique Aléatoire

Exhaustive Non Exhaustive Forward Backward F/B Instance- Type I Type II


Sélection Sélection combinés Based

MDLM B&B LVF


Focus SFS SBS BDS RELIEF AG
AB&B LVW
Schlimmer DTM RC PQSS RELIEF_F SA
BFF RGSS
MIFES_1 BS

Méthodes de sélection des primitives


État de l’art
Reconnaissance des caractères (3)

Sélection des primitives

Toutes les Sélection des


primitives primitives
Sélection des
primitives

Génération des
primitives
Algorithme
d’apprentissage primitives évaluation

Algorithme Primitives
Performance d’apprentissage optimales

Performance

(a) Approche Filter (b) Approche Wrapper

Approches pour la sélection des primitives


État de l’art
Réseaux de neurones type MLP (Multi-Layer-Perceptron) (1)

Poids sur chaque connexion


z1 w011 wr11 o1

w021 1 wr21
z2 1
o2

w0k1 2 2
o3
Caractéristiques sur
la couche d’entrée
w0n1 wrk’1
w0n2 Un neurone par
classe dans la
k k’ couche de sortie
w0nk
zn Couche 1 Couche (r+1) om

Couche d’entrée Couches cachées Couche de sortie

Réseau de neurones multicouches


État de l’art
Réseaux de neurones type MLP (Multi-Layer-Perceptron) (2)

Apprentissage du réseau : Algorithme de rétropropagation du gradient d’erreur


1
Fonction d’activation = fonction Sigmoïde f (s) =
1 + e −s
Critère d’arrêt de l’algorithme = méthode de Cross-Validation
Nombre de couches cachées = 1
Ne + Ns
Nombre de nœuds dans la couche cachée Nc = ( ) +1
2
État de l’art
Réseaux de neurones type MLP (Multi-Layer-Perceptron) (3)

Étape 1: Initialiser les poids et les seuils du réseau

net i = ∑ w ij o j
Étape 2: Insérer un vecteur de primitives à l’entrée du réseau et j
1
évaluer la sortie f ( neti ) =
1 + e − net i
Étape 3: Évaluer le signal d’erreur des sorties du réseau δ j = (d j − oj )oj (1− oj )

Étape 4:
Ajuster les poids de chaque connexions ∆ w ij = ηδ j o i

δ j = o j (1 − o j ) ∑ w jk δ k
Étape 5: Évaluer le signal d’erreur de chaque couche cachée k

Étape 6: Ajuster les poids de la couche cachée ∆ w ij = ηδ j o i

Résumé de l’algorithme d’entraînement par la rétropropagation des erreurs


État de l’art
Algorithmes Génétiques (1)

¾ Les AG ont été proposés par Holland au milieu des années 1970.

¾ Les AG sont des algorithmes de recherche stochastique.

¾ Les AG réalisent l’optimisation par la manipulation d’une population


de chromosomes qui va évoluer au fur et à mesure des générations.
État de l’art
Algorithmes Génétiques (2)

Initialisation de la première génération P1

Évaluation du score d’adaptation de la population P1

Sélection P’i+1

Croisement P’’i+1

Mutation
Nouvelle génération Pi+1

Évaluation du score d’adaptation de la population Pi+1

non
Arrêt ?
oui
Fin
Structure d’un AG simple
État de l’art
Algorithmes Génétiques (3)

Initialisation de la population :
¾ Insertion aléatoire des chromosomes
¾ Insertion non aléatoire des chromosomes

Codage des chromosomes :


¾ Codification binaire
¾ Codification réelle

Fonction d’adaptation :
¾ Objectif unique (mono-critère)
¾ Objectif multiple (multi-critère)
État de l’art
Algorithmes Génétiques (4)

Méthodes de sélection :
¾ Rank selection
Chaque individu de la population Pi occupe une
¾ Roulette wheel selection section de la roue proportionnelle à son adaptation

¾ Tounament selection
¾ Uniform selection

14.4%
31%

5.5%
49.1%
État de l’art
Algorithmes Génétiques (5)

Croisement :
¾ Un point de coupure
¾ Croisement multiple
Point de coupure
¾ Croisement uniforme Parent 1 Enfant 1

¾ Croisement BLX-α c1 1 c1 2 c1 3 c1 4 c1 5 c1 1 c1 2 c2 3 c2 4 c2 5

Parent 2 Enfant 2
¾ Croisement linéaire c2 1 c2 2 c2 3 c2 4 c2 5 c2 1 c2 2 c1 3 c1 4 c1 5

¾ Croisement discret
¾ Croisement étendu
¾ Croisement arithmétique
État de l’art
Algorithmes Génétiques (6)

Mutation :
¾ mutation aléatoire
1 1 1 1 0 1 1 0 1 1 1 1 1 1
¾ mutation non uniforme

Technique d’Élitisme :

Elle consiste à copier le meilleur ou un sous-ensemble des meilleurs chromosomes


de la génération courante à la prochaine génération. Cette stratégie d’élitisme
permet d’augmenter la dominance des meilleurs individus dans une population ce
qui permet une amélioration des solutions à obtenir.
État de l’art
Algorithmes Génétiques (7)

Critère d’arrêt :
¾ Le nombre de génération fixé initialement a été atteint.
¾ La valeur de la fonction d’adaptation a atteint une valeur fixée a priori.
¾ L’absence d’évolution de la valeur de la fonction d’adaptation des
individus d’une population à une autre.
¾ Les chromosomes ont atteint un certain degré d’homogénéité.

Comment définir les bons paramètres de l’AG ?


¾ Taille de la population
¾ Nombre de génération
¾ Probabilité de croisement
¾ Probabilité de mutation
État de l’art
Algorithmes Génétiques (8)
Population Initiale (t) Fonction
Sélection
Regroupement
pour Cross-Over

Population résultante
Mutation

Nouvelle Population Point de coupure


(t+1)
État de l’art
Algorithmes Génétiques Itératifs (9)
Méthodologie (1)

Base de données
- NIST-SD19
- Chiffres isolés manuscrits
- 10 classes
- Base d’apprentissage = 223123
* Base A = 195000
* Base B = 28123
- Base de validation = Base C = 60089
- Base de test = Base D = 58646
Méthodologie (2)

Extraction des primitives


- Zonage
- Concavité
- Contour
- Surface

Constitution du vecteur de primitives

Zone 1 Zone 2 Zone 6

…13… ..8.. 1 …13… ..8.. 1 …13… ..8.. 1

⇒ En total, 132 primitives extraites


Méthodologie (3)
Sélection des primitives
Objectif : Réduire le nombre de primitives tout en améliorant la
performance du système de reconnaissance.

⇒ Utiliser les AG pour la résolution du problème d’optimisation.

¾ Codage des chromosomes ⇒ binaire

¾ Fonction d’adaptation ⇒ fitness = Minimiser(α f1 + β f2 )

f1 : taux d’erreur obtenu lors de la classification


f2 : nombre de primitives sélectionnées
α et β : sont deux paramètres en fonction de la normalisation et de la
pondération pour chaque objectif (avec α = 1000 et β = 1)
Méthodologie (4)
Analyse de sensibilité
¾ Elle est développée par Moody en 1991.
¾ Elle consiste de remplacer l’entrée supprimée i dans le réseau de
neurones par la moyenne calculée pour l’ensemble de la base
d’apprentissage à la position i.
Base d’apprentissage (Base A) AG

Z1 Chromosome 1 1 0 …………….. 0
Z2

Base d’apprentissage (Base B)

Zr

Moyenne
Méthodologie (5)
Pondération des primitives
Objectif : Classer les primitives par ordre d’importance.

⇒ Utiliser les AG pour la résolution du problème d’optimisation.

¾ Codage des chromosomes ⇒ réel

¾ Fonction d’adaptation ⇒ fitness = Maximiser( f3 )

f3 : taux de reconnaissance lors de la classification.


Méthodologie (6)

Bases de données Algorithme Génétique

Extraction des primitives Chromosome

Base B + Base C
Vecteur de primitives 10 Réplications

Classification
Base A + Base B (Analyse de sensibilité)

Apprentissage du réseau

Taux de performance en
validation
Matrice des poids Vecteur Moyenne des
primitives
Test final (Base D)

Aperçu général du système mis en place


Expériences et Résultats (1)
- Problème de choix des paramètres de l’AG ?
Trouver une fonction qui s’apparente à notre problème d’optimisation.
⇒ La fonction One-Max
Ses avantages :
• Elle permet de minimiser le temps de calcul considérable.
• Elle ne manipule pas toute la base de données.
Certains paramètres sont pris par défaut :
¾ Technique de sélection = Roulette wheel
¾ Technique d’élitisme = Vraie
¾ Taille de la population = 32
¾ Nombre de générations = 1000
¾ Nombre de réplications = 10
¾ Méthode de mutation = Aléatoire
¾ Taille du chromosome = 132
¾ Codage = Binaire
Expériences et Résultats (2)

Croisement à un point de coupure

100 pcross = 1.0


pcross = 0.8
90 pcross = 0.6
80
pcross = 0.4
pcross = 0.2
70 pcross = 0.0

60
Fitness

50

40

30

20

10

0
0 100 200 300 400 500 600 700 800 900 1000

Générations

pmut = 1/L
Expériences et Résultats (3)

Croisement à un point de coupure

pmut = 1/L et pcross = 0.8


Expériences et Résultats (4)

Croisement à un point de coupure

100 pcross = 1.0


pcross = 0.8
90 pcross = 0.6
pcross = 0.4
80 pcross = 0.2
pcross = 0.0
70

60
Fitness

50

40

30

20

10
0 100 200 300 400 500 600 700 800 900 1000

Générations

pmut = 10/L
Expériences et Résultats (5)

Croisement à un point de coupure

pmut = 10/L et pcross = 0


Expériences et Résultats (6)

Croisement à Croisement à
Croisement
un point de deux point de
uniforme
coupure coupure

Pcross 0.8 0.6 1.0

Pmut 1/L 1/L 1/L

Génération 800 900 900


Expériences et Résultats (7)

Effet de la taille de la population


Population = 32
100
Population = 128
90

80

70
Fitness

60

50

40

30

20

10

0
0 100 200 300 400 500 600 700 800 900 1000

Générations
Expériences et Résultats (8)
* Sélection des primitives
Les paramètres utilisés sont :
¾ Technique de sélection = Roulette wheel
¾ Technique d’élitisme = Vraie
¾ Taille de la population = 32
¾ Nombre de générations = 1000
¾ Nombre de réplications = 10
¾ Méthode de mutation = Aléatoire
¾ Probabilité de mutation = 1/L
¾ Méthode de croisement = Un point de coupure
¾ Probabilité de croisement = 0.8
¾ Taille du chromosome = 132
¾ Codage = Binaire
¾ Fonction d’adaptation = Minimiser(α f1 + β f2 )
Expériences et Résultats (9)
% erreur

Solution in itia le

Solution optimale

Nombre de primit ives


Expériences et Résultats (10)

Taux de reconnaissance (%)


Meilleure Réplication / 10 (base C)

Aucune Sélection Ré-Apprentissage


100 primitives
sélection Analyse de
uniquement
132 primitives 100 primitives
sensibilité

Base A 99.65 99.65 99.64


Base B 99.62 99.64 99.61
Base C 99.15 99.05 99.16
Base D 97.47 97.28 97.54

Résultats de la sélection des primitives par les AGS


Expériences et Résultats (11)

AGI vs AGS
960 AGS
AGI
950

940
Fitness

930

920

910

900
0 100 200 300 400 500 600 700 800 900 1000
Générations (10 Itérations)
Expériences et Résultats (12)

Résultats de la sélection des primitives par les AGS et les AGI


NOTE : Protocole Biaisé sur la base de Test (Base D)

Primitives originales AG simple AG itératif

% % %
Base Primitives Primitives Primitives
Erreur Erreur Erreur

Base A 132 0.35 95 0.34 104 0.34


Base C 132 0.87 95 0.83 104 0.84
Base D 132 2.48 95 2.60 104 2.58
Expériences et Résultats (13)
* Pondération des primitives
Les paramètres utilisés sont :
¾ Technique de sélection = Roulette wheel
¾ Technique d’élitisme = Vraie
¾ Taille de la population = 32
¾ Nombre de générations = 1000
¾ Nombre de réplications = 10
¾ Probabilité de mutation = 1/L
¾ Probabilité de croisement = 0.8
¾ Taille du chromosome = 132
¾ Codage = Réel
¾ Fonction d’adaptation = Maximiser( f3 )
Expériences et Résultats (14)

# Expérience Croisement Mutation

1 BLX-α avec α = 0.5 Non uniforme avec b = 5


2 --- Non uniforme avec b = 5
3 Arithmétique avec λ = 0.25 ---
4 Arithmétique avec λ = 0.5 ---
5 Arithmétique avec λ = 0.75 ---
6 Arithmétique avec λi aléatoire ---
7 Arithmétique avec λi aléatoire Non uniforme avec b = 5

Liste des expériences


Expériences et Résultats (15)

Taux de reconnaissance (%)

# Expérience Base A Base B Base C Base D

Tous les poids 99.65 99.62 99.15 97.47


sont égaux à 1
1 99.65 99.62 99.14 97.45
2 99.58 99.65 99.04 97.28
3 99.63 99.62 99.14 97.43
4 99.64 99.62 99.16 97.46
5 99.63 99.62 99.13 97.43
6 99.64 99.63 99.16 97.46
7 99.64 99.63 99.04 97.28

Résultats de la pondération des primitives par les AGS de toutes les expériences
Expériences et Résultats (16)
* Sélection puis Pondération des primitives

Sélection des primitives par AGS

Solution (100 primitives sélectionnées)

Apprentissage du réseau

Pondération des primitives par AGS

Primitives pondérées
Expériences et Résultats (17)

Taux de reconnaissance (%)

Avant Après
pondération pondération
(100 primitives) (100 primitives)

Base A 99.64 99.57


Base B 99.61 99.65
Base C 99.16 99.04
Base D 97.54 97.33

Résultats de la pondération des primitives par les AGS


Croisement Arithmétique non uniforme et Mutation non uniforme
Discussion (1)
* Sélection des primitives par les AGS

Présentation de la meilleure solution


Discussion (2)
* Pondération des primitives par les AGS
Les poids associés à chacune des primitives sont proche de la valeur 1.

0,9

0,8

0,7

0,6

0,5

0,4

0,3

0,2

0,1

0
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96 101 106 111 116 121 126 131
Conclusion
• Sélection des primitives
⇒ Réduction de 25% des primitives
passant de 132 à 100 primitives sélectionnées

• Pondération des primitives


⇒ pas de résultats satisfaisants
car le réseau de neurones lors de l’apprentissage génére
une matrice de poids dont chaque poids est associée à
l’entrée du réseau (primitive)

Avec d’autres classifieurs, la pondération des primitives donne


des résultats satisfaisants (le plus proche voisin)
Merci

Questions et
Commentaires

S-ar putea să vă placă și