Back to Blog

Des chaînes de Markov à l'intelligence artificielle : comprendre les fondements probabilistes de l'IA moderne

roland
December 09, 2025
Updated December 09, 2025
Des chaînes de Markov à l'intelligence artificielle : comprendre les fondements probabilistes de l'IA moderne

 

Introduction

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.


Partie 1 : Les graphes probabilistes — modéliser l'incertitude

Qu'est-ce qu'un graphe probabiliste ?

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.

Anatomie d'un nœud

Chaque nœud porte deux informations essentielles :

  1. Les valeurs possibles : un nœud "Météo" peut prendre les valeurs {ensoleillé, nuageux, pluvieux}
  2. Une table de probabilités conditionnelles : elle indique la probabilité de chaque valeur en fonction des "parents" du nœud

Exemple concret : diagnostic médical simplifié

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 ?"

Pourquoi c'est puissant ?

Les graphes probabilistes offrent trois avantages majeurs :

  1. Transparence : contrairement aux réseaux de neurones "boîtes noires", on peut lire et comprendre les relations modélisées
  2. Raisonnement bidirectionnel : on peut raisonner des causes vers les effets (prédiction) ou des effets vers les causes (diagnostic)
  3. Efficacité calculatoire : la structure du graphe permet d'éviter des calculs redondants en exploitant les indépendances entre variables

Partie 2 : La couverture de Markov — l'art de l'isolation statistique

Définition intuitive

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.

Composition exacte

Dans un réseau bayésien, la couverture de Markov d'un nœud X comprend exactement :

Illustration

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.

La propriété fondamentale

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.

Origine historique

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


Partie 3 : Les méthodes de Monte-Carlo — quand calculer devient simuler

Le problème de l'explosion combinatoire

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.

L'idée Monte-Carlo

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.

Exemple simple : estimer π

Une application classique illustre l'élégance de Monte-Carlo. Pour estimer π :

  1. Tracez un carré de côté 1 et inscrivez-y un quart de cercle de rayon 1
  2. Tirez des points au hasard uniformément dans le carré
  3. Comptez la proportion de points tombant dans le quart de cercle
  4. Cette proportion converge vers π/4
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...

Origine historique

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.


Partie 4 : MCMC et l'échantillonnage de Gibbs — la convergence vers la cible

Le défi de l'échantillonnage

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.

L'idée géniale

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 :

  1. On part d'un état initial arbitraire
  2. On effectue des transitions aléatoires d'état en état
  3. Après suffisamment de transitions, les états visités suivent approximativement la distribution cible
  4. On collecte ces états comme échantillons

L'échantillonnage de Gibbs

L'échantillonnage de Gibbs est une méthode MCMC particulièrement adaptée aux graphes probabilistes. Son principe est élégant :

  1. Initialisation : attribuer une valeur arbitraire à chaque variable
  2. Itération : parcourir chaque variable une par une et la ré-échantillonner conditionnellement à toutes les autres
  3. Répétition : recommencer des milliers de fois

C'est ici que la couverture de Markov devient cruciale

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.

Exemple pas à pas

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.

La période de burn-in

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)

Implémentation Python simplifiée

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

Partie 5 : Applications pratiques aujourd'hui

Diagnostic médical assisté

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.

Filtrage anti-spam

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.

Systèmes de recommandation

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.

Robotique et véhicules autonomes

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.

Finance quantitative

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.


Partie 6 : L'avenir de l'IA — pourquoi ces concepts sont plus pertinents que jamais

La fusion neuronale-probabiliste

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.

L'IA explicable (XAI)

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 "Free Energy Principle" et l'intelligence générale

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

Raisonnement causal

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à.

Quantification de l'incertitude

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.

Échantillonnage dans les modèles génératifs

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é.


Conclusion : des fondations solides pour l'avenir

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 :

Text Size
× Expanded view