Découvrez nos
ressources

Activité : Algorithme KNN

Matériel nécessaire :

  • 1 robot minimum
  • 1 ordinateur/robot
  • Arène individuelle minimum (sans obstacle)

Configuration logiciel :

  • configuration d'exemple : “KNN caméra”

Durée :

30 minutes


Age :

+ 14 ans

Les + de cette activité :

  • Algorithme intuitif
  • Peut être réalisée avec le simulateur
  • Excellente visualisation de la prise de décision du robot

Visualisation et application de l'algorithme des K plus proches voisins (au programme de première NSI) pour apprendre au robot à éviter les obstacles.

Niveau expert : dans l’activité “Algorithme KNN avancé”, les élèves pourront reprogrammer l'algorithme par eux-mêmes et le mettre en œuvre sur le robot.

Introduction

Placez le robot dans une arène sans mur intérieur. Veillez à ce que l’arène soit bien éclairée, afin d’avoir un fort contraste entre le sol et les murs.

Paramétrage

Connectez le robot à l’ordinateur puis choisissez la configuration d'exemple “KNN caméra”.
Veillez à ce que la vitesse du robot soit inférieure ou égale à 30.

Pour cette activité, le robot analyse des images caméra dont la résolution a été réduite à 2 pixels seulement, et sans couleur. On obtient donc un pixel gauche et un pixel droit, qui mesurent des niveaux de gris. L'abscisse (pixel de gauche) et l’ordonnée (pixel de droite) du graphe montrent ces valeurs de niveaux de gris, 0 correspondant au noir et 1 correspondant au blanc.

Les actions par défaut sont : avancer (en jaune), pivoter à gauche (en rose) et pivoter à droite (en vert).

Il est possible d’ajouter davantage d’actions pour ce scénario, mais veillez à le faire dès le début, car modifier les actions provoque l’effacement de la mémoire d'expérience.

Phase d'entraînement

Vérifiez que le bouton « autonome » est bien décoché, et que le bouton “apprentissage” est bien coché.

Dirigez le robot en cliquant sur les flèches à droite de l’écran, où grâce aux touches « flèches » du clavier.

Tournez quand le robot est proche des murs et allez tout droit sinon. Vous pouvez aussi déplacer le robot à la main pour le mettre dans chaque situation.


Après chaque mouvement, un nouveau point apparaît. La position de chaque point est déterminée par ses coordonnées (x ; y), l’abscisse "x" représentant la luminosité dans la zone de gauche et l’ordonnée "y" représentant la luminosité dans la zone de droite. La couleur autour de chaque point est la couleur associée à l’action choisie (vert pour pivoter à droite, jaune pour en avant et rouge pour pivoter à gauche).

Ces points sont les données d’entraînement. Cette phase est primordiale pour que l’IA fonctionne correctement. Si les données d’entraînement contiennent trop d’erreurs ou approximations, l’IA ne permettra pas d’avoir un résultat satisfaisant.

Une fois l’entraînement terminé, ouvrez le panneau Visualisation et cochez la case “arrière-plan” la section “Espace d’états”.

Vous verrez alors apparaître à l’écran les 3 différentes zones de couleurs qui correspondent à l’action que choisira le robot en fonction de la luminosité captée par sa caméra.

Si votre robot a été bien entraîné, le graphe devrait ressembler à : 

La luminosité diminue lorsque le robot s’approche des murs. Normalement, si la zone de gauche est la plus sombre, il faut tourner à droite, et inversement.

Lorsque vous aurez trois régions bien claires sur le graphique, arrêtez la phase d’entraînement et activez l’autonomie pour passer à la phase de test.

Test de l’apprentissage et améliorations

Activez l’autonomie en cliquant sur le bouton correspondant à l’écran ou en appuyant sur la barre d’espace.

Comment se comporte le robot ? Évite-t-il les obstacles comme prévu ?
Si le robot est bien entraîné, il saura éviter les bords par lui-même. Si au contraire il est mal entraîné ou la luminosité dans l’arène n’est pas homogène, les zones de couleur sur le graphique auront des contours plus irréguliers et le robot fera plus d’actions inappropriées.

Comprendre la prise de décision de l’algorithme : le point le plus gros est celui capté à cet instant par la caméra : il se lie au point le plus proche dans le graphe, qui a été enregistré lors de la phase d'entraînement : c’est l’action correspondante à son plus proche voisin qu’il va choisir d’effectuer !

Pistes pour aller plus loin

  • Dans l’onglet IA, faire varier la valeur de k (le nombre de voisins). Observer l’effet sur la prise de décision et sur la coloration d’arrière-plan du graphe. Quelle valeur de k donne le meilleur comportement ? Pourquoi ?
  • Après avoir bien compris le principe de l’apprentissage, refaire un apprentissage avec un plus petit nombre de points (par exemple: défi 5 points d’entraînement seulement).

Bilan et retours d'expérience

Points abordés / Notions à retenir :

  • Le principe de l’algorithme des k plus proches voisins : comprendre et savoir expliquer comment sont prises les décisions du robot.
  • Quel est l’impact des données d'entraînement sur le résultat ? Comment bien choisir les données d’entraînement ?
  • Quel est l’impact du paramètre k ? Comment choisir la meilleure valeur pour ce paramètre ?
Cursus liés