Guide du débutant pour AutoML Vision

Présentation

Imaginez que vous travaillez avec une commission de conservation du patrimoine souhaitant identifier les quartiers de votre ville qui présentent un style architectural homogène. Vous devez passer au crible des centaines de milliers d'instantanés de maisons, mais classifier toutes ces images manuellement serait bien trop fastidieux et risquerait de générer des erreurs. Un stagiaire a commencé à étiqueter plusieurs centaines de ces images il y a quelques mois, mais personne n'y a touché depuis. Quel soulagement si vous pouviez apprendre à votre ordinateur à les classifier pour vous !

Exemple d'images de 4 types de style architectural

En quoi un système de machine learning (ML) constitue-t-il un outil adapté pour résoudre ce problème ?

image représentant la programmation Généralement, un programme suppose que le programmeur spécifie des instructions détaillées que l'ordinateur doit suivre. Bien que cette approche fonctionne pour résoudre un large éventail de problèmes, elle ne vous permet pas de classifier les maisons comme vous le souhaitez. Il existe tellement de variations dans la composition, les couleurs, les angles et les détails stylistiques qu'il semble difficile de concevoir un ensemble de règles permettant à un ordinateur de déterminer, d'après une photo, si telle maison individuelle est de style classique ou contemporain. Vous ne sauriez même pas par où commencer. Heureusement, les systèmes de machine learning constituent des outils idéaux pour résoudre ce problème.

L'API Vision ou AutoML sont-ils des outils adaptés à mon cas ?

L'API Cloud Vision classe les images dans des milliers de catégories prédéfinies, détecte les objets et les visages dans les images, et reconnaît les mots en caractères d'imprimerie contenus dans les images. Pour vos besoins de détection d'objets, de visages et de texte dans vos ensembles de données, ou pour une classification d'images d'ordre générique, essayez l'API Cloud Vision et voyez si elle vous convient. En revanche, si vous devez utiliser vos propres étiquettes pour classifier vos images, il peut être intéressant de tester un classificateur personnalisé pour juger s'il répond à vos besoins.

images d'étiquettes génériques dans l'API Cloud Vision et d'étiquettes personnalisées dans AutoML

Essayer l'API Cloud VisionPremiers pas avec AutoML

Qu'implique le machine learning dans AutoML ?

image d'un réseau de neurones simple Le machine learning implique l'utilisation de données pour entraîner des algorithmes afin d'obtenir le résultat souhaité. Les spécificités de l'algorithme et les méthodes d'entraînement varient selon le cas d'utilisation. Il existe de nombreuses sous-catégories de machine learning, qui résolvent toutes des problèmes différents et fonctionnent avec des contraintes variées. AutoML Vision vous permet d'effectuer un apprentissage supervisé. Cela consiste à apprendre à un ordinateur à détecter des tendances à partir de données étiquetées, permettant ainsi d'entraîner un modèle personnalisé à reconnaître le contenu qui vous intéresse dans des images.

Préparation des données

Pour entraîner un modèle personnalisé avec AutoML Vision, vous devez fournir des exemples étiquetés des types d'images (les "entrées") que vous souhaitez classifier, ainsi que les catégories ou étiquettes (la "réponse") que les systèmes de ML doivent prédire.

Évaluer le cas d'utilisation

image de point de départ et d'arrivée

Lorsque vous constituez un ensemble de données, commencez toujours par définir son cas d'utilisation. Dans un premier temps, posez-vous les questions suivantes :

  • Quel résultat souhaitez-vous obtenir ?
  • Quels types de catégories devez-vous identifier pour atteindre ce résultat ?
  • En tant qu'humain, est-il possible de reconnaître ces catégories ? La capacité d'AutoML Vision à gérer et à attribuer à tout moment un panel de catégories est certes supérieure à celle de l'être humain. Toutefois, si celui-ci ne parvient pas à reconnaître une catégorie spécifique, son traitement posera également problème à AutoML Vision.
  • Quels types d'exemples refléteraient le mieux le type et la plage de données que votre système va classer ?

