IFT 615 Intelligence Artificielle

Slides:



Advertisements
Présentations similaires
Fabrice Lauri, François Charpillet, Daniel Szer
Advertisements

« Systèmes électroniques »
Application au suivi des paramètres de problèmes de vision
Classification et prédiction
Classification et prédiction
RECONNAISSANCE DE FORMES
Inférence statistique
Comparaison d'une distribution observée à une distribution théorique
Les K plus proches voisins
LES RESEAUX DE NEURONES
Application de réseaux bayésiens à la détection de fumées polluantes
Chapitre VII :Commande par retour d’état
                                        République Algérienne Démocratique et Populaire Ministère de l’Enseignement Supérieur et de la Recherche Scientifique.
IFT 615 – Intelligence artificielle Raisonnement probabiliste
Asservissement et régulation continue
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Cours d’Automatique MASTER OIV
Mirta B. Gordon Laboratoire Leibniz-IMAG Grenoble
Un neurone élémentaire
Froduald Kabanza Département d’informatique Université de Sherbrooke
Exemple Dans une ville, 55% des travailleurs ont un revenu supérieur à $. Si un individu de cette ville possède un revenu supérieur à $, la.
Application des algorithmes génétiques
Pourquoi les réseaux de neurones de type « perceptron multicouche » conviennent-ils à l’apprentissage Stéphane Canu, INSA de Rouen , PSI André Elisseeff,
Décodage des informations
Froduald Kabanza Département d’informatique Université de Sherbrooke
Maîtrise des risques et sûreté de fonctionnement – Avignon – 6-10 Octobre 2008 Modélisation des dysfonctionnements dun système dans le cadre dactivités.
Réseaux de neurones.
Méthodes de prévision (STT-3220) Section 4 Concepts fondamentaux de séries chronologiques Version: 8 novembre 2004.
Introduction à léconométrie Mario Fortin Université de Sherbrooke Hiver 2009.
IFT 616 Intelligence Artificielle
IFT 616 Intelligence Artificielle
Froduald Kabanza Département d’informatique Université de Sherbrooke
Les réseaux de neurones
GPA-779 Perceptron multicouche
Représentation des systèmes dynamiques dans l’espace d’état
Représentation des systèmes dynamiques dans l’espace d’état
IFT Complexité et NP-complétude
La corrélation et la régression
Revisé 2006 Modèle de performance dun serveur simple Nous supposons que le serveur traite une requête après lautre (sans parallisme) Modèle de files dattente.
Prédiction multi-step de la volatilité : le modèle ARIMA-GARCH appliqué aux séries temporelles d’affaiblissement par la pluie sur les liaisons Terre-Satellite.
Révisions - IA Généralité: problèmes de lIA Recherche Logique Traitement de lincertitude Apprentissage Langue naturelle.
1 Décisions dans lincertain Eric Sanlaville ISIMA 3 F3, master SIAD novembre 2008.
1 Séminaire LOVe du 29/03/07 Combinaison d'objets (fusion centralisée) T3.2 Combinaison de pistages (fusion décentralisée) T3.3.
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Intelligence artificielle IFT615 Logique du premier ordre
IFT 615 Intelligence Artificielle
Mécanique Statistique
Inéquations du premier degré à une inconnue
Réseaux bayésiens Chap. 14 Sections 1 – 3.
Analyse des systèmes linéaires types
Filtrage de Kalman et aperçu probabiliste
Modélisation des opérations Spécifier les transformations détat que lon attend des services de la machine Létat dune machine entièrement déterminée par.
Réseaux bayésiens: Inférence
GOL503 Spécificités sectorielles
Programmation procédurale Transformations
Présentation de la méthode des Eléments Finis
D.E ZEGOUR Ecole Supérieure d’Informatique
IFT 615 – Intelligence artificielle Réseaux bayésiens
Christelle Scharff IFI 2004
Froduald Kabanza Département d’informatique Université de Sherbrooke
D.E ZEGOUR Ecole Supérieure d’Informatique. Problèmes de décision Concepts de base Expressions régulières Notation particulière pour exprimer certaines.
Structures de données avancées : LH (Hachage linéaire) D. E ZEGOUR Institut National d ’Informatique.
Hiver 2004SEG2501 Chapître 41 Chapître 4 SDL – structure d’un système et son comportement.
1/16 Chapitre 3: Représentation des systèmes par la notion de variables d’état Contenu du chapitre 3.1. Introduction 3.2. Les variables d’état d’un système.
20/06/2015propagation de signatures lexicales dans le graphe du Web 1 Propagation de signatures lexicales dans le graphe du Web M. Bouklit M. Lafourcade.
LOGIQUE ET PROGRAMMATION LOGIQUE
Chapitre 4b La représentation des nombres.
Graphisme par ordinateur
Concepts avancés en mathématiques et informatique appliquées
Réseaux de Petri et suivi du joueur
Transcription de la présentation:

