propositions vraies ou fausses, consignées dans des manuels, des bases de données
Salée(MerMéditerranée)Cours 1 · 2026–2027
Les fondements de l'IA
Représenter le monde, raisonner dessus, agir — puis apprendre.
John Samuel · CPE Lyon
Intelligence artificielle et Deep Learning
Logique · Connaissances · Agents · Apprentissage
∀x (Eau(x) ∧ Sable(x))
⇒ Mer(x)une règle, un solveur, une décision — le fil du cours
Fil rougeUn même exemple — reconnaître une image de mer — traverse logique, solveur et agents.
notes
Intelligence artificielle et Deep Learning — Introduction à l'Intelligence Artificielle (IA)
John Samuel, CPE Lyon · Année 2026-2027 · Courriel : john.samuel@cpe.fr
Enseignant-chercheur, Conception logicielle et Big Data. Recherche : représentation de connaissances, web sémantique, services web, intégration de données, entrepôts de données, systèmes distribués, SIG.
Ce cours est sous licence CC BY-SA 4.0.
Touches : ← → pour changer de diapositive, n pour les notes, r pour le mode lecture (toutes les diapositives et leurs notes).
Organisation
Un cours en trois temps, un projet évalué
Chaque séance mêle cours et travaux pratiques.
3 TP pour pratiquer et préparer le projet, sans notation.
Seul le projet est évalué. Les dates limites de soumission sont précisées sur e-campus.
À retenir Le projet constitue 100 % de l’évaluation du cours.
notes
Le projet constitue 100 % de l’évaluation du cours.
Objectifs
Le deep learning est un sous-ensemble de l'apprentissage machine
- Cours 1
- Introduction à l'IA — logique, connaissances, agents.
- Cours 2–3
- Apprentissage machine et profond — du perceptron aux réseaux convolutionnels et récurrents.
- Cours 4–5
- Applications — langage naturel, vision, et annexes historiques.
ObjectifSavoir situer chaque méthode : symbolique, statistique ou neuronale — et choisir la bonne.
notes
- Objectifs du cours : introduction à l'Intelligence Artificielle (IA), apprentissage machine, apprentissage profond, applications de l'IA.
- La figure reprend le schéma « position du deep learning » : l'apprentissage profond est un sous-ensemble de l'apprentissage machine, lui-même un sous-ensemble de l'intelligence artificielle.
Plan du cours 1
Cinq briques, de la logique à l'apprentissage
Propositions, prédicats, modalités ; un solveur (Z3) qui décide.
∧ ∨ ¬ ∀ ∃ □ ◇Types de connaissances, faits, ontologies.
classes · relationsLa boucle perception – raisonnement – action et ses variantes.
percepts → actionsSupervisé, non supervisé, semi-supervisé.
étiquettesPourquoi plusieurs couches.
XOR · couchesLectureDe gauche à droite, on passe de règles écrites à la main à des règles apprises des données.
notes
- 1. Les fondements de l'IA : 1.1 Logique et raisonnement ; 1.2 Représentation des connaissances ; 1.3 Agents intelligents ; 1.4 Apprentissage machine ; 1.5 Apprentissage profond.
1.1 · Logique et raisonnement
Trois logiques, chacune étend la précédente
- P ∧ Q
- Propositionnelle — des faits vrais ou faux, combinés par des connecteurs.
- ∀x Mer(x)
- Premier ordre — des objets, des relations entre eux, des quantificateurs.
- □ ◇
- Modale — ce qui est nécessaire, possible, ou cru par un agent.
- ⊢
- Raisonnement automatisé — un programme déduit de nouvelles informations des connaissances existantes.
RègleChoisir la logique la moins expressive qui suffit : plus expressive = plus coûteuse à décider.
notes
- Logique propositionnelle : système formel qui permet de représenter et d'évaluer des propositions en utilisant des connecteurs logiques (comme ET, OU, NON) pour déterminer leur vérité.
- Logique du premier ordre (logique des prédicats) : extension de la logique propositionnelle qui permet de représenter des propositions plus complexes en introduisant des variables, des constantes, des fonctions et des prédicats.
- Logique modale : extension de la logique qui permet de représenter des notions de possibilité, de nécessité, de croyance et d'autres modalités.
- Raisonnement automatisé : utilisation de systèmes informatiques pour effectuer des inférences logiques et déduire de nouvelles informations à partir de connaissances existantes.
- Problèmes de décision et résolution de problèmes : situations où une décision doit être prise parmi plusieurs options possibles, généralement sous contraintes. La résolution de problèmes implique la recherche d'une solution en utilisant des méthodes algorithmiques ou heuristiques pour atteindre un objectif spécifique.
1.1 · Logique et raisonnement
Raisonner, c'est déduire ; décider, c'est choisir sous contraintes
Déduire du nouveau
Le raisonnement automatisé fait référence à l'utilisation de systèmes informatiques pour effectuer des inférences logiques et déduire de nouvelles informations à partir de connaissances existantes.
Exemple : de ∀x (Eau(x) ∧ Sable(x) ⇒ Mer(x)) et Eau(img1), Sable(img1), déduire Mer(img1).
Choisir parmi des options
Les problèmes de décision se réfèrent à des situations où une décision doit être prise parmi plusieurs options possibles, généralement sous contraintes.
La résolution de problèmes implique la recherche d'une solution à un problème donné en utilisant des méthodes algorithmiques ou heuristiques pour atteindre un objectif spécifique.
LienUn solveur comme Z3 (plus loin) fait les deux : il déduit, et il décide si un ensemble de contraintes admet une solution.
notes
- Raisonnement automatisé : utilisation de systèmes informatiques pour effectuer des inférences logiques et déduire de nouvelles informations à partir de connaissances existantes.
- Problèmes de décision et résolution de problèmes : situations où une décision doit être prise parmi plusieurs options possibles, généralement sous contraintes ; la résolution de problèmes cherche une solution par des méthodes algorithmiques ou heuristiques pour atteindre un objectif spécifique.
1.1 · Logique propositionnelle
Six connecteurs suffisent pour composer des propositions
| P | Q | ¬Pnon | P ∧ Qet | P ∨ Qou | P ⊕ Qou exclusif | P ⇒ Qimplication | P ⇔ Qéquivalence |
|---|---|---|---|---|---|---|---|
| V | V | F | V | V | F | V | V |
| V | F | F | F | V | V | F | F |
| F | V | V | F | V | V | V | F |
| F | F | V | F | F | F | V | V |
PiègeP ⇒ Q est vrai dès que P est faux : une implication ne dit rien quand sa prémisse ne tient pas.
notes
- Les propositions sont des déclarations qui peuvent être vraies (V) ou fausses (F). Avec deux propositions simples P, Q, les connecteurs logiques construisent des propositions plus complexes.
- NON (¬) : la négation inverse la valeur de vérité. Si P est vrai, NON P est faux, et inversement.
- ET (∧) : vrai seulement si toutes les propositions connectées sont vraies.
- OU (∨) : vrai si au moins l'une des propositions est vraie ; faux si les deux sont fausses.
- XOR (⊕) : vrai si une seule des propositions est vraie, mais pas les deux.
- Implication (⇒) : la vérité de la première proposition entraîne la vérité de la seconde. Si P est faux, P ⇒ Q est toujours vrai, car il ne dit rien sur Q.
- Équivalence (⇔) : deux propositions ont la même valeur de vérité dans toutes les situations.
1.1 · Logique propositionnelle
Chaque connecteur tient en une phrase
À retenirLes propositions sont des déclarations vraies (V) ou fausses (F) ; les connecteurs en construisent de plus complexes.
notes
- Les propositions dans la logique propositionnelle sont des déclarations qui peuvent être vraies (V) ou fausses (F). Supposons que nous ayons deux propositions simples : P, Q. Nous pouvons utiliser des connecteurs logiques pour créer des propositions plus complexes à partir de ces propositions simples.
1.1 · Logique propositionnelle · exemple
Deux photos, une question : est-ce la mer ?


