GNU General Public License v3.0 licensed. Source available on github.com/zifeo/EPFL.
Spring 2016: Intelligence Articielle
[TOC]
-
intelligence
- possible définition (non unanime)
- aptitude au calcul rapide
- reconnaissance de formes ou de situations
- aptitude à l'apprentissage
- aptitude à réagir à l'environnement
- capacité d'abstraction, de raisonnement et d'explication
- ne se définit pas par un processus mais par les connaissances qu'il implique
- opérations admissibles
- lois physiques
- lois, régles et normes sociales
- système basé sur les connaissances
- possible définition (non unanime)
-
intelligence artificielle
- données (structurées) : nombres, noms, adresses, tableau, DB
- connaissances = données non structurées : textuel, règles, heuristiques, expressions logiques, contraintes, probabiliste
- thèse de Chuch : tout algo est équivalent à une machine de Turing
- intelligence != algo : plusieurs réponses, aucune réponse, réponse variable
- paradigme classique : spécification -> programmation
- paradigme nouveau
- raisonnement -> comportement emergent
- incertitude -> calcul probabiliste
- exemples de bon comportement -> apprentissage
- implique : difficultés de prévoir le comportement, de garantir des résultats corrects, de savoir si le concept a été appris
- structure
- représentation de connaissances, moteurs d'inférences, raisonnement incertain
- recherche, satisfaction de contraintes, diagnostic, planification
- induction (non)-paramétrique, clustering, réseaux de neurons artificiels
- modélisation : définir quels sont les conclusions qui peuvent être tirées des connaissances, définir les méthodes pour arriver à ces conclusions
-
logique des prédicats
- symboles : objets et paramètres
- prédicats : propriétés et relations
- propositions simples : expressions logiques
- propositions composées : expressions formées par des prédicats et des connecteurs
-
inférences : à partir d'un ensemble de proposition
${P}$ on trouve une nouvelle proposition$x$ t.q. si toutes les propositions de${P}$ ,$x$ le sera aussi${P}\inf x$ - règles d'inférence
- modus ponens :
$p\rightarrow$ inférence$q$ - introduction :
$p,q\rightarrow$ inférence$p\wedge q$ - élimination :
$p\wedge q\rightarrow$ inférence$p$ , inférence$q$
- modus ponens :
- autres possiblités
- chercher selon des critères logiques
- apprendre de nouvelles connaissances
- implique : explosion combinatoire, approximation
- modes d'inférence
- déduction (= calcul) : raisonnement automatique, bien fondé, monotone (non falsiabiable dans le futur)
- A, A => B alors B
- abduction (= diagnostic): recherche d'une solution qui correspond à des critères logiques, valable que dans un monde clos
- B, A => B alors A
- induction : apprentissage de nouvelles connaissances à partir d'exemples
- déduction (= calcul) : raisonnement automatique, bien fondé, monotone (non falsiabiable dans le futur)
- règles d'inférence
-
moteur d'inférence : algo qui trouve expressions
$q$ qui sont conséquences logiques d'un ensemble de prémisse${P}\inf q$ - fondé : si
$q$ toujours une conséquence de${P}$ - complet : trouve tous les
$q$ - complet pour réfutation : trouve toutes contradictions de
${P}$ - aucun algo est fondé et complet
- couteux : en pratique, on se limite
- ensemble de faits
$F$ : propositions simples - ensemble de règles
$R$ : de forme$c_1\wedge c_2\wedge\cdots\Rightarrow$ conséquence - inférence en temps linéaire en nombre de règles
- ensemble de faits
- fondé : si
-
logique des prédicats
- conjonctive :
$a_1\wedge a_2$ - disjonctive :
$a_1\vee a_2$
- conjonctive :
-
inférence par résolution
- algo
$BD\leftarrow{P}$ - sélection deux clauses
$p_1,p_2\in BD$ - appliquer règle de résolution pour obtenir
$q:p_1\vee p_2$ - si
$q\not\in BP$ ajouter$q$ - si
$q$ correspond à une solution, stop sinon répéter 2
- fondée et complète pour la réfutation
- procédure complète pour preuves par contradiction :
$({P}\cup\neg q)\inf\bot$ - peut ne pas s'arrêter si
$q$ n'est pas une conséquence de${P}$
- algo
-
inférence par Modus Ponens :
$A\\ A\Rightarrow B\\ \inf B$ - clauses de Horn : au plus 1 proposition positive
$\neg c_1\vee \neg c_2\vee\cdots\vee c_n$ - 1 seule contradiction possible :
$\neg X$ et$X$
- traduction en clauses de Horn
- disjonction des conditions :
$A\vee B\Rightarrow C\sim A\Rightarrow C,B\Rightarrow C$ - conjonction des conclusions :
$A\Rightarrow B\wedge C\sim A\Rightarrow B, A\Rightarrow C$ - disjonction des conclusions :
$A\Rightarrow B\vee C$ pas de traduction possible
- disjonction des conditions :
- chainage : plusieurs inférences en chaine
- clauses de Horn : au plus 1 proposition positive
-
quantification
- universelle :
$\forall$ - existentielle :
$\exists$ - types
- 0ème ordre : aucun quantification
- 1er ordre : quantification sur symboles
- 2ème ordre : quantification sur symboles et prédicats (non utilisé en IA)
- fonctions de Skolem : remplacer variables avec quantification existentielles par fonction qui remplit toujours la condition
$(\exists y) p(x,y)$ en$p(x,f(x))$ - quantification universels : remplacer par variable
- unification :
$U(X,Y)$ substituer variables pour rendre$U(X)=U(Y)$ - filtrage : trouver toutes combinaisons de substitutions de variables d'un certain pattern pour rendre datum (expression sans variable) = pattern (expression avec variables)
- universelle :
- chainage avant avec variables
- expert : profonde connaissances d'un domain particulier
-
domaine d'expert
- grand nombre d'opérations possibles : recherche inefficace
- analyse des moyens-buts : heuristique pour limiter la recherche
-
système expert : programme qui reproduit le raisonnement d'un expert
- inférence par modus ponens en chainage arrière :
$F_1\Rightarrow^{R_1}\cdots\Rightarrow^{R_n}solution$ avec les règles$R_i$ - début d'inférence : but
- maintient d'un agenda des buts et évolue grâce aux sous-buts
- chaque sous-but possède son environnement
- arrêt d'inférence : plus de buts à satisfaire
- inférence par modus ponens en chainage arrière :
-
chainage arrière
$\iff$ génération de sous-buts : similaire à general problem solver (GPS) - chainage avant vs arrière : beaucoup de données différentes vs beaucoup de résultats produits
- explication du raisonnement : conclusions et questions posées
- logique non-monotone : inférence ne reste pas toujours valable, problème théorique
- traitement de l'incertitude : non modélisable par des clauses de Horn, imprécision de modélisation, information insuffisante
-
raisonnement incertain : associer à chaque proposition une représentation numérique de l'incertitude
- réseaux Bayesien : chiffres sont estimation sur la base de l'ensemble des observations, facile mais causal
- logique floue : validité des prédicats suit une distribution de possiblité (pourcentage de gens qui diraient que la proposition tient), facile mais sans base théorique, bonne pour l'imprécision
- raisonnement probabilistique : difficile à appliquer
-
facteur de certitude (
$CF$ ) : associé à chaque assertion et règle entre$-1$ et$1$ - nombres flous
-
inférence probabiliste :
$p(B)=p(B|A)p(A)+p(B|\neg A)(1-p(A))$ -
complexité : tenir compte des dépendances partout,
$2^p$ avec$p$ propositons, besoin de se limiter aux causes directes, exponentiel en temps et en mémoire, donné par la largeur de l'ordre causal -
causalité : cause > effet
$\iff$ parent > descendant -
independance :
$p(C|A)=p(C|\neg A)=p(C)$ -
marginalisation :
$p(C|A)=p(C|B)p(B|A)+p(C|\neg B)(1-p(B|A))$ - descendants multiples : pas besoin de connaitre la distribution jointe
- causes multiples : distribution jointe nécessaire, dépendance conditionelle, si parent indépendant ils deviennent dépendant si l'enfant est connu
-
inférence abductive : multiple cause
$p(B|Y_1,\ldots,Y_k)=\alpha p(B)\Pi_{i=1}^kp(Y_i|B)$ - résolution stochastique
-
algo de recherche : trouver une solution dont l'évaluation remplit des critères de succès
- noeuds de recherche : état courant
- fonction de successeur : liste des noeuds atteingables de
$n$ , espace de recherche - critère de succès : condition de terminaison, peut être noeud final ou chemin au noeud final (moindre coût)
- recherche en profondeur d'abord (DFS) : peu descendre très loin dans un chemin inutile, peu de mémoire
- recherche en largeur d'abord (BFS) : mémoire exponentiel, trouve toujours chemin le plus court
-
optimisation de coûts : minimiser le coût augmenté à chaque génération
$g(n)=c(n',n)+g(n')$ où$n$ est sucesseur de$n'$ -
recherche heuristique : guider la recherche pour explorer d'abord les solutions les plus prometteuses
- fonction heuristique :
$h(n)=$ estimation du coût minimal, trouver l'heuristique en simplifiant le problème - estimation du coût du chemin :
$f(n)=g(n)+h(n)$
- fonction heuristique :
-
A*
- optimalité :
$h(n)=0$ noeud exploré dans l'ordre de leur coût, trouve toujours la solution optimal tant que$h(n)$ ne surestime pas le vrai coût - complexité : exponentiel dans la longueur de la solution, polynomial en nombre de noeurds exploré si $|h^(n)-h(n)|\le O(\log(h^(n))$ avec
$h^*(n)$ coût réel
- optimalité :
-
limitations de mémoire : queue A* très longue
- beam search : garder les
$n$ meilleurs noeuds seulement, jamais explorer les autres - iterative deepening : effectuer un depth-first search jusqu'à un certain seuil de la fonction d'évaluation, incrémenter par petites quantités uniquement
- memory-bounded : oublier et regénérer des noeuds
- traitement des cycles : si chemin déjà étendu, mettre à jour les succésseurs si meilleur
- critère de monotonicité : éviter le réarrangement causé par les cycles, garanti par
$h(n_1)-h(n_2)\le c(n1,n2)$ - simuler DFS :
$g(n)=0$ et$h(n)=$ ordre dans$succ(n)$ - simuler BFS :
$g(n)=$ longueur du chemin et$h(n)=0$
- beam search : garder les
-
temps de calcul : imprévisible, dépend de l'ordre d'exploration
- minimal : longueur du chemin à la solution
- maximal : exploration de tout le graphe
-
satisfaction de contraintes (CSP) : ordonnancement, planification
- variables :
$X={x_1,\ldots, x_n}$ - domaines discrets :
$D_1,\ldots,D_n$ des variables - contraintes :
$C={c_1(x_k,x_l,\ldots),\ldots,c_m}$ - solutions : trouver
${x_1=v_k,\ldots,x_n=v_o}$ satisfaisant toutes les contraintes
- variables :
- réseau de contraintes : satisfaction de contraines binaires
- contraintes non binaire : projection, variable supplémentaire, graphe dual pour ramener à un problème binaire
- generate-and-test : brute forcer tous les combinaisons, exponentiel en nombre de variables
- CSP par recherche
- recherche systematique
-
ordre des variables : heuristique d'ordre
- dynamic variable ordering (DVO) : prendre la variable dont le label est le plus petit
- min-width ordering : prendre la variable qui a des contraintes avec le moins de variables ouvertes
- max-degree ordering : prendre la variable la plus connecté dans le PSC original
- DVO + tiebreaking avec min-width : optimal
-
consistance : important de connaitre le temps requis, possible dans certaines topologies
- consistance partielle : solution en 2 temps, éliminer combinaisons/valeurs/contraintes inconsistantes, effectuer la recherche dans l'espace reduit
- propagation locale : algo de Waltz, appliquer un opérateur de raffinement à chaque contrainte jusqu'à qu'il n'y ait plus de changement, binaires discrets et label requis
- complexité Waltz :
$O(e\cdot n\cdot d)$ ou optimisé$O(n^2d)$ - contraintes :
$e$ - variables :
$n$ - taille maximale de domaines :
$d$
- contraintes :
- CSP arbre : pas de cycle, consitance des arcs garantis sans retour arrière, assigner une valeur à la racine, forcément des valeurs consistances, récursif
- cycle : peut satisfaire consistance des arbes, mais pas de solution, car consistance des arcs est binaire
- recherche local : assigination initial, modifier jusqu'à ce que toutes les contraintes soit satisfaites, toujours exponentiel
-
diagnostic : trouver composantes défaillantes
- modèle du système : MS
- ensemble d'observations : OBS
- ensemble compostantes défectueuses : CAND à calculer
-
comportement défaillant :
$MS\cup OBS\inf \bot$ (contradiction)- candidat explique observations :
$MS\cup CAND\inf OBS$ - candidat rend observations consistentes :
$(MS-CAND)\cup OBS\inf\not\bot$ - pas de clauses de Horn : meilleur approche avec adbuction d'une simulation
- candidat explique observations :
-
abduction explicite : par recherche, complexité élevée, BFS ou A* si heuristique claire
- noeud de recherche : ensemble de défauts
- noeud initial : ensemble vide
- fonction de successeur : ajouter un défaut
- termination : quand les défauts permettent de déduire les observations
- transformation en deduction
- raisonnement incertain : évite monde clos et système spécialisé, choix de certitude peu clair
-
diagnostic par consistance : prédire les observations
- symptôme : différence entre prévision et mesure ou 2 prévisions
- conflict des justifications des symptômes : au moins une des composantes doit être défectueuse
- candidats : si minimaux aucun sous-ensemble est déjà candidat
- évaluer les candidats :
$P(C)=\Pi_{c\in D}P(c)\Pi_{c\in N}(1-P(c)$ avec$D$ composantes défectueuses et$N$ non-défectueuses - entropie des mesres : incertitude quant à la valeur mesurée
$E(var_i)=-\sum_k p(var_i=val_{ik})\log(p(var_i=val_{ik}))$ , choix de l'entropie la plus elevée - probabilité des valeurs :
$p(var_i=val_{ik})=\sum_{c\in P_{ik}}p(c)+\sum_{c\in U_i}p(c)/m$ avec$P_{ik}$ ensemble des candidats qui prédisent valeur$k$ pour mesure$i$ et$U_i$ prédisent aucune valeur pour$i$ - probabilité des candidats : normaliser pour
$\sum_{CAND} p(CAND)=1$
-
planification automatique
- ensemble d'opérateurs
- état initial
- conditions qui doivent être satifaites
- état : conjonction d'expressions en calcul de prédicats qui doivent être vrais
- plan : séquence d'action/transformation
- Chapman : si l'ensemble de situations est illimité, la planification n'est pas décidable
-
opérateurs STRIPS : transformation
$S_i\Rightarrow S_{i+1}$ - préconditions
$P$ : propositions qui doivent être vraies dans$S_i$ - postconditions
$A$ (add) : propositions qui sont réalisées$S_{i+1}$ - suppressions
$D$ (delete) : propositions qui ne sont plus vraies$S_{i+1}$ - axiome de cadre : propositions non-mentionnées dans les suppressiosn restent valables
- préconditions
-
planification linéaire : chainage arrière à partir du but avec arbre de recherche
- problème de variable : on ne connait pas toujours toutes les varibles pour instancier un opérateur en chaine arrière
- inconsistance : éliminer au plus vite
- planification A*
-
anomalie de Sussman : si l'un des buts empêche un autre suivant l'ordre
- planification non-linéaire : plusieurs buts indépendant, action en parallèle jusqu'à combination- plans : ordres partiels
- least committment : ne pas faire de choix avant que ce soit vraiment nécessaire
- pour chaque action on associe une variable booléenne : action à cette étape ou non
- dernière étape : aucune action possible
- variable d'état : pour chaque proposition possible de STRIPS et chaque étape, il existe une variable booléenne
- si valeur change, il y a une action qui en est responsable
- contrainte d'exclusion : mutex entre actions tels que l'une affecte la précondition de l'autre
-
planification et raisonnement temporel
- précédence : opérateur qui satisfait précondition d'un autre doit venir avant
- ressource : deux opérations qui utilisent la même ressource ne peuvent se chevaucher
- planification hiéarchique : réduire complexité par plusieurs niveaux d'abstractions
-
validité de l'induction
- monde clos
- plus d'exemples considérées plus fiable
- théorie de l'apprentissage : quantitifie le nombre d'exemples nécessaires pour garantir la qualité
- données : troisième type de ressource (avec temps et mémoire)
-
apprentissage
- supervisé : modèle à partir d'exemples classifiés
- non-supervisé : modèle en regroupant exemples similaires
- traits : feature, l'utilité des traîts peut parfois se reveler uniquement dans leur combinaison
-
classification : appartenance à une classe
- ensemble
$P$ d'instance d'un concept - ensemble
$N$ de non-instance - trouver description du concept qui couvre uniquement
$P$
- ensemble
-
classification simple : paramétrisé
$f(x)>0$ , approximation par regression$=f(x)$ , frontière de décision - classification structurée : non-paramétrisé, décomposition et classification paramétrique pour les sous-ensembles, arbres de décision, boosting (combinaison pondérée de classification)
- frontières de décisions linéaires
- perceptron
- descente de gradient stochastique : classification erronée, correction du vecteur
- support vector machines : SVM
- regression : valeur d'un attribut
-
moindres carrées : optimal, minimise
$\sum L_i^2$ où$L_i$ distance endroit la droite et le point$i$ - overfitting : biais du modèle, variance de l'apprentissage (erreur d'observation)
-
régularisation
- optimisation
$\ln(p(X\mid W))$ produit coefficients extrêmes : reégularisateur les rendent peu probables - autre régularisateur courant :
$\sum_k w_k$ (distribution exponentielle)
- optimisation
- classification par régression
-
classification disjonctives : admettre des hypothèses
$h$ non satisfaites par tous exemples positifs -
listes de décisions : admettre des hypothèses
$h$ satisfaites par certains exemples négatifs - description disjonctives : difficle de trouver description qui admet aucun exemple négatif
- représentation par exceptions
-
arbre de classification : chaque noeud spécifie un prédicat qui détermine gauche (vrai) ou droite (faux)
- ID3 : construction de l'arbre pour
$k$ classe - formaliser l'incertitude par l'entropie
- valeurs multiples : choisir
$A$ pour maximiser$\frac{H(C)-H(C\mid A)}{|valeurs(A)|}$ , diviser réduction d'incertitude par le nombre de branches générées - alternatives à l'entropie
- variance des sous-classes :
$1/n\sum^n_{i=1}(c_i-\bar c)^2$ - fraction d'exemples n'appartenant pas à la classe la plus fréquente
$c_i$ :$|c_j|/n$
- variance des sous-classes :
- estimer la qualité (ou overfitting)
- gardant une partie des exemples pour évaluer le taux d'erreur
- ID3 : construction de l'arbre pour
-
PAC : chiffer la qualité = relation entre
$N$ exemples,$|H|$ possibilités,$\delta$ et$\epsilon$ -
élaguer l'arbre : décision proche de feuille sont basées sur très peu d'exemples, tailler
- selon taux d'erreur : en utilisant un nouveau jeu d'exemples
- hypothèses d'indépendance des erreurs : statistique permet d'estimer la fréquence d'erreurs de l'arbre
- élaguer quand nombre erreurs introduti par l'élagage est inférieur au nombre d'erreurs sans
-
transformation arbre en règle : séquence de parcours
- simplifier une règle à la fois
- parfois toléré des exemples couverts incorrectement : élimine le bruit
- boosting : combiner plus techniques pour améliorer la précision
-
clustering : apprentissage de sous-classe, criète d'homogeneité
- regrouper en aggrégats homogène
- base : mesure de distance
$d(x_1,x_2)$ entre deux exemples - étape
- représentation des exemples
- mesure de similarité : définition de proximité
- regroupement d'exemples
-
clustering hiérachique : différents niveaux
- complexité :
$n$ objets,$m$ attributs, au moins$O(n^2m)$ - dendrogramme : représente regroupements d'exemples et niveaux de similarité
- par agglomération :
- par division : graphe de similarité
- noeuds : instance
- arcs : paires de noeuds dont similarité dépasse un seuil
- poids d'un arc : similarité entre instance
- division : couper les arcs les plus faibles et considerer les compostantes connexes
- arbre couvrant minimal MST : single link, transitif, sensible aux erreurs d'instance, pas d'équilibre
- coupes à poids minimal
- coupe spectrale : pour
$k>2$ instance, trier les valeurs propres dans l'ordre croissant$e_1\le e_2\le\cdot$
- complexité :
- clustering de partitionnement : partition unique
- cluster flou : probabilité d'appartenir à un cluster
- apprentissage semi-supervisé : utiliser données supplémentatires pour améliorer un apprentissage supervisé
- réseau de neuron artificiel
- neuron
- fonction d'activation
-
entrainement
- adaptation de l'algo du perceptron : itérativement passer des exemples alléatoires et corriger les poids
- rétropropagation : à chaque prévision rétropropager l'erreur aux couches cachées
- optimization par descente de gradient : ajuster les poids selon le gradient pour réduire l'erreur de classification
- forme du gradient
-
deep learning
- nombreuses couches cachées : par ex. 30
- backpropagation
- nécessicite beaucoup de données : convergance difficile
- imprévisibilité : qualité non garantie
- perceptron : discrimination de fomres simplements séparables
- multicouche : frontières plus complexes
- gradient disparaissant
-
minima locaux
- introduire une variation alléatoire
- dropout : enlever quelques neurones du calcul du gradient aléatoirement
-
algorithm génétiques : apprentissage par découverte
- population initiale de
$n$ solutions potentielles : chromosomes - fonction d'évaluation d'une solution
- génèrer de nouvelles solutions
- mutation aléatoire
- combinaison de deux solutions : empêche minima locaux
- prochain génération
-
$k$ solution ayant la fonction d'évaluation la plus élevée -
$n-k$ solutions choisies au hasard parmi les autres
-
- population initiale de
-
diversité : combinaison uniquement utilise si bonne diversité
- degrée d'individualisme :
$g(s)=\frac{1}{\sum_i\frac{1}{d^2(s,s_i)}}$ avec$f(s)+g(s)$ comme nouvelle fonction d'évaluation ($f(s)$ était la fonction originel)
- degrée d'individualisme :
-
généralisation
- génération de nouvelles instances
- évaluation de l'intérêt : heuristique
-
apprentissage automatique
- promesse : remplacer la modélisation et programmation par l'apprentissage
- limitation : surapprentissage, données insuffisantes, imprévisible
- théorie : PAC, pas de garantie
- ingenierie
- beaucoup de données : deep learning
- utiliser connaissances pour réduire la complexité :
- modélisation, selection des traits : apprentissage supervisé
- imposer des contraintes : apprentissage non-supervisé