En AP4, nous avons écrit des transformations de nombres. Nous allons maintenant ajuster certains de ces nombres, les paramètres d’un modèle, pour rapprocher ses prédictions des réponses attendues : c’est l’apprentissage supervisé. Nous gardons les points dans le plan et les deux classes de la séance précédente : la classe 1 correspond à x * y > 0. La règle est connue, afin de pouvoir dessiner les réponses attendues et examiner précisément les erreurs du modèle.

Le premier atelier vérifie d’abord une réussite : retrouver la règle 2*x₁+x₂+0.5 sur quatre points avec une perte quadratique, le nombre qui mesure l’erreur du modèle, et le gradient, les dérivées de cette perte par rapport aux paramètres, que Nx calcule à partir du graphe de defn. Un pas de descente retranche à chaque paramètre sa dérivée multipliée par le taux d’apprentissage. Nous gardons ensuite les mêmes points, modèle, paramètres de départ, perte et réglages, et changeons seulement les cibles pour retrouver les classes d’AP4. Regardez ce que prédit le modèle : la descente fonctionne-t-elle encore ? Suffit-elle à séparer les quadrants opposés ? Cette comparaison nous servira à distinguer un souci d’optimisation d’une limite de représentation.

Le deuxième atelier construit un petit réseau avec Axon, la bibliothèque qui assemble des couches au-dessus de Nx. Nous retrouvons les mêmes éléments, avec des couches denses et une activation non linéaire, tanh, entre elles. La sortie sigmoïde donne un score entre 0 et 1 ; nous choisissons cette fois l’entropie croisée binaire comme perte et l’optimiseur Adam pour les mises à jour. Ces choix sont explicités dans le carnet : Axon pourrait aussi exprimer notre première descente. Les valeurs brutes des deux pertes ne se comparent pas. Pour examiner l’effet de la non-linéarité, nous comparerons ensuite deux réseaux identiques dont seule l’activation cachée change, avec la même perte et le même optimiseur.

Le troisième atelier vous laisse expérimenter. Commencez par annoncer votre hypothèse : que devrait changer un taux d’apprentissage plus grand, davantage d’époques, c-à-d. de passages sur les données, ou une autre activation ? Ne modifiez qu’un choix à la fois, puis conservez les mesures et le dessin de la frontière de décision. Chaque résultat garde sa recette complète : famille, largeur, activation, taux, époques et graine. Un nouvel essai repart de paramètres nouvellement initialisés. Une question moins guidée vous demandera de concevoir un test distinguant la capacité du modèle de la réussite de son entraînement. Certains résultats peuvent contredire votre intuition ; expliquez ce que votre essai permet de conclure, et ce qu’il ne permet pas encore de savoir.

Nous séparons les points utilisés pour ajuster les paramètres (le lot d’apprentissage), ceux utilisés pour choisir une configuration (la validation) et ceux du test final, consulté une seule fois. Une bonne mesure sur l’apprentissage ne nous dit pas tout. À l’inverse, si cette petite grille ne montre pas de surapprentissage, n’inventez pas une dégradation : indiquez ce que vous avez observé et pourquoi une autre expérience serait nécessaire.

Les carnets rappellent les formes des tenseurs et les cellules à reprendre, et expliquent chaque forme Elixir ou Axon nouvelle à l’endroit où elle sert. L’installation des bibliothèques demande une connexion la première fois ; les données sont produites localement et aucun GPU n’est nécessaire. Nous visons un modèle assez petit pour pouvoir suivre ses calculs et essayer plusieurs variantes pendant la séance.

Pour prolonger ou remplacer l’expérience sur les points, le carnet ap5-04-fashion.livemd propose de reconnaître des vêtements de Fashion-MNIST. Nous y retrouvons les tenseurs et l’entraînement, mais avec dix classes et des erreurs à examiner dans les images. Ce travail s’inspire du cours de Sébastien Boisgérault, adapté ici à Elixir. Il demande un téléchargement préalable ; je préciserai en séance si nous le faisons ensemble ou si vous le gardez comme approfondissement.

La séance s’ouvre par le quiz sur AP4 : relisez le chapitre 7 du poly, « Des tenseurs et des graphes ». Le chapitre 8, « Des calculs qui apprennent », accompagne cette séance et prépare le quiz d’AP6.

Conservez vos carnets dans AP5/. Une prédiction argumentée, une expérience reproductible et une explication de ses limites font partie du travail, même si une extension reste inachevée. Je préciserai en cours les cellules attendues et les modalités du rendu ; les prolongements non demandés restent facultatifs.

Si un bout de syntaxe vous manque en route, le poly donne les formes avec un exemple et sa sortie : Nx au chapitre 7, Axon au chapitre 8.

Pour toute question, vous pouvez me contacter par email, comme indiqué en cours.

Ouvrir les ateliers

1. Ajuster des paramètres

Apprenez une règle affine, puis changez seulement les cibles pour XOR. Distinguez un apprentissage réussi de la limite du modèle.

Slides 4 à 14Nx.Defn : grad, defn · paramètres, perte et taux d’apprentissage · poly, chap. 8.

Run in LivebookTélécharger le .livemd

2. Construire un réseau avec Axon

Assemblez des couches, entraînez le réseau et distinguez architecture, paramètres appris et procédure d’optimisation.

Slides 16 à 25Axon : input, dense, tanh, sigmoid, Loop · classification binaire et entropie croisée · poly, chap. 8.

Run in LivebookTélécharger le .livemd

3. Comparer nos expériences

Gardez la recette complète de chaque essai : famille, largeur, activation, taux, époques et graine. Comparez sur la validation, puis ouvrez le test pour le choix final.

Slides 26 à 33Apprentissage, validation, test · taux, époques, activation et frontière de décision · poly, chap. 8.

Run in LivebookTélécharger le .livemd