Les produits de ML de Google reposent sur un principe fondamental : le machine learning centré sur l'humain, une approche qui met en avant les pratiques d'IA responsables, y compris l'équité. En matière de ML, l'équité consiste à comprendre et éviter tout traitement injuste ou préjudiciable des individus en fonction de leur origine ethnique, leurs revenus, leur orientation sexuelle, leur religion, leur genre ou d'autres caractéristiques qui sont associées, historiquement, à des faits de discrimination et de marginalisation, lorsque ces phénomènes se manifestent dans les systèmes algorithmiques ou les processus décisionnels assistés par un algorithme. Pour en savoir plus, parcourez notre guide et consultez les remarques à propos de l'équité  incluses dans les consignes suivantes. Lors de la lecture des consignes permettant la mise en place de votre ensemble de données, nous vous incitons à appliquer ce principe d'équité dans le machine  learning lorsque cela est pertinent pour votre cas d'utilisation.

Collecter des données

graphique de points de données Une fois que vous avez défini les données dont vous avez besoin, vous devez trouver un moyen de les collecter. Vous pouvez commencer par prendre en compte toutes les données que votre organisation recueille. Vous allez peut-être constater que vous collectez déjà les données dont vous avez besoin pour entraîner un modèle. Dans le cas contraire, vous pouvez les obtenir manuellement ou confier cette étape à un fournisseur tiers.

Inclure suffisamment d'exemples étiquetés pour chaque catégorie

image d'entraînement de modèle Pour entraîner votre modèle dans AutoML Vision, vous devez inclure au strict minimum 100 exemples d'image par catégorie ou étiquette. Plus vous fournissez d'exemples de bonne qualité par étiquette, plus les chances qu'elle soit correctement reconnue augmentent. De manière générale, plus vous incluez de données étiquetées dans le processus d'entraînement, meilleur sera votre modèle. Essayez de fournir au moins 1 000 exemples par étiquette.

Répartir équitablement les exemples entre les catégories

Il est important d'inclure un nombre à peu près similaire d'exemples d'entraînement pour chaque catégorie. Même si vous disposez d'une abondance de données pour une étiquette, il est préférable d'avoir une distribution égale pour chaque étiquette. Voici un exemple illustrant ce principe : imaginez que 80 % des images que vous utilisez pour créer votre modèle concernent des maisons individuelles de style contemporain. En présence d'une répartition des étiquettes aussi déséquilibrée, il est très probable que votre modèle apprenne qu'il est judicieux de toujours indiquer cette catégorie de construction pour chaque photo, plutôt que de s'aventurer à essayer de prédire une étiquette beaucoup moins courante. Ce cas de figure est comparable à un questionnaire à choix multiples où presque toutes les bonnes réponses sont "C" et où la personne répondant au questionnaire va très vite déduire qu'elle peut répondre "C" à chaque fois, sans même regarder la question.

photo des images d'entraînement pour 4 types d'architecture

Nous savons qu'il n'est pas toujours possible de trouver un nombre à peu près équivalent d'exemples pour chaque étiquette. Pour certaines catégories, il peut être plus difficile de collecter des exemples impartiaux de bonne qualité. Dans ce cas, vous pouvez suivre le principe général suivant : l'étiquette comprenant le moins d'exemples doit compter au moins 10 % du total d'exemples de l'étiquette en comportant le plus. Par exemple, si l'étiquette la plus représentée comporte 10 000 exemples, la moins importante devrait en présenter au moins 1 000.

Tenir compte des variations dans votre espace de problème

Pour des raisons similaires, assurez-vous que vos données tiennent compte de la variété et de la diversité de votre espace de problème. Plus la sélection proposée au processus d'entraînement du modèle est vaste, plus celui-ci sera facile à généraliser pour de nouveaux exemples. Ainsi, si vous essayez de classer les photos de produits électroniques grand public en catégories, plus vous exposerez le modèle à une large variété de produits lors de l'entraînement, plus il saura distinguer la dernière tablette, ou le dernier téléphone ou ordinateur portable, même s'il n'a jamais vu ce produit spécifique auparavant.

image de divers types de produits électroniques grand public

Trouver des données correspondant aux résultats souhaités du modèle

image d'entraînement correspondant à l'image du résultat attendu

