Un réseau de neurones et un gaz parfait obéissent à la même loi mathématique. Un simple dé truqué suffit pour comprendre pourquoi.
Un dé qui tombe toujours sur le même chiffre ne surprend jamais — il ne "contient" aucune information. Un dé parfaitement équilibré, lui, est le plus imprévisible possible : chaque lancer est une vraie surprise.
L'entropie est exactement ça : une mesure de surprise moyenne. Boltzmann l'a inventée pour compter les états d'un gaz. Shannon, 70 ans plus tard, a redécouvert la même formule pour compter des messages. Aujourd'hui, elle est au cœur de la fonction de coût qui entraîne la quasi-totalité des modèles de classification.
Un siècle sépare ces deux formules. Elles décrivent pourtant exactement la même chose : le nombre de configurations possibles d'un système, pondérées par leur probabilité.
Dès qu'un système a plusieurs états possibles avec des probabilités différentes, l'entropie donne une mesure universelle de son imprévisibilité.
Quand un modèle de classification est entraîné avec une cross-entropy loss, il minimise littéralement une quantité d'information — pas une formule choisie au hasard.
import numpy as np # dé équilibré vs dé truqué p_equilibre = np.array([0.25, 0.25, 0.25, 0.25]) p_truque = np.array([0.70, 0.15, 0.10, 0.05]) def entropie(p): return -np.sum(p * np.log2(p)) print(f"Équilibré : {entropie(p_equilibre):.2f} bits") # → 2.00 bits (maximum) print(f"Truqué : {entropie(p_truque):.2f} bits") # → 1.35 bits