TensorFlow prête main forte à la construction d’une machine à faire des pierre/feuille/ciseaux

Il est difficile de penser à un jeu plus « analogique » que pierre-feuille-ciseaux. Mais cet été, un Googler a décidé d’utiliser TensorFlow, le système d’apprentissage automatique open source de Google, pour construire une machine capable de jouer à pierre-feuille-ciseaux. Pour plus de détails techniques et le code source, voir la publication originale sur le blog Google Big Data et Machine Learning.

Cet été, mon fils de 12 ans et moi étions à la recherche d’un projet scientifique faire ensemble. Il s’intéresse à CS et a étudié la programmation avec Scratch, alors nous savions que nous voulions faire quelque chose impliquant le codage. Après avoir exploré plusieurs idées, nous avons décidé de construire une machine à pierre-feuille-ciseaux qui détecte un geste de la main, puis choisit la pose appropriée pour répondre: pierre, papier ou ciseaux.

Mais notre machine à pierre-feuille-ciseaux avait un ingrédient secret: TensorFlow, qui dans ce cas utilise un algorithme en Machine Learning très simple qui détecte la posture de votre main grâce à un micro-contrôleur Arduino connecté au gant.

Pour fabriquer le matériel de la machine, nous avons utilisé des kits littleBits-kid qui incluent une grande variété de composants tels que LED, moteurs, commutateurs, capteurs et contrôleurs pour fixer trois capteurs de courbure à un gant en plastique. Lorsque vous pliez les doigts en portant le gant, les capteurs émettent un signal électrique. Pour lire les signaux des capteurs de courbure et contrôler le cadran de la machine, nous avons utilisé un module Arduino et Servo.

         composants matériels de ciseaux à papier caillouteux
Les composants matériels de la machine à pierre-feuille-ciseaux

Après avoir assemblé le composant matériel, nous avons écrit le code pour lire les données des capteurs. Le module Arduino prend la tension de signal d’entrée qu’il reçoit du gant, puis convertit ces signaux en une série de trois nombres.

 Graphe de probabilités de pierre-feuille-ciseaux
Graphe de probabilités de pierre-feuille-ciseaux
Estimation de la distribution de probabilité de la roche (rouge), du papier (vert) et des ciseaux (bleu), tel que déterminé par TensorFlow et notre modèle linéaire

L’étape suivante consistait à déterminer quelle combinaison de trois chiffres représente la pierre, la feuille ou les ciseaux. Nous voulions le faire d’une manière qui pourrait être flexible dans le temps, par exemple si nous voulions capturer plus de trois positions de la main avec beaucoup plus de capteurs. Nous avons donc créé un modèle linéaire – une formule algébrique simple que beaucoup d’entre vous ont appris au lycée ou au collège – et utilisé l’apprentissage automatique dans TensorFlow pour résoudre la formule basée sur les données du capteur et les résultats attendus (pierre, feuille ou ciseaux) ). Ce qui est cool, c’est que c’est comme la programmation automatisée – nous spécifions l’entrée et la sortie, et l’ordinateur génère la transformation la plus importante au milieu.

Enfin, nous avons tout mis ensemble. Une fois que nous déterminons la posture de la main, le servo contrôle la main de la machine pour gagner la partie. (Bien sûr, si vous vous sentiez compétitif, vous pourriez toujours programmer la machine pour que VOUS la gagniez à chaque fois … mais nous ne ferions jamais cela. ?)

         dessin de fils de kaz
Mon fils dessine le signe de la main de la machine

Les ciseaux à papier ne sont probablement pas ce qui vous vient à l’esprit quand vous pensez au Machine Learning, mais ce projet démontre comment le ML peut être utile à tous les types de programmeurs, quelle que soit la tâche humaine. codage et accélération des calculs. Dans ce cas, il a également fourni du plaisir en famille!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.