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

Dix neurones

Passer d'un neurone à dix, transformer leurs scores en probabilités, et mesurer ce que ça vaut.

Une pièce de calcul ne rend qu'un seul nombre, quand la tâche en réclame dix, un par chiffre possible, puis une réponse unique. Dix nombres sans échelle commune ne se comparent pourtant à rien, et il faudra les ramener sur une échelle où la somme des dix vaut un. Comment passe-t-on d'une brique isolée à un modèle qui tranche entre dix chiffres ?

Dix ronds alignés, étiquetés de zéro à neuf. Au-dessus de chacun, sa préactivation, sous le nom z : moins zéro virgule sept zéro trois huit pour le zéro, moins quinze virgule sept six trois zéro pour le un, plus zéro virgule six deux zéro huit pour le deux, plus huit virgule six un trois sept pour le trois, moins deux virgule quatre huit cinq huit pour le quatre, plus un virgule six six six huit pour le cinq, moins douze virgule quatre zéro huit quatre pour le six, plus quatorze virgule quatre un neuf huit pour le sept, plus un virgule six six zéro cinq pour le huit, et plus quatre virgule trois sept neuf quatre pour le neuf. Neuf ronds sont blancs ; celui du sept est noir et cerclé de brique. Sous chacun, son activation, sous le nom a : zéro virgule zéro zéro trois zéro zéro zéro sous le trois, zéro virgule neuf neuf six neuf cinq zéro sous le sept, et sous les huit autres des valeurs inférieures à un dix-millième. En pied, la somme des dix coordonnées vaut un, le second choix est le trois avec zéro virgule zéro zéro trois zéro zéro zéro, et la classe prédite est sept.
Les écarts entre les zzz sont larges ; après le softmax il ne reste qu'un seul neurone qui parle.

Dix neurones au lieu d'un

Dix neurones qui lisent tous la même chose et rendent chacun leur nombre forment ce qu'on appelle une couche, et c'est l'objet de cette page.

On prend donc dix neurones indépendants, un par chiffre, et le neurone kkk a son propre vecteur de poids wk∈R784\mathbf{w}_{k}\in\mathbb{R}^{784}wk​∈R784 ainsi que son propre biais bkb_{k}bk​. Empiler les dix wkT\mathbf{w}_{k}^{\mathsf{T}}wkT​ en lignes donne une matrice, et les dix bkb_{k}bk​ un vecteur.

Ce que l'indice bas désigne ici

Deux emplois de l'indice bas se croisent ici, et c'est la graisse qui les sépare. En maigre, wkw_{k}wk​ désigne comme à la page 4 le poids du pixel de rang kkk, donc un nombre. En gras, wk\mathbf{w}_{k}wk​ désigne le vecteur des 784784784 poids du neurone qui note le chiffre k−1k-1k−1, donc une ligne entière de WWW. Là où la graisse ne se voit pas, c'est la phrase qui dit lequel des deux est en jeu. Le bkb_{k}bk​ reste, lui, la kkk-ième coordonnée de b\mathbf{b}b, un nombre.

De la même façon, zzz était un nombre à la page 4 et z\mathbf{z}z est ici le vecteur des dix.

K=10,W∈M10,784(R),b∈R10,z=Wx+b∈R10K=10,\quad W\in\mathcal{M}_{10,784}(\mathbb{R}),\quad \mathbf{b}\in\mathbb{R}^{10},\qquad \mathbf{z}=W\mathbf{x}+\mathbf{b}\in\mathbb{R}^{10}K=10,W∈M10,784​(R),b∈R10,z=Wx+b∈R10
(6.1)

