Aller au contenu
Kudos AI
Read in English
Fondements des probabilités

L’entropie et l’information

Mesurer l’incertitude en bits : l’entropie de Shannon et pourquoi le logarithme est en base 2, le gain d’information déroulé sur une division, et comment l’entropie croisée et la divergence de Kullback-Leibler se rattachent à l’entropie et aux fonctions de perte qui entraînent les classifieurs.

10 min de lectureKudos AI

Prérequis : Les probabilités à partir de zéro : le langage de l’incertitude

La distribution est tirée de l’uniforme au déséquilibré tandis que l’affichage de l’entropie suit : une pièce équilibrée à 1 bit, une pièce 99/1 à 0,0808, un dé équilibré à quatre faces à 2, et les 0,1957 bit qu’une division vous rapporte.

« À quel point suis-je incertain ? » sonne comme une question de ressenti. Ce n’en est pas une. Elle a une réponse numérique précise, mesurée en bits, et cette réponse se révèle être la quantité qui décide comment un arbre de décision se divise et contre quelle perte un classifieur est entraîné. Les deux découlent d’une seule définition.

A. Mesurer la surprise en bits

Commençons par l’intuition. Une pièce dont on sait qu’elle tombe toujours sur face ne porte aucune incertitude : l’observer ne vous apprend rien que vous ne sachiez déjà. Une pièce équilibrée est maximalement incertaine entre deux options. Une pièce qui tombe sur face 99 % du temps est bien plus proche du premier cas que du second - pariez face et vous n’avez tort que 1 % du temps.

Nous voulons une mesure valant 00 pour la pièce certaine, maximale pour la pièce équilibrée, et petite pour la pièce à 99 %. D’après Russell et Norvig, l’entropie d’une variable aléatoire VV prenant les valeurs vkv_k avec les probabilités P(vk)P(v_k) est

H(V)=∑kP(vk)log⁡21P(vk)=−∑kP(vk)log⁡2P(vk).H(V) = \sum_{k} P(v_k) \log_2 \frac{1}{P(v_k)} = -\sum_{k} P(v_k) \log_2 P(v_k) .

La première forme est la plus parlante. La quantité log⁡21P(vk)\log_2 \frac{1}{P(v_k)} est la surprise de l’issue kk : grande quand l’issue était improbable, nulle quand elle était certaine. L’entropie est simplement la surprise espérée - chaque surprise pondérée par sa fréquence réelle.

Pourquoi la base 2. L’unité est le bit, et la base 2 le rend littéral : l’entropie est le nombre moyen de questions oui/non nécessaires pour cerner l’issue. Un lancer de pièce équilibrée demande une question, il doit donc mesurer exactement 11 bit. C’est le cas :

H(Fair)=−(0.5log⁡20.5+0.5log⁡20.5)=1.H(\text{Fair}) = -\big(0.5 \log_2 0.5 + 0.5 \log_2 0.5\big) = 1 .

Un dé équilibré à quatre faces a quatre issues également probables, ce qui demande deux questions : H=2H = 2 bits. Et la pièce truquée se comporte comme l’intuition l’exigeait :

H(Loaded)=−(0.99log⁡20.99+0.01log⁡20.01)≈0.08 bits.H(\text{Loaded}) = -\big(0.99 \log_2 0.99 + 0.01 \log_2 0.01\big) \approx 0.08 \text{ bits}.

Pour une variable booléenne il est commode d’écrire B(q)B(q) pour l’entropie de quelque chose de vrai avec probabilité qq :

B(q)=−(qlog⁡2q+(1−q)log⁡2(1−q)).B(q) = -\big(q \log_2 q + (1-q) \log_2 (1-q)\big).
qqB(q)B(q)
0.501.0000
0.750.8113
0.900.4690
0.990.0808
1.000.0000

Symétrique autour de q=0.5q = 0.5, maximale là, et nulle à la certitude - exactement la forme demandée. (Par convention 0log⁡0=00 \log 0 = 0, ce qui est aussi sa limite.)

Python

S'exécute dans votre navigateur. La première exécution télécharge l'environnement Python (~10 Mo), puis il est mis en cache.

