INTELLIGENCE ARTIFICIELLE

Slides:



Advertisements
Présentations similaires
LES RESEAUX DE NEURONES
Advertisements

RECONNAISSANCE DE FORMES
Les réseaux de neurones
Christelle Scharff IFI 2004
Les réseaux de neurones à réservoir en traitement d’images
Institut de sciences et technologies Département d’informatique
Les réseaux de neurones à réservoir en traitement d’images
Perceptron multicouche
PRESENTE PAR: KASHAMA LUBEMBE Dieudonné.
Auteur : Patrice LEPISSIER Les probabilités  Notions de base Notions de base  Variable aléatoire Variable aléatoire  La loi Normale La loi Normale.
Grilles 3D Les grilles 3D. Grilles 3D Plan ● Les grilles 3D – Grille 3D ? – Reconstruction de continuité C 0 – Octree min/max – Visualisation d'une iso-surface.
Chapitre 6. Introduction à l’échantillonnage Les sondages Notions fondamentales Fluctuations d’échantillonnage d’une moyenne Théorème central limite C6-1.
Système d’annotation et de détection de modèle de véhicule Université de Sfax *** Institut Supérieur d’Informatique et de Multimédia de Sfax Réalisé par.
Outils de Recherche opérationnelle en Génie MTH 8414
Outils de Recherche Opérationnelle en Génie MTH 8414
Analyse, Classification,Indexation des Données ACID
Techniques de décomposition
Préparer par : Intissare et kaoutare
Rapport sable /gravier (S/G)
Algorithmiques Abdelbasset KABOU
Chapitre 2 Vecteurs et Repérage dans le plan
Technologies de l’intelligence d’affaires Séance 13
Échantillonnage non-aléatoire
Techniques d’Optimisation Chapitre 3: Programmation en 0-1 (bivalente)
Plans d’experiences : plans de melanges
Routage S 3 - Questionnaire N°1
Technologies de l’intelligence d’affaires Séance 11
Technologies de l’intelligence d’affaires Séance 12
Scénario Quatre hipsters entrent en collision un dans l'autre dans un ascenseur plein de personnes. En conséquence ils laissent tomber leurs téléphones.
République Algérienne Démocratique et Populaire Ministère de l'Enseignement Supérieur et de la Recherche Scientifique Université Saad.
Concepts avancés en mathématiques et informatique appliqués
INTELLIGENCE ARTIFICIELLE
INTELLIGENCE ARTIFICIELLE
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
La nature du message nerveux
INTELLIGENCE ARTIFICIELLE
Sujets Spéciaux en informatique II
Deep Learning. 2 Plan réseaux de neurones artificiels Définition Fonction d’activation Fonction de cout Propagation et rétropropagation Algorithme d’optimisation.
Réseaux de neurones appliqués à la reconnaissance de caractères
ACP Analyse en Composantes Principales
Pierre Dumouchel 20 juillet 2009
Calculs des incertitudes Lundi 30 Avril 2018 Master de Management de la Qualité, de la Sécurité et de l’Environnement.
Royaume de Maroc Université Hassan Premier Settat Faculté des Sciences et Techniques de Settat LA CLASSIFICATION K-MEANS SOUS R /MATLAB Master :Automatique.
OPTIMISATION 1ère année ingénieurs
1/15 STABILITE 1)- NOTION DE STABILITE 2)- CONDITIONS DE STABILITE.
Les méthodes non paramétriques
CHAPTER 11: Perceptron Multicouches
Arbres de décision.
CHAPTER 10: Discrimination Linéaire
2.4 La loi de vitesse d’une réaction chimique
1. Caractéristiques d’antennes Antennes et Rayonnement.
Sujets Spéciaux en informatique II
Reconnaissance de formes: lettres/chiffres
Contribution du LHyGeS
Les erreurs de mesure Projet d’Appui au renforcement des capacités
INTELLIGENCE ARTIFICIELLE
Programme d’appui à la gestion publique et aux statistiques
PROGRAMMATION SCIENTIFIQUE EN C
INTELLIGENCE ARTIFICIELLE
INTELLIGENCE ARTIFICIELLE
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
Tableau de bord d’un système de recommandation
INTELLIGENCE ARTIFICIELLE
INTELLIGENCE ARTIFICIELLE
PROGRAMMATION SCIENTIFIQUE EN C
INTELLIGENCE ARTIFICIELLE
Outils de Recherche Opérationnelle en Génie MTH 8414
La programmation dynamique
Transcription de la présentation:

INTELLIGENCE ARTIFICIELLE IAR-1001

Réseaux de neurones Introduction Réseaux sans couches cachées Réseaux avec des couches cachées Algorithme de propagation-arrière CNN LECTURES: Chapitre 18 Russell & Norvig Notes de cours (site ftp UQTR)

