De la grille au vecteur
Mettre une image à plat pour la donner au modèle, et ce qui devient invisible en chemin.
Une image est un carré de pixels, quand le modèle qu'on va écrire attend une simple liste de nombres alignés, et il faut donc mettre l'image à plat avant de la lui donner. On peut le faire sans rien perdre, ce qui règle la question la plus évidente et en laisse une autre, beaucoup moins évidente. Qu'est-ce que le modèle cesse de voir, une fois l'image mise à plat ?
À gauche, la grille est l'image de test n°0, la même qu'à la page 2, et la flèche du milieu porte le nom de l'opération, , avec au-dessous la règle qui donne le rang, .
La colonne de droite a 784 cases, ce que rappelle l'accolade, et la figure n'en dessine que quelques-unes, parce que 784 ronds empilés ne tiendraient pas sur la page.
Les deux ronds cerclés de brique sont et , qui viennent des pixels de la ligne 9, colonnes 7 et 8. La règle se vérifie en prenant et , ce qui donne , puis pour le pixel voisin de la colonne 8. Deux pixels voisins sur une même ligne ont donc des rangs qui se suivent, et c'est le seul voisinage que la colonne conserve.
Les ronds du haut et du bas, enfin, sont blancs : , et valent 0, comme et , puisque ce sont les pixels vides du pourtour de l'image.
Des octets aux réels
L'octet d'un pixel est un entier de , où est le blanc du papier et le noir plein de l'encre, et voici la division annoncée page 2, écrite une fois pour toutes.
L'aplatissement
- Aplatissementflattening
L'application qui range les coefficients d'une matrice bout à bout, ligne après ligne. Sa réciproque replie un vecteur en grille.
La formule vérifiée aux quatre coins
| Pixel | Rang | |
|---|---|---|
, coin haut gauche | ||
, coin haut droit | ||
, coin bas gauche | ||
, coin bas droit |
Une grille de vingt-huit cases sur vingt-huit occupe le centre de l'écran ; un sept manuscrit y est dessiné, chaque case plus ou moins sombre selon l'encre qu'elle porte. Quatre cases s'entourent l'une après l'autre d'un cadre couleur brique, et la valeur de chacune s'inscrit à droite, l'une sous l'autre : deux cent vingt-deux, deux cent cinquante-quatre, soixante-sept, deux cent cinquante-cinq. La grille glisse alors vers la gauche en se réduisant, et une longue colonne de ronds vides se dresse à sa droite, du haut jusqu'au bas de l'image. Les quatre cases encadrées quittent la grille l'une après l'autre et filent vers leur hauteur dans cette colonne, où un trait brique marque leur arrivée ; chaque fois, une phrase s'écrit à côté : ligne neuf, colonne sept, rang deux cent trente et un ; ligne neuf, colonne huit, rang deux cent trente-deux ; ligne dix, colonne sept, rang deux cent cinquante-neuf ; ligne treize, colonne vingt, rang trois cent cinquante-six. Toutes les autres cases encrées s'envolent ensuite à leur tour, par paquets, du haut de la grille vers le bas, et chacune laisse une petite marque grise à sa hauteur le long de la colonne, qui se couvre peu à peu d'un pointillé serré. Le sept reste entier dans la grille : rien ne s'en efface. Une accolade se pose enfin le long de la colonne, et sous elle s'écrit sept cent quatre-vingt-quatre égale vingt-huit fois vingt-huit.
est linéaire, puisqu'elle se contente de ranger les nombres sans en calculer aucun, et elle est bijective, puisque la correspondance l'est. Une application linéaire et bijective entre deux espaces vectoriels s'appelle un isomorphisme.
C'est cet isomorphisme qui réalise l'identification notée , où le signe se lit « s'identifie à », et dont le chapitre se sert partout ensuite. On le nomme plutôt que de l'omettre parce qu'une matrice n'est pas un vecteur : ce sont deux objets distincts, et est l'application qui va de l'un à l'autre.
Ce que l'aplatissement coûte
- Matrice de permutationpermutation matrix
Une matrice , c'est-à-dire carrée à lignes et colonnes, dont chaque ligne et chaque colonne comporte exactement un coefficient égal à , tous les autres étant nuls, et est le vecteur dont les coordonnées ont été permutées.
Elle vérifie , et cela se voit sur les coefficients. Le coefficient de s'obtient en multipliant terme à terme les colonnes et de puis en sommant, et chaque colonne ne porte qu'un seul : la somme vaut quand les deux colonnes portent leur sur la même ligne, ce qui n'arrive que pour , et partout ailleurs.
Un aplatissement ne coûte rien par lui-même : il ne coûte que dès lors qu'un modèle lit son résultat, et il faut donc en poser un. On prend la boîte à une seule étape annoncée page 1, celle qui range un tableau de dix lignes et colonnes avec dix nombres , et qui répond , soit dix nombres, un par chiffre possible.
Ses nombres à elle sont le couple , et ils sont bien moins nombreux que les 101 770 de la page 1, qui comptait la boîte à deux étapes. La page 6 construit celle-ci pièce par pièce et dit ce que chacun de ses nombres fait ; ce qui suit n'a besoin que de sa forme.
Hypothèses
est l'application définie en .
est une matrice de permutation fixe, la même pour toutes les images.
Le modèle est avec et .
Chaîne de dépendances
X \rightarrow \mathbf{x} \rightarrow P\mathbf{x} \rightarrow W'(P\mathbf{x})+\mathbf{b}'
Propriétés utilisées
Linéarité et bijectivité de
pour toute matrice de permutation
Associativité du produit matriciel
Étapes
Premier point : rien n'est perdu. est linéaire et bijective, donc c'est un isomorphisme d'espaces vectoriels. Sa réciproque reconstruit à partir de exactement.
Un isomorphisme est inversible : aucune information ne peut disparaître.
Second point : l'ordre des coordonnées n'est pas visible. On pose et , et on calcule ce que le modèle de paramètre répond à l'entrée permutée .
Substitution de et , puis associativité.
.
Les dimensions se vérifient : et donnent , donc est bien un paramètre admissible de la même famille.
Résultat
Interprétation
Une permutation fixe des 784 pixels, la même pour toutes les images, ne change rien à ce que cette famille peut apprendre : pour tout modèle qui marche sur les images d'origine, il existe un modèle de la même famille qui rend exactement les mêmes sorties sur les images permutées, donc qui obtient le même score, quelle que soit la façon dont on mesure ce score.
Or un modèle qui verrait le voisinage serait dérangé par une permutation, puisqu'elle sépare des pixels qui se touchaient. Celui-ci ne l'est pas du tout, et le voisinage lui est donc invisible : il ne sait pas que deux pixels côte à côte le sont. C'est cela, et rien d'autre, que « l'aplatissement détruit la géométrie » veut dire.
Ce que ce résultat ne dit pas
L'argument vaut pour une permutation fixe. Une permutation tirée au hasard pour chaque image détruirait bel et bien de l'information, et la proposition ne dit rien de ce cas.
Il ne se limite pas non plus au modèle ci-dessus : il vaut aussi pour le réseau complet de la page 10, où seule la première matrice change et où toutes les étapes suivantes restent intactes.
Il ne dit pas que l'aplatissement est une erreur : il dit ce qu'il rend invisible.
Sur l'image de test numéro , un , les pixels et sont l'un au-dessus de l'autre dans la grille, et leurs rangs valent et , soit 28 rangs d'écart dans le vecteur. Ils portent tous deux de l'encre, les octets et , et rien dans ne signale qu'ils sont voisins.
Deux pixels voisins sur une même ligne, eux, gardent des rangs consécutifs, mais cela ne rattrape rien : le modèle ne lit pas davantage la proximité des rangs que celle des cases.
L'aplatissement se manipule à la main avant d'être utilisé cent fois.
- a
Donner le rang de la coordonnée correspondant au pixel .
- b
Donner le rang du pixel immédiatement au-dessus de celui-là dans la grille, puis l'écart entre les deux rangs.
- c
Justifier cet écart directement par la formule , sans énumérer.
Aucune réponse à cliquer : il y a un calcul à faire.