IFT 615 Intelligence Artificielle Jean-François Landry Département d’informatique Université de Sherbrooke Révision – Examen final http://planiart.usherbrooke.ca/~jflandry/ift615/

Sujets principaux Réseaux bayésiens Réseaux de neurones Réseaux bayésiens dynamiques Logique du premier ordre Systèmes experts à base de règles IFT615

RB - Syntaxe Un RB est un graphe orienté, acyclique, dont les nœuds sont des variables (le plus souvent aléatoires) et les arcs représentent des dépendances (causalités) probabilistes entre les variables et des distributions de probabilités conditionnelles (locales) pour chaque variable étant donné ses parents. IFT615

Exemple La topologie du RB modélise la connaissance causale. Un arc d’un nœud X vers un nœud Y signifie que la variable X influence la variable Y. Un cambriolage peut déclencher l’alarme. Un séisme aussi. L’alarme peut inciter Jean à appeler. Idem pour Marie à appeler. Pour chaque nœud, une table de probabilité conditionnelle (TPC) donne la probabilité pour chaque valeur du nœud étant donné les combinaisons des valeurs des parents du nœud. P(C) .001 P(S) .002 Cambriolage Séisme C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 Alarme MarieAppelle JeanApelle A P(M|A) T .70 F .01 A P(J|A) T .90 F .05 IFT615

Définitions S’il y a un arc d’un nœud X vers un nœud Y, cela signifie que la variable X influence la variable Y. X est appelé le parent de Y. Parents(X) est l’ensemble des parents de X. Si X n’a pas de parents, sa distribution de probabilités est dite inconditionnelle ou à priori. Si X a des parents, sa distribution de probabilités est dite conditionnelle (par rapport aux parents) ou à postériori. Deux variables sont indépendantes si Si X est une variable observée, ont dit que c’est une évidence. Cambriolage Séisme Alarme JeanApelle MarieAppelle C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 A P(J|A) T .90 F .05 A P(M|A) T .70 F .01 P(C) .001 P(S) .002 IFT615

Rappel de notions de base en probabilités P(X,Z) = P(X|Z)P(Z). P(Z,X) = P(Z|X)P(X). On en déduit P(X|Z) = P(X,Z) / P(Z) P(X|Z) = P(Z|X)P(X) / P(Z) Règle de Bayes Si on a une distribution conjointe pour P(Z,Y) on peut calculer la distribution P(Z) par la somme des probabilités pour toutes les valeurs possibles de Y (marginalisation): P(Z) = Σy P(Z, Y = y). Si on a une distribution conditionnelle P(Z|Y), on peut « conditionner » : P(Z) = Σy P(Z | Y = y)P(Y=y). P(Z) peut donc être considéré comme un facteur constant, α IFT615