Vérification des dimensions : (10×784)(784×1)=10×1(10\times 784)(784\times 1)=10\times 1(10×784)(784×1)=10×1, auquel b\mathbf{b}b de dimension 10×110\times 110×1 s'ajoute. La ligne kkk de WWW étant wkT\mathbf{w}_{k}^{\mathsf{T}}wkT​, la coordonnée zk=wkTx+bkz_{k}=\mathbf{w}_{k}^{\mathsf{T}}\mathbf{x}+b_{k}zk​=wkT​x+bk​ est exactement la préactivation (4.1)(4.1)(4.1) du kkk-ième neurone, si bien que rien de neuf n'a été introduit et que dix copies du même objet ont seulement été rangées.

Les 784784784 pixels et les 784784784 colonnes de WWW se réordonnent ensemble. Les dix scores ne changent pas d'un chiffre : ce modèle n'a jamais su que deux pixels étaient voisins. C'est la proposition 1 de la page 3, sur la matrice qu'on vient de poser.

À gauche, une petite grille carrée porte un sept manuscrit en gris. Au centre, deux colonnes de ronds vides sont reliées par un voile de traits très pâles ; celle de droite compte dix ronds étiquetés de zéro à neuf, et celui du sept est noirci et cerclé de rouge. Tout à droite, dix nombres sont écrits l'un sous l'autre, chacun à la hauteur du rond qui lui répond, sous le mot « avant ». Les cases de la grille se mettent alors à bouger ensemble, chacune vers une autre place ; quand elles s'immobilisent, le sept a disparu et il ne reste qu'un semis de taches grises où aucune forme ne se reconnaît. Le voile de traits s'efface, et dix bandes horizontales de petits carrés rouges et bleus s'installent à sa place, une par rond de la colonne de droite, entre deux crochets ; des points de suspension y remplacent la plupart des carrés. Les carrés montrés glissent au-dehors et s'effacent, et d'autres arrivent en sens inverse pour prendre leur place. Les bandes disparaissent, le voile de traits revient, et les taches de la grille brouillée s'envolent une à une vers la colonne de gauche, qui se remplit d'un motif tout autre qu'au début. La lumière traverse, la colonne de droite s'allume exactement comme la première fois, et le même cadre rouge se referme sur le rond du sept. Dix nombres s'écrivent enfin sous le mot « après », à côté des premiers : ce sont les mêmes, chiffre pour chiffre.

0:00 / 0:27

Les objets de la couche, typés

SymboleTypeEnsembleDimensionRôle

WWW

Matrice

M10,784(R)\mathcal{M}_{10,784}(\mathbb{R})M10,784​(R)

10×78410\times 78410×784

Paramètre appris

b\mathbf{b}b

Vecteur

R10\mathbb{R}^{10}R10

10×110\times 110×1

Paramètre appris

z\mathbf{z}z

Vecteur

R10\mathbb{R}^{10}R10

10×110\times 110×1

Calculé

a\mathbf{a}a

Vecteur

Δ9∘\Delta^{\circ}_{9}Δ9∘​, défini en (6.2)(6.2)(6.2)

10×110\times 110×1

Calculé, de somme 111

y\mathbf{y}y

Vecteur

{0,1}10\{0,1\}^{10}{0,1}10

10×110\times 110×1

Donnée, tirée de ccc par (6.4)(6.4)(6.4)

ccc

Scalaire entier

[ ⁣[0,9] ⁣][\![0,9]\!][[0,9]]

1×11\times 11×1

Donnée. Un code, pas une quantité

θ\boldsymbol{\theta}θ

Couple

M10,784(R)×R10\mathcal{M}_{10,784}(\mathbb{R})\times\mathbb{R}^{10}M10,784​(R)×R10

p=7 850p=7\,850p=7850

L'ensemble des paramètres

θ=(W,b)\boldsymbol{\theta}=(W,\mathbf{b})θ=(W,b) est un couple d'objets de types différents, et on l'identifie à un vecteur de Rp\mathbb{R}^{p}Rp en rangeant chaque bloc bout à bout, avec p=10×784+10=7 850p=10\times 784+10=7\,850p=10×784+10=7850. C'est le procédé de la page 3, où vec\mathrm{vec}vec rangeait une grille 28×2828\times 2828×28 en colonne, employé ici sur des blocs de taille quelconque et sur des paramètres au lieu d'une image.

