• Projets00
  • AI Academy13
  • Veille07 entrées ces 7 derniers jours
  • Outils00
Profil
Déposer un projet
ProjetsAI AcademyVeilleOutilsProfilDéposer
Le cours
12/59
Lecture7 min

Le cadre du cours

Ce que le chapitre construit : une machine qui lit un chiffre écrit à la main.

Tu reconnais le chiffre ci-dessous sans y penser, et tu serais bien en peine d'expliquer à quelqu'un comment tu t'y es pris. Une machine, elle, ne fait que ce qu'on lui a écrit. Peut-on lui écrire de quoi lire un chiffre tracé à la main, et savoir ensuite pourquoi elle y arrive ?

À gauche, une image carrée de vingt-huit sur vingt-huit pixels : un sept manuscrit en encre sombre sur fond papier. Une flèche part vers la droite jusqu'à une boîte rectangulaire vide, portant en son seul centre f indice thêta. Une seconde flèche en sort et mène à un grand chiffre sept en brique, sous lequel se lit « le chiffre lu ».
Une image entre, un chiffre sort. Tout le chapitre construit et mesure la boîte du milieu.

L'image de gauche est un carré de 28 pixels sur 28, où quelqu'un a tracé un 7 à la main, et le 7 de droite est la réponse que la boîte donne pour cette image. La boîte du milieu, elle, porte un nom, fθf_{\boldsymbol{\theta}}fθ​, et c'est tout ce qu'on en sait pour l'instant.

Ce qu'il y a dedans tient en une image, et rien n'y est à retenir.

À gauche, une grille carrée de vingt-huit sur vingt-huit pixels portant un sept manuscrit en encre sombre. Une flèche mène à trois colonnes de ronds vides, alignées de gauche à droite. La première montre quatre ronds séparés par trois points de suspension, et porte dessous le nombre sept cent quatre-vingt-quatre et la mention une par pixel. La deuxième est bâtie de même et porte dessous cent vingt-huit. La troisième montre ses dix ronds, et porte dessous le nombre dix et la mention une par chiffre. Chaque rond d'une colonne est relié par un filet gris pâle à tous les ronds de la colonne suivante. Le huitième rond de la dernière colonne est plein, en brique ; une flèche en part et mène à un grand chiffre sept en brique, sous lequel se lit le chiffre lu.
La boîte de la figure précédente, ouverte.

La première des trois colonnes porte un rond par pixel de l'image, soit 784, et la dernière en porte dix, un par chiffre possible, rangés de 0 à 9 : le rond allumé est le huitième, et c'est le 7. La colonne du milieu en porte 128, et ce nombre ne se déduit ni de l'image ni des dix chiffres, puisque quelqu'un l'a choisi.

Chaque rond d'une colonne rejoint tous les ronds de la suivante, et chaque trait porte un nombre. Cet assemblage de colonnes et de traits est ce qu'on appelle un réseau.

La tâche, et le chemin

La boîte reçoit un chiffre manuscrit tracé dans un carré de 28 pixels sur 28, et doit dire quel chiffre c'est.

La plus simple qu'on puisse écrire ne franchit qu'une étape entre l'image et la réponse, c'est-à-dire un seul passage d'une colonne de ronds à la suivante. Il y a une chose qu'elle ne pourra jamais faire, quels que soient les nombres qu'on met dedans, et une étape de plus n'y changera rien. Ce qui change tout est une pièce qui tient en une ligne.

Ce que la boîte est à l'arrivée

À l'arrivée, la boîte est une fonction : elle prend les 784 valeurs de pixels d'une image et rend dix nombres positifs de somme 1, un par chiffre possible. Le chiffre lu est celui dont le nombre est le plus grand, et c'est ce rond-là que la figure montre allumé.

Elle contient 101 770 nombres en tout. Les traits en portent la plus grande part, et chaque rond des deux dernières colonnes en porte un de plus, que la page 4 nomme.

D'où viennent ces 101 770 nombres ? La question n'aura pas de réponse ici. Chaque valeur citée sort d'un modèle que le programme cours/lecon2/mesures.py a déjà entraîné, c'est-à-dire dont il a choisi les nombres tout seul, par le procédé qu'expose le chapitre 3, et la citation le dit à chaque fois.