Recherchez des images qui ressemblent visuellement à celles que vous prévoyez d'utiliser pour vos prédictions. Si vous essayez de classer des images de maisons qui ont toutes été photographiées en hiver sous la neige, et que vous utilisez un modèle qui n'a été entraîné que sur des photos prises par temps ensoleillé, vous obtiendrez probablement des performances médiocres. Le fait d'avoir indiqué les tags et classes voulus n'y changera rien, car l'éclairage et les paysages sont trop différents pour donner un résultat optimal. Dans l'idéal, vos exemples d'entraînement sont constitués de données réelles tirées du même ensemble de données que celui sur lequel vous prévoyez d'utiliser le modèle pour la classification.

Comprendre comment AutoML Vision utilise les ensembles de données lors de la création de modèles personnalisés

Votre ensemble de données contient des ensembles d'entraînement, de validation et de test. Si vous ne spécifiez pas cette répartition (consultez la page Préparer les données d'entraînement), AutoML Vision utilise automatiquement 80 % de vos images à des fins d'entraînement, 10 % à des fins de validation et 10 % à des fins de test.

représentation graphique des ensembles de données d'entraînement, de test et de validation

Ensemble d'entraînement

image de jumelles La grande majorité de vos données doit figurer dans l'ensemble d'entraînement. Il s'agit des données auxquelles votre modèle accède pendant l'entraînement : elles sont utilisées pour apprendre les paramètres du modèle, à savoir la pondération des connexions entre les nœuds du réseau de neurones.

Ensemble de validation

image de plan L'ensemble de validation, parfois aussi appelé ensemble "dev", est également utilisé lors du processus d'entraînement. Une fois que le framework d'apprentissage du modèle a incorporé les données d'entraînement à chaque itération du processus, il utilise les performances du modèle sur l'ensemble de validation pour ajuster ses hyperparamètres, qui sont des variables spécifiant sa structure. Si vous essayez d'utiliser l'ensemble d'entraînement pour régler les hyperparamètres, il est fort probable que le modèle finisse par trop se focaliser sur les données d'entraînement. Vous aurez alors du mal à généraliser le modèle à des exemples légèrement différents. L'utilisation d'un ensemble de données relativement nouveau pour affiner la structure du modèle permet une meilleure généralisation du modèle à d'autres données.

Ensemble de test

image de bécher L'ensemble de test n'est pas du tout impliqué dans le processus d'entraînement. Une fois l'entraînement du modèle terminé, l'utilisation de l'ensemble de test représente un défi complètement nouveau pour le modèle. Ses performances sur l'ensemble de test sont supposées vous fournir une idée plutôt fidèle de son comportement sur des données réelles.

Répartition manuelle

image de tubes à essai Vous pouvez également scinder votre ensemble de données vous-même. Il est judicieux de répartir manuellement vos données lorsque vous souhaitez exercer davantage de contrôle sur le processus, ou si vous souhaitez absolument inclure des exemples spécifiques dans une certaine partie du cycle de vie de l'entraînement d'un modèle.

 

Préparer les données pour l'importation

Lorsque vous avez fait votre choix entre la répartition manuelle ou automatique de vos données, vous pouvez importer les données dans AutoML Vision de trois manières :

  • Vous pouvez importer des données avec vos images triées et stockées dans des dossiers correspondant aux étiquettes.
  • Vous pouvez importer des données depuis Google Cloud Storage au format CSV avec les étiquettes intégrées. Pour en savoir plus, consultez notre documentation.
  • Si vos données ne sont pas encore étiquetées, vous pouvez également importer des exemples d'images non étiquetées et utiliser l'interface utilisateur d'AutoML Vision pour appliquer des étiquettes à chaque exemple.

Évaluation

Une fois le modèle entraîné, vous recevrez un résumé de ses performances. Cliquez sur "Évaluation" ou "Voir l'évaluation complète" pour afficher l'analyse détaillée.

Que dois-je garder à l'esprit avant d'évaluer un modèle ?

image de loupe Le débogage d'un modèle consiste davantage à déboguer les données que le modèle proprement dit. Si votre modèle commence à agir de manière inattendue alors que vous évaluez ses performances avant et après le passage en production, vous devez de nouveau vérifier vos données afin d'identifier des axes d'amélioration de vos exemples.

Quels types d'analyses puis-je effectuer dans AutoML Vision ?