Dix grilles de vingt-huit sur vingt-huit, rangées en deux rangées de cinq et étiquetées de zéro à neuf. Chaque grille colore les sept cent quatre-vingt-quatre poids de la ligne correspondante de W : le rouge brique marque les poids positifs, le bleu ardoise les négatifs, le blanc le zéro. Les dix partagent une seule échelle, graduée en bas, symétrique autour d'un zéro central. Certains gabarits laissent deviner la forme du chiffre qu'ils notent, d'autres pas du tout.
Les dix gabarits côte à côte, sur une seule échelle : leurs amplitudes se comparent d'un coup d'œil.

De dix scores à une loi de probabilité

z\mathbf{z}z est un vecteur de dix réels quelconques : rien n'y est positif, rien n'y somme à 111, et deux valeurs de θ\boldsymbol{\theta}θ donnent des échelles incomparables. On veut une réponse et une confiance, donc un objet d'un ensemble plus petit.

Simplexe ouvertopen probability simplex

L'ensemble ΔK−1∘\Delta^{\circ}_{K-1}ΔK−1∘​ des vecteurs de RK\mathbb{R}^{K}RK à coordonnées strictement positives et de somme 111. Ses éléments sont exactement les lois de probabilité sur KKK classes qui n'excluent aucune classe.

Le petit rond en exposant note cette exclusion du bord : une coordonnée peut s'approcher de 000 autant qu'on veut sans jamais l'atteindre, et c'est ce que veut dire ouvert.

ΔK−1∘={a∈RK : ak>0  ∀k∈[ ⁣[1,K] ⁣],  ∑k=1Kak=1}\Delta^{\circ}_{K-1}=\Big\{\mathbf{a}\in\mathbb{R}^{K}\ :\ a_{k}>0\ \ \forall k\in[\![1,K]\!],\ \ \textstyle\sum_{k=1}^{K}a_{k}=1\Big\}ΔK−1∘​={a∈RK : ak​>0  ∀k∈[[1,K]],  ∑k=1K​ak​=1}
(6.2)

L'indice K−1K-1K−1 est la dimension de cet ensemble, pas son nombre de coordonnées. Un élément a bien KKK coordonnées, mais la contrainte ∑kak=1\sum_{k}a_{k}=1∑k​ak​=1 en retire une : dès que a1,…,aK−1a_{1},\ldots,a_{K-1}a1​,…,aK−1​ sont donnés, aK=1−∑k<Kaka_{K}=1-\sum_{k<K}a_{k}aK​=1−∑k<K​ak​ est forcé. Il reste K−1K-1K−1 degrés de liberté. Pour K=10K=10K=10, on écrit donc Δ9∘\Delta^{\circ}_{9}Δ9∘​.

Softmax

L'application softmax:RK→ΔK−1∘\mathrm{softmax}:\mathbb{R}^{K}\rightarrow\Delta^{\circ}_{K-1}softmax:RK→ΔK−1∘​ qui exponentie chaque coordonnée puis divise par la somme. L'exponentielle rend tout strictement positif, la division normalise.

softmax:RK→ΔK−1∘,(softmax(z))k=ezk∑j=1Kezj\mathrm{softmax}:\mathbb{R}^{K}\rightarrow\Delta^{\circ}_{K-1},\qquad \big(\mathrm{softmax}(\mathbf{z})\big)_{k}=\frac{e^{z_{k}}}{\sum_{j=1}^{K} e^{z_{j}}}softmax:RK→ΔK−1∘​,(softmax(z))k​=∑j=1K​ezj​ezk​​
(6.3)
L'ensemble d'arrivée se vérifie : le numérateur est strictement positif, le dénominateur est une somme de termes strictement positifs, et la somme des KKK quotients vaut ∑kezk/∑jezj=1\sum_{k}e^{z_{k}}/\sum_{j}e^{z_{j}}=1∑k​ezk​/∑j​ezj​=1.