Entropie et information

Tout est en bits (base 2).

H(p) entropie
1.0000 bits
H(p, q) entropie croisée
1.7370 bits
KL(p ‖ q) divergence
0.7370 bits

H(p, q) = H(p) + KL(p ‖ q) → 1.7370 = 1.0000 + 0.7370

Maximum pour 2 issues : 1.0000 bits

p - la distribution vraie

A50.0%
B50.0%

q - la distribution supposée

A90.0%
B10.0%

Préréglages

L’entropie est maximale quand toutes les issues sont équiprobables et tombe à zéro dès qu’une issue est certaine. L’entropie croisée est ce qu’un modèle apprend à minimiser ; elle se décompose exactement en l’entropie des données - qu’aucun modèle ne peut supprimer - plus la divergence KL, la part due au fait de croire la mauvaise distribution.

B. Le gain d’information : ce qu’une question vous apprend

L’entropie devient utile dès que vous demandez ce qu’un test vous rapporte. Supposons qu’un ensemble d’entraînement compte pp exemples positifs et nn négatifs. Son entropie vaut B ⁣(pp+n)B\!\left(\frac{p}{p+n}\right).

Testons maintenant un attribut AA à dd valeurs, divisant l’ensemble en sous-ensembles E1,…,EdE_1, \dots, E_d, où EkE_k contient pkp_k positifs et nkn_k négatifs. Descendre la branche kk laisse B ⁣(pkpk+nk)B\!\left(\frac{p_k}{p_k+n_k}\right) bits encore à résoudre, et un exemple aléatoire emprunte cette branche avec probabilité pk+nkp+n\frac{p_k+n_k}{p+n}. L’entropie espérée restant après le test est donc

Remainder(A)=∑k=1dpk+nkp+n B ⁣(pkpk+nk),\text{Remainder}(A) = \sum_{k=1}^{d} \frac{p_k + n_k}{p + n}\, B\!\left(\frac{p_k}{p_k + n_k}\right),

et le gain d’information est la réduction espérée d’entropie :

Gain(A)=B ⁣(pp+n)−Remainder(A).\text{Gain}(A) = B\!\left(\frac{p}{p+n}\right) - \text{Remainder}(A).

Exemple résolu. Douze exemples, six positifs et six négatifs : l’entropie de départ vaut donc exactement B(0.5)=1B(0.5) = 1 bit. Un attribut les divise en une branche de 5 (4 positifs, 1 négatif) et une branche de 7 (2 positifs, 5 négatifs).

Entropies des branches : B(4/5)=B(0.8)=0.7219B(4/5) = B(0.8) = 0.7219 et B(2/7)=B(0.2857)=0.8631B(2/7) = B(0.2857) = 0.8631.

Poids : 5/12=0.41675/12 = 0.4167 et 7/12=0.58337/12 = 0.5833.

Remainder=0.4167×0.7219+0.5833×0.8631=0.8043,\text{Remainder} = 0.4167 \times 0.7219 + 0.5833 \times 0.8631 = 0.8043 , Gain=1.0000−0.8043=0.1957 bits.\text{Gain} = 1.0000 - 0.8043 = 0.1957 \text{ bits}.

Cet attribut résout donc environ un cinquième de bit sur le bit d’incertitude de départ - une amélioration réelle mais modeste.

Un gain proche de zéro signale un attribut hors sujet. Si un test divise les données en sous-ensembles dont les proportions de classes ressemblent toutes à celles du parent, il ne vous a rien appris, et l’arithmétique ci-dessus renvoie approximativement zéro. Cela fait du gain d’information un signal exploitable pour l’élagage autant que pour la division.

La figure ci-dessous applique le même calcul à une autre partition : les données du restaurant de Russell & Norvig, elles aussi douze exemples dont six positifs et six négatifs, et deux de leurs attributs. Patrons rapporte 0.54090.5409 bit ; Type rapporte exactement 00, l'attribut non pertinent de la remarque ci-dessus. Chaque branche est dessinée en barre et chaque nombre recalculé plutôt que cité. La troisième commande déplace des exemples dans la seule branche de Patrons encore mixte, le seul endroit où le gain peut changer sans changer la question, et elle montre ce qu'une seule partition calculée à la main ne peut pas montrer : l'entropie attendue restante est maximale quand cette branche est équilibrée, tandis que le gain n'y est pas simplement minimal, car déplacer un exemple change aussi l'entropie de départ.