Dans la section d'évaluation d'AutoML Vision, vous pouvez évaluer les performances de votre modèle personnalisé en vous appuyant sur la sortie générée par le modèle sur les exemples de test, ainsi que sur les principales métriques de machine learning. Dans cette section, nous aborderons la signification de chacun des concepts suivants :

  1. Les résultats du modèle
  2. Le seuil de score
  3. Les vrais positifs, les vrais négatifs, les faux positifs et les faux négatifs
  4. La précision et le rappel
  5. Les courbes de précision/rappel
  6. La précision moyenne

Comment interpréter les résultats du modèle ?

AutoML Vision extrait des exemples de vos données de test pour présenter de tout nouveaux défis à votre modèle. Pour chaque exemple, le modèle génère une série de nombres qui indiquent le degré de confiance selon lequel il associe chaque étiquette à cet échantillon. Si le nombre est élevé, le modèle conclut avec une confiance élevée que l'étiquette doit être attribuée à ce document.

image avec exemple de valeurs de prédiction

Qu'est-ce que le seuil de score ?

Nous pouvons convertir ces probabilités en valeurs binaires "on" ou "off" (0/1) en définissant un seuil de score. Le seuil de score représente le degré de confiance que le modèle doit avoir pour attribuer une catégorie à un élément de test. Dans l'interface utilisateur, le curseur du seuil de score est un outil visuel permettant de tester l'impact de différents seuils pour toutes les catégories de votre ensemble de données, ainsi que pour des catégories individuelles. Si le seuil de score est bas, votre modèle classera davantage d'images, au risque cependant de commettre quelques erreurs de classification. Si le seuil de score est élevé, le modèle classera moins d'images, mais le risque d'erreur de classification sera moindre. Vous pouvez modifier les seuils par catégorie dans l'interface utilisateur. Cependant, lors de l'utilisation de votre modèle en production, vous devrez appliquer les seuils que vous avez constatés comme étant les plus performants.

image de seuil élevé avec peu d'images classifées et de seuil bas avec beaucoup d'images classifiées

En quoi consistent les vrais positifs, vrais négatifs, faux positifs et faux négatifs ?

Après application du seuil de score, les prédictions effectuées par votre modèle sont classées dans l'une des quatre catégories suivantes.

image avec description du niveau de confiance pour chacune des 4 catégories

Ces catégories peuvent être utilisées pour calculer la précision et le rappel, des métriques permettant d'évaluer plus facilement l'efficacité d'un modèle.

Que sont la précision et le rappel ?

La précision et le rappel permettent d'évaluer la qualité de la collecte d'informations, ainsi que la quantité d'informations omises par un modèle. La précision indique le nombre d'exemples de test auxquels une étiquette a été correctement attribuée parmi tous les exemples classifiés. Le rappel indique le nombre d'exemples de test auxquels une étiquette donnée a été attribuée, parmi tous les exemples qui auraient dû être classifiés sous cette étiquette.

image pour précision élevée, faible rappel

image pour rappel élevé, faible précision

Dois-je privilégier l'optimisation de la précision ou celle du rappel ?

Selon votre cas d'utilisation, il se peut que vous souhaitiez privilégier la précision ou le rappel. Étudions comment prendre cette décision à l'aide des deux cas d'utilisation suivants.

Cas d'utilisation : confidentialité dans les images

Imaginons que vous vouliez créer un système capable de détecter automatiquement les informations sensibles et de les flouter.

image de date floutée

Dans ce cas, les faux positifs correspondraient à des éléments qui ont été floutés alors que ce n'était pas nécessaire, ce qui peut être ennuyeux, mais non dommageable.

image de numéro de carte de crédit

À l'inverse, les faux négatifs représenteraient des éléments qui auraient dû être floutés, mais qui ne l'ont pas été, tels que des données de carte de crédit, ce qui risque d'entraîner une usurpation d'identité.

Dans cette situation, il convient d'optimiser le paramètre de rappel. Cette statistique mesure le nombre de documents non détectés sur l'ensemble des prédictions effectuées. Un modèle disposant d'un taux de rappel élevé est susceptible d'attribuer une étiquette à des exemples dont la pertinence est faible, ce qui est utile dans les cas où une catégorie contient peu de données d'entraînement.

Imaginons que vous souhaitiez créer un système qui recherche la meilleure photo pour un mot clé donné.

image de guitare correspondant à une recherche sur le mot clé "guitare"

Un faux positif dans ce cas renverrait une image non pertinente. Étant donné que votre produit est censé ne fournir que les images les plus adaptées, ce serait un échec complet.