Les deux morceaux se recollent, et le modèle de cette page s'écrit d'un trait : a=fθ(x)=softmax(Wx+b)\mathbf{a}=f_{\boldsymbol{\theta}}(\mathbf{x})=\mathrm{softmax}(W\mathbf{x}+\mathbf{b})a=fθ​(x)=softmax(Wx+b). C'est la boîte de la page 1 dans sa première version, celle qui ne fait qu'un calcul entre l'image et la réponse.

DérivationLe softmax n'agit pas coordonnée par coordonnée, et il se réduit à deux classes en une fonction d'une variable (proposition 5)
1

Hypothèses

  • ·

    softmax\mathrm{softmax}softmax est défini par (6.3)(6.3)(6.3), avec K≥2K\geq 2K≥2.

  • ·

    1K=(1,…,1)T∈RK\mathbf{1}_{K}=(1,\ldots,1)^{\mathsf{T}}\in\mathbb{R}^{K}1K​=(1,…,1)T∈RK est le vecteur de uns.

  • ·

    σ:R→(0,1)\sigma:\mathbb{R}\rightarrow(0,1)σ:R→(0,1), σ(u)=1/(1+e−u)\sigma(u)=1/(1+e^{-u})σ(u)=1/(1+e−u). Cette fonction ne sert ici qu'à nommer le résultat du cas K=2K=2K=2 ; la page 9 l'étudie pour elle-même.

2

Propriétés utilisées

  • ·

    eu+v=eueve^{u+v}=e^{u}e^{v}eu+v=euev

  • ·

    eu>0e^{u}>0eu>0 pour tout réel uuu, donc toute division par une somme d'exponentielles est licite

3

Étapes

  1. (i) Invariance par translation. Pour tout t∈Rt\in\mathbb{R}t∈R et tout kkk :

  2. (softmax(z+t1K))k=ezk+t∑jezj+t=et ezket∑jezj=ezk∑jezj=(softmax(z))k\big(\mathrm{softmax}(\mathbf{z}+t\mathbf{1}_{K})\big)_{k}=\frac{e^{z_{k}+t}}{\sum_{j} e^{z_{j}+t}}=\frac{e^{t}\,e^{z_{k}}}{e^{t}\sum_{j} e^{z_{j}}}=\frac{e^{z_{k}}}{\sum_{j} e^{z_{j}}}=\big(\mathrm{softmax}(\mathbf{z})\big)_{k}(softmax(z+t1K​))k​=∑j​ezj​+tezk​+t​=et∑j​ezj​etezk​​=∑j​ezj​ezk​​=(softmax(z))k​

    ez+t=eteze^{z+t}=e^{t}e^{z}ez+t=etez, et et≠0e^{t}\neq 0et=0 autorise la simplification.

  3. softmax\mathrm{softmax}softmax n'est donc pas injective : toute la droite z+R1K\mathbf{z}+\mathbb{R}\mathbf{1}_{K}z+R1K​ a la même image.

  4. Conséquence : ce n'est pas une application composante par composante. Si elle l'était, il existerait φ:R→R\varphi:\mathbb{R}\rightarrow\mathbb{R}φ:R→R telle que la coordonnée kkk de l'image ne dépende que de zkz_{k}zk​. Ajoutons alors ttt à la seule coordonnée j≠kj\neq kj=k : la coordonnée kkk de l'image serait inchangée, puisque zkz_{k}zk​ ne bouge pas. Or elle change, car le dénominateur augmente de ezj(et−1)≠0e^{z_{j}}(e^{t}-1)\neq 0ezj​(et−1)=0 pour t≠0t\neq 0t=0. Contradiction.

    L'argument porte sur une modification d'une seule coordonnée, alors que (i) en modifiait toutes : les deux ne se contredisent pas.

  5. (ii) Le cas K=2K=2K=2. On calcule la première coordonnée :

  6. (softmax(z))1=ez1ez1+ez2=11+ez2−z1=11+e−(z1−z2)=σ(z1−z2)\big(\mathrm{softmax}(\mathbf{z})\big)_{1}=\frac{e^{z_{1}}}{e^{z_{1}}+e^{z_{2}}}=\frac{1}{1+e^{z_{2}-z_{1}}}=\frac{1}{1+e^{-(z_{1}-z_{2})}}=\sigma(z_{1}-z_{2})(softmax(z))1​=ez1​+ez2​ez1​​=1+ez2​−z1​1​=1+e−(z1​−z2​)1​=σ(z1​−z2​)

    Division du numérateur et du dénominateur par ez1e^{z_{1}}ez1​, strictement positif.

