Cette activité d’une durée d’une heure permet de faire comprendre à des enfants (en particulier au collège) comment fonctionnent le Machine Learning et la création de modèle. Elle permet aussi de découvrir le métier de Data Scientist.


De plus en plus d’applications courantes utilisent l’Intelligence Artificielle.

Vous en connaissez surement déjà certaines (en dehors des jeux vidéo) : les filtres Snapchat, les recommandations Amazon ou Netflix, le flow de Deezer, les assistants type Siri ou Alexa, les trajets de Google Maps ou Apple Plans, le temps d’attente des véhicules Uber ou des bus TCL

Le développement de ces applications est devenu une compétence importante (et recherchée).

Dans cette activité, vous allez coder votre premier modèle d’intelligence artificielle (IA).

Prérequis

matériel feutres papier blanc voitures panneaux de signalisation
(photo V. Mathivet)

Voici le matériel nécessaire pour cette activité :

  • Des feuilles de papier ;
  • Des feutres / crayons de couleur ;
  • (Optionnel) des panneaux pour petites voitures ;
  • Un ordinateur connecté à internet, avec une webcam ;
  • Si possible Chrome comme navigateur ;
  • (Optionnel) une imprimante.

Il faut prévoir au moins 1h pour la réaliser !

L’ordre de mission

Vous êtes Data Scientist dans une société qui fabrique des voitures autonomes. Une voiture a été construite physiquement pour vous permettre de faire des tests. Elle possède de nombreux capteurs permettant d’éviter les contacts…

Cependant, elle doit aussi respecter le code de la route. Pour cela, elle est équipée d’une caméra et va devoir apprendre à reconnaitre les panneaux, puis à agir en conséquence.

Votre mission consiste à créer un modèle qui va reconnaître ces panneaux et donner la bonne instruction à la voiture. La vie des passagers est entre vos mains !

Réflexion préliminaire : le code de la route

Source : Wikimedia Commons1

Votre voiture aura 3 comportements possibles en fonction des panneaux rencontrés :

  • S’arrêter ;
  • Ralentir ;
  • Ignorer le panneau (par exemple quand il n’y a pas de panneaux ou que le panneau ne concerne pas la conduite).

Voici une liste de panneaux. Pour chacun, indiquez le comportement de la voiture (parmi « s’arrêter », « ralentir », « ignorer ») :

N’oubliez pas non plus les feux tricolores !

Source : Wikipedia

Création des panneaux

(photo V. Mathivet)

Pour chacune des catégories (« s’arrêter », « ralentir », « ignorer »), prévoyez environ 5 panneaux différents.

Exemple : pour la catégorie « s’arrêter », nous pouvons prévoir : Le feu rouge, le sens interdit, le péage, le panneau stop.

Si vous avez une imprimante…. Si vous n’avez pas d’imprimante
  • Vous pouvez trouver des coloriages de code de la route à imprimer ;
  • Vous pouvez aussi trouver des panneaux déjà prêts, en particulier sur le site de la sécurité routière (notamment la page listant les signaux routiers) ;
  • Vous pouvez également imprimer des photos de route contenant des panneaux. Les panneaux devront être bien visibles !
  • Coupez vos feuilles A4 en 4 morceaux. Sur chacune des parties, dessinez puis coloriez un panneau !

Création du dataset

Un dataset est un ensemble d’exemples. Attention :

  • S’il est trop petit il ne permet pas d’apprendre suffisamment.
  • S’il est trop gros, il est trop difficile à utiliser.

Allez sur le site : https://teachablemachine.withgoogle.com/train/image

Renommez la Class 1 en « S’arrêter » en cliquant sur le stylo :

devient…
Faites de même pour la Class 2 , en la renommant. « Ralentir ».
Puis cliquez sur « Add a class » pour ajouter une Class 3. Vous pouvez ensuite la renommer en « Ignorer ».

Vous devriez obtenir les classes suivantes :

Pour chaque classe, enregistrez plusieurs images de chacun de vos panneaux (avec la webcam).
Pour cela :

  • appuyez sur « Webcam » dans la classe correspondante.
  • Une fois l’image affichée, montrez un premier panneau et appuyez sur « Hold to Record ».
  • N’hésitez pas à bouger : cela permettra de reconnaitre les panneaux quelle que soit leur position.

Recommencez ensuite pour chacun des panneaux.