Étape 1Nommer les faits observables : ici P et R sont vrais, Q et S faux — pour les deux photos.
notes
- Supposons que nous ayons quatre propositions simples : P, Q, R et S. P : présence de l'eau. Q : présence de sable. R : présence d'oiseaux marins. S : présence de bateaux.
- Photos : Sea gull, Marseille et Sea Gull, Venice Beach, Wikimedia Commons.
1.1 · Logique propositionnelle · exemple
Quatre propositions suffisent à décrire une plage
Mer ⇔ (P ∧ Q) ∨ (P ∧ R) ∨ (P ∧ S)l'eau est nécessaire ; sable, oiseaux ou bateaux suffisent à confirmer
Étape 2Une règle propositionnelle ne parle que de faits fixés : elle ne sait rien de « cette image » en particulier.
notes
- Avec ces propositions, nous pouvons définir des règles pour déterminer si une image représente la mer : si l'eau est présente (P), il est possible que l'image soit celle de la mer ; le sable (Q) renforce la probabilité d'une plage de mer ; des oiseaux marins (R) renforcent également la probabilité d'une scène liée à la mer ; des bateaux (S) suggèrent une forte probabilité de scène maritime.
- Nous pouvons utiliser des opérateurs logiques pour combiner ces propositions : Image de la mer : (P ET Q) OU (P ET R) OU (P ET S).
1.1 · Logique propositionnelle · Python
En Python, la règle devient un objet que l'on évalue
from propositional_logic import * # les propositions P = Proposition("L'eau est présente") Q = Proposition("Il y a du sable") R = Proposition("Des oiseaux marins sont présents") S = Proposition("Des bateaux sont visibles") # la règle image_de_la_mer = Or(Or(And(P, Q), And(P, R)), And(P, S)) # une photo : eau et sable, ni oiseaux ni bateaux P.value, Q.value, R.value, S.value = True, True, False, False print(image_de_la_mer.evaluate())
| And(P, Q) | True |
| And(P, R) | False |
| And(P, S) | False |
| Or(…) | True |
La règle est un arbre d'objets ; evaluate() le parcourt avec les valeurs courantes.
Étape 3Changer les valeurs, pas la règle : la connaissance (la règle) est séparée des faits (les valeurs).
notes
from propositional_logic import * # définir les propositions P = Proposition("L'eau est présente") Q = Proposition("Il y a du sable") R = Proposition("Des oiseaux marins sont présents") S = Proposition("Des bateaux sont visibles") # définir les propositions composées rule1 = And(P, Q) rule2 = And(P, R) rule3 = And(P, S) # définir la proposition principale image_de_la_mer = Or(Or(rule1, rule2), rule3) # évaluer des propositions P.value = True Q.value = True R.value = False S.value = False print(image_de_la_mer.evaluate()) # Sortie: True
1.1 · Logique propositionnelle · Python
La même grammaire décrit une ville
from propositional_logic import * # Définir les propositions A = Proposition("Des immeubles sont présents") B = Proposition("Des voitures sont présentes") C = Proposition("Des piétons sont présents") D = Proposition("Des feux de circulation sont visibles") # Définir les règles ville = Or(Or(And(A, B), And(A, C)), And(A, D)) # Définir les valeurs des propositions A.value = True B.value = True C.value = False D.value = False # Évaluer la valeur de la proposition "ville" print(ville.evaluate())
Des immeubles (A) sont nécessaires ; voitures, piétons ou feux confirment. Le patron est celui de la mer : (A ∧ B) ∨ (A ∧ C) ∨ (A ∧ D).
À retenirMême structure de règle, autre vocabulaire : la logique ne sait pas ce qu'est une ville, seulement comment combiner des faits.
notes
- Ville : A immeubles, B voitures, C piétons, D feux de circulation ; ville = Or(Or(And(A, B), And(A, C)), And(A, D)). Avec A et B vrais, C et D faux, ville.evaluate() renvoie True.
1.1 · Logique propositionnelle · Python
Onze propositions pour recommander une image
from propositional_logic import * A = Proposition("L'utilisateur aime l'image actuelle") B = Proposition("L'image actuelle est un portrait") C = Proposition("L'image actuelle est une œuvre abstraite") # … D à K sur le même modèle
Étape 1Un système de recommandation commence par nommer ce qu'il sait de l'utilisateur et de l'image.
notes
from propositional_logic import * # Définir les propositions A = Proposition("L'utilisateur aime l'image actuelle") B = Proposition("L'image actuelle est un portrait") C = Proposition("L'image actuelle est une œuvre abstraite") D = Proposition("L'utilisateur a aimé une œuvre similaire par le passé") E = Proposition("L'image est en noir et blanc") F = Proposition("L'image est en couleur") G = Proposition("L'utilisateur préfère les œuvres d'art réalistes") H = Proposition("L'image est une peinture réaliste") I = Proposition("L'utilisateur a aimé les œuvres de cet artiste dans le passé") J = Proposition("L'utilisateur n'aime pas les images très saturées") K = Proposition("L'image a une saturation élevée")
1.1 · Logique propositionnelle · Python
Deux règles de recommandation, avec XOR et implication
# 2. Si l'image est soit un portrait soit une œuvre # abstraite (mais pas les deux), et que l'utilisateur # préfère les œuvres réalistes, alors il n'aimera pas # l'image actuelle. recommandation_abstrait_ou_portrait = Implication(Xor(B, C), Not(G)) B.value = True C.value = False G.value = True print(recommandation_abstrait_ou_portrait.evaluate()) # False : B ⊕ C est vrai, ¬G est faux
# 6. Si l'utilisateur préfère les œuvres réalistes ou a # aimé des œuvres similaires dans le passé, alors il # n'aimera pas une œuvre abstraite (implication avec OU). recommandation_non_abstrait = Implication(Or(G, D), Not(C)) G.value = True D.value = False C.value = False print(recommandation_non_abstrait.evaluate()) # True : G ∨ D est vrai, ¬C est vrai
LimiteLa logique propositionnelle ne parle que de faits entiers ; pour dire « toutes les mers sont salées », il faut des variables.
notes
- Règle 2 : Implication(Xor(B, C), Not(G)) — avec B vrai, C faux, G vrai, l'évaluation renvoie False (la prémisse B ⊕ C est vraie mais la conclusion ¬G est fausse).
- Règle 6 : Implication(Or(G, D), Not(C)) — avec G vrai, D faux, C faux, l'évaluation renvoie True.
- La logique propositionnelle ne parle que de faits entiers ; pour dire « toutes les mers sont salées » il faut des variables : la logique du premier ordre.
1.1 · Logique du premier ordre
Six notions composent le premier ordre
Variables
Symboles qui représentent des objets ou des éléments non spécifiés d'un domaine. Elles sont utilisées pour généraliser des expressions et représenter des objets de manière générique.
Constantes
Symboles qui représentent des objets spécifiques et immuables d'un domaine.
Fonctions
Opérations qui prennent un ou plusieurs arguments et renvoient un résultat.
Prédicats
Expressions qui décrivent des relations entre des objets ou des propriétés de ces objets.
Quantificateurs
« Pour tout » (∀) et « il existe » (∃) spécifient la portée des variables dans une expression.
Opérateurs logiques
ET, OU, NON, implication et équivalence combinent des propositions et construisent des formules plus complexes.
Règle d'écritureUtilisez des parenthèses pour indiquer la priorité des opérations et la structure de la formule.
notes
- Contrairement à la logique propositionnelle, qui traite uniquement de la vérité ou de la fausseté de propositions simples, la logique du premier ordre permet de représenter des informations structurées sur des objets et leurs relations. Voici quelques concepts clés de la logique du premier ordre : variables, constantes, fonctions, prédicats, quantificateurs, opérateurs logiques.
1.1 · Logique du premier ordre
Le premier ordre parle d'objets et de relations
À retenirUne seule règle quantifiée remplace une proposition par image : c'est ce que la propositionnelle ne peut pas faire.
notes
- Un objet x (une image), des prédicats vrais ou faux pour chaque x, une règle qui en déduit EstMer(x) ; ∀x pour toute image, ∃x il existe au moins une image.
1.1 · Logique du premier ordre
Le vocabulaire du premier ordre, sur l'exemple des mers
| Élément | Rôle | Exemple | Renvoie |
|---|---|---|---|
| Variable | un objet non spécifié du domaine | x — n'importe quelle mer | — |
| Constante | un objet précis et immuable | MerMéditerranée, MerNoire, MerRouge | — |
| Fonction | attribue une valeur à un objet | Profondeur(x) · Profondeur(MerMéditerranée) | une valeur (5 267 m) |
| Prédicat | exprime une propriété ou une relation | Salée(x) · Salée(MerMéditerranée) | vrai / faux |
| Quantificateur | fixe la portée d'une variable | ∀x Salée(x) · ∃x Superficie(x) > 100 000 km² | vrai / faux |
DistinctionUne fonction renvoie une valeur ; un prédicat renvoie un booléen. Les règles ne portent que sur des prédicats.
notes
- Exemple — Variables : « x » peut représenter n'importe quelle mer. Constantes : « Mer Méditerranée », « Mer Noire », « Mer Rouge ». Fonctions : « Profondeur(x) » représente la profondeur de la mer x ; « Profondeur(Mer Méditerranée) » renvoie la profondeur de la mer Méditerranée.
- Prédicats : « Salée(x) » indique si une mer donnée est salée ; « Salée(Mer Méditerranée) » est vrai. Quantificateurs : « ∀x Salée(x) » — toutes les mers sont salées ; « ∃x Superficie(x) > 100 000 km² » — il existe une mer dont la superficie dépasse 100 000 km².
- Les fonctions attribuent des valeurs à des objets ou effectuent des opérations ; les prédicats expriment des relations ou des propriétés et renvoient une valeur booléenne.
1.1 · Logique du premier ordre · exemple
Sur les images : deux constantes, une variable, quatre prédicats
| Élément | Dans l'exemple des images | Sens |
|---|---|---|
| Constantes | img1, img2 | les noms d'images spécifiques ou d'autres identifiants uniques pour des images particulières |
| Variable | x | une image générique |
| Prédicats | ContientEau(x) · ContientSable(x) | l'image x contient de l'eau · du sable |
| ContientBateaux(x) · ContientOiseauxMarins(x) | l'image x contient des bateaux · des oiseaux marins | |
| Quantificateurs | ∃x · ∀x | il existe une image · pour toutes les images — la portée de nos règles |
Étape suivanteAvec ce vocabulaire, les règles de la mer s'écrivent une fois pour toutes les images.
notes
- Utilisons l'exemple des règles pour confirmer qu'une image représente effectivement une mer. Constantes : noms d'images spécifiques ou identifiants uniques. Variable : « x » pour une image générique. Prédicats : ContientEau(x), ContientSable(x), ContientBateaux(x), ContientOiseauxMarins(x). Quantificateurs : « ∃x » (il existe une image) ou « ∀x » (pour toutes les images).
1.1 · Logique du premier ordre · exemple
Trois règles quantifiées décrivent nos images
À retenir∀ énonce une règle générale ; ∃ affirme un fait. Un solveur va chercher un monde où tous tiennent ensemble.
notes
- Reprenons l'exemple des règles pour confirmer qu'une image représente une mer. Constantes : noms d'images spécifiques ou identifiants uniques. Variables : « x » pour une image générique.
- Prédicats : ContientEau(x), ContientSable(x), ContientBateaux(x), ContientOiseauxMarins(x) indiquent si l'image x contient de l'eau, du sable, des bateaux, des oiseaux marins.
- Quantificateurs : « ∃x » (il existe une image) ou « ∀x » (pour toutes les images) spécifient la portée des règles.
- Règles : 1. ∀x (ContientEau(x) ∧ ContientSable(x) ⇒ EstMer(x)) ; 2. ∀x (ContientBateaux(x) ⇒ EstPort(x)), ∀x (ContientOiseauxMarins(x) ⇒ EstPlage(x)) ; 3. ∃x (ContientEau(x) ∧ ContientSable(x)).
1.1 · Raisonnement automatisé · Z3
Z3 décide si un ensemble de contraintes peut tenir
- pip install z3-solverVariables
Int('x'), Real, Bool, ou une sorte déclarée
- x + y > 5Contraintes
équations, inégalités, formules logiques
- solver.add(…)Assertions
on les confie à un Solver()
- solver.check()Verdict
sat · unsat · unknown
- solver.model()Modèle
une affectation qui satisfait tout
ContexteZ3 (Microsoft Research) sert à la vérification formelle, à la planification et au raisonnement automatique.
notes
- Z3 est un puissant solveur de contraintes développé par Microsoft Research, souvent utilisé pour la vérification formelle, le raisonnement logique et d'autres tâches d'analyse symbolique. Il peut résoudre des équations et des inégalités, vérifier la satisfiabilité de formules logiques, et bien plus encore.
- Installation :
pip install z3-solver. Importation :from z3 import *. - Fonctions utiles :
solver.check()vérifie si les contraintes sont satisfiables ;solver.model()retourne une solution possible ;solver.add(constraint)ajoute une ou plusieurs contraintes. - Une fois les bases acquises, on peut explorer la quantification, les domaines spécifiques (bit-vectors, arrays) et la programmation modulaire.
1.1 · Raisonnement automatisé · Z3
Des variables symboliques, puis des contraintes
from z3 import * # Création de variables : deux entiers x et y x = Int('x') y = Int('y') # Création de contraintes constraint1 = x + y > 5 constraint2 = x - y < 3
| Int('x') | entier |
| Real('r') | réel |
| Bool('b') | booléen |
| x + y > 5 | contrainte |
Les variables sont symboliques : elles n'ont pas de valeur tant que le solveur n'en a pas choisi une. Les contraintes sont des équations, des inégalités ou des formules logiques sur ces variables.
Étape 1–2Créer des variables avec Int(), Real(), Bool() ; formuler des contraintes logiques ou des équations avec ces variables.
notes
- Importation : from z3 import *. Pour créer des variables symboliques, vous utilisez les fonctions de Z3 comme Int(), Real(), Bool(), etc. Cela crée deux variables entières x et y.
- Vous pouvez maintenant formuler des contraintes logiques ou des équations en utilisant ces variables : constraint1 = x + y > 5, constraint2 = x - y < 3.
1.1 · Raisonnement automatisé · Z3
Un solveur vérifie si les contraintes peuvent être satisfaites
# Utilisation d'un solveur solver = Solver() solver.add(constraint1) solver.add(constraint2) # Vérification de la satisfiabilité if solver.check() == sat: print("Les contraintes sont satisfiables") print(solver.model()) else: print("Les contraintes ne sont pas satisfiables")
| x | 3 |
| y | 3 |
Un modèle possible : 3 + 3 > 5 et 3 − 3 < 3. Si le solveur retourne sat, il existe une solution qui satisfait les contraintes, et solver.model() l'affiche. Le solveur peut en renvoyer une autre — il n'en promet qu'une.
Étape 3–4On ne programme pas la solution, on décrit ce qu'elle doit vérifier.
notes
- Z3 utilise un solveur pour vérifier si ces contraintes peuvent être satisfaites : solver = Solver(); solver.add(constraint1); solver.add(constraint2).
- Si le solveur retourne sat, cela signifie qu'il existe une solution qui satisfait les contraintes, et vous pouvez afficher le modèle de solution avec solver.model().
1.1 · Raisonnement automatisé · Z3
Trois méthodes suffisent : add, check, model
Ajouter
ajoute une ou plusieurs contraintes au solveur.
Vérifier
vérifie si les contraintes sont satisfiables : sat, unsat ou unknown.
Lire la solution
retourne une solution possible si les contraintes sont satisfiables.
Z3 est un outil très puissant pour résoudre des problèmes de logique et d'optimisation. Il est utilisé dans des domaines tels que la vérification de logiciels, la planification et le raisonnement automatique.
Pour aller plus loinUne fois les bases acquises : quantification, domaines spécifiques (bit-vectors, arrays), programmation modulaire.
notes
- Quelques fonctions utiles : solver.check() vérifie si les contraintes sont satisfiables ; solver.model() retourne une solution possible si les contraintes sont satisfiables ; solver.add(constraint) ajoute une ou plusieurs contraintes au solveur.
- Z3 est un outil très puissant pour résoudre des problèmes de logique et d'optimisation. Il est utilisé dans des domaines tels que la vérification de logiciels, la planification, et le raisonnement automatique. Une fois que vous vous familiarisez avec les bases, vous pouvez explorer des fonctionnalités plus avancées comme la quantification, les domaines spécifiques (bit-vectors, arrays), et la programmation modulaire.
1.1 · Raisonnement automatisé · Z3
Sortes et expressions : de quoi parle-t-on, et comment
Types de base
Z3 prend en charge plusieurs types de base tels que Int (entiers), Real (nombres réels), Bool (booléens), String (chaînes de caractères), etc.
Sortes définies par l'utilisateur
En plus de DeclareSort, vous pouvez créer des types complexes en combinant des types de base et des sortes définies par l'utilisateur.
Expressions booléennes
Vous pouvez créer des expressions booléennes en utilisant des opérateurs logiques tels que And, Or, Not et Implies.
Expressions arithmétiques
Z3 prend en charge des opérations arithmétiques avec des entiers et des réels, comme +, -, * et /.
RepèreLes sortes sont les domaines d'objets du premier ordre ; les expressions en sont les connecteurs et les fonctions.
notes
- Sorts (types) — types de base : Int, Real, Bool, String, etc. ; sorts définis par l'utilisateur : en plus de DeclareSort, on crée des types complexes en combinant types de base et sorts définis.
- Expressions — booléennes : And, Or, Not, Implies ; arithmétiques : +, -, *, / sur entiers et réels.
1.1 · Raisonnement automatisé · Z3
Quantificateurs, solveur, assertions : le reste du vocabulaire
Quantificateurs
Universel (ForAll) : exprimer des propriétés qui doivent être vraies pour tous les éléments d'un certain type.
Existentiel (Exists) : exprimer qu'il existe au moins un élément qui satisfait une certaine propriété.
Solveur
Instanciation et vérification : le Solver est le cœur de Z3, utilisé pour ajouter des contraintes et vérifier leur satisfaisabilité avec check().
Modèles : après la vérification, model() montre comment les constantes et variables doivent être assignées pour satisfaire les contraintes.
Assertions
Ajouter des contraintes : les assertions (add()) introduisent des contraintes dans le solveur. Elles peuvent être des expressions booléennes ou des équations.
RepèreChaque carte correspond à une notion du premier ordre : ∀ ∃, la déduction, et les faits que l'on affirme.
notes
- Quantificateurs — universels (ForAll) : propriétés vraies pour tous les éléments d'un type ; existentiels (Exists) : il existe au moins un élément qui satisfait la propriété.
- Solver — instanciation et vérification : le Solver ajoute des contraintes et vérifie leur satisfaisabilité avec check() ; modèles : model() montre l'assignation des constantes et variables.
- Assertions — add() introduit des contraintes : expressions booléennes ou équations.
1.1 · Raisonnement automatisé · Z3
Déclarer un monde : une sorte, une constante, une fonction
Image = DeclareSort('Image')DeclareSort déclare un nouveau type : ici, les images, qui ne correspondent à aucun type prédéfini.
x = Const('x', Image)Const crée une instance de cette sorte : x représente une image particulière dans les formules.
ContientEau = Function(
'ContientEau', Image, BoolSort())Function déclare une fonction d'une image vers un booléen : c'est notre prédicat.
CorrespondanceSorte = domaine, constante = objet, fonction vers Bool = prédicat. Le premier ordre, mot pour mot.
notes
- DeclareSort : déclare un nouveau type (ou sorte) dans le système de types de Z3, pour des objets qui ne correspondent pas aux types de base comme Int, Bool.
Image = DeclareSort('Image'): Image est une nouvelle sorte qui peut représenter des images dans le modèle. - Const : déclare des constantes d'un type spécifique, c'est-à-dire une instance d'un objet de la sorte définie.
x = Const('x', Image): x est une constante de type Image, une image particulière dans vos formules. - Function : déclare des fonctions qui prennent des arguments et renvoient des valeurs, pour exprimer des relations entre objets.
ContientEau = Function('ContientEau', Image, BoolSort()): ContientEau prend une constante de type Image et renvoie un booléen — utilisable pour vérifier si une image contient de l'eau.
1.1 · Raisonnement automatisé · Z3
Déclarer tout le vocabulaire des images
from z3 import * # Créer un solver solver = Solver() # Définir une sorte pour les images Image = DeclareSort('Image') # Fonctions : le contenu d'une image ContientEau = Function('ContientEau', Image, BoolSort()) ContientSable = Function('ContientSable', Image, BoolSort()) ContientBateaux = Function('ContientBateaux', Image, BoolSort()) ContientOiseauxMarins = Function('ContientOiseauxMarins', Image, BoolSort()) # Relations : les types d'images EstMer = Function('EstMer', Image, BoolSort()) EstPort = Function('EstPort', Image, BoolSort()) EstPlage = Function('EstPlage', Image, BoolSort())
| Image | domaine |
| Contient…(x) | 4 prédicats observés |
| Est…(x) | 3 prédicats déduits |
Les quatre premiers prédicats décrivent ce que l'on voit ; les trois derniers, ce que l'on veut conclure. Les règles relient les uns aux autres.
Étape 1Tout ce dont les règles parlent doit être déclaré avant d'être utilisé.
notes
- Code du cours original : création du solveur, de la sorte Image, des fonctions ContientEau, ContientSable, ContientBateaux, ContientOiseauxMarins (contenu d'une image) et des relations EstMer, EstPort, EstPlage (types d'images).
1.1 · Raisonnement automatisé · Z3
Chaque règle du premier ordre devient une assertion
solver.add(Implies(And(ContientEau(x), ContientSable(x)), EstMer(x)))
∀x (Bateaux(x) ⇒ Port(x))→solver.add(Implies(ContientBateaux(x), EstPort(x)))
∀x (OiseauxMarins(x) ⇒ Plage(x))→solver.add(Implies(ContientOiseauxMarins(x), EstPlage(x)))
∃x (Eau(x) ∧ Sable(x))→solver.add(Exists([x], And(ContientEau(x), ContientSable(x))))
À retenirLa traduction est mécanique : ∧ devient And, ⇒ devient Implies, ∃ devient Exists. Le sens ne change pas.
notes
from z3 import * # Créer un solver solver = Solver() # Définir une sorte pour les images Image = DeclareSort('Image') # Définir des fonctions pour vérifier le contenu d'une image ContientEau = Function('ContientEau', Image, BoolSort()) ContientSable = Function('ContientSable', Image, BoolSort()) ContientBateaux = Function('ContientBateaux', Image, BoolSort()) ContientOiseauxMarins = Function('ContientOiseauxMarins', Image, BoolSort()) # Définir des relations pour les types d'images EstMer = Function('EstMer', Image, BoolSort()) EstPort = Function('EstPort', Image, BoolSort()) EstPlage = Function('EstPlage', Image, BoolSort()) # Règles # 1. Si une image contient de l'eau et du sable, alors c'est une mer x = Const('x', Image) solver.add(Implies(And(ContientEau(x), ContientSable(x)), EstMer(x))) # 2. Si une image contient des bateaux, alors c'est un port solver.add(Implies(ContientBateaux(x), EstPort(x))) # 3. Si une image contient des oiseaux marins, alors c'est une plage solver.add(Implies(ContientOiseauxMarins(x), EstPlage(x))) # 4. Il existe au moins une image qui contient de l'eau et du sable solver.add(Exists([x], And(ContientEau(x), ContientSable(x))))- Dans le cours original, la variable x est déclarée avec Const et les règles sont ajoutées sans ForAll explicite : x est alors une constante libre. Pour une règle vraiment universelle, envelopper l'implication dans
ForAll([x], …).
1.1 · Raisonnement automatisé · Z3
Z3 cherche un modèle qui satisfait toutes les règles
# deux images à vérifier img1 = Const('img1', Image) img2 = Const('img2', Image) # ce que l'on sait de img1 solver.add(ContientEau(img1) == True) solver.add(ContientSable(img1) == True) solver.add(ContientBateaux(img1) == False) solver.add(ContientOiseauxMarins(img1) == False) if solver.check() == sat: print("Règles respectées.", solver.model()) else: print("Règles contradictoires.")
| ContientEau(img1) | True |
| ContientSable(img1) | True |
| EstMer(img1) | True |
| EstPort(img1) | False |
| EstPlage(img1) | False |
sat : il existe un monde cohérent avec les règles et les faits. unsat : ils se contredisent.
À retenirLe solveur ne « comprend » pas la mer : il prouve qu'un monde où les règles tiennent existe — ou qu'aucun n'existe.
notes
# Exemple d'images à vérifier img1 = Const('img1', Image) img2 = Const('img2', Image) # Définir des contenus pour img1 et img2 solver.add(ContientEau(img1) == True) solver.add(ContientSable(img1) == True) solver.add(ContientBateaux(img1) == False) solver.add(ContientOiseauxMarins(img1) == False) # Vérifier si les images respectent les règles if solver.check() == sat: print("Les images respectent les règles définies.") else: print("Les images ne respectent pas les règles définies.") # Afficher les modèles (si satisfaisables) print(solver.model())- Un solveur comme Z3 ne « raisonne » pas comme nous : il cherche un modèle qui satisfait toutes les contraintes, ou prouve qu'il n'en existe pas. Le modèle réel affiché par Z3 utilise des valeurs internes (Image!val!0…) et des interprétations de fonctions ; le tableau en donne une lecture simplifiée.
1.1 · Logique modale
Deux opérateurs disent le nécessaire et le possible
Carré — la nécessité
Il exprime la nécessité, indiquant que quelque chose est nécessairement vrai.
En notation modale, on utilise l'opérateur « ◻ » pour représenter la nécessité : ◻(P) signifie « il est nécessaire que P soit vrai ».
Losange — la possibilité
Il exprime la possibilité, indiquant que quelque chose est possible, mais pas nécessairement vrai.
On utilise l'opérateur « ◇ » pour représenter la possibilité : ◇(Q) signifie « il est possible que Q soit vrai » ; avec la négation, ¬◇(R) signifie « il est impossible que R soit vrai ».
DéfinitionLa logique modale étend la logique classique à des « modalités » : nécessité, possibilité, obligation, croyance…
notes
- La logique modale est une extension de la logique classique qui permet de raisonner sur la notion de « modalités », c'est-à-dire des catégories de propositions qui expriment des modalités ou des qualités spécifiques, telles que la nécessité, la possibilité, l'obligation, la croyance, etc.
- Opérateurs modaux : les deux opérateurs les plus courants sont ◻ (carré), qui exprime la nécessité, et ◇ (losange), qui exprime la possibilité.
1.1 · Logique modale
Nécessaire, possible, contingent, impossible
Nécessaire
vraie dans toutes les situations possibles : elle ne peut être fausse dans aucune situation imaginable.
◻(Toute mer est salée)Possible
vraie dans au moins une situation possible, même si elle n'est pas nécessairement vraie dans toutes.
◇(des tempêtes en mer)Contingent
vraie dans certaines situations possibles et fausse dans d'autres : sa vérité dépend du contexte.
il peut y avoir des mers calmesImpossible
fausse dans toutes les situations possibles : elle ne peut être vraie dans aucune situation imaginable.
¬◇(Toutes les mers sont douces)À retenirNécessaire (□) et possible (◇) permettent de raisonner sur ce qui pourrait être, pas seulement sur ce qui est.
notes
- En logique modale, les termes « nécessaire », « contingent », « possible » et « impossible » décrivent les modalités d'une proposition.
- Nécessaire : vraie dans toutes les situations possibles ; ◻(P). Contingent : vraie dans certaines situations possibles et fausse dans d'autres ; ni nécessairement vraie ni nécessairement fausse (¬□P ∧ ¬□¬P). Possible : vraie dans au moins une situation possible ; ◇(Q). Impossible : fausse dans toutes les situations possibles ; ¬◇(R).
- Exemples : ◻(Toute mer est salée) — dans toutes les situations possibles, toutes les mers sont salées. (Il peut y avoir des mers calmes) — possible, mais pas nécessairement dans toutes les situations. ◇(Il est possible qu'il y ait des tempêtes en mer). ¬◇(Toutes les mers sont douces) — impossible.
1.1 · Raisonnement automatisé
Le raisonnement automatisé fait tirer des conclusions à une machine
Décider, résoudre, répondre
L'objectif principal du raisonnement automatisé est de permettre aux machines de prendre des décisions, de résoudre des problèmes et de répondre à des questions en utilisant des règles logiques et des connaissances préalables.
Des moteurs d'inférence
Les moteurs d'inférence sont des composants logiciels qui appliquent des règles logiques et des axiomes pour déduire de nouvelles informations à partir des connaissances existantes. Cela implique souvent l'utilisation de la logique formelle : propositionnelle, du premier ordre ou modale.
DéfinitionUn domaine de l'IA : des systèmes capables de tirer des conclusions logiques et de résoudre des problèmes de manière autonome, comme le fait un humain qui raisonne.
notes
- Le raisonnement automatisé est un domaine de l'intelligence artificielle (IA) qui concerne la création de systèmes informatiques capables de tirer des conclusions logiques et de résoudre des problèmes de manière autonome, similaire à la manière dont les humains utilisent leur raisonnement pour résoudre des problèmes.
1.1 · Raisonnement automatisé
Un moteur d'inférence par logique
- Connaissances
faits et règles, exprimés dans une logique
Eau(img1) · ∀x (…) - Moteur d'inférence
applique des règles de déduction et des axiomes
modus ponens · résolution - Conclusions
nouvelles informations, décisions, réponses
EstMer(img1)
| Logique | Les connaissances sont représentées… | Le moteur d'inférence… |
|---|---|---|
| Propositionnelle | sous forme de propositions atomiques et de règles logiques qui décrivent comment ces propositions sont liées | applique des règles logiques pour tirer des conclusions à partir des propositions existantes |
| Premier ordre | de manière plus expressive : relations complexes entre objets, généralisations | utilise des règles de déduction plus sophistiquées, notamment les quantificateurs ∀ et ∃ |
| Modale | avec des opérateurs modaux, pour traiter l'incertitude et la nécessité | utilise des règles modales spécifiques, en tenant compte des modalités |
À retenirMême schéma dans les trois cas ; ce qui change, c'est l'expressivité des connaissances et le coût de la déduction.
notes
- Le raisonnement automatisé peut être expliqué en utilisant différentes logiques : propositionnelle, du premier ordre et modale.
- En logique propositionnelle : connaissances représentées sous forme de propositions atomiques et de règles logiques ; le moteur applique des règles logiques pour tirer des conclusions.
- En logique du premier ordre : représentation plus expressive, relations complexes entre objets et généralisations ; règles de déduction plus sophistiquées, avec ∀ et ∃.
- En logique modale : opérateurs modaux pour l'incertitude et la nécessité ; règles modales spécifiques.
1.2 · Représentation des connaissances
Représenter, c'est rendre le monde calculable
Résoudre des problèmes
Une représentation adéquate permet de modéliser des problèmes complexes et de les résoudre efficacement — manipulation et déduction logique des informations pertinentes.
Décider
Les machines doivent comprendre le monde pour interagir avec lui : objets, relations, événements, règles.
Dialoguer
Face à des utilisateurs humains, une représentation claire rend les interactions compréhensibles et productives.
DéfinitionCapturer, structurer et stocker des informations sous une forme qu'un programme peut exploiter.
notes
- La représentation des connaissances joue un rôle central dans la manière dont les systèmes informatiques comprennent, raisonnent et interagissent avec le monde.
- Elle désigne le processus de capture, de structuration et de stockage des informations et des connaissances de manière à les rendre utilisables par des systèmes informatiques : transformer des données brutes ou des concepts en une forme que les ordinateurs peuvent comprendre et exploiter pour résoudre des problèmes, prendre des décisions ou interagir avec les utilisateurs.
- Résolution de problèmes : une représentation adéquate permet de modéliser des problèmes complexes et de les résoudre efficacement ; elle facilite la manipulation et la déduction logique des informations pertinentes.
- Prise de décisions : les machines doivent comprendre le monde qui les entoure pour interagir avec lui de manière significative — objets, relations, événements, règles.
- Communication homme-machine : une représentation claire et conviviale est essentielle pour rendre les interactions compréhensibles et productives.
1.2 · Représentation des connaissances
Quatre types de connaissances, deux axes
recettes, algorithmes, modes opératoires que l'on peut transmettre
def evaluate(self): …ce que l'on « sait » sans pouvoir le formuler : reconnaître une mer au premier coup d'œil
difficile à documentercompétences acquises par la pratique, liées à l'expérience
acquis par l'expérienceEnjeuL'IA symbolique formalise le quadrant en haut à gauche ; l'apprentissage vise ceux du bas.
notes
- Les types de connaissances peuvent être classés en plusieurs catégories : déclaratives, procédurales, explicites et tacites.
- Connaissances déclaratives : « ce que nous savons » — faits, informations et déclarations qui décrivent le monde, souvent exprimés sous forme de propositions vraies ou fausses.
- Connaissances procédurales : « comment faire quelque chose » — compétences, savoir-faire et procédures nécessaires pour accomplir des tâches ; généralement implicites et liées à l'expérience pratique.
- Connaissances explicites : clairement exprimées et documentées ; formelles et structurées pour être transmises et partagées facilement — manuels, livres, bases de données.
- Connaissances tacites : difficiles à exprimer verbalement ou à documenter ; elles résident souvent dans l'expérience personnelle, l'intuition ou les compétences pratiques ; elles sont difficiles à transférer d'une personne à une autre et sont souvent acquises par l'expérience.
1.2 · Représentation des connaissances
Des faits isolés à un graphe de connaissances
- faits
- Logique — propositionnelle ou du premier ordre : des propositions vraies ou fausses.
- concepts
- Ontologie — entités ou idées du monde réel, organisées en classes.
- propriétés
- ce qu'un concept possède : une profondeur, une salinité.
- relations
- ce qui relie deux concepts : une mer borde un pays.
À retenirReprésenter, c'est choisir : plus le formalisme est expressif, plus le raisonnement est coûteux.
notes
- Dans la représentation des connaissances déclaratives, les faits, les informations et les connaissances sont exprimés sous forme de propositions logiques : logique propositionnelle, logique du premier ordre.
- Graphes de connaissances (ontologies) : structures de données hiérarchiques qui organisent les connaissances en utilisant des concepts, des classes, des propriétés et des relations.
- Concepts : entités ou idées du monde réel. Classes : les concepts sont souvent organisés en classes. Propriétés : les ontologies spécifient des propriétés et des relations entre les concepts. Relations : les ontologies capturent les relations entre les concepts.
1.3 · Agents intelligents
Un agent perçoit, raisonne, agit — pour un objectif
Perception
Un agent intelligent est capable de percevoir son environnement à travers des capteurs ou d'autres moyens. Il collecte des informations sur l'état du monde qui l'entoure.
Raisonnement
L'agent traite les informations perçues, effectue des calculs et prend des décisions basées sur ces données — algorithmes, apprentissage automatique ou règles de raisonnement formelles.
Action
En réponse à ses décisions, l'agent agit sur son environnement en utilisant des actionneurs ou en émettant des commandes. Ses actions visent des buts.
Objectifs
Les agents intelligents sont souvent dotés d'objectifs ou de buts à atteindre. Ces objectifs définissent ce que l'agent tente d'accomplir dans son environnement.
DéfinitionUne entité logicielle ou matérielle capable de percevoir son environnement, de prendre des décisions et d'agir pour atteindre des objectifs.
notes
- Les agents intelligents sont des entités logicielles ou matérielles capables de percevoir leur environnement, de prendre des décisions, et d'agir pour atteindre des objectifs spécifiques. Un agent intelligent est un système informatique ou une entité physique qui possède certaines caractéristiques clés : perception, raisonnement, action, objectifs.
1.3 · Agents intelligents
Tous les agents partagent une même boucle
À retenirLes types d'agents ne diffèrent que par ce qu'il y a dans la case « raisonnement ».
notes
- Un agent perçoit son environnement, raisonne et agit ; ses actions modifient l'environnement, qui est perçu à nouveau. Objectifs et mémoire (modèle du monde) sont optionnels selon le type d'agent.
1.3 · Agents intelligents
Cinq types d'agents, un raisonnement de plus en plus riche
Règles perception → action, aucun modèle du monde.
thermostat · robot de ligneReprésentation interne ; anticipe l'effet de ses actions.
planification · simulationChoisit l'action qui rapproche d'un objectif explicite.
itinéraires · recommandationRéactif dans l'immédiat, modèle ou buts pour le long terme.
véhicule autonomeUn modèle de langage raisonne en langage naturel et appelle des outils (2023+, voir 4.7).
assistants à outils · codeÀ retenirPlus le raisonnement est riche, plus l'agent dépend de la qualité de son modèle du monde.
notes
- Agents réactifs simples : réagissent directement aux stimuli de leur environnement sans représentation interne complexe du monde. Décisions fondées sur des règles préétablies qui associent des entrées (perceptions) à des sorties (actions). Utilisés là où la réactivité immédiate est cruciale (robotique industrielle) ; ils manquent de capacité à anticiper ou à planifier à long terme.
- Agents basés sur des modèles : représentation interne du monde (modèles, cartes conceptuelles) pour anticiper les conséquences de leurs actions, planifier des séquences d'actions et décider. Planification automatisée, simulation, modélisation de systèmes complexes. Plus flexibles, mais leur performance dépend de la qualité de leurs modèles.
- Agents basés sur les buts : objectifs à atteindre ; ils évaluent l'état de l'environnement et déterminent les actions qui les en rapprochent, en planifiant et en ajustant. Planification de parcours, systèmes de recommandation, assistants personnels.
- Agents hybrides : combinent plusieurs types — réactifs dans l'immédiat, à modèle ou à buts pour les tâches complexes ou à long terme ; plus polyvalents.
- Agents fondés sur un modèle de langage (agents LLM) : depuis 2023, un grand modèle de langage (voir 4.7) placé dans une boucle perception-raisonnement-action : il lit l'état de l'environnement (texte, résultats d'outils), planifie en langage naturel et agit en appelant des outils (recherche, code, API). Même schéma, avec le modèle de langage comme moteur de raisonnement.
1.3 · Agents intelligents · types
Réactif simple et à modèle : sans, puis avec un modèle du monde
Réagit aux stimuli
Les agents réactifs simples réagissent directement aux stimuli de leur environnement sans avoir une représentation interne complexe du monde. Ils prennent des décisions en se basant sur des règles préétablies qui associent des entrées (perceptions) à des sorties (actions).
Souvent utilisés pour des tâches spécifiques où la réactivité immédiate est cruciale, comme dans la robotique industrielle. Cependant, ils ont tendance à manquer de capacité à anticiper ou à planifier des actions à long terme en l'absence de modèles internes du monde.
Anticipe avec un modèle interne
Les agents basés sur des modèles utilisent une représentation interne du monde, généralement sous forme de modèles ou de cartes conceptuelles, pour comprendre leur environnement. Ils utilisent ces modèles pour anticiper les conséquences de leurs actions, planifier des séquences d'actions et prendre des décisions éclairées.
Couramment utilisés en planification automatisée, simulation et modélisation de systèmes complexes. Plus flexibles que les agents réactifs simples, mais leur performance dépend de la qualité de leurs modèles et de la capacité à anticiper les résultats.
ContrasteLe réactif est rapide et aveugle ; l'agent à modèle voit plus loin, mais seulement aussi bien que son modèle.
notes
- Agents réactifs simples : règles préétablies perception → action, pas de représentation interne complexe ; robotique industrielle ; pas d'anticipation ni de planification à long terme.
- Agents basés sur des modèles : représentation interne du monde (modèles, cartes conceptuelles) ; anticipent, planifient, décident ; planification automatisée, simulation, modélisation de systèmes complexes ; performance dépendante de la qualité du modèle.
1.3 · Agents intelligents · types
À buts, hybride, LLM : un raisonnement plus riche
Poursuit un objectif
Les agents basés sur les buts ont des objectifs à atteindre, et leur comportement est guidé par la poursuite de ces buts. Ils évaluent régulièrement l'état de l'environnement et déterminent les actions à entreprendre pour se rapprocher de leurs objectifs.
Ils planifient et ajustent leurs actions selon l'évolution de la situation pour maximiser leurs chances de succès : planification de parcours, systèmes de recommandation, agents d'assistance personnelle.
Combine plusieurs types
Certains agents combinent des caractéristiques de plusieurs types d'agents pour tirer parti des avantages de chacun. Par exemple, un agent hybride pourrait être réactif dans des situations immédiates, mais basé sur des modèles ou sur des buts pour des tâches plus complexes ou à long terme.
L'hybridation permet de créer des agents plus polyvalents, capables de s'adapter à une variété de scénarios.
Raisonne en langage naturel
Depuis 2023, le terme désigne aussi un grand modèle de langage (voir 4.7) placé dans une boucle perception-raisonnement-action : il lit l'état de l'environnement (texte, résultats d'outils), planifie en langage naturel et agit en appelant des outils (recherche, code, API).
Même schéma que la boucle ci-dessus, avec le modèle de langage comme moteur de raisonnement.
À retenirPlus le raisonnement est riche, plus l'agent dépend de la qualité de son modèle du monde.
notes
- Agents basés sur les buts : objectifs à atteindre, évaluation régulière de l'état, planification et ajustement ; parcours, recommandation, assistance personnelle.
- Agents hybrides : réactifs dans l'immédiat, à modèle ou à buts pour le long terme ; plus polyvalents.
- Agents LLM : depuis 2023, un grand modèle de langage dans la boucle perception-raisonnement-action ; lit l'état, planifie en langage naturel, appelle des outils.
1.4 · Apprentissage machine
Trois approches, une seule différence : les étiquettes
Supervisé
Chaque exemple porte sa réponse ; le modèle apprend à la prédire sur des données nouvelles.
classification d'images · prix · spamNon supervisé
Aucune réponse fournie ; le modèle découvre seul des structures ou des groupes.
segmentation · réduction de dimension · anomaliesSemi-supervisé
Peu d'exemples étiquetés, beaucoup de données brutes ; utile quand étiqueter coûte cher.
texte · imagerie médicaleÀ retenirCe qui change, c'est la quantité d'étiquettes disponibles — pas la nature du modèle.
notes
- Apprentissage supervisé : un modèle est formé à partir d'un ensemble de données étiquetées — chaque exemple est associé à une étiquette ou une catégorie connue. L'objectif est d'apprendre à faire des prédictions en généralisant à de nouvelles données non vues. Exemples : classification d'images, prédiction de prix, détection de spam.
- Apprentissage non supervisé : pas de données étiquetées ; le modèle doit découvrir des structures, des motifs ou des regroupements par lui-même. Exemples : segmentation de clients, réduction de la dimensionnalité, détection d'anomalies.
- Apprentissage semi-supervisé : un petit ensemble étiqueté et une grande quantité de données non étiquetées ; le modèle apprend sur les étiquettes et tire parti des données brutes pour améliorer sa performance. Utile lorsque l'étiquetage est coûteux ou difficile.
1.4 · Apprentissage machine
Les trois approches en détail
| Approche | Données d'entraînement | Ce que le modèle apprend | Exemples |
|---|---|---|---|
| Supervisé | un ensemble étiqueté : chaque exemple est associé à une étiquette ou une catégorie connue | à faire des prédictions en utilisant ces étiquettes, de manière à généraliser et prédire correctement sur de nouvelles données non vues | classification d'images, prédiction de prix, détection de spam dans les emails |
| Non supervisé | pas de données étiquetées | à découvrir par lui-même des structures, des motifs ou des regroupements dans les données | segmentation de clients en groupes, réduction de la dimensionnalité, détection d'anomalies |
| Semi-supervisé | un petit ensemble étiqueté et une grande quantité de données non étiquetées | à prédire à partir des étiquettes, tout en tirant parti des données non étiquetées pour améliorer sa performance | particulièrement utile lorsque l'obtention d'étiquettes est coûteuse ou difficile |
À retenirSupervisé, non supervisé, semi-supervisé : ce qui change, c'est la quantité d'étiquettes disponibles, pas la nature du modèle.
notes
- Apprentissage supervisé : modèle formé sur des données étiquetées ; objectif : généraliser à de nouvelles données. Exemples : classification d'images, prédiction de prix, détection de spam.
- Apprentissage non supervisé : pas de données labellisées ; découvrir des structures, des modèles ou des regroupements. Exemples : segmentation de clients, réduction de dimensionnalité, détection d'anomalies.
- Apprentissage semi-supervisé : petit ensemble étiqueté et grande quantité non étiquetée ; utile lorsque l'étiquetage est coûteux ou difficile.
1.5 · Apprentissage profond
Une droite ne sépare pas XOR ; une couche de plus, si
À retenirProfond = plusieurs couches de non-linéarités ; un perceptron linéaire seul n'est pas un classificateur universel.
notes
- Dans l'apprentissage profond, le terme « profond » fait référence à la présence de multiples couches dans le réseau neuronal. Contrairement aux modèles plus simples, tels que les perceptrons monocouche, les réseaux profonds ont la capacité d'apprendre des représentations hiérarchiques complexes à partir de données brutes.
- Perceptron linéaire et XOR : un perceptron linéaire simple ne peut pas être un classificateur universel ; il est incapable de résoudre des problèmes non linéaires comme XOR. En ajoutant des couches et des non-linéarités (fonctions d'activation), on construit des réseaux capables de résoudre des problèmes plus complexes.
1.5 · Apprentissage profond
Chaque couche apprend une abstraction de plus
- Pixels
valeurs brutes, aucune structure
640 × 480 × 3 - Bords
contrastes, orientations
couche 1 - Motifs
textures : vagues, sable, plumes
couche 2 - Parties
un bec, une aile, une coque
couche 3 - Objets
« goéland », « bateau », « mer »
sortie
À retenirProfond = plusieurs couches ; chaque couche apprend des caractéristiques plus abstraites que la précédente.
notes
- Extraction progressive de caractéristiques : une caractéristique clé de l'apprentissage profond est la capacité à extraire progressivement des caractéristiques complexes à partir de données brutes. Chaque couche du réseau apprend des représentations de plus en plus abstraites, ce qui permet au modèle de comprendre des niveaux de complexité croissants dans les données.
- Le fil rouge se referme : le prédicat que nous avons écrit à la main en logique du premier ordre est ce qu'un réseau profond apprend à partir de photos étiquetées (cours 3, réseaux convolutionnels).
Références
Pour aller plus loin
Articles de recherche
- [Aly 2005] Aly, Mohamed. Survey on Multiclass Classification Methods. 2005.
- [Jaakkola 2019] Jaakkola, H., et al. « Artificial Intelligence Yesterday, Today and Tomorrow. » 2019 42nd International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), 2019, pp. 860–67. IEEE Xplore.
- [Pan 2016] Pan, Yunhe. « Heading toward Artificial Intelligence 2.0. » Engineering, vol. 2, no. 4, Dec. 2016, pp. 409–13.
Web et outils
- Z3 Theorem Prover · Z3 Guide
- Scikit-learn · Perceptron
- Google acquiert DNNresearch, Le Monde Informatique
- Pourquoi Microsoft rachète LinkedIn, Le Monde Informatique
notes
- Références du cours original, conservées telles quelles ; les liens Z3 ont été ajoutés en 2026.
Références · Wikipédia
Entrées Wikipédia
- Logique et raisonnement mathématique
- Calcul des propositions
- Calcul des prédicats
- Logique modale
- Raisonnement automatisé
- Représentation des connaissances
- Connaissance
- Gestion des connaissances
- Agent intelligent
- Perceptron
- Multilayer Perceptron
- Multiclass Classification
- Feedforward Neural Network
- Recurrent Neural Network
- Long Short-Term Memory
- Activation Function
CréditsPhotos : Wikimedia Commons · Couleurs : Material Design Color Tool · Licence CC BY-SA 4.0.
notes
- Couleurs : Color Tool - Material Design. Images : Wikimedia Commons.