image non pertinente correspondant à une recherche sur le mot clé "guitare"

Dans ce cas, un faux négatif ne renvoie pas une image pertinente pour une recherche par mot clé. Dans la mesure où il existe des milliers de photos susceptibles de correspondre à de nombreux termes de recherche, ce ne serait pas un problème.

Dans cette situation, il convient d'optimiser le paramètre de précision. Cette statistique mesure l'exactitude de l'ensemble des prédictions effectuées. Un modèle disposant d'un taux de précision élevé est susceptible de n'indiquer que les exemples les plus pertinents, ce qui est utile dans les cas où une classe est récurrente dans les données d'entraînement.

Comment utiliser la matrice de confusion ?

Nous pouvons comparer les performances du modèle pour chaque étiquette en utilisant une matrice de confusion. Dans un modèle idéal, toutes les valeurs comprises dans la diagonale de la matrice sont élevées, et toutes les autres valeurs sont faibles. Cela indique que les catégories souhaitées sont correctement identifiées. Si d'autres valeurs sont élevées, cela permet de comprendre les motifs d'erreurs de classification des images de test du modèle.

image expliquant les matrices de confusion

Comment interpréter les courbes de précision/rappel ?

image de plusieurs courbes de précision/rappel

L'outil de seuil de score permet de découvrir comment le seuil choisi affecte la précision et le rappel. En faisant glisser le curseur le long de la barre du seuil de score, vous pouvez voir où se situe ce seuil sur la courbe de compromis précision/rappel, ainsi que son effet sur ces paramètres. (Pour les modèles multiclasses, les paramètres de précision et de rappel de ces graphiques indiquent que l'unique étiquette utilisée pour calculer ces métriques correspond à celle la mieux notée parmi l'ensemble d'étiquettes renvoyées.) Cela permet de trouver un bon équilibre entre les faux positifs et les faux négatifs.

Une fois que vous avez choisi un seuil qui semble globalement acceptable pour votre modèle, vous pouvez cliquer sur des étiquettes spécifiques afin de constater, pour chacune d'elles, où se situe ce seuil sur la courbe de précision/rappel. Dans certains cas, cela peut impliquer un grand nombre de prédictions incorrectes pour certaines étiquettes, ce qui peut vous conduire à définir un seuil personnalisé pour les classes correspondant à ces étiquettes. Supposons que vous examiniez l'ensemble de données des maisons et que vous remarquiez qu'un seuil de 0,5 dispose d'un taux de précision et de rappel convenable pour tous les types d'images, à l'exception du style "Tudor", probablement en raison du caractère très général de cette catégorie. Vous constatez en effet une multitude de faux positifs pour cette catégorie. Dans ce cas, vous pouvez décider d'utiliser un seuil de 0,8 uniquement pour la catégorie "Tudor", lorsque vous appelez le classificateur pour effectuer des prédictions.

Qu'est-ce que la précision moyenne?

La zone sous la courbe de précision/rappel constitue une métrique utile pour cerner la précision du modèle. Elle permet de mesurer les performances de votre modèle vis-à-vis de l'ensemble des seuils de score. Dans AutoML Vision, cette métrique s'appelle la précision moyenne. Plus ce score est proche de 1, meilleures seront les performances de votre modèle sur l'ensemble de test. Pour un modèle effectuant des prédictions de manière aléatoire pour chaque étiquette, la précision moyenne obtenue avoisinerait le score de 0,5.

Tester le modèle

image d'ampoulePour tester un modèle, AutoML Vision utilise 10 % de vos données par défaut (ou le pourcentage de données défini si vous avez choisi de les répartir vous-même). La page "Évaluation" vous indique les performances du modèle sur les données de test. Toutefois, si vous souhaitez contrôler l'intégrité du modèle, plusieurs solutions s'offrent à vous. La plus simple consiste à importer quelques images sur la page "Prédiction" et à consulter les étiquettes qui leur sont attribuées par le modèle pour vos exemples. Elles devraient correspondre à vos attentes. Testez quelques exemples pour chaque type d'image que vous pensez recevoir.

Si vous souhaitez utiliser le modèle dans vos propres tests automatisés, la page "Prédiction" vous indique également comment appeler le modèle par programmation.