Interactif : ce que vaut une question, en bits

Les mêmes douze exemples. Seule la question change.

NoneSomeFull
Entropie avant
1.0000
Entropie attendue après
0.4591
Gain d’information
0.5409
Branches
3 of 12

Six positifs et six négatifs : l’ensemble part de 1.0000 bit d’incertitude. Clients le découpe en trois et deux branches sur trois ressortent déjà décidées ; seule Pleine reste mixte, à B(1/3) = 0,9183. Pondéré par la fréquence de chaque branche, il reste 0.4591, donc la question vaut 0.5409 bits.

C. Un piège de terminologie qu’il faut nommer

Les arbres de décision et les ensembles introduit le critère de division

D=−∑k=1Kp^mklog⁡p^mkD = -\sum_{k=1}^{K} \hat p_{mk} \log \hat p_{mk}

et l’appelle entropie croisée, suivant la convention de l’apprentissage statistique. Lue à l’aune de cet article, c’est la formule de l’entropie - une distribution unique évaluée contre elle-même.

La théorie de l’information réserve entropie croisée à une quantité impliquant deux distributions. Les deux appellations sont standard dans leur propre littérature, et aucune n’est fausse, mais ce ne sont pas le même objet et la collision cause une confusion bien réelle. Quand vous rencontrez « entropie croisée » comme critère de division d’arbre, lisez-la comme l’entropie du nœud ; la section suivante parle de l’autre chose.

D. L’entropie croisée et la divergence de Kullback-Leibler

Supposons que la vérité soit pp mais que vous agissiez selon une croyance qq. L’entropie croisée mesure la surprise moyenne que vous encourez réellement :

H(p,q)=−∑ip(xi)log⁡2q(xi).H(p, q) = -\sum_{i} p(x_i) \log_2 q(x_i) .

Les poids sont les vraies probabilités pp ; les surprises sont calculées à partir de votre croyance qq. Si q=pq = p, cela se réduit à H(p)H(p). Sinon, c’est strictement plus grand - vous êtes systématiquement plus surpris que nécessaire.

L’excédent porte un nom. La divergence KL entre PP et QQ est

KL(P,Q)=∑iP(xi)log⁡2P(xi)Q(xi),\text{KL}(P, Q) = \sum_{i} P(x_i) \log_2 \frac{P(x_i)}{Q(x_i)} ,

et les trois quantités sont reliées par

H(p,q)=H(p)+KL(p ∥ q).H(p, q) = H(p) + \text{KL}(p \,\|\, q).

Autrement dit : votre surprise totale est l’incertitude irréductible du monde, plus une pénalité pour vous être trompé à son sujet. Puisque H(p)H(p) est fixé par la réalité, minimiser l’entropie croisée sur votre modèle revient exactement à minimiser la divergence KL par rapport à la vérité.

Vérifions numériquement. Que la vérité soit une pièce équilibrée, p=(0.5,0.5)p = (0.5, 0.5), tandis que vous croyez q=(0.9,0.1)q = (0.9, 0.1) :

H(p)=1.0000,H(p,q)=1.7370,KL(p ∥ q)=0.7370.H(p) = 1.0000, \qquad H(p, q) = 1.7370, \qquad \text{KL}(p \,\|\, q) = 0.7370 .

Et 1.0000+0.7370=1.73701.0000 + 0.7370 = 1.7370, comme annoncé.

Python

S'exécute dans votre navigateur. La première exécution télécharge l'environnement Python (~10 Mo), puis il est mis en cache.

La KL n’est pas une distance. Elle n’est pas symétrique - > KL(P,Q)≠KL(Q,P)\text{KL}(P, Q) \neq \text{KL}(Q, P) en général - et elle ne vérifie pas l’inégalité triangulaire. L’appeler « divergence » plutôt que distance est délibéré. Notez aussi qu’elle explose si q(x)=0q(x) = 0 là où p(x)>0p(x) > 0 : attribuer une probabilité nulle à quelque chose qui se produit ensuite est infiniment surprenant.