4

Résultat

softmax(z+t1K)=softmax(z)et(softmax(z1,z2))1=σ(z1−z2)\mathrm{softmax}(\mathbf{z}+t\mathbf{1}_{K})=\mathrm{softmax}(\mathbf{z})\quad\text{et}\quad \big(\mathrm{softmax}(z_{1},z_{2})\big)_{1}=\sigma(z_{1}-z_{2})softmax(z+t1K​)=softmax(z)et(softmax(z1​,z2​))1​=σ(z1​−z2​)
5

Interprétation

Chaque coordonnée de la sortie dépend de toutes les coordonnées de z\mathbf{z}z, par le dénominateur. Un score n'a donc aucun sens seul : seuls les écarts entre scores en ont un. Et ce que le cas binaire appelle « le » score est en réalité l'écart entre deux scores, dont l'un est implicitement fixé à zéro. La sigmoïde n'est pas une fonction différente du softmax : c'en est le cas particulier à deux classes.

Ce que ce résultat ne dit pas

  • ·

    L'invariance par translation a une conséquence pratique immédiate : on peut retrancher max⁡jzj\max_{j} z_{j}maxj​zj​ à toutes les coordonnées sans changer le résultat, et c'est exactement ce que fait le programme de mesures pour que ezke^{z_{k}}ezk​ ne déborde jamais.

  • ·

    Elle a aussi une conséquence sur les paramètres : ajouter une même constante aux dix biais ne change rien à la sortie. Le modèle a donc un degré de liberté inutile.

Comparer la sortie à la vérité

onehot:[ ⁣[0,K−1] ⁣]→{0,1}K,onehot(c)=ec+1\mathrm{onehot}:[\![0,K-1]\!]\rightarrow\{0,1\}^{K},\qquad \mathrm{onehot}(c)=\mathbf{e}_{c+1}onehot:[[0,K−1]]→{0,1}K,onehot(c)=ec+1​
(6.4)
ek∈RK\mathbf{e}_{k}\in\mathbb{R}^{K}ek​∈RK est le kkk-ième vecteur de la base canonique : sa kkk-ième coordonnée vaut 111, les autres 000. Le décalage c+1c+1c+1 vient de ce que les classes sont numérotées à partir de 000 et les coordonnées à partir de 111 ; il est écrit à chaque fois plutôt que sous-entendu.
ℓ:ΔK−1∘×[ ⁣[0,K−1] ⁣]→R≥0,ℓ(a,c)=−ln⁡ac+1\ell:\Delta^{\circ}_{K-1}\times[\![0,K-1]\!]\rightarrow\mathbb{R}_{\geq 0},\qquad \ell(\mathbf{a},c)=-\ln a_{c+1}ℓ:ΔK−1∘​×[[0,K−1]]→R≥0​,ℓ(a,c)=−lnac+1​
(6.5)
La perte ne regarde qu'une coordonnée, celle de la bonne classe, et le logarithme la fait croître sans borne quand cette coordonnée tend vers 000 : se tromper avec assurance coûte arbitrairement cher, ce qu'un écart comme 1−ac+11-a_{c+1}1−ac+1​ ne ferait pas. Sélectionner la coordonnée c+1c+1c+1 revient à prendre −yT ln⁡a-\mathbf{y}^{\mathsf{T}}\,\ln \mathbf{a}−yTlna avec y=onehot(c)\mathbf{y}=\mathrm{onehot}(c)y=onehot(c), écrit autrement. L'ensemble d'arrivée est bien R≥0\mathbb{R}_{\geq 0}R≥0​, puisque ac+1≤1a_{c+1}\leq 1ac+1​≤1 donne ln⁡ac+1≤0\ln a_{c+1}\leq 0lnac+1​≤0, et la perte ne s'annule que si ac+1=1a_{c+1}=1ac+1​=1, ce qui n'arrive jamais sur ΔK−1∘\Delta^{\circ}_{K-1}ΔK−1∘​, où toutes les coordonnées sont strictement positives.
Prédiction, et le cas des ex æquo