Introduction Les réseaux de neurones permettent de simuler l’activité du cerveau humain Des tâches comme la reconnaissance de visages humains est accomplit facilement par un humain mais devient très difficile pour les ordinateurs conventionnels Le cerveau humain est composé de cellules nerveuses (neurones) organisées de façon à travailler en parallèle sur le même problème

Introduction Un neurone est constitué d’un corps cellulaire, de dendrites qui reçoivent les signaux en entrée et d’axones qui émettent les signaux en sortie Les dendrites reçoivent des signaux des organes sensoriels (yeux, oreilles) ou d’axones d’autres neurones Les axones émettent des signaux à des organes comme les muscles ou aux dendrites d’autres neuronnes

Introduction

Introduction Un neurone reçoit des signaux de plusieurs milliers de dendrites et émet au travers de centaines d’axones Avec le haut niveau de redondance des connexions entre neurones, les performances du cerveau sont robustes Dans plusieurs régions du cortex cérébral, les neurones sont organisés en couches Un neurone reçoit généralement des signaux des neurones de la couche adjacente

Introduction De plus, les signaux en entrée proviennent de neurones d’une petite région proche du neurone récepteur, et le patron d’interconnexion est similaire pour chaque neurone récepteur Les connexions entre les couches sont générale-ment dans une seule direction, partant du traite-ment bas-niveau (œil, oreille) jusqu’à un haut-niveau de raisonnement

Introduction Premier modèle mathématique d’un neurone (McCulloch et Pitts) Les entrées sont définies par x1,…..xM. Calcul d’une somme pondérée s en utilisant les poids w1,…wM. Seuillage de s SI s > T ALORS sortie = 1 SI s <= T ALORS sortie = 0

Introduction Les connexions avec des poids positifs sont excitatives et celles avec des poids négatifs sont inhibitives La sortie d’un neurone est 1 SI

Introduction Nous pouvons réécrire cette expression Le poids w0 est un poids biaisé

Introduction Ce nouveau modèle est représenté

Introduction L’entraînement des réseaux de neurones est l’aspect le plus difficile de leurs utilisations L’entraînement revient à trouver les poids wi permettant aux réseaux de fonctionner avec une performance acceptable

Introduction (Taxonomie des réseaux de neurones)

Réseaux sans couches cachées Ces réseaux sont aussi appelés réseaux à deux couches, une couche en entrée et une en sortie xi Dj wij

Réseaux sans couches cachées Rosenblatt a crée un classificateur pouvant être entraîné (PERCEPTRON) L’algorithme d’entraînement permet de déduire les poids du PERCEPTRON qui sont eux, identiques aux coefficients de la fonction discriminante

Réseaux sans couches cachées Par exemple

Réseaux sans couches cachées La fonction discriminante prend la forme

Réseaux sans couches cachées Recherche (estimation) des poids wi Nous cherchons les valeurs de poids qui minimise la fonction dp: sorties désirées de l’observation p xp1,…., xpM: valeurs caractéristiques de l’observation p Les poids sont optimisés d’un seul coup pour tout l’échantillon d’entraînement en posant les dérivées par- tielles E/wi égale à 0 et en trouvant la solution du système d’équations linéaires résultant pour chaque wi

Réseaux sans couches cachées Recherche (estimation) des poids wi L’algorithme MSE séquentiel est une technique adaptative avec laquelle les observations d’entraîne-ment sont présentées au système une à la fois Une observation est classifiée par le réseau et le résultat (D) est comparé aux sorties (d) de la vraie classe de cette observation Si l’observation est mal classée, les poids wi sont corrigés proportionnellement aux valeurs caractéristiques p multipliées par la différence entre les sorties désirées et celles actuelles

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud L’algorithme MSE utilise la procédure steepest descent minimisation (SDM) pour corriger les poids de chaque observation Les poids sont changés selon les directions qui permettent à la fonction E de décroître rapidement La direction de décroissance maximale de la fonction d’erreur est donnée par le vecteur

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud Notions de gradient

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud Notions de gradient inversé

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud (1 sortie) (procédure SDM) Choisir des poids de départ w1,…wM, et une constante c positive Calculer les dérivées partielles F/wi (E/wi) pour i=1,…,M, et remplacer wi par wi - c F/wi pour i=1,…,M (E/wiE/wi) Répéter l’étape précédente jusqu’à ce que les poids w1,…,wM ne changent plus significati-vement correction

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud (exemple de procédure SDM)

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud (exemple de procédure SDM) (c = 0.1)