Ci-dessous, la source est fixe et le modèle vous appartient. Observez lequel des deux affichages refuse de bouger : l’entropie est une propriété de la source, et aucun réglage des curseurs n’y touche. Tout ce qui dépasse ce plancher est la divergence, et c’est la seule chose que l’entraînement puisse réduire. Le second panneau détaille le coût symbole par symbole, et c’est là que l’arithmétique cesse d’être une moyenne pour devenir un diagnostic : les bits sont rarement gaspillés là où l’on croit.

Interactif : les bits que coûte un mauvais modèle

La source est fixe. Déplacez le modèle : le plancher, lui, ne bouge pas.

0.000.300.60ABCD
source pmodèle q

Où passent les bits : p(x) log2(1/q(x))

0.000.601.20ABCD
incompressiblegaspillé
H(p)
1.4905 bits
H(p, q)
2.0000 bits
KL(p || q)
0.5095 bits
KL(q || p)
0.5952 bits

Vous payez 0.5095 bits par symbole de plus que ne l’exige la source, soit 6.4 % d’un octet jeté à chaque symbole, sans fin. L’essentiel vient de A : le modèle lui attribue un mot de code de 2.00 bits alors que la source continue de le produire, ce qui gaspille à lui seul 0.758 bits de la moyenne. Ce n’est pas le symbole que le modèle estime le plus mal : c’est celui qui est mal estimé et fréquent.

E. Pourquoi les classifieurs sont entraînés sur l’entropie croisée

C’est ici que la théorie gagne sa place. Un classifieur produit une distribution de probabilité sur les étiquettes ; la vérité terrain est aussi une distribution - généralement toute la masse sur une étiquette. Entraîner le modèle, c’est faire coïncider sa distribution avec la vraie, et l’entropie croisée est précisément la quantité qui mesure l’écart. Chollet le dit directement : l’entropie croisée est une quantité issue de la théorie de l’information qui mesure la distance entre distributions de probabilité, ici entre la distribution de vérité terrain et les prédictions du modèle, et c’est en général le bon choix quand un modèle produit des probabilités.

Avec une vérité one-hot sur la classe cc, tous les termes sauf un s’annulent et la perte pour cet exemple n’est que

−log⁡q(c),-\log q(c),

la surprise attribuée à la bonne réponse. Être confiant et juste ne coûte presque rien ; être confiant et faux coûte très cher. Cette asymétrie - fournie par le logarithme, non ajoutée après coup - est ce qui fait de l’entropie croisée un meilleur signal d’entraînement que l’exactitude, laquelle est plate presque partout et ne donne rien à descendre à la descente de gradient.

C’est le même raisonnement qui motive l’objectif de log-perte dans La régression logistique et la classification : la perte n’est pas une fonction commode arbitraire, c’est la surprise espérée des croyances du modèle sous la vraie distribution.

La même entropie mesure aussi ce qu'un canal bruité peut transporter, et c'est là que la figure ci-dessous va un pas plus loin que cet article. C'est un canal binaire qui inverse chaque bit avec la probabilité ff, et sa capacité vaut 1−B(f)1 - B(f) bit par usage. Mettez la probabilité d'inversion à 0,1 et lisez 0,5310 ; à 0,5 et lisez exactement zéro ; au-delà, et regardez la capacité remonter, car un canal qui ment toujours peut être inversé. Le second panneau est un exemple distinct : deux bits équilibrés et une cible qui est leur ou exclusif, où chaque entrée seule porte exactement 0 bit sur la cible et la paire en porte 1. Quant au curseur de traitement, il envoie la sortie dans un second canal en série : son inversion composée vaut f(1−g)+g(1−f)f(1-g) + g(1-f), jamais plus proche de la certitude que ff, si bien que l'information ne peut jamais remonter.

Interactif : ce qu’un canal transporte, et ce qu’il ne récupère jamais