Rappel de notions de base en probabilités Ceci nous donne P(X|Z) = α P(X,Z) α est une constante de normalisation pour s’assurer que la somme des probabilités de la distribution P(X,Z) soit égale à 1. De manière générale, soit X, l’ensemble de variables pour laquelle on fait l’interrogation, E, les variables d’évidences (qu’on peut observer) et Y, les variables cachées (qu’on ne peut pas observer). e, les valeurs observées pour les variables dans E. P(X|E=e) = α P(X,E=e) = Σy P(X, E=e, Y = y) Noté aussi P(X|e) = α Σy P(X, e, y) IFT615

Inférence par énumération On a vu que : P(X|e) = α Σy P(X, e, y) où e=evidence, et y=variables cachées. On a vu aussi que selon la sémantique d’un RB P(X1, … ,Xn) = π i = 1 P (Xi | Parents(Xi)) Les termes P(X, e, y) peuvent donc s’écrire comme le produit des probabilités conditionnelles du réseau. En d’autre termes, on peut calculer la réponse à une interrogation P(X|e) sur un RB, simplement en calculant les sommes des produits des probabilités conditionnelles du RB. Algorithme Figure 14.9, Page 506 du livre. n IFT615

Exemple P(Cambriolage | JeanApelle = T, MarieAppelle = T ) Noté P(C | j, m) Les variables cachées sont Séisme et Alarme. P(C | j, m) = α Σs,a P(C, s, a, j, m) Note : s et a veulent dire, toutes les valeurs possibles de S=s et A=a variables. Ne pas confondre avec j et m qui sont des évidences fixes (J=j et M=m). Cambriolage Séisme Alarme JeanApelle MarieAppelle C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 A P(J|A) T .90 F .05 A P(M|A) T .70 F .01 P(C) .001 P(S) .002 Voir la note 5 en bas de la page 505 dans le livre. IFT615

Exemple = α Σs,a P(c)P(s)P(a|c,s)P(j|a)P(m|a) P(C | j, m) = α Σs,a P(C, s, a, j, m) On calcule pour C = true P(c | j, m) = α Σs,a P(c)P(s)P(a|c,s)P(j|a)P(m|a) =0.001*0.002*0.95*0.90*0.70+ 0.001*0.998*0.94*0.90*0.70+ 0.001*0.02*0.05*0.05*0.01+ 0.001*0.998*0.06*0.05*0.01 =α (0.00059224) Et C = false = α Σs,a P(┐c)P(s)P(a| ┐c,s)P(j|a)P(m|a) = α (0.0014919) α = 1/(0.00059224+ 0.00059224) Donc, P(C | j, m) = [0.284, 0.716] Cambriolage Séisme Alarme JeanApelle MarieAppelle C S P(A|C,S) T T .95 T F .94 F T .29 F F .001 A P(J|A) T .90 F .05 A P(M|A) T .70 F .01 P(C) .001 P(S) .002 Je n’ai pas vérifié les chiffres, je les ai prises telles quelles du livre. Ça me semble quand même l’inverse, c.-à-d., P(C =true | j, m) = 0.716 et P(C=false | j, m) = 0.284. Refaire les calculs et vérifier. IFT615

Apprentissage d’un RB La structure d’un RB (le graphe) est le plus souvent spécifiée à l’aide d’un expert. Dans d’autres applications, la structure est générée automatiquement à partir des données statistiques. C’est un des problèmes d’apprentissage machine. Dans d’autres problèmes, on connaît la structure du RB, mais on ne connaît pas les TPC. Là aussi, on peut les apprendre à partir des données statistiques. C’est un autre problème d’apprentissage machine. IFT615

Diagrammes d’influence Un diagramme d’influence (DI) est une extension d’un RB avec des nœuds de décision et des nœuds d’utilité. Les nœuds habituels d’un RB sont appelés des nœuds chances. On ajoute : Des nœuds de décision représentant une prise de décision Des nœuds d’utilité représentant l’utilité (coût ou degré de désirabilité) des nœuds chances influencés par les actions. Ainsi on peut modéliser des prises des décisions simples Pour des décisions complexes (séquentielles), les processus de décision de Markov sont généralement préférables. IFT615