La classe prédite est c^(a)=(arg⁡max⁡k∈[ ⁣[1,K] ⁣]ak)−1\widehat{c}(\mathbf{a})=\big(\arg\max_{k\in[\![1,K]\!]} a_{k}\big)-1c(a)=(argmaxk∈[[1,K]]​ak​)−1. arg⁡max⁡\arg\maxargmax n'est pas défini sur ΔK−1∘\Delta^{\circ}_{K-1}ΔK−1∘​ tout entier : sur l'ensemble EEE des a\mathbf{a}a dont le maximum est atteint par au moins deux coordonnées, il ne désigne aucun indice unique. c^\widehat{c}c est donc définie sur ΔK−1∘∖E\Delta^{\circ}_{K-1}\setminus EΔK−1∘​∖E. Cet ensemble EEE est réuni par les égalités ak=aja_{k}=a_{j}ak​=aj​, chacune retirant un degré de liberté : il est donc d'épaisseur nulle dans ΔK−1∘\Delta^{\circ}_{K-1}ΔK−1∘​, et deux coordonnées calculées en virgule flottante n'y tombent pas. La convention retenue par le programme, en cas d'égalité, est de prendre le plus petit indice.

preˊcision=1N∑n=1N1{c^(a(n))=c(n)} ∈[0,1]\text{précision}=\frac{1}{N}\sum_{n=1}^{N}\mathbb{1}\big\{\widehat{c}(\mathbf{a}^{(n)})=c^{(n)}\big\}\ \in[0,1]preˊcision=N1​n=1∑N​1{c(a(n))=c(n)} ∈[0,1]
(6.6)
C'est une définition, pas une notion supposée connue : la part des exemples sur lesquels la classe prédite tombe juste. Elle ignore complètement la confiance.

Ce que ce modèle compte, et ce qu'il vaut

p=10×784⏟W + 10⏟b = 7 840+10=7 850p=\underbrace{10\times 784}_{W}\ +\ \underbrace{10}_{\mathbf{b}}\ =\ 7\,840+10=7\,850p=W10×784​​ + b10​​ = 7840+10=7850
(6.7)

Parmi ces 7 8507\,8507850 nombres, 10×67=67010\times 67=67010×67=670 sont attachés aux pixels que la page 2 a trouvés blancs sur les 60 00060\,00060000 images à la fois. Quelle que soit leur valeur, ils ne déplacent aucun score, puisqu'ils sont toujours multipliés par zéro.

Trois réglages apparaissent dans la sortie qui suit, et le chapitre 3 seul dira comment on les choisit. Une époque est un passage complet sur les 60 00060\,00060000 images d'entraînement. Le pas η\etaη règle l'ampleur de chaque correction apportée aux paramètres. L'initialisation dit de quelles valeurs on part, ici de zéro partout, ce qui donne dix scores nuls et dix probabilités égales sur la première image. Les corrections, elles, ne sont pas nulles pour autant, et le chapitre 3 dira pourquoi.

