Luminobellule 2D : Découverte d'un neurone artificiel publié le 26/05/2022  - mis à jour le 16/06/2022

TraAM 2021 - 2022

Sommaire des TraAms "Intelligence Artificielle"

Thématique

Deep Learning : Fonctionnement d’un neurone artificiel

Niveau concerné

Classe de seconde générale et technologique.

Problématique

Comment, à partir de données numériques, peut-on prédire la couleur d’un insecte ?

Il s’agit ici de faire fonctionner en débranché puis sur machine un algorithme permettant de classer en deux groupes d’individus une population d’insectes à partir de deux entrées numériques et d’un résultat binaire (rouge ou bleu).

Les données de chacun des 40 insectes sont référencées sur des cartes de couleurs (20 rouges, 20 bleues).

De quelle couleur devrait être la carte noire ?

Introduction 2D

Extrait de l’introduction à l’activité

Contenus

La géométrie repérée dans le plan, équations cartésiennes de droites dans le plan, programmation en Python.

Objectif

Voici ce que je souhaite faire émerger et expliquer aux élèves à la fin du traitement des données sur machine.

Graphiquement, on cherche les coefficients (les poids W1, W2 et b) d’une équation cartésienne de droite séparant deux ensembles de points dans le plan. L’algorithme mis en place permet, au fur et à mesure des erreurs de prédiction commises (entraînement), d’ajuster pas à pas les valeurs des poids (rétro-propagation).

Voici en images les points du plan (correspondants aux cartes rouges ou bleues) ainsi que les droites d’équations :

$$W_1X + W_2Y + b = 0$$

Situation de départ : poids = [5, 2, -14]

Situation de départ

Exemple d’état après un entraînement du modèle sur 20 cartes : poids = [2.66, 1.175, -13.7]

Après entrainement

Exemple de situation finale après entrainement sur 20 cartes

Pour conclure, une dernière activité sera proposée en classe afin de faire le lien entre les valeurs trouvées après l’entrainement et les équations de droites dans le plan.

Une vidéo contenant de belles animations pour expliquer le principe :

FORMATION DEEP LEARNING COMPLETE (2021)

Description du principe de fonctionnement d’un neurone artificiel.

Remarques :

  • On ne parlera pas de vectorisation ni de matrices ici afin de limiter la complexité.
  • Je ne pense pas expliquer aux élèves le calcul de l’ajustement des poids. On peut penser à une activité présentant la recherche pas à pas du minimum sur une parabole convexe en utilisant les coefficients directeurs de tangentes. Cela pourrait permettre une approche des calculs d’ajustements.

Un proposition de programme Python avec une animation 2D du résultat :
 Version exécutable en ligne avec FireFox ou Chrome (pyodide 2D et 3D)

Nombre d’heures utilisées

  • 30 minutes de présentations et de premières idées
  • 40 minutes de calculs débranchés à partir des cartes et du protocole donné
  • 20 minutes de présentation du diaporama et débat
  • 50 minutes sur le lien avec les équations cartésiennes de droites dans le plan

Outils et ressources

  • Un jeu de cartes : Les données
  • Une représentation schématique de l’algorithme sur feuille A4 plastifiée pour aider les élèves au départ.
  • Des feutres pour tableau blanc effaçables
  • Des chiffons
  • Calculatrices
  • Un environnement de programmation Python. (Capytale dans l’ENT)

Tous les documents pdf :