Résumé Un RB est un graphe orienté, acyclique, représentant des connaissances causales, et reflétant les dépendances conditionnelles entre des variables. La topologie du réseau (arcs entres les variables) et les TPC donnent une représentation compacte de la distribution conjointe des probabilités. Les connaissances du réseau (liens de causalité et probabilités) sont généralement obtenus avec l’aide d’un expert. Pour des applications concrètes, ceci peut être très laborieux. Un diagramme d’influence est un réseau bayésien avec des nœuds de décision et des nœuds d’utilité. IFT615

Exemple Exemple – fichier PDF IFT615 © É. Beaudry & F. Kabanza

Réseaux bayésiens dynamiques (RBD) Comment modéliser des situations dynamiques? Les changements dynamiques peuvent être vues comme une séquence d’états, chaque état représentant la situation à un instant donné. Xt : Ensemble des variables non observables décrivant l’état au temps t. Et : Ensembles de variables observées (évidence) au temps t. Le terme dynamique réfère au dynamisme du système qu’on veut modéliser et la structure du réseau. Il existe plusieurs exemples de systèmes dynamiques dont on ne peut voir ou déterminer la séquence d’états internes avec certitude. Mais on peut observer les signaux émis par les états, toutefois avec du bruit. À partir de ces observations bruitées, on aimerait pouvoir : Prédire la dynamique (séquence d’états) du système émettant les signaux. Déterminer l’historique du système. Déterminer la probabilité de la prochaine observation. Ce sont des problèmes typiques des réseaux bayesiens dynamiques, en particulier des chaînes cachées de Markov et des filtres de Kalman que nous verrons plus loin. IFT615

RBD - Représentation Problème: Il faudrait spécifier un nombre infini de tables de probabilité conditionnelle: une pour chaque variable, dans chaque état. Chaque table pourrait impliquer un nombre infini de parents. Solution: Supposer que les changements dynamiques sont causées par un processus stationnaire - les probabilités ne changent pas dans le temps: P(Xt | Parent(Xt)) est la même pour tous les t. Supposer que les changements dynamiques sont causées par un processus markovien – l’état courant dépend seulement d’un nombre fini d’états précédents. Processus markoviens du premier ordre: P(Xt | X0:t-1) = P(Xt | Xt-1) modèle pour les transitions Supposer que l’évidence dépend uniquement de l’état courant. P(Et | X0:t ,E0:t-1) = P(Et | Xt) modèle pour les observations/capteurs En plus de restreindre les parents de la variable d’état Xt, on doit restreindre les parent de la variable d’observation/évidence Et IFT615

RBD - Illustrations Réseau bayesien dynamique (RBD) du premier ordre avec une seule variable X, répliquées dans les différents états pour modéliser la dynamique du système. Le premier exemple de RBD est aussi une chaîne de Markov. Nous les étudierons plus spécifiquement plus loin. RBD du second ordre IFT615 17

RBD Comment rendre un RBD plus précis? Augmenter l’ordre du modèle markovien. Par exemple, Raint aurait comme parents, non seulement Raint-1 mais aussi Raint-2 pour un processus markovien du second ordre. Ceci donnerait des prédictions plus précises. Augmenter le nombre de variables d’états. Par exemple, on pourrait ajouter: Une variable Seasont pour tenir compte des statistiques historiques sur les temps de pluie selon les saisons. Des variables Temperaturet , Humidityt and Pressuret pour tenir compte de la physique des conditions de pluie. IFT615 18

Types d’inférence dans un RBD Filtrage (filtering) ou monitorage/surveillance (monitoring) Prédiction, lissage Explication la plus plausible (séquence d’états) Des algorithmes pour des RBD générales existent pour chaque type d’inférence. Des algorithmes plus efficaces existent pour des cas particuliers de RBD: Chaînes cachées de Markov Filtres de Kalman Filtres de particules IFT615

