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

Le coût sur tout le jeu

De l'erreur sur un exemple au coût sur tout le jeu : la quantité qu'on cherche à faire baisser.

La perte juge une réponse, et il y a soixante mille images. Sur laquelle règle-t-on les paramètres ?

Une boîte rectangulaire à l'encre porte en son centre f indice thêta. Une flèche y entre à gauche depuis la mention sept cent quatre-vingt-quatre nombres, et une flèche en sort à droite vers la mention dix nombres. Sous la boîte se lit fixé, puis thêta.
Ce qui varie est l'image ; θ\boldsymbol{\theta}θ ne bouge pas.
Une boîte rectangulaire en brique, de même forme que la précédente, porte en son centre C indice D. Une flèche y entre à gauche depuis la mention cent un mille sept cent soixante-dix nombres, et une flèche en sort à droite vers la mention un nombre. Sous la boîte se lit fixé, puis le jeu.
Le même montage, et tout y est inversé : ce qui varie est θ\boldsymbol{\theta}θ, et c'est le jeu qui ne bouge pas.

On ne peut pas minimiser ℓ\ellℓ en θ\boldsymbol{\theta}θ, pour une raison simple : ℓ\ellℓ ne voit pas θ\boldsymbol{\theta}θ. Il faut donc une fonction d'une seule variable, θ\boldsymbol{\theta}θ, dont la minimisation soit exactement le problème posé page 3.

De la perte d'un exemple au coût d'un jeu

CD:Rp→R≥0,CD(θ)=1N∑n=1Nℓ(fθ(x(n)), c(n))C_{\mathcal{D}}:\mathbb{R}^{p}\rightarrow\mathbb{R}_{\geq 0},\qquad C_{\mathcal{D}}(\boldsymbol{\theta})=\frac{1}{N}\sum_{n=1}^{N}\ell\big(f_{\boldsymbol{\theta}}(\mathbf{x}^{(n)}),\,c^{(n)}\big)CD​:Rp→R≥0​,CD​(θ)=N1​n=1∑N​ℓ(fθ​(x(n)),c(n))
(6.1)
Une moyenne, pas une somme : ainsi CDC_{\mathcal{D}}CD​ garde la même échelle qu'une perte individuelle, et un jeu deux fois plus grand ne double pas le coût.

La distinction entre ℓ\ellℓ et CDC_{\mathcal{D}}CD​ n'est pas une nuance de notation : ils ne prennent pas les mêmes arguments et ne vivent pas dans les mêmes espaces. Les confondre rend tout ce qui suit incompréhensible, et c'est l'erreur la plus fréquente du chapitre.

Les deux fonctions, côte à côte

ℓ\ellℓCDC_{\mathcal{D}}CD​

Départ

ΔK−1∘×[ ⁣[0,K−1] ⁣]\Delta^{\circ}_{K-1}\times[\![0,K-1]\!]ΔK−1∘​×[[0,K−1]]

Rp\mathbb{R}^{p}Rp, avec p=101 770p=101\,770p=101770

Arrivée

R≥0\mathbb{R}_{\geq 0}R≥0​

R≥0\mathbb{R}_{\geq 0}R≥0​

Ce qui varie

Une sortie et une étiquette

Les paramètres du réseau

Ce qui est fixé

Rien : les deux arguments varient

Le jeu D\mathcal{D}D, et l'architecture

Ce qu'on en fait

On l'évalue, une fois par exemple

On la minimise

Combien d'arguments réels

K+1K+1K+1, soit 111111

101 770101\,770101770

Les 101 770101\,770101770 nombres, rangés en un seul vecteur

θ\boldsymbol{\theta}θ est un quadruplet d'objets de types différents, deux matrices et deux vecteurs, et pour écrire CD:Rp→R≥0C_{\mathcal{D}}:\mathbb{R}^{p}\rightarrow\mathbb{R}_{\geq 0}CD​:Rp→R≥0​ il faut les voir comme un vecteur colonne. C'est l'identification du chapitre 2, appliquée bloc par bloc : vec\mathrm{vec}vec range chaque matrice ligne après ligne, et les quatre blocs se mettent bout à bout dans un ordre fixé une fois pour toutes.

θ=(vec W[1]b[1]vec W[2]b[2])∈Rp,p=100 352⏟128×784+128⏟+1 280⏟10×128+10⏟=101 770\boldsymbol{\theta}=\begin{pmatrix}\mathrm{vec}\,W^{[1]}\\ \mathbf{b}^{[1]}\\ \mathrm{vec}\,W^{[2]}\\ \mathbf{b}^{[2]}\end{pmatrix}\in\mathbb{R}^{p},\qquad p=\underbrace{100\,352}_{128\times 784}+\underbrace{128}_{}+\underbrace{1\,280}_{10\times 128}+\underbrace{10}_{}=101\,770θ=​vecW[1]b[1]vecW[2]b[2]​​∈Rp,p=128×784100352​​+128​​+10×1281280​​+10​​=101770
(6.2)
L'ordre des blocs est une convention : il faut en fixer une, et n'importe laquelle convient tant qu'elle ne change pas. Le programme de mesures range les blocs par ordre alphabétique de leur nom, et le fait à un seul endroit.

CDC_{\mathcal{D}}CD​ est donc une couche de complexité au-dessus du réseau. Le réseau prend 784784784 nombres et en rend 101010 ; le coût prend 101 770101\,770101770 nombres et en rend un seul. Ce ne sont pas les mêmes entrées, et ce qui est variable pour l'un est fixe pour l'autre.

Le jeu n'est pas une variable

CDC_{\mathcal{D}}CD​ dépend manifestement de D\mathcal{D}D, puisque changer le jeu change la fonction. Faut-il pour autant écrire C(θ,D)C(\boldsymbol{\theta},\mathcal{D})C(θ,D) ? Non, et la raison est nette : le jeu est fixé avant l'apprentissage et ne bouge plus. Il n'est pas une variable du problème, c'est un paramètre de la définition, ce que l'indice en bas note.

Le critère est celui-ci : une variable est ce par rapport à quoi on dérive. Tout ce chapitre dérive par rapport à θ\boldsymbol{\theta}θ et jamais par rapport à D\mathcal{D}D, et l'expression ∂C/∂D\partial C/\partial\mathcal{D}∂C/∂D n'apparaît nulle part et n'aurait pas de sens, D\mathcal{D}D n'étant pas un élément d'un espace vectoriel sur lequel on sache dériver. Écrire C(θ,D)C(\boldsymbol{\theta},\mathcal{D})C(θ,D) serait correct mais suggérerait le contraire.

Vérification rapide n° 24

Le statut de D\mathcal{D}D se tranche par un critère, pas par une préférence de notation.

  1. a

    Le jeu D\mathcal{D}D est-il une variable de CDC_{\mathcal{D}}CD​ ?

  2. b

    Justifier à partir de ce qu'on dérive et de ce qu'on ne dérive jamais.

  3. c

    Si l'on ajoutait une image au jeu, obtiendrait-on la même fonction avec une valeur de plus, ou une autre fonction ? Que devient alors arg⁡min⁡\arg\minargmin ?

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

Reste que dire au programme qu'il est mauvais ne suffit pas. CD(θ)=2,42C_{\mathcal{D}}(\boldsymbol{\theta})=2{,}42CD​(θ)=2,42 est un constat, pas une instruction : il ne dit lequel des 101 770101\,770101770 nombres changer, ni dans quel sens, ni de combien. C'est la page suivante.

Leçon suivante
PrécédenteDire au programme qu'il est mauvaisSuivanteDescendre, en dimension un