Lorsqu'on parle d'intelligence artificielle, on pense souvent aux réseaux de neurones, au deep learning, ou aux grands modèles de langage. Pourtant, derrière ces technologies spectaculaires se cachent des fondements mathématiques plus anciens, parfois méconnus, mais absolument essentiels : les graphes probabilistes, la couverture de Markov, et les méthodes de Monte-Carlo.
Ces concepts, développés il y a plusieurs décennies, constituent aujourd'hui encore l'épine dorsale de nombreuses avancées en IA. Comprendre ces fondations, c'est comprendre pourquoi et comment les machines peuvent raisonner dans l'incertitude — une capacité fondamentale de l'intelligence, qu'elle soit artificielle ou naturelle.
Un graphe probabiliste est une représentation visuelle et mathématique des relations entre variables aléatoires. Imaginez une carte où chaque point (appelé nœud) représente quelque chose d'incertain — la météo de demain, le diagnostic d'un patient, ou la probabilité qu'un utilisateur clique sur une publicité.
Les flèches entre ces nœuds représentent les relations de dépendance : si A influence B, on trace une flèche de A vers B.
Chaque nœud porte deux informations essentielles :
Considérons un système d'aide au diagnostic :
[Tabagisme] [Pollution]
\ /
\ /
↓ ↓
[Cancer]
|
________|________
| |
↓ ↓
[Toux chronique] [Radio anormale]
Dans ce graphe :
Ce type de modèle, appelé réseau bayésien, permet de répondre à des questions comme : "Si un patient non-fumeur présente une toux chronique et une radio anormale, quelle est la probabilité qu'il ait un cancer ?"
Les graphes probabilistes offrent trois avantages majeurs :
La couverture de Markov (ou Markov Blanket en anglais) d'un nœud est l'ensemble minimal de nœuds qui l'isole statistiquement du reste du réseau.
Une métaphore : imaginez-vous dans une pièce d'une maison. Votre couverture de Markov, ce sont les murs, le plafond et le sol de cette pièce. Une fois que vous connaissez tout ce qui se passe à ces frontières (température, sons, lumière...), ce qui se passe dans les autres pièces ne vous apporte plus d'information supplémentaire sur votre environnement immédiat.
Dans un réseau bayésien, la couverture de Markov d'un nœud X comprend exactement :
Reprenons notre exemple médical et identifions la couverture de Markov du nœud "Cancer" :
[Tabagisme] [Pollution] ← Parents
\ /
\ /
↓ ↓
[Cancer] ← Nœud cible
|
________|________
| |
↓ ↓
[Toux chronique] [Radio anormale] ← Enfants
La couverture de Markov de "Cancer" comprend : {Tabagisme, Pollution, Toux chronique, Radio anormale}.
Si on ajoutait d'autres nœuds au réseau (âge du patient, antécédents familiaux d'autres maladies, etc.), ils ne feraient pas partie de cette couverture tant qu'ils ne sont pas directement connectés à "Cancer" ou ne partagent pas un enfant avec lui.
Mathématiquement, la couverture de Markov satisfait une propriété remarquable :
P(X | toutes les autres variables) = P(X | couverture de Markov de X)
Autrement dit : connaître la couverture de Markov d'une variable nous donne toute l'information pertinente pour prédire cette variable. Le reste du réseau devient statistiquement superflu.
Le concept tire son nom d'Andreï Markov (1856-1922), mathématicien russe qui a développé les chaînes de Markov. L'idée centrale — qu'une variable peut être "protégée" de l'influence du reste du système par un ensemble fini de variables voisines — est une généralisation de la célèbre propriété de Markov, selon laquelle le futur ne dépend que du présent, pas du passé.
Le terme "Markov Blanket" a été formalisé par Judea Pearl dans les années 1980, pionnier des réseaux bayésiens et lauréat du prix Turing (je recommande la lecture de son excellent "Book of Why").
Les graphes probabilistes sont élégants sur le papier, mais dès qu'ils atteignent une taille réaliste, un problème surgit : le nombre de combinaisons possibles explose exponentiellement.
Prenons un réseau de 100 variables binaires (oui/non). Le nombre de configurations possibles est 2^100, soit environ 10^30 — un nombre astronomique, impossible à parcourir exhaustivement même avec les ordinateurs les plus puissants.
Les méthodes de Monte-Carlo contournent ce problème par une approche radicalement différente : au lieu de calculer exactement, on simule.
Le principe : si on tire suffisamment d'échantillons aléatoires selon une certaine distribution, la moyenne de ces échantillons converge vers l'espérance mathématique exacte. C'est la loi des grands nombres.
Une application classique illustre l'élégance de Monte-Carlo. Pour estimer π :
import random
def estimer_pi(n_points):
dans_cercle = 0
for _ in range(n_points):
x, y = random.random(), random.random()
if x**2 + y**2 <= 1:
dans_cercle += 1
return 4 * dans_cercle / n_points
print(estimer_pi(1_000_000)) # ≈ 3.14159...
Le nom "Monte-Carlo" vient du célèbre casino de Monaco. La méthode a été développée dans les années 1940 par Stanislaw Ulam et John von Neumann dans le cadre du projet Manhattan, pour simuler le comportement des neutrons dans les réactions nucléaires — un problème trop complexe pour être résolu analytiquement.
Monte-Carlo nécessite de tirer des échantillons selon une distribution de probabilité. Mais que faire quand cette distribution est trop complexe pour être échantillonnée directement ?
C'est là qu'intervient MCMC — Markov Chain Monte Carlo.
MCMC construit une chaîne de Markov — une séquence d'états où chaque état ne dépend que du précédent — dont la distribution stationnaire est exactement la distribution qu'on veut échantillonner.
Concrètement :
L'échantillonnage de Gibbs est une méthode MCMC particulièrement adaptée aux graphes probabilistes. Son principe est élégant :
Lors du ré-échantillonnage d'une variable X, on doit calculer P(X | toutes les autres variables). Grâce à la propriété de la couverture de Markov, cette probabilité ne dépend que des voisins immédiats de X :
P(X | reste du réseau) = P(X | couverture de Markov)
Au lieu de conditionner sur potentiellement des centaines de variables, on ne considère que quelques voisins. Le calcul devient local et rapide.
Considérons un réseau simple avec 3 variables binaires A, B, C où A → B → C :
Étape 0 — Initialisation :
A=0, B=1, C=0
Itération 1 :
Ré-échantillonner A sachant B=1 :
P(A=0|B=1) = 0.3, P(A=1|B=1) = 0.7
→ Tirage : A=1
Ré-échantillonner B sachant A=1, C=0 :
P(B=0|A=1,C=0) = 0.4, P(B=1|A=1,C=0) = 0.6
→ Tirage : B=1
Ré-échantillonner C sachant B=1 :
P(C=0|B=1) = 0.2, P(C=1|B=1) = 0.8
→ Tirage : C=1
État après itération 1 : A=1, B=1, C=1
On répète ce processus des milliers de fois, et on collecte les configurations visitées.
Les premiers échantillons sont influencés par l'initialisation arbitraire. On les jette — c'est la période de burn-in (ou "chauffe"). Seuls les échantillons collectés après convergence sont utilisés pour les estimations.
[Départ] -------- burn-in --------|-------- échantillons utiles -------->
(on jette ces valeurs) (on garde celles-ci pour l'analyse)
import random
def gibbs_sampling(network, n_iterations, burn_in):
# Initialisation aléatoire
state = {var: random.choice([0, 1]) for var in network.variables}
samples = []
for i in range(n_iterations):
for var in network.variables:
# Récupérer la couverture de Markov
markov_blanket = network.get_markov_blanket(var)
blanket_values = {v: state[v] for v in markov_blanket}
# Calculer P(var | couverture de Markov)
prob = network.conditional_prob(var, blanket_values)
# Ré-échantillonner
state[var] = 1 if random.random() < prob else 0
# Collecter après burn-in
if i >= burn_in:
samples.append(state.copy())
return samples
Les réseaux bayésiens sont utilisés dans des systèmes d'aide au diagnostic. Le système QMR-DT (Quick Medical Reference - Decision Theoretic) modélise les relations entre 600 maladies et 4000 symptômes. Grâce à l'inférence probabiliste et MCMC, un médecin peut entrer les symptômes observés et obtenir une liste de diagnostics probables, classés par vraisemblance.
Les filtres anti-spam bayésiens analysent la probabilité qu'un email soit du spam en fonction des mots qu'il contient. Le célèbre filtre de Paul Graham (2002) a révolutionné la détection de spam en appliquant ces principes.
Netflix, Amazon et Spotify utilisent des modèles probabilistes pour prédire vos préférences. Les algorithmes de factorisation matricielle probabiliste, optimisés par des méthodes MCMC, permettent de gérer l'incertitude inhérente aux goûts des utilisateurs.
La localisation et cartographie simultanées (SLAM) permet aux robots de se repérer dans un environnement inconnu. Les filtres particulaires — une variante de Monte-Carlo — estiment la position du robot en maintenant un nuage de particules, chacune représentant une hypothèse de localisation.
Les modèles de pricing d'options et de gestion des risques reposent massivement sur Monte-Carlo pour simuler des milliers de scénarios de marché et estimer des distributions de pertes potentielles.
L'avenir de l'IA ne réside pas dans l'opposition entre réseaux de neurones et modèles probabilistes, mais dans leur fusion.
Les réseaux de neurones probabilistes combinent la puissance d'apprentissage du deep learning avec le raisonnement sous incertitude des graphes bayésiens. Des architectures comme les VAE (Variational Autoencoders) et les réseaux de neurones bayésiens illustrent cette convergence.
Face à la montée des réglementations (RGPD, AI Act européen), l'explicabilité devient cruciale. Les modèles probabilistes offrent une transparence que les réseaux de neurones classiques ne peuvent pas égaler. Un réseau bayésien peut expliquer pourquoi il arrive à une conclusion, pas seulement quelle conclusion il tire.
Le neuroscientifique Karl Friston a développé une théorie audacieuse : le principe de l'énergie libre. Selon cette théorie, tout système intelligent — qu'il s'agisse d'un cerveau humain ou d'une IA — peut être compris comme minimisant une quantité appelée "énergie libre variationnelle".
Au cœur de cette théorie se trouve... la couverture de Markov. Friston propose que tout organisme vivant maintient son intégrité en modélisant son environnement et en agissant pour minimiser la surprise. La couverture de Markov définit la frontière entre l'agent et son environnement.
Cette vision unifie perception, action et apprentissage dans un même cadre mathématique, et inspire de nouvelles architectures d'IA visant l'intelligence artificielle générale (AGI).
Judea Pearl, père des réseaux bayésiens, a récemment orienté ses travaux vers le raisonnement causal. Au-delà des corrélations (A et B sont liés), l'IA de demain devra comprendre les causalités (A cause B).
Les graphes causaux, extension des graphes bayésiens, permettent de répondre à des questions contrefactuelles : "Que se serait-il passé si le patient n'avait pas fumé ?" Cette capacité est essentielle pour la prise de décision en médecine, politique publique et au-delà.
Les grands modèles de langage (LLM) comme GPT sont remarquablement capables, mais souffrent d'un défaut majeur : ils ne savent pas quantifier leur incertitude. Ils peuvent affirmer avec la même assurance une vérité et une hallucination.
Les méthodes bayésiennes offrent un remède : au lieu de prédire une réponse unique, prédire une distribution de réponses possibles. Des recherches actives visent à intégrer ces capacités dans les LLM, pour des systèmes qui disent "je suis incertain" quand ils le sont vraiment.
Les modèles de diffusion (Stable Diffusion, DALL-E, Midjourney) qui génèrent des images utilisent des techniques d'échantillonnage directement héritées de MCMC. L'image est générée en partant de bruit pur et en le "débruitant" progressivement — un processus de Markov inversé.
Ces concepts - graphes probabilistes, couverture de Markov, méthodes de Monte-Carlo, MCMC - forment un socle théorique qui transcende les modes technologiques.
Alors que les architectures d'IA évoluent à grande vitesse, ces fondements mathématiques restent remarquablement stables et pertinents. Ils nous rappellent que l'intelligence, qu'elle soit humaine ou artificielle, est fondamentalement une affaire de gestion de l'incertitude.
Le futur de l'IA ne sera pas seulement plus puissant, il sera plus nuancé : capable de dire "je ne sais pas", d'expliquer son raisonnement, de distinguer corrélation et causalité (voir le livre de Judea Pearl, "the book of why", et de naviguer dans un monde où l'information est toujours incomplète.
Pour aller plus loin :