Thématiques
Participants 8
Durée 2h
Public 9-12 ans
Prérequis Maîtrise de base de l’ordinateur
Matériel
Démarrer les postes des participants. Ouvrir les postes des participants sur l’outil de reconnaissance d’images de Vittascience avec le navigateur Chrome ou Edge (malheureusement, la liaison série avec Micro:bit ne fonctionne pas sur Firefox). Supprimer les catégories par défaut, « Homme » et « Femme ».
Intégration de Micro:bit
La majeure partie de l’atelier pourrait se faire sans ces cartes, le cœur en étant la manipulation des outils d’intelligence artificielle.
Pour aller plus loin
Tricher plus subtilement. L’IA triche tout le temps. À moins que l’humain ne joue trop tard ou qu’une erreur de reconnaissance d’image se produise, l’IA gagne à tous les coups. Comment faire pour que cela soit moins visible ? On pourrait, de temps en temps, jouer sciemment un mauvais coup ou nul, ou jouer un coup au hasard.
Gagner sans tricher. Au pierre-feuille-ciseaux, la stratégie optimale, au sens de la théorie des jeux, consiste à choisir les coups de façon aléatoire (une chance sur trois pour chaque). Mais un humain peut très difficilement faire des choix vraiment aléatoires, nous avons tendance à suivre certaines régularités, certains motifs. Ainsi, on pourrait coder un autre genre d’IA, qui apprendrait à prédire le prochain coup d’un humain en fonction de ses coups passés. Résultat, l’IA pourrait gagner plus souvent que l’humain, sans tricher comme nous le faisons ici.
Définition. Demander aux participants s’ils savent ce qu’est l’intelligence artificielle. En avez-vous déjà utilisé ? Décrire l’IA comme un programme informatique capable de réaliser des tâches complexes, que l’on réservait plutôt aux humains. Lister quelques cas d’utilisation : génération de texte, génération d’image, reconnaissance d’image (de visage, de plantes, …), de recommandation (sur les réseaux sociaux, bien que ce soit un peu tôt à cet âge).
Apprentissage. Est-ce que vous avez une idée de comme les IA fonctionnent ? Comment les fabrique-t-on ? L’idée est de faire ressortir la notion d’apprentissage à partir de données.
Chifoumi. Aujourd’hui nous allons fabriquer une IA capable de reconnaître des images, qui va nous servir pour jouer au jeu de pierre-feuille-ciseaux.
Constitution du jeu de données. Ajouter trois catégories « Pierre », « Feuille » et « Ciseaux ». Pour chaque catégorie, utiliser la webcam pour ajouter une cinquantaine de photos pour chaque catégorie. Attention, la qualité des photos influe grandement sur les performances de l’IA. Voici quelques conseils :
Entraînement. Cliquer sur « Entraîner le modèle ». L’entraînement prend une petite minute. Utiliser la fenêtre d’aperçu pour tester les performances de l’IA. Les résultats s’affichent en temps réel sous le rendu de la caméra. Pour vérifier que le modèle fonctionne correctement, cocher la case « Zones d’influence », qui met en valeur les zones de l’images ayant fortement influé dans la prise de décision de l’IA. Si le modèle fonctionne conformément à ce qu’on attend de lui, ces zones devraient être au niveau de la main et non d’éléments d’arrière-plan.
Visualisation. Si le temps le permet, cliquer sur « Visualiser le réseau de neurones », puis sur « Vue détaillée ». Le réseau est constitué en différentes couches. Chaque couche est constituée de beaucoup de neurones. Les neurones utilisent les pixels de l’image de la caméra pour calculer le score de chaque catégorie (pierre, feuille ou ciseau). Lorsque l’on parle d’entraîner le modèle, on entraîne les neurones à correctement calculer ces scores. Pour cela, on utilise des outils mathématiques que l’on apprend au lycée des dérivées. Ce n’est pas très compliqué mais c’est très puissant.
Proposer aux participants d’échanger temporairement de place, et de tester le modèle des autres. Là, il est assez probable que la reconnaissance ne marche pas bien. Demander pourquoi. Pas la même main, pas la même position : en d’autres termes, en changeant de personne, le modèle est pris de cours, il ne comprend plus ce qu’il regarde. C’est un peu comme être interrogé sur une partie du cours que l’on n’a pas révisé. On peut deviner un peu la bonne réponse, mais c’est plus difficile.
Test de Scratch. Lorsque tous les participants ont un modèle qui fonctionne à peu près, cliquer sur « Adacraft » et choisir « Sauvegarder dans le navigateur ». Est-ce que vous reconnaissez cette interface ? Ces blocs ?
Insérer les blocs « lancer la détection sur l’image de la webcam » et « dire classe détectée pendant 2 secondes » dans une boucle « répéter indéfiniment » et ajouter un bloc « attendre 1 seconde ». Cliquer sur le drapeau vert et constater que le petit robot arrive (normalement) à reconnaître les gestes que l’on fait.
Algorithme de jeu. Demander aux participants, qu’est-ce qu’un algorithme ? Une suite d’instructions, une procédure, une recette. Présenter (en demandant de l’inspiration aux participants) et écrire sur un support (numérique projeté, tableau, …) l’algorithme de notre jeu de pierre-feuille-ciseau, un peu spécial, car on utilisera l’IA pour tricher :
Effacer les blocs précédents, et guider les participants pour ajouter les blocs suivants, sans les agencer :
Positionner le bloc « sélectionner et initialiser le modèle de la mémoire locale du navigateur » sous le premier bloc, « quand le drapeau est cliqué ». Proposer aux participants d’utiliser ces blocs pour implémenter l’algorithme conçu plus tôt. Si les participants ont du mal, donner les indications suivantes :
Le bloc « attendre x secondes » permet d’ajouter, après le décompte, un petit délai (par exemple 0,2 secondes). Cela permet, en quelques sortes, de jouer après l’humain, car il est important qu’il fasse son geste avant que l’ordinateur n’exécute le bloc « lancer la détection sur l’image de la webcam ».
Passage sur Microbit . Nous allons maintenant adapter le script pour jouer contre la carte Micro:bit. Les participants récupèrent chacun une carte Micro:bit et un câble USB. Brancher la carte en USB sur l’ordinateur. Depuis Vittascience, cliquer sur « Extensions » et choisir « micro:bit avec USB ». Cliquer sur « Télécharger .hex » et copier-coller le fichier téléchargé sur la carte. Ceci-fait, cliquer sur « Connecter ». Sélectionner le port série (COM1, COM2, COM3, …) qui apparaît et cliquer sur « Connexion » puis fermer la fenêtre.
Adapter le code pour utiliser la carte comme affichage :
Déclenchement par geste. Pour l’instant, il faut cliquer sur le drapeau pour démarrer une partie. Ce n’est pas très pratique. Quelles options pourrions-nous envisager ? Nous allons tirer partie de l’outil de reconnaissance d’image, et utiliser un geste particulier pour déclencher une nouvelle partie. C’est une occasion pour demander aux participants s’ils ont bien compris comment fonctionnait l’entraînement du modèle, et de leur laisser la possibilité de se débrouiller par eux-mêmes.
Maintenant que le modèle est mis à jour, nous allons également pouvoir mettre à jour le programme :
Le taux de confiance est en quelques sortes les scores de chaque classe que l’on voyait à l’écran d’entraînement du modèle, et varie entre 0 (pas sûr du tout) à 1 (absolument certain). Rajouter cette condition permet d’éviter un déclenchement inopportun dû à une erreur momentanée de détection.
Reste ensuite à faire boucler le programme :
Désormais, il ne suffit que de cliquer sur l’icône de drapeau une fois pour déclencher le programme. Puis, à chaque fois que l’on veut jouer, il suffit de faire le geste du bras, ce qui déclenche le compte à rebours.
S’il reste du temps, proposer aux participants d’inclure une variante au jeu, en ajoutant le geste du puits. Tout a été vu pour ajouter un nouvel élément, le code est facile à adapter. Petite subtilité : si l’humain joue la pierre ou les ciseaux, on a alors le choix entre deux coups gagnants. On peut bien sûr choisir de faire toujours le même coup, mais on peut également utiliser une génération de nombre aléatoire pour décider entre les deux.
Présenter les modalités d’accès et d’utilisation des machines de l’Atelier en dehors des animations.