Le modèle $784\rightarrow 10$ entraîné · cours/lecon2/mesures.py, section 4

    p                                       7850 parametres
    initialisation                          zero
    eta                                     0.5
    epoques                                 30

    PRECISION DE TEST                       0.9193
    ERREURS                                 807 sur 10 000
    perte de test                           0.2931

      epoque   acc_test
           1     0.9172
           2     0.9066
           3     0.9211
           5     0.9176
          10     0.9193
          15     0.9251
          20     0.9235
          25     0.9221
          30     0.9193

Lecture

  • ·

    0,91930{,}91930,9193 contre un seuil de 11,35 %11{,}35\,\%11,35% : le modèle a appris quelque chose, et beaucoup.

  • ·

    L'essentiel du score est acquis dès la première époque, à 0,91720{,}91720,9172, et les vingt-neuf suivantes ne font plus que le faire osciller : entre les époques 555 et 303030 il va et vient entre 0,91760{,}91760,9176 et 0,92510{,}92510,9251, sans jamais s'écarter d'un point. Le chiffre retenu, 0,91930{,}91930,9193, est celui de la dernière époque et non le meilleur des neuf, parce que choisir le meilleur reviendrait à régler le modèle sur le jeu de test.

  • ·

    La perte de test, 0,29310{,}29310,2931, est la moyenne de (6.5)(6.5)(6.5) sur les 10 00010\,00010000 images, et non la perte d'une image particulière.

  • ·

    807807807 erreurs sur 10 00010\,00010000, et la page 7 démontre que ce plafond n'est pas un défaut de réglage.

Une sortie complète, sur l'image de test n°0

      classe :         0         1         2         3         4         5         6         7         8         9
      a_k    :    0.0000    0.0000    0.0000    0.0030    0.0000    0.0000    0.0000    0.9969    0.0000    0.0000
      predit 7 avec 0.996950   second choix 3 avec 0.003000
      somme des dix coordonnees : 1.0000000000

Lecture

  • ·

    Les dix coordonnées somment à 111 à la précision d'affichage : a\mathbf{a}a est bien dans Δ9∘\Delta^{\circ}_{9}Δ9∘​.

  • ·

    Aucune coordonnée n'est exactement nulle : les zéros affichés sont des arrondis. C'est le sens du mot « ouvert » dans (6.2)(6.2)(6.2).

  • ·

    c^(a)=7\widehat{c}(\mathbf{a})=7c(a)=7, et l'étiquette vraie est 777.

Vérification rapide n° 12

La sortie ci-dessus se lit sans le programme qui l'a produite.

  1. a

    Quelle classe le réseau prédit-il, et quelle confiance accorde-t-il à son second choix ?

  2. b

    Que vaut ℓ(a,7)\ell(\mathbf{a},7)ℓ(a,7) pour cette sortie, à trois décimales ?

  3. c

    Si l'on ajoutait 100100100 à chacune des dix préactivations zkz_{k}zk​, que deviendrait a\mathbf{a}a ? Justifier par la proposition 5.

Aucune réponse à cliquer : il y a un calcul à faire.

Vérification rapide n° 13

Le compte des paramètres se fait sans instancier d'abord.

  1. a

    Pour KKK classes et ddd entrées, donner l'ensemble d'appartenance de WWW, celui de b\mathbf{b}b, et l'expression de ppp.

  2. b

    Instancier pour K=10K=10K=10 et d=784d=784d=784.

  3. c

    Quelle part de ppp est occupée par les biais ? Cette part grandit-elle ou diminue-t-elle quand ddd augmente ?

Aucune réponse à cliquer : il y a un calcul à faire.

Leçon suivante
PrécédenteConstruire un détecteur de bordSuivanteLe plafond, et d'où il vient