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 ?
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, , 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.
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
- 01
Le produit matriciel et la règle des dimensions : et donnent , le produit n'existant pas si les deux diffèrent. La transposée et le rang d'une matrice servent aussi.
- 02
Les objets du chapitre 1 : l'entrée , la vérité terrain, le jeu de données , la famille , la perte .
- 03
L'exponentielle et le logarithme népérien : , strictement croissante et à valeurs dans , sa réciproque sur .
- 04
La notion de partie convexe de : une partie telle que pour tous et tout , , 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
- 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.
- 02
Écrire la plus petite pièce de calcul qui regarde l'image entière, et la regarder elle-même comme une image.
- 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.
- 04
Transformer dix nombres quelconques en dix probabilités, et démontrer que chacune dépend des neuf autres.
- 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.
- 06
Démontrer que deux calculs de suite, sans rien entre eux, refont exactement le même modèle qu'un seul.
- 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.
- 08
Compter les nombres d'un réseau de taille quelconque, par une formule puis sur un cas.
- 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
- 01
Compter ce que contient le jeu d'images, et fixer le seuil sous lequel un résultat ne veut rien dire
- 02
Mettre une grille de pixels à plat, et mesurer ce que cela coûte
- 03
Écrire la plus petite pièce de calcul qui regarde toute l'image, et la lire comme une image
- 04
Fabriquer cette pièce à la main, la tromper, puis la réparer
- 05
Passer d'une pièce à dix, et lire dix nombres comme une loi de probabilité
- 06
Démontrer la limite de ce premier modèle, et la voir sur une image
- 07
Mettre deux calculs bout à bout, et démontrer que rien n'a changé
- 08
Casser la ligne droite, et compter ce qu'on y gagne
- 09
Écrire le réseau complet, et compter ses nombres
- 10
Regarder ce que la colonne du milieu a appris, et trancher
- 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 ouverte | Où elle se pose | Où 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 et | 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 |