Google Teachable machine
Teachable Machine est un outil en ligne, créé par le Google Creative Labs, qui rend la création de modèles d’apprentissage automatique rapide, facile et accessible à tous.
Teachable Machine repose sur l’apprentissage par transfert (Transfer Learning). Cette technique utilise d’un modèle déjà entraîné et le spécialise pour une nouvelle tâche à accomplir. Cela permet d’ entraîner le modèle beaucoup plus rapidement et avec moins de données que s’il fallait partir de zéro. La nouvelle tâche à accomplir peut être classer des babanes plus ou moins mûres (Bananameter) tout autant que détecter un type d’infection pulmonaire.
Teachable Machine repose sur le modèle déjà entraîné MobileNet avec le dataset ImageNet. Les MobileNets sont des réseau neuronaux convolutifs (CNN) à faible latence et faible consommation qui peuvent être utilisés pour la classification.
Pour faire une comparaison rapide en termes de taille, la taille du réseau VGG16 complet sur disque est d’environ 553 mégaoctets. La taille de l’un des plus grands MobileNets actuels est d’environ 17 mégaoctets. En raison de leur petite taille, ils sont considérés comme d’excellents modèles d’apprentissage profond à utiliser sur les appareils mobiles.
Détecter une infection pulmonaire avec Google Teachable Machine
Etape 1 : Charger les images qui vont permettre d’entrainer le modèle. Création de 4 catégories : pneumonie virale, pneumonie bactérienne, covid-19, sans pathologie. Pour chacune des catégories, le nombre d’images est 133.
Etape 2 : Choisir les paramètres dans la rubrique “ Advanced” qui vont permettre d’optimiser l’entrainement du modèle et cliquer sur “ Train Model”.
- Epoch — Comme les humains, l’Intelligence Artificielle apprend au fil du temps et son intelligence s’amplifie lorsque les chercheur fournissent au modèle continuellement des données d’entraînement. Une époque signifie que le modèle a été alimenté une fois avec l’ensemble des données.
- Learning rate — Dans l’apprentissage automatique, le taux d’apprentissage (learning rate) est un paramètre de réglage qui détermine la taille du pas à chaque itération tout en se déplaçant vers un minimum d’une fonction de perte.
- Batch size —La taille du lot définit le nombre d’échantillons qui seront propagés dans le réseau. Par exemple, disons que vous avez 1050 échantillons d’entraînement et que vous voulez définir une taille de lot égale à 100. L’algorithme prendra les 100 premiers échantillons (du 1er au 100e) de l’ensemble de données d’apprentissage et entraîne le réseau. Ensuite, il prend les 100 autres échantillons (du 101e au 200e) et entraîne à nouveau le réseau.
Etape 3 : Une fois le modèle entraîné, ‘model trained” s’affiche et en cliquant sur le bouton “Under the hood” apparaîssent des rubriques qui permettent d’évaluer la performance du modèle entraîné.
Nous constatons que pour le modèle entraîné la précision (Accuracy) pour la pneumonie virale est plus faible que pour les autres classes.
Le modèle semble avoir des performances inférieures pour la classification de cette pathologie. En effet dans 6 cas sur 20, le modèle va prédire une pneumonie virale à la place d’une pneumonie bactérienne. Il serait peut-être nécessaire d’améliorer l’entrainement de ce modèle en augmentant le nombre d’images de chacune des classes et en modifiant les paramètres d’entrainement du modèle.
Etape 4 : Effectuer des prédiction à patir de nouvelles images qui n’ont pas servi à entrainer ni à valider les performances du modèle.
Pour effectuer une prédiction, il suffit de charger par “drag and drop” la radio qui permettra au modèle d’effectuer la prédiction.
- Une première prédiction est effectuée de façon exacte (output covid-19 = 100%) par le modèle à partir d’une adio covid-19.
- Une seconde prédiction est effectuée de façon exacte (output patient sain = 98%) par le modèle à partir d’une radio sans infection pulmonaire.
- Une troisième prédiction est effectuée de façon erronée par le modèle (output patient sain = 86%) par le modèle à partir d’un radio d’une pneumonie virale.
- Une quatrième prédiction est effectuée de façon erronée par le modèle (output covid-19 = 60%) par le modèle à partir d’un radio d’une pneumonie virale. Les prédictions effectuées à partir des radios de pneumonies virales confirment bien la précision de 65% sur cette classe de données.
- Une dernière prédiction permet de montrer que le modèle est tout de même capable de prédire une pneumonie virale à partir d’une radio d’un patient atteint de pneumonie virale.
Etape 5: Une fois amélioré de façon itérative (plus d’images, optimisation des paramètres d’entraînement) ce modèle pourra être exporté sour un format tensorflow.js, tensorflow ou tensorflow lite afin d’être intégré dans un site internet (voir les vidéo du Coding Train en annexe), dans une interface mobile ou s’intégrer avec Raspberry Pi (voir le projet Teachable Sorter en annexe).
Teachable Machine Tutoriels
Teachable Machine on the Coding Train : Image and sound classification