Réseaux de neuronnes [McCulloch-Pitts, 1943] net = Σ wixi f(net)= +1 si net ≥ 0, -1 sinon. C.à-d. : f(net) = sign(net) n Un model mathématique simple d’un neurone, model conçu par McCulloch et Pitts en 1943. Entrée: -1 (inhibition) ou +1 (excitation) Sortie: -1 ou +1 Threshold: 0 En gros, il « s’active » lorsque la combinaison linéaire de ses entrées dépasse un certain seuil (zéro dans ce cas-ci). Un lien d’un neurone i vers le neurone j sert à propager l’activation xi du neurone i vers le neurone j. Chaque lien a un poids wi qui sert à déterminer la force de la sortie associée dans la combinaison linéaire avec les autres signaux. La fonction d’activation f est conçue pour remplir deux rôles: On veut que le neurone soit actif (≥ 0) lorsqu’une entrée correcte est donnée, inactif (<= 0) lorsqu’une entrée erronée est donnée. On veut que f ne soit pas linéaire, autrement on n’a pas besoin d’un réseau de neurones, une fonction linéaire simple ferait l’affaire. Dans le manuel de référence la fonction  « f »  est nommée « g ». i=1 IFT615

Fonction d’activation sigmoïde x= Σ wixi f(x) = 1 1+e-λx Souvent la fonction d’activation sigmoide est préférée à la fonction signe puisqu’elle est dérivable. La dérivabilité est une propriété requise pour certains algorithmes d’apprentissage. f(x) = sign(x) IFT615

Comment un RNA apprend ? Les liens entre les neurones ont des poids numériques. Un poids reflète la force, l’importance, de l’entrée correspondante. La sortie de chaque neurone est fonction de la somme pondérée de ses entrées. Un RNA apprend en ajustant ses poids itérativement jusqu’à ce que les sorties soient en accord avec les entrées. IFT615

Est-ce qu’un seul neurone peut apprendre ? Oui. Perceptron [Rosenblatt, 1958] i=1 n net = Σ wixi Paramètres xi : entrée wi : poids (nombre réel) c : pas(step) d’apprentissage:0 ≤ c ≤1 d : sortie désirée y=f(net)= sign(net) Algorithme d’apprentissage Pour chaque donnée d’entraînement, incrémenter le poids wi par : wi = c(d-y)xi Une perceptron est un réseau de neurones à une seule couche, c.à-d., les entrées sont directement connectées aux sorties. En particulier, les exemples des portes ET et OU vus auparavant sont des perceptrons à trois neurones d’entrées et un seul neurone de sortie. En général on va avoir plusieurs neurones d’entrées et plusieurs neurones de sorties dans un perceptron. L’idée de base de l’apprentissage, qui est derrière tous les algorithmes d’apprentissage des RN, est d’ajuster les poids du RN, pour minimiser une certaine mesure d’erreur sur l’échantillon d’apprentissage. Ainsi, l’apprentissage est formulée comme une recherche optimale dans l’espace des poids! La mesure de l’erreur classique est la somme des carrées des écarts qui est aussi utilisée pour la méthode des moindres carrées pour la régression linéaire: on va ajuster les poids pour minimiser la somme des carrés des écarts entre les sorties observées et les sorties désirées. IFT615