Exact, depuis la loi jointe. Aucun échantillonnage nulle part.

1 bit0.5
Bits par usage
0.5310
Après traitement
0.3199
Perdu au traitement
0.2111
Inversion composée
0.1800

Un canal qui inverse avec la probabilité 0.10 a raison 90 % du temps et ne transporte pourtant que 0.5310 bits par usage. L’exactitude et l’information ne sont pas la même monnaie. Faites passer la sortie dans un second canal à 0.10 : l’inversion composée vaut 0.1800 et il reste 0.3199 bits. Cela a baissé, et cela baissera toujours.

À retenir

  • L’entropie H(V)=−∑kP(vk)log⁡2P(vk)H(V) = -\sum_k P(v_k)\log_2 P(v_k) est la surprise espérée, mesurée en bits ; la base 2 en fait le nombre moyen de questions oui/non.
  • Une pièce équilibrée vaut exactement 11 bit, un dé équilibré à quatre faces 22 bits, une pièce à 99 % environ 0.080.08 bit, et une issue certaine 00.
  • Le gain d’information est la réduction d’entropie espérée d’un test ; notre division a fait passer 11 bit à 0.80430.8043, soit un gain de 0,1957 bit.
  • L’apprentissage statistique appelle le critère d’arbre −∑p^log⁡p^-\sum \hat p \log \hat p « entropie croisée » ; la théorie de l’information appelle cela l’entropie. Même formule, noms différents, confusion réelle.
  • L’entropie croisée H(p,q)=−∑plog⁡qH(p,q) = -\sum p \log q évalue une croyance qq contre une vérité pp, et se décompose en H(p)+KL(p∥q)H(p) + \text{KL}(p \| q) - incertitude irréductible plus pénalité d’erreur.
  • La divergence KL est asymétrique et non bornée ; ce n’est pas une distance.
  • Minimiser l’entropie croisée revient à minimiser la KL par rapport à la vérité, d’où son statut de perte standard en classification.

La suite

L’entropie quantifie l’incertitude à l’intérieur d’un modèle probabiliste. Une autre tradition représente la connaissance par des énoncés simplement vrais ou faux et raisonne sur ce qui doit en découler - La logique et la représentation des connaissances.

Références et lectures complémentaires

  • Stuart Russell, Peter Norvig, Artificial Intelligence: A Modern Approach, Pearson (3rd edition), 2010· Bibliothèque de référence Kudos AI
  • François Chollet, Deep Learning with Python, Manning (2nd edition, MEAP), 2020· Bibliothèque de référence Kudos AI

Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.

Lecture associée

4 min de lectureFondements des probabilités

Quelle mauvaise loi voulez-vous ?

Une cible bimodale, une gaussienne, et deux directions de la même divergence. Minimiser KL(P||Q) étale la gaussienne sur les deux modes avec presque aucune masse là où la cible se trouve réellement ; minimiser KL(Q||P) la pose sur un mode, à 0,6931 nats, soit ln 2 à quatre décimales, et ce n’est pas une coïncidence. Chaque ajustement est jugé catastrophique par l’autre critère, 2,0976 contre 15,2799.

Apprentissage automatiqueMathématiques
7 min de lectureInformation Theory

La borne qui est vraiment atteinte

L’entropie n’est pas un résumé de distribution mais un plancher que le meilleur code atteint à la dernière décimale, le supplément payé pour la mauvaise distribution est exactement la perte que tout classifieur minimise déjà, et l’information mutuelle pose un plafond dur sur tout ce qui suit un capteur. Trois résultats, chacun d’une netteté inhabituelle.

MathématiquesApprentissage automatique
3 min de lectureFondements des probabilités

Les deux variables qui ressemblent à du bruit

Une variable qui en détermine une autre avec une corrélation d’exactement 0,0000000000, et un couple de variables dont chaque information mutuelle par paire avec la cible vaut exactement zéro alors que les deux ensemble la déterminent entièrement. Le filtrage univarié écarte les deux, et le second cas est celui qui compte : les variables qu’il supprime le sont parce qu’elles comptent.

Apprentissage automatiqueMathématiques
← Retour à tous les articles