Attention : vos images doivent contenir les panneaux à différents endroits de l’image, à différentes distances, pour qu’ils soient ensuite bien reconnus !

Entrainement du modèle

Le bouton « Train model » vous permet d’entrainer votre modèle. Ne modifiez pas les réglages pour commencer.

Entrainer un modèle consiste à faire apprendre progressivement à un algorithme :

  • Les points communs entre images d’une même catégorie,
  • Ce qui différencie les images d’une catégorie précise avec celle d’une autre catégorie.

Ce n’est pas de la magie mais beaucoup de statistiques. À chaque étape de l’entrainement, les résultats s’améliorent.

Vous allez voir les différentes phases :

  • Préparation des images
  • Entrainement sur 50 itérations2 avec l’avancement :

Tester le modèle sur les données d’entrainement

Une fois votre modèle entrainé, vous pouvez le tester. Dans la zone « preview », vérifiez que l’entrée est bien sur webcam :

Montrez-lui ensuite des panneaux et regardez ce qu’il a reconnu :

Ici, on voit qu’il a reconnu à 100% qu’il faut s’arrêter. Selon les cas, vous pouvez avoir des probabilités un peu différentes :

Votre voiture doit bien se comporter sur tous les panneaux ayant servi à l’apprentissage. Si ce n’est pas le cas, n’hésitez pas à ajouter des images dans le dataset puis à relancer l’entrainement.

Tester le modèle sur de nouvelles données

Dans la réalité, votre voiture ne rencontrerait pas uniquement les panneaux que vous lui avez appris, mais tous les panneaux que l’on trouve dehors, avec des angles de vue parfois différents, des fonds différents, …

Il est donc vital de tester votre voiture sur de nouvelles données. Pour cela, refaites quelques panneaux ou bien utiliser des jouets contenant des panneaux, et tester votre modèle.

Voici par exemple nos résultats sur des panneaux « jouets » (le modèle n’a été entrainé que sur des dessins) :

La voiture va ralentir, même si elle n’a pas été entrainée sur ce panneau.

En effet, elle a appris qu’en voyant un panneau triangle rouge, il faut ralentir.

La voiture va aussi ralentir, bien qu’elle n’ait pas appris ce panneau.

La forme rouge mais ronde rend la détection du ralentissement moins fiable.

Ce panneau n’a pas été utilisé dans l’ensemble d’apprentissage. Il amène à un ralentissement alors qu’il aurait dû être ignoré.

Il faudrait ajouter plus de panneaux carrés et bleus au modèle.

Améliorations

Votre voiture n’a pas toujours le bon comportement : c’est parce que votre modèle n’est pas parfait.

Cela peut être dû à deux raisons :

  • Les données contenues dans le dataset ne sont pas assez variées ou pas assez nombreuses ;
  • Les paramètres d’apprentissage doivent être modifiés :
    • Le nombre d’itérations ou « epochs » (attention, si vous faites trop d’itérations, le modèle apprend les exemples « par cœur ». Il n’est plus capable de déterminer correctement le résultat sur une nouvelle image jamais vue) ;
    • Le taux d’apprentissage ou « learning rate » ;
    • Le « batch size » indiquant combien d’images sont utilisées à la fois pour apprendre.

Tous ces paramètres concernant l’apprentissage s’appellent « hyperparamètres ». Ils peuvent avoir un gros impact sur l’apprentissage. Vous pouvez les faire apparaître pour les modifier en cliquant sur « Advanced » :

Vous avez alors accès à plusieurs choix :

N’hésitez pas à refaire des panneaux, modifier votre dataset ou changer les paramètres jusqu’à obtenir le meilleur modèle possible !

Vous pouvez aussi avoir plus d’informations pour aller plus loin en cliquant sur « Under the hood » (« Sous le capot ») :

 

Merci d’avoir suivi cette activité ! Qu’en pensez-vous ? N’hésitez pas à nous faire vos retours.

Vous pouvez aussi télécharger le PDF de cette activité pour l’imprimer, si vous préférez.

Cette activité vous a été proposée par nos expertes Virginie Mathivet et Edwige Seminara ! Un grand merci à elles.

 

Sources : Panneaux 1 à 3, 4 à 6, 7 à 10 et 11 à 16.
Itération : Une itération est le fait de répéter quelque chose. Ici, un calcul !