Réseaux sans couches cachées La procédure SDM (difficultés) Choix des wi au départ Choix de la constante c Le choix de wi peut influencer la convergence vers des minima locaux si wi est trop loin des valeurs wi qui donnent un minimum global Si la constante c est trop petite la convergence est lente, si c est trop grand l’algorithme peut passer par dessus des minima sans converger

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud Nous faisons une mise à jour séquentiel des poids en considérant une observation à la fois

Réseaux sans couches cachées L’algorithme MSE séquentiel à un seul nœud Choix des poids de départ w0,….wM, et une constante c Présenter les observations 1 à N au classificateur, revenant à l’observation 1 après N. En calculant pour chaque observation Remplacer wi par wi - c(D-d)xi pour chaque i Répéter les 2 étapes précédentes tant que les wi changent

Réseaux sans couches cachées L’algorithme MSE séquentiel à nœuds multiples Pour chacune des N observations nous avons: un vecteur de caractéristiques x0, x1, …. xM. Un vecteur en sortie d1, d2, …, dN. Les poids wij correspondent à la connexion entre l’entrée i et le nœud de sortie j

Réseaux sans couches cachées L’algorithme MSE séquentiel à nœuds multiples

Réseaux sans couches cachées L’algorithme MSE séquentiel à nœuds multiples Choix des poids de départ w0,….wM, et une constante c Présenter les observations 1 à N au classificateur, revenant à l’observation 1 après N. En calculant pour chaque observation

Réseaux sans couches cachées L’algorithme MSE séquentiel à nœuds multiples Remplacer wij par wij - c(Dj-dj)xi pour chaque entrées (lien) i Répéter les 2 étapes précédentes tant que les wij changent Les algorithmes MSE séquentiel à un et multiples nœuds sont reconnus pour être efficace lorsque les classes sont bien séparées

Réseaux avec couches cachées En général, un réseau à plusieurs couches est caractérisé: K+1 couches de nœuds, dénotées 0, 1, …., K La sortie du nœud i de la couche k est dénotée xi(k) et représente la valeur seuillée de la somme pondérée des entrées La couche 0 est appelée couche rétine (entrée) La couche K est la couche de sortie Les couches entre les deux sont les couches cachées

Réseaux avec couches cachées Réseau à plusieurs couches

Algorithme de propagation-arrière L’entraînement d’un réseau multicouche ne peut être fait par la méthode SDM puisqu’une variation d’un poids ne change généralement pas les sorties du réseau La sortie d’un nœud sera changée seulement si les poids changent suffisamment pour que la somme pondérée change de signe Même si une sortie change de valeur dans une couche donnée cela ne signifie pas que les sorties de la prochaine vont changer

Algorithme de propagation-arrière Les sorties finales du réseau sont alors résistantes aux petites variations des poids dans le réseaux Pour éliminer le besoin des seuils T nous pourrions être tenté d’éliminer ces seuils et de calculer sim-plement la somme pondérée à chaque nœud Par contre, les réseaux à couches multiples devien-nent inutiles puisque dans ce contexte nous pou-vons déduire un réseau à 2 couches équivalents

Algorithme de propagation-arrière Réseaux sans seuil

Algorithme de propagation-arrière Réseaux sans seuil

Algorithme de propagation-arrière Nous pouvons trouver un compromis entre l’utili-sation d’un seuil discontinu ou d’une combinaison linéaire à chaque nœud en utilisant une fonction sigmoïde de la forme

Algorithme de propagation-arrière La fonction R à chaque nœud permet aux sorties du réseau d’être des fonctions différentiables des poids. L’ensemble des poids peut alors être déterminé par la méthode SDM

Algorithme de propagation-arrière L est le nombre de couches

Algorithme de propagation-arrière L est le nombre de couches

Algorithme de propagation-arrière Pour l’entraînement du réseau l’algorithme PA utilise la procédure SDM et une fonction sigmoïde (logistique) Les couches sont dénotées k=0,1,….K avec k=0 pour la couche d’entrée et k=K pour la couche de sortie La sortie du noeud j dans la couche k est dénotée par xj(k) pour j=1,…Mk ou Mk est le nombre de nœuds de la couche k (sans compter le nœud avec un poids biaisé)

Algorithme de propagation-arrière Pour la couche d’entrée: xj(0) = xj pour j=1,…, M0 Pour chaque couche sauf la couche de sortie la sortie du nœud à poids biaisé est x0(k)=1 pour k=0,…,K-1 Les sorties sont xj(K) pour j=1,…,MK Les poids des connexions entre le nœud i de la couche k-1 et le nœud j de la couche k est wij(k)

Algorithme de propagation-arrière Les poids des connexions entre le nœud i de la couche k-1 et le nœud j de la couche k est wij(k)

