La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

IFT 615 Intelligence Artificielle

Présentations similaires


Présentation au sujet: "IFT 615 Intelligence Artificielle"— Transcription de la présentation:

1 IFT 615 Intelligence Artificielle
Jean-François Landry Département d’informatique Université de Sherbrooke Révision – Examen final

2 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

3 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

4 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 T F F T F F Alarme MarieAppelle JeanApelle A P(M|A) T F A P(J|A) T F IFT615

5 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 T F F T F F A P(J|A) T F A P(M|A) T F P(C) .001 P(S) .002 IFT615

6 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

7 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

8 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

9 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 T F F T F F A P(J|A) T F A P(M|A) T F P(C) .001 P(S) .002 Voir la note 5 en bas de la page 505 dans le livre. IFT615

10 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 =α ( ) Et C = false = α Σs,a P(┐c)P(s)P(a| ┐c,s)P(j|a)P(m|a) = α ( ) α = 1/( ) Donc, P(C | j, m) = [0.284, 0.716] Cambriolage Séisme Alarme JeanApelle MarieAppelle C S P(A|C,S) T T T F F T F F A P(J|A) T F A P(M|A) T F 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) = et P(C=false | j, m) = Refaire les calculs et vérifier. IFT615

11 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

12 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

13 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

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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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

23 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

24 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.3x x = 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

25 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 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 ). 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

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

27 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

28 IFT615 © É. Beaudry & F. Kabanza

29 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


Télécharger ppt "IFT 615 Intelligence Artificielle"

Présentations similaires


Annonces Google