Réseaux de neurones appliqués à la reconnaissance de caractères Présentation du modèle Le neurone artificiel Le réseau et son architecture Son apprentissage Reconnaissance de caractères Objectif Architecture du réseau Algorithme d’apprentissage Résultats et optimisation Convergence du modèle Pouvoir discriminant du réseau Problème du sur-apprentissage Méthode d’intelligence artificielle. Datent des années 50. Calqués sur le fonctionnement des neurones humains. Permet de traiter des problèmes humains : approprié aux notions floues. Ex:confort des utilisateurs. Impressions. Perception. Reconnaissance de caractère : impressions. Intérêt d’utilisation : lorsque l’on cherche à établir une relation non linéaire entre des données numériques. 30sec
Un neurone ne dépend donc plus que de ses poids A- Présentation du modèle 1. Le neurone artificiel e1 w1 e2 w2 f wn en Dépend de W (appartenant à R^n) et de f (application définie sur R à valeurs dans R) Dans le cadre de l’exposé, les neurones auront tous la fonction sigmoïde Fonction sigmoïde : approximation indéfiniment dérivable de la fonction à seuil de Heaviside valeurs dans l'intervalle [0;1] Un neurone ne dépend donc plus que de ses poids Représentation
Exemple de perceptron à trois couches 2. Architecture du réseau Entrées Couches cachées Couche de Sortie Première entrée w Deuxième entrée Troisième entrée Exemple de perceptron à trois couches L’architecture du perceptron est déterminée par : Le nombre de couches Le nombre de neurones par couches cachées Les poids Le nombre d’entrées Le nombre de sorties Choix du perceptron : de l’avant vers l’arrière. La sortie d’un neurone d’une couche devient une entrée de tous les neurones de la couche suivante. Après l’apprentissage, le réseau doit se débrouiller sans professeur. On éduque le réseau de façon humaine. 3. L’Apprentissage L ’apprentissage est la phase durant laquelle le comportement du réseau est modifié jusqu’à l’obtention du comportement désiré. L’apprentissage agit sur les poids. humain réseau sortie désirée sortie obtenue erreur ENTREES
B- Reconnaissance de caractères A chaque pixel, j’associe une valeur réelle entre 0 et 1. Un pixel constitue une entrée de mon réseau. 8*8 pixels Une image = vecteur colonne de dimension 64 Entrées Couches cachées Couche de Sortie J’ai opté pour un perceptron multicouches avec deux couches cachées car c’est un approximateur universel. Objectif : lorsque l’on donne une lettre disons un B au réseau, la sortie B doit donner une valeur proche de 1 tandis que les autres sorties doivent avoir une valeur proche de 0. Sortie A Premier pixel Sortie B Deuxième pixel Sortie C 64 ième pixel Sortie Z Le réseau ne dépend plus que de ses poids Les poids sont initialisés aléatoirement entre 0 et 1
Apprentissage par la méthode du gradient (caractère, sortie attendue) Réseau Sortie Ensemble d’apprentissage Calcul erreur Modification des poids du réseau Pour apprendre, le réseau a besoin d’exemples afin de pouvoir généraliser; On a décrit le fonctionnement général du réseau. Il s’agit maintenant d’étudier la phase de modification des poids du réseau, c’est-à-dire la phase d’apprentissage. On itère des centaines de fois jusque cela marche, sinon autre architecture. Réseau Modification des poids du réseau Apprentissage = problème d‘optimisation = réduire la fonction erreur
A w2 + w1 Minimum de F w2(t+1) Direction du gradient w2(t) w1(t+1) Police de caractères Verdana .TTF Programme Maple ABCDEFGHIJKLM NOPQRSTUVXYZ Programme de segmentation en C++ A 26 fichiers .bmp des 26 lettres majuscules Programme de récupération en Maple Ensemble d’apprentissage Maple
C- Résultats et optimisation 1. Convergence du modèle Deux couches cachées de 26 neurones chacune L’apprentissage a duré 1h30 Sorties du réseau en fonction du nombre d’itérations lorsqu’on lui soumet la lettre B Lettre B Autres lettres Nombre d’itérations
2. Pouvoir discriminant du réseau 3. Difficultés rencontrés
Ensemble d’apprentissage Ensemble de validation 3. Sur-apprentissage Ensemble d’apprentissage Ensemble de validation Erreur Début du sur-apprentissage Le surapprentissage est un phénomène qui apparaît lorsque le réseau a trop bien appris son ensemble d’apprentissage. Il perd alors ses pouvoirs de prédiction sur de nouveaux échantillons. Pour y remédier. L'ensemble de validation n'est pas utilisé pour l'apprentissage mais permet de vérifier la pertinence du réseau avec des échantillons qu'il ne connait pas. C’est un bon critère d’arrêt pour l’algorithme. Nombre d’itérations de l’algorithme
Choix de la direction du gradient
On trouve une relation de récurrence entre les sensibilités Calcul du gradient On trouve une relation de récurrence entre les sensibilités
Couches cachées et frontière de décision Frontière de décision = espace des entrées ( [0,1]^64 dans notre cas) Un neurone permet de résoudre les problèmes linéairement séparables Une couche cachée permet de résoudre des problèmes à frontière convexe Deux couches cachées permettent de résoudre des problèmes à frontières convexes ou concaves, ouvertes ou fermées