Algorithme de propagation-arrière Étapes de l’algorithme PA Phase d’alimentation-avant (feed-forward) par laquelle les sorties des nœuds sont calculées à partir de la couche 1 vers la couche K Phase de propagation arrière où les poids sont ajustés pour que les sorties x1(K) , …., xMK(K) et les sorties désirées d1,…dMK soient en accord

Algorithme de propagation-arrière 1) Initialisation des poids wij(k) à de petites valeurs aléatoires et choix d’une constante c positive 2) Pour chaque observation 1 à N, initialisée les entrées x1(0) , …. , xM0(0) , revenant à l’observation 1 après avoir atteint l’observation N 3) Alimentation-avant. Pour k=0,…,K-1 calculer

Algorithme de propagation-arrière 4) Propagation-arrière. Pour les nœuds de la couche de sortie j= 1,…, MK calculer Pour les couches k = K-1, …, 1 calculer

Algorithme de propagation-arrière 5) Remplacer les poids 6) Répéter les étapes 2 à 5 TANT QUE les poids changent significativement

Algorithme de propagation-arrière Si la valeur de sortie d’un nœud est proche de 0 ou 1 la valeur de j(k) -> 0, cela signifie alors que la valeur des poids est stable La phase de PA utilise la méthode SDM pour ajus-ter les poids de façon à minimiser la fonction d’er-reur

Algorithme de propagation-arrière Les dérivées partielles de E sont calculées par rap-port aux poids de la couche K et ainsi de suite jus-qu’à la couche 1 De plus, les dérivées partielles de la couche k découlent de celles calculées de la couche k+1

Algorithme de propagation-arrière La fonction de correction j(K) découle

Exemple (Algorithme PA) y = 1 x = [2, -1]

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Exemple (Algorithme PA)

Application (Reconnaissance de visage) Image initiale du visage de 30X30 en 256 niveaux de gris Compression des données 900->40 Réseau de classification à une couche cachée Réseau entraîné avec 80 visages Réseau testé avec 10 visages

Application (Reconnaissance de visage)

Application (OCR)

Application (OCR) (Voir l’exemple mlp.py) Images initiales de chiffres manuscrits: sklearn.datasets.load_digits(n_class=10, return_X_y=False)

Application (OCR) (Voir l’exemple mlp.py) Images exemples du data set et test set:

Application (Reconnaissance vocale) Reconnaissance de mots Enregistrement Analyse spectrale (60 harmoniques)

Application (Reconnaissance vocale) Entraînement du réseau Observations présentées en entrée de chaque personne (2) Ajustement des poids

Application (Reconnaissance vocale) Observations inconnues présentées en entrée Sorties correspondent à la personne qui dit le mot

Exemple d’implémentation Python d’un NN (NN.py)

Exemple d’implémentation Python d’un NN (NN.py) suite …..

Exemple d’implémentation Python d’un NN (NN.py) suite …..

Convolutional Neural Network

Convolutional Neural Network

Convolutionnal Neural Network

Convolutionnal Neural Network Un RN convolutionnel (ConvNet) est une succession de couches, chaque couche transforme un volume d’activations à un autre niveau et ce par l’application d’une fonction différenciable. Trois types de couches permettent de construire un ConvNet:  Couche convolutionnelle (Convolutional Layer) Couche d’échantilonnage (Pooling Layer) Couche RN (Fully-Connected Layer)

Convolutionnal Neural Network Exemple d’architecture de ConvNet (CIFAR-10) : INPUT [32x32x3]: image RGB de 32 X 32. CONV: calcul de la convolution d’une petite région dans l’image avec un opérateur (filtre). Résultat: un volume de [32x32x12] avec par exemple 12 filtres. RELU: Opération sur chaque élément d’un volume, ex: max(0,x), max(0,x) seuillage à zero. Le volume reste ([32x32x12]). POOL: Échantillonnage (ex: 2X2). Le volume devient [16x16x12]. FC: RN qui calcule le coefficient de chaque classe, résultant dans un volume de [1x1x10], donc 10 classes.

Convolutionnal Neural Network Exemple d’architecture de ConvNet (CIFAR-10) : http://cs231n.github.io/convolutional-networks/

Convolutionnal Neural Network Exemple d’architecture de ConvNet (CIFAR-10) : http://cs231n.github.io/convolutional-networks/ Couches convolutionnelles: 5 filtres

Convolutionnal Neural Network Exemple d’architecture de ConvNet (CIFAR-10) : http://cs231n.github.io/convolutional-networks/ Exemples de formes de filtre

Convolutionnal Neural Network Exemple d’architecture de ConvNet (CIFAR-10) : http://cs231n.github.io/convolutional-networks/ Principes de l’échantillonnage