Exemple net = Σ wixi x1 x2 d 1.0 1 9.4 6.4 -1 2.5 2.1 8.0 7.7 0.5 2.2 7.9 8.4 7.0 2.8 0.8 1.2 3.0 7.8 6.1 1 c = 0.2 wi = c (d-y)xi i=1 n net = Σ wixi y=f(net)= sign(net) 1. Initialisation : w = [w1, w2, w3] = [.75, .5, -.6] 2. f(net) = sign(.75×1+.5×1-.6×1)=sign(.65)=1; w = 0.2(1-1)X= 0; donc w est inchangé. 3. f(net) = sign(.75×9.4+.5×6.4-.6×1)=sign(9.65)=1; w = -.4X; donc w = w -.4 [9.4, 6.4, 1] = [-3.01, -2.06, -1] … w = [-1.3, -1.1, +10.9]. Équation de la ligne séparant les données : -1.3x1 + -1.1x2+10.9 = 0. Ces données pourraient provenir par un exemple d’un microphone, représentant les valeurs sonores d’une voix d’une personne. On essaie alors de reconnaitre les sons représentant effectivement la voie de la personne (+1) de celle d’une autre (-1). Ou ce pourrait par exemple être les données digitalisées provenant d’un défibrillateur cardiaque. On essaie alors de classifier les données en deux pathologies différentes. Les données pourraient aussi être pour le contrôle du régime moteur d’un véhicule: x1 = régime (vitesse) d’un moteur à propulsion. x2 = température du moteur. Données calibrées sur l’intervalle [0,10]. Quand la température et la vitesse sont excessivement élevée, on veut donner une alerte : dangereux (-1) ou sécuritaire (+1). Pour les classifier, on essaie de trouver une fonction qui minimise la distance entre les données. On peut montrer que si les données sont linéairement séparable, Alors une telle fonction existe. Le perceptron montré ici permet d’apprendre la fonction. IFT615

Apprentissage d’un perceptron avec une fonction d’activation sigmoïde x1i xni f(neti) oi : sortie du neurone i di : sortie désirée pour le neurone i c : pas d’apprentissage : 0 ≤ c ≤1 wji : ajustement du poids de l’entrée j au neurone i. f ’(neti)= λ× f(neti) × (1-f(neti)) n j=1 neti = Σ wjixji oi=f(neti) = 1 1+e-λneti Algorithme d’apprentissage Pour chaque donnée d’entraînement, incrémenter le poids wji par : wji = c(di-oi)f ’(neti)xji L’algorithme est décrit dans le manuel de référence (Stuart et Russel), page 740-744. Comme pour la fonction signe, on va utiliser la méthode des moindres carrées, c.à-.d., il faut ajuster les poids du réseau des neurones pour minimiser la sommes des carrés des écarts entre les sorties obtenues et les sorties désirées. Le livre explique comment arriver à l’algorithme (page 740-744). Grosso modo: Le carré de l’erreur pour le neurone i est E=1/2 Err2=1/2 (di-oi)2 Garder à l’esprit que oi = f(neti) = 1 / 1+e-λneti On va utiliser la descente du gradient pour réduire l’erreur, en calculant la dérivée partielle de l’erreur par rapport au poids. Cela donne (di-oi)f ’(neti)xj Ainsi, on va donc ajuster le poids Wij comme suit : Wji ← Wji + c(di-oi)f ’(neti)xj L’avantage d’une fonction sigmoïdale par rapport à la fonction signe est qu’elle permet une mesure de l’erreur plus précise. Intuitivement, c (le pas d’apprentissage) détermine la grandeur des « pas » entre deux poids successives dans l’apprentissage: wi= wi_old + c*deltawi. Plus le pas est petit, l’apprentissage va être précise, mais ça va prendre plus de temps. Par contre, plus le pas est grand, plus l’apprentissage est rapide, mais on risque de manquer le minimum et on risque d’osciller au tour des minimum locaux. On trouve la valeur optimale de c par des ajustements expérimentaux. IFT615

Réseaux de neurones Exemple – Fichier pdf IFT615 © É. Beaudry & F. Kabanza

Logique du premier ordre Mettre sous forme clausale Eliminer implications Distribuer les négations Standardiser les variables Skolemisation (on enlève les quantificateurs existentiels pour les remplacer par une fonction) On enlève les quantificateurs universels On distribue les OU au lieu des ET IFT615 © É. Beaudry & F. Kabanza

IFT615 © É. Beaudry & F. Kabanza

Systèmes experts Base des connaissances Moteur d'inférence - chaînage avant Moteur d'inférence - chaînage arrière IFT615 © É. Beaudry & F. Kabanza