Prérequis

  1. 01

    Le produit matriciel et la règle des dimensions : A∈Mm,n(R)A\in\mathcal{M}_{m,n}(\mathbb{R})A∈Mm,n​(R) et B∈Mn,p(R)B\in\mathcal{M}_{n,p}(\mathbb{R})B∈Mn,p​(R) donnent AB∈Mm,p(R)AB\in\mathcal{M}_{m,p}(\mathbb{R})AB∈Mm,p​(R), le produit n'existant pas si les deux nnn diffèrent. La transposée et le rang d'une matrice servent aussi.

  2. 02

    Les objets du chapitre 1 : l'entrée x\mathbf{x}x, la vérité terrain, le jeu de données D\mathcal{D}D, la famille fθf_{\boldsymbol{\theta}}fθ​, la perte ℓ\ellℓ.

  3. 03

    L'exponentielle et le logarithme népérien : exp⁡(u+v)=exp⁡(u)exp⁡(v)\exp(u+v)=\exp(u)\exp(v)exp(u+v)=exp(u)exp(v), exp⁡\expexp strictement croissante et à valeurs dans R>0\mathbb{R}_{>0}R>0​, ln⁡\lnln sa réciproque sur R>0\mathbb{R}_{>0}R>0​.

  4. 04

    La notion de partie convexe de Rd\mathbb{R}^{d}Rd : une partie CCC telle que pour tous u,v∈Cu,v\in Cu,v∈C et tout t∈[0,1]t\in[0,1]t∈[0,1], (1−t)u+tv∈C(1-t)u+tv\in C(1−t)u+tv∈C, autrement dit une partie dont le segment joignant deux points reste entier. Et celle de fonction convexe, dont le graphe reste au-dessous de chacune de ses cordes.

Objectifs

  1. 01

    Mettre une image carrée à plat en une colonne de nombres, et démontrer que rien ne s'y perd, sauf de savoir quels pixels se touchaient.

  2. 02

    Écrire la plus petite pièce de calcul qui regarde l'image entière, et la regarder elle-même comme une image.

  3. 03

    Fabriquer cette pièce à la main, sans rien entraîner, la mettre en défaut sur une image faite exprès, puis la réparer.

  4. 04

    Transformer dix nombres quelconques en dix probabilités, et démontrer que chacune dépend des neuf autres.

  5. 05

    Démontrer qu'un modèle qui ne fait qu'un calcul ne peut pas séparer certaines images, et que ni l'entraînement ni le réglage n'y changent rien.

  6. 06

    Démontrer que deux calculs de suite, sans rien entre eux, refont exactement le même modèle qu'un seul.

  7. 07

    Démontrer que la pièce manquante donne au modèle une forme neuve, et compter en combien de morceaux elle le découpe.

  8. 08

    Compter les nombres d'un réseau de taille quelconque, par une formule puis sur un cas.

  9. 09

    Vérifier ce que la colonne du milieu a réellement appris, au lieu de le supposer.

Plan, de la page 2 à la page 12

  1. 01

    Compter ce que contient le jeu d'images, et fixer le seuil sous lequel un résultat ne veut rien dire

  2. 02

    Mettre une grille de pixels à plat, et mesurer ce que cela coûte

  3. 03

    Écrire la plus petite pièce de calcul qui regarde toute l'image, et la lire comme une image

  4. 04

    Fabriquer cette pièce à la main, la tromper, puis la réparer

  5. 05

    Passer d'une pièce à dix, et lire dix nombres comme une loi de probabilité

  6. 06

    Démontrer la limite de ce premier modèle, et la voir sur une image

  7. 07

    Mettre deux calculs bout à bout, et démontrer que rien n'a changé

  8. 08

    Casser la ligne droite, et compter ce qu'on y gagne

  9. 09

    Écrire le réseau complet, et compter ses nombres

  10. 10

    Regarder ce que la colonne du milieu a appris, et trancher

  11. 11

    Synthèse, formulaire, tableau des objets, erreurs fréquentes

Ce que ce chapitre laisse au suivant

La question des 101 770 nombres se posera dès la page 4, et elle reviendra ensuite à chaque page. Voici où chacune des cinq questions laissées ouvertes trouve sa réponse.

Question laissée ouverteOù elle se poseOù elle est traitée

D'où viennent les nombres que portent les traits

Page 4 : les nombres d'une pièce de calcul sont lus, jamais construits

Chapitre 3 · La descente de gradient, comment un réseau apprend

Comment on choisit le nombre de colonnes intermédiaires, et leur hauteur

Page 10 : la valeur 128 est posée, et rien ne la justifie

Chapitre 3

Ce qu'on paie quand la fonction à minimiser cesse d'être convexe

Page 9 : la pièce qui casse la ligne droite casse aussi cette convexité

Chapitre 3

D'où sort la forme précise de la fonction qui écrase un nombre quelconque entre 000 et 111

Page 9 : ses propriétés sont vérifiées, sa forme est posée

Fondements probabilistes · Le score et la cote

Comment rendre au modèle la géométrie de la grille, qu'il ne voit pas

Page 3 : mettre l'image à plat rend invisible quels pixels se touchaient

Réseaux convolutifs

D'où vient l'ordre de ce chapitre

L'ordre des notions suit celui du premier chapitre de la série de Grant Sanderson sur les réseaux de neurones, publiée sous le nom 3Blue1Brown, et la page 12 dit sur quels points le cours s'en écarte.

Leçon suivante
PrécédenteSynthèse, formulaire et erreurs fréquentesSuivanteLe problème, et le jeu