Equations cartésiennes : Lien entre équations de droites et l'activité (PDF de 74.7 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Vers un programme Python 2D (PDF de 74.7 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Cartes 2D : Les 40 cartes de données (PDF de 70.5 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Introduction 2D : Le texte d'introduction (PDF de 359.4 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Plateau à plastifier : Le plateau et le protocole (PDF de 106 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Diaporama de support à une présentation de l'IA et synthèse de l'activité (PDF de 2.9 Mo)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Démarche de l’enseignant

En observant les données présentées sur des cartes de couleurs, les élèves peuvent penser aux calculs de moyennes, de médianes et peut-être les associer à des points repérés dans le plan.

Le fonctionnement, même simplifié, d’un neurone artificiel pour classer des données ayant peu de chance d’être apporté par les élèves eux-mêmes, j’ai choisi ici d’imposer une succession de calculs sur les données sans parler d’IA ou d’algorithme.

J’espère alors que les mots : "Algorithme", "Amélioration", "Apprentissage" voire "Intelligence artificielle" pourront être exprimés par au moins quelques groupes d’élèves au fur et à mesure de leur avancée dans la méthode proposée.

Une activité de sur les équations cartésiennes de droites dans le plan est donnée à la fin pour faire le lien avec ce problème de classification.

Déroulement du scénario

Dans la deuxième partie de l’heure du lundi, je distribue l’introduction à l’activité. Les 34 élèves sont positionnés dans la salle de façon standard.

"Introduction" :

Introduction 2D

Extrait de l’introduction à l’activité

Pour résumer, il y a 20 cartes bleues, 20 rouges et une noire. Sur chaque carte il y a 2 valeurs numériques. La question posée aux élèves est : "Quelle sera la couleur de la carte noire ?".

L’ensemble des cartes rouges (puis bleues) est affiché au tableau. Plusieurs idées émergent comme des calculs de moyennes et de médianes. Les élèves de la rangée centrale calculent la moyenne des tailles de corps et les autres la moyenne des tailles des ailes afin de gagner du temps.

Les résultats de moyennes ou de médianes ne permettent pas de trancher.

Le lendemain, je propose aux deux demies classes organisées en îlots de 4 élèves la mise en place d’un protocole avec distribution des rôles :

  • Deux élèves pour les calculs
  • Un élève pour noter sur la fiche plastifiée les valeurs données et calculées
  • Un élève qui note sur son cahier l’évolution des valeurs des poids et tire au hasard les cartes

Les deux premières cartes traitées sont communes (voir le protocole). Cela permet aux élèves de comprendre ce qu’ils doivent faire.

Plateau à plastifier : Le plateau et le protocole (PDF de 106 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Remarque : Pour ces deux cartes, j’ai pris une rouge puis une bleue, il faut peut-être inverser les deux pour ne pas commencer par une erreur nulle.

Les élèves tirent ensuite des cartes au hasard puis appliquent le protocole. Je passe dans les îlots pour réexpliquer ou m’assurer du bon déroulement.

Un groupes d’élèves n’avance pas en raison d’une mauvaise compréhension ou, je suppose, d’une absence d’écoute lors de la phase précédente. Un autre groupe d’élève n’applique pas correctement le protocole, les poids ne sont pas ajustés.

Après quelques cartes traitées, les élèves observent de mauvaises prédictions sur les cartes bleues mais pas sur les cartes rouges (voir le graphique de la situation de départ). Ainsi, certains groupes commencent à privilégier le traitement des cartes bleues afin d’ajuster plus rapidement les poids. Je laisse faire.

Deux autres groupes s’organisent de façon très efficace. Ils traitent simultanément plusieurs cartes et s’arrêtent, si besoin, pour ajuster les poids. En 25 minutes ils parcourent les 40 cartes et prédisent une couleur pour la carte noire.

Je laisse encore dix minutes pour les groupes les plus en retard puis nous passons à une phase de mise en commun.

Je demande aux élèves leurs impressions : "Que fait ce protocole ? Que peut-on en dire ?"

"IL s’améliore", "IL s’adapte...". Le mot algorithme est employé et, dans chaque demie classe, une élève parle d’intelligence artificielle. Aucune contestation...

Le lendemain, toujours en demie classe sur une heure estampillée SNT, un code Python à compléter ensemble est distribué :

Vers un programme Python 2D (PDF de 74.7 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

La première demie classe est très réactive. Avec un peu d’aide pour retrouver le lien entre le protocole mis en place la veille et le code Python présent, le programme est rapidement complété au tableau et validé. Les élèves passent ensuite sur machine pour finir l’activité. Un notebook Python est prêt à être complété sur Capytale (ENT).

En revanche, la seconde demie classe n’est pas du tout dynamique. Je me sens vraiment seul pour compléter ce code Python. Quelques élèves ont avancé dans le travail mais ne disent rien, ne participent pas et les autres attendent. Une fois le code au tableau, les élèves passent sur machine pour compléter le notebook. Là encore, certains élèves effectuent cette tâche très rapidement alors que d’autres n’ont toujours pas compris le travail demandé.

Pour finir cette séance, nous passons à une présentation/discussion autour de l’IA et du Deep Learning à l’aide du diaporama de support.

Diaporama de support à une présentation de l'IA et synthèse de l'activité (PDF de 2.9 Mo)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Je montre une rapide utilisation de Teachable Machine avec des photos contenant ou non une grenouille.

Réussites, obstacles et limites

Une semaine s’écoule. J’ai trois heures avec eux en classe entière le jeudi dans une grande salle. Nous sommes donc en îlots. Après quelques habituelles questions flash, je distribue une activité sur les droites :

Equations cartésiennes : Lien entre équations de droites et l'activité (PDF de 74.7 ko)

Le luminobellule 3D : Découverte d’un neurone artificiel - TraAM 2021/2022 - Académie de Poitiers.

Les élèves connaissent déjà les équations réduites de droites du plan et les méthodes de calculs associées même si ces méthodes ne sont pas acquises pour tous.

Un graphique contenant déjà les points est projeté au tableau (Geogebra) pour valider ou non certaines propositions.

Pour la première question, beaucoup d’élèves utilisent la grille pour tracer une droite ce qui facilite ensuite les calculs.

Je demande à quelques élèves de me donner leur équation réduite de droite afin de vérifier au tableau. Il y a des erreurs et cela laisse encore un peu de temps aux élèves qui n’ont pas fini. Les îlots sont, dans l’ensemble, très actifs. Les élèves expliquent ou réexpliquent les méthodes.

La deuxième question nécessite plus d’aide de ma part. Même si nous avions déjà vu comment tracer des courbes à partir d’une équation et d’un tableau de valeurs, je dois commencer à remplir le tableau avec eux.

Certains îlots finissent rapidement de compléter le tableau en se partageant le travail mais un problème survient. Trop peu de points peuvent être placés dans le graphique. Aucun n’élève n’a l’idée d’agrandir le tableau et proposer d’autres valeurs. Je dois donc initier la démarche.

Une mise en commun révèle de nombreuses erreurs de calculs mais, petit à petit, les élèves voient apparaitre une droite passant à gauche du nuage de points.

Avant d’entamer la dernière question, je demande s’ils reconnaissent les coefficients 5, 2 et -14. Le lien se fait avec l’activité du luminobellule et les élèves reprennent leurs valeurs trouvées la semaine précédente pour la dernière question.

Là encore, quelques vérifications sur les valeurs des poids w1, w2 et b sont effectuées sur le graphique Geogebra projeté. Certains groupes pensent que leurs valeurs sont erronées car, après calculs, les points placés dans le graphique pour tracer la courbe ne sont pas alignés. Il s’agit d’erreurs de calculs.

Enfin, une synthèse est faite sur les équations cartésiennes de droites dans le plan.

Il faut compter une heure pour cette dernière activité.

Réussites, obstacles et limites

Retour sur l’objectif initial :

Mon but premier était de "démystifier" l’IA et l’apprentissage machine en faisant le lien avec certaines notions mathématiques et algorithmiques parcourues par les élèves cette année. Ce but est, me semble-t-il, atteint. Cela a permis de retravailler et de compléter les notions de droites du plan dans un autre cadre.

Difficultés observées chez les élèves :

La phase débranchée de calculs pour ajuster les poids a révélé un grand fossé dans la classe.
Certains groupes d’élèves très organisés ont effectué les calculs sur deux cartes en même temps. Ils ont pu ainsi balayer les 40 cartes en 25 minutes. Deux groupes d’élèves ont "choisi", après quelques minutes, de traiter 4 ou 5 cartes bleues pour "faire bouger les poids". En revanche, deux groupes d’élèves n’ont pas suivi les consignes, n’ont pas écouté sérieusement lors de l’étude commune des deux premières cartes. Ils n’ont donc pas vraiment adhéré à cette activité car, même en essayant de les relancer correctement, ils n’ont effectué que très peu d’ajustements de poids et n’ont rien observé du tout.

Les plateaux plastifiés servent surtout pour les premiers tours de calculs. Ensuite, les groupes les plus organisés s’appuient sur les deux élèves ayant une calculatrice et l’élève mémoire qui note/donne l’état des poids. Je m’interroge donc sur la nécessité de ces plateaux, il faudrait peut-être les faire autrement.

J’ai choisi de ne pas parler d’IA avant de présenter le protocole à effectuer. En effet, je souhaitais que cette idée "d’algorithme qui apprend" vienne des élèves. Ce type d’algorithme ayant peu de chance de venir des élèves eux-mêmes, faut-il leur dire qu’ils vont faire fonctionner une IA avant de les lancer sur les calculs et ainsi espérer une plus grande adhésion ?

Recherche du jeu de données :

Ces données imaginaires m’ont permis d’ajuster les valeurs des 40 cartes afin d’observer, après un nombre limité de calculs, une évolution du modèle. Il existe des jeux de données réelles mais je préférais pouvoir modifier les données.

Avec un peu plus de temps, il pourrait être intéressant de présenter un problème de classification concret (couleurs de fleurs d’iris...) et d’appliquer le programme Python.

Prolongements

Autre type d’apprentissage : Hexapawn

Après quelques semaines et avec une classe entière cette fois-ci, j’ai envoyé les élèves tester un jeu en ligne pendant 20 minutes :

Hexapawn

Screenshot du jeu Hexapawn

 Hexapawn : jeu en ligne

Leur mission : Effectuer au moins 15 parties, trouver les règles du jeu et analyser ce qui passe.

Quelques bugs sont découverts par les élèves mais ils ont tous compris cette idée d’apprentissage par renforcement.

Ajustement des poids :

On peut aussi penser à une activité présentant un algorithme de recherche pas à pas du minimum sur une parabole convexe en utilisant les coefficients directeurs de tangentes.