Traduction du livre d'Andrew Un, Passion for Machine Learning, Chapitres 15-19

chapitres précédents


15. Évaluation simultanée de plusieurs idées lors de l'analyse des erreurs


Votre équipe a quelques idées pour améliorer l'identifiant de chat dans votre application:


  • Résoudre le problème que votre algorithme attribue des chiens aux chats
  • Résolvez le problème avec le fait que votre algorithme reconnaît les grands chats sauvages (lions, panthères, etc.) comme domestiques
  • Améliorez les performances du système sur les images floues
  • ...

Vous pouvez apprécier toutes ces idées en même temps. Habituellement, je crée un tableau spécial et le remplis pour environ 100 cas de classification incorrecte de l'échantillon de validation (dev). Je fais également de brefs commentaires qui pourraient m'aider à me souvenir d'exemples précis dans la foulée. Pour illustrer ce processus, regardons un tableau croisé dynamique que vous pourriez créer à partir d'un petit ensemble d'exemples de votre exemple de validation (dev)


ImageLes chiensGrands chatsFloueCommentaires
1xPit-bull insolite
2
3xxLeo photo prise au zoo un jour de pluie
4xPanthère derrière un arbre
Partager (%)25%50%50%

L'image 3 du tableau s'applique aux grands félins et aux chats flous. Ainsi, du fait que l'on peut attribuer une image à plusieurs catégories d'erreurs, les pourcentages totaux dans la ligne du bas ne sont pas limités à 100%.


Malgré le fait qu'au début du travail, vous pouvez créer un certain ensemble de catégories d'erreurs (chiens, gros chats, images floues) dans le processus de classement manuel des erreurs de classification dans ces catégories, vous pouvez décider d'ajouter de nouveaux types d'erreurs. Par exemple, supposons que vous ayez regardé une douzaine d'images et décidé que beaucoup d'erreurs ont été commises par le classificateur sur les images Instagram qui sont codées par couleur. Vous pouvez refaire le tableau, y ajouter la colonne «Instagram» et reclasser les erreurs en fonction de cette catégorie. En examinant manuellement les exemples où l'algorithme est erroné et en vous demandant comment vous, en tant que personne, avez pu correctement marquer l'image, vous pourrez voir de nouvelles catégories d'erreurs et, peut-être, vous inspirer pour trouver de nouvelles solutions.


Les catégories d'erreurs les plus utiles seront celles pour lesquelles vous avez une idée d'améliorer le système. Par exemple, l'ajout de la catégorie «Instagram» sera très utile si vous avez une idée de la façon de supprimer les filtres et de restaurer l'image d'origine. Mais vous ne devez pas vous limiter uniquement aux catégories d'erreurs pour lesquelles vous avez une recette pour les éliminer; Le but du processus d'analyse des erreurs est de développer votre intuition lors du choix des domaines de concentration les plus prometteurs.


L'analyse des erreurs est un processus itératif. Ne vous inquiétez pas si vous le démarrez sans avoir créé une seule catégorie. Après avoir visionné quelques images, vous aurez plusieurs idées pour classer les erreurs. Après avoir catégorisé manuellement plusieurs images, vous souhaiterez peut-être ajouter de nouvelles catégories et revoir les erreurs de classification à la lumière des catégories nouvellement ajoutées, etc.


Supposons que vous ayez effectué une analyse d'erreur de 100 exemples d'échantillons de validation classés par erreur et obtenu les éléments suivants:


ImageLes chiensGrands chatsFloueCommentaires
1XPit-bull insolite
2X
3XXLeo photo prise au zoo un jour de pluie
4XPanthère derrière un arbre
...............
Partager (%)8%43%61%

Vous savez maintenant que travailler sur un projet visant à éliminer la classification erronée des chiens comme chats éliminera, au mieux, 8% des erreurs. Travailler sur de grands chats ou sur des images floues vous aidera à vous débarrasser d'un nombre beaucoup plus élevé d'erreurs. Par conséquent, vous pouvez choisir l'une de ces deux catégories et vous concentrer sur elles. Si votre équipe a suffisamment de personnes pour travailler dans plusieurs domaines en même temps, vous pouvez demander à plusieurs ingénieurs de s'occuper des félins, en concentrant le reste des efforts sur les images floues.


L'analyse des erreurs ne fournit pas de formule mathématique rigoureuse qui vous indique à quelle tâche vous devez attribuer la priorité la plus élevée. Vous devez également corréler les progrès réalisés dans le travail sur les différentes catégories d'erreurs et l'effort qui doit être consacré à ce travail.


16. Suppression des échantillons de validation et de test des exemples mal étiquetés


Lors de l'analyse des erreurs, vous pouvez remarquer que certains exemples de votre exemple de validation sont incorrectement étiquetés (affectés à la mauvaise classe). Quand je dis «étiquetés par erreur», je veux dire que les images étaient déjà mal classées lorsqu'elles étaient marquées par une personne avant que l'algorithme ne le détecte. Autrement dit, lors du marquage de l'exemple (x, y) pour y, la mauvaise valeur a été indiquée. Par exemple, supposons que certaines images dans lesquelles il n'y a pas de chats soient étiquetées par erreur comme contenant des chats et vice versa. Si vous pensez que le pourcentage d'exemples incorrectement étiquetés est important, ajoutez la catégorie appropriée pour suivre les exemples incorrectement étiquetés:


ImageLes chiensGrands chatsFloueErreur de balisageCommentaires
..................
98XÀ tort étiqueté comme ayant un chat en arrière-plan
99X
100XChat peint (pas réel)
Partager (%)8%43%61%6%

Avez-vous besoin de corriger des données balisées incorrectes dans votre échantillon de validation? Permettez-moi de vous rappeler que la tâche d'utiliser un échantillon de validation est de vous aider à évaluer rapidement les algorithmes afin que vous puissiez décider si l'algorithme A est meilleur que B. Si la proportion d'un échantillon de validation qui est incorrectement marqué vous empêche de porter un tel jugement, alors il est logique de passer du temps correction d'erreurs dans le marquage de l'échantillon de validation.


Par exemple, imaginez que la précision de votre classificateur soit la suivante:


  • La précision globale de l'échantillon de validation ............ 0,90% (erreur totale de 10%)
  • Erreur associée aux erreurs de balisage …………… ..0.6% (6% de l'erreur totale dans l'échantillon de validation)
  • Erreur pour d'autres raisons ........... 9,4% (94% de l'erreur totale dans l'échantillon de validation)

Ici, une erreur de 0,6% due à un étiquetage incorrect peut ne pas être suffisamment importante par rapport à une erreur de 9,4% que vous pourriez améliorer. La correction manuelle des erreurs de balisage de l'échantillon de validation ne sera pas superflue, mais sa correction n'est pas critique car cela n'a pas d'importance si l'erreur totale réelle de votre système est de 9,4% ou 10%


Supposons que vous améliorez votre classificateur félin et avez atteint les mesures de précision suivantes:


  • La précision globale de l'échantillon de validation ............ 0,98% (erreur totale de 2%)
  • Erreur associée aux erreurs de balisage …………… ..0.6% (30% de l'erreur totale dans l'échantillon de validation)
  • Erreur pour d'autres raisons .............. 1,4% (70% de l'erreur totale dans l'échantillon de validation)

30% de votre erreur est due à un marquage incorrect des images de l'échantillon de validation, ce partage contribue de manière significative à l'erreur globale dans l'évaluation de la précision de votre système. Dans ce cas, il vaut la peine d'améliorer le marquage de l'échantillon de validation. L'élimination des exemples mal étiquetés vous aidera à savoir où vos erreurs de classificateur sont plus proches de 1,4% ou 2%. Il existe une différence relative significative entre 1,4 et 2.


Il n'est pas rare que des images incorrectement étiquetées d'un échantillon de validation ou de test commencent à attirer votre attention uniquement après que votre système s'est tellement amélioré que le taux d'erreur associé à des exemples incorrects augmentera par rapport à l'erreur totale dans ces échantillons.


Le chapitre suivant explique comment vous pouvez améliorer les catégories d'erreurs telles que les chiens, les grands chats et les flous tout en travaillant sur l'amélioration des algorithmes. Dans ce chapitre, vous avez appris que vous pouvez réduire l'erreur associée à la catégorie «Erreurs de mise en page» et améliorer la qualité en améliorant le balisage des données.


Quelle que soit l'approche que vous utilisez pour marquer l'échantillon de validation, n'oubliez pas de l'appliquer à la présentation de l'échantillon de test, afin que vos échantillons de validation et de test aient la même distribution. En appliquant la même approche à la validation et aux échantillons de test, vous éviterez le problème que nous avons discuté au chapitre 6 lorsque votre équipe optimise la qualité de l'algorithme dans l'échantillon de validation et se rend compte plus tard que cette qualité a été évaluée sur la base d'un échantillon différent de l'échantillon de test de validation.


Si vous décidez d'améliorer votre balisage, pensez à revérifier. Vérifiez à la fois le balisage des exemples que votre système a classé incorrectement et le balisage des exemples qui sont correctement classés. Il est possible que le balisage initial et votre algorithme d'apprentissage soient erronés sur le même exemple. Si vous corrigez uniquement le balisage des exemples sur lesquels votre système a fait une erreur de classification, vous pouvez introduire une erreur systématique dans votre évaluation. Si vous prenez 1000 exemples d'échantillons de validation, et si votre classificateur affiche une précision de 98,0%, il est plus facile de vérifier 20 exemples qui ont été classés incorrectement que 980 exemples correctement classés. Étant donné qu'en pratique, il est plus facile de vérifier uniquement les exemples mal classés, dans certains cas, une erreur systématique peut se glisser dans les échantillons de validation. Une telle erreur est autorisée si vous ne souhaitez développer que des applications, mais ce sera un problème si vous prévoyez d'utiliser vos résultats dans un article de recherche universitaire ou si vous avez besoin de mesures de la précision de l'algorithme sur un échantillon de test totalement exempt d'erreur systématique.


17. Si vous disposez d'un grand échantillon de validation, divisez-le en deux sous-échantillons et n'envisagez qu'un seul d'entre eux.


Supposons que vous ayez un grand échantillon de validation composé de 5000 exemples dans lesquels le taux d'erreur est de 20%. Ainsi, votre algorithme ne classe pas correctement environ 1 000 images de validation. L'évaluation manuelle de 1000 images prendra beaucoup de temps, nous pouvons donc décider de ne pas les utiliser toutes à des fins d'analyse d'erreurs.


Dans ce cas, je diviserais définitivement l'échantillon de validation en deux sous-échantillons, l'un que vous observerez, et l'autre non. Vous êtes susceptible de vous recycler sur la partie que vous analyserez manuellement. Vous pouvez utiliser la pièce que vous n'utilisez pas pour l'analyse manuelle pour configurer les paramètres du modèle.


oeil


Continuons notre exemple décrit ci-dessus, dans lequel l'algorithme a incorrectement classé 1000 exemples sur 5000 constituant l'échantillon de validation. Imaginez que vous souhaitez prendre 100 erreurs pour l'analyse (10% de toutes les erreurs dans l'échantillon de validation). Nous devons sélectionner au hasard 10% des exemples dans l'échantillon de validation et composer à partir de ceux-ci le «jeu de développement Eyeball » (jeu de développement Eyeball ), nous les avons nommés afin de toujours nous souvenir que nous étudions ces exemples de nos propres yeux.


Remarque du traducteur: de mon point de vue, la définition de «sélection du globe oculaire» ne sonne pas du tout harmonieuse (surtout du point de vue de la langue russe). Mais avec tout le respect que je dois à Andrew (et en tenant compte du fait que je n'ai rien trouvé de mieux), je vais laisser cette définition


(Pour un projet de reconnaissance vocale dans lequel vous écouterez des clips audio, vous utiliseriez peut-être à la place quelque chose comme «échantillon de validation pour les oreilles»). Ainsi, l'échantillon de validation du globe oculaire se compose de 500 exemples, dans lesquels il devrait y en avoir environ 100 incorrectement classés. Le deuxième sous-échantillon de l'échantillon de validation, que nous appellerons l'ensemble de développement Blackbox , comprendra 4 500 exemples. Vous pouvez utiliser le «sous-échantillonnage de la boîte noire» pour évaluer automatiquement la qualité des classificateurs, en mesurant leur part d'erreurs. Vous pouvez également utiliser ce sous-échantillon pour choisir entre des algorithmes ou pour configurer des hyperparamètres. Cependant, vous devez éviter de regarder de vos propres yeux des exemples de ce sous-échantillon. Nous utilisons le terme «boîte noire» parce que nous utiliserons un sous-échantillon de son composant comme une «boîte noire»
env. traducteur : c'est-à-dire l'objet dont nous ne connaissons pas la structure
évaluer la qualité des classificateurs.


image


Pourquoi séparons-nous explicitement l'échantillon de validation en «sous-échantillon de globe oculaire» et «sous-échantillon de boîte noire»?
Étant donné qu'à un moment donné, vous sentirez (comprendre) de plus en plus les exemples du «sous-échantillonnage du globe oculaire», la probabilité que vous vous recycliez dans ce sous-échantillon augmentera. Pour contrôler le recyclage, nous utiliserons le «sous-échantillonnage de la boîte noire». Si vous voyez que la qualité des algorithmes de l'échantillon Eyeball croît beaucoup plus rapidement que la qualité de l'échantillon Black Box, vous semblez avoir suivi une formation sur le globe oculaire. Dans ce cas, vous devrez peut-être supprimer le sous-ensemble existant du globe oculaire et en créer un nouveau en déplaçant plus d'exemples de la boîte noire vers le globe oculaire ou en prenant une nouvelle partie des données marquées.


Ainsi, la division de l'échantillon de validation en «sous-échantillon du globe oculaire» et «sous-échantillon de la boîte noire» vous permet de voir le moment où le processus d'analyse d'erreur manuelle vous conduira à vous recycler sur le sous-échantillon du globe oculaire.


18 Quelle doit être la taille de l'échantillon du globe oculaire et de l'échantillon de la boîte noire?


Votre échantillon du globe oculaire doit être suffisamment grand pour que vous puissiez trouver les principales catégories d'erreurs de classification pour votre algorithme. Si vous travaillez sur une tâche qu'une personne peut gérer (comme la reconnaissance des chats dans les images), vous pouvez donner les recommandations assez approximatives suivantes:


  • Un échantillon de validation du globe oculaire qui contient 10 erreurs de votre classificateur sera considéré comme très petit. N'ayant que 10 erreurs, il est très difficile d'évaluer avec précision l'impact de différentes catégories d'erreurs sur la qualité du classificateur. Mais si vous avez très peu de données et qu'il n'y a aucun moyen d'ajouter plus d'exemples à l'échantillon globe oculaire, c'est toujours mieux que rien et dans tous les cas, cela aidera à prioriser le travail sur le projet.
  • Si votre classificateur se trompe environ 20 fois sur un échantillon du globe oculaire, vous pouvez faire des estimations approximatives des principales sources d'erreurs.
  • Avec environ 50 erreurs, vous aurez une bonne idée des principales sources d'erreurs de votre classificateur.
  • Si vous avez environ 100 erreurs, vous aurez une très bonne compréhension de l'origine des principales erreurs. J'ai rencontré des gens qui ont analysé manuellement encore plus d'erreurs, parfois jusqu'à 500. Pourquoi pas, si vous avez suffisamment de données.

Supposons que le taux d'erreur de votre classificateur soit de 5%. Afin d'obtenir avec confiance environ 100 exemples incorrectement étiquetés dans l'échantillon du globe oculaire, cet échantillon doit contenir environ 2000 exemples (depuis 0,05 * 2000 = 100). Plus le taux d'erreur de votre classificateur est petit, plus l'échantillon du globe oculaire est important pour en obtenir un échantillon d'erreurs suffisamment grand pour l'analyse.


Si vous travaillez sur une tâche dans laquelle il est difficile, même pour les gens, de classer correctement les exemples, les exercices pour vérifier l'échantillon de validation du globe oculaire ne seront pas particulièrement utiles, car il est difficile de comprendre pourquoi l'algorithme n'a pas pu classer correctement l'exemple. Dans ce cas, vous pouvez ignorer le paramètre d'échantillonnage du globe oculaire. Nous discuterons des recommandations pour de tels projets dans les chapitres suivants.


Et qu'en est-il du "Black Box Sampling"? Nous avons déjà mentionné que dans le cas général, l'échantillon de validation contient 1000 à 10000 exemples. Pour compléter cette déclaration, un échantillon de validation de boîte noire de 1000 à 10000 exemples vous donne généralement (souvent) suffisamment de données pour configurer les hyperparamètres et choisir entre les modèles, mais si vous prenez plus de données pour sélectionner une boîte noire, ce ne sera pas pire. Une sélection en boîte noire de 100 exemples n'est certes pas suffisante, mais elle sera quand même utile (mieux que rien).


Si vous avez un petit échantillon de validation, il peut ne pas avoir suffisamment de données pour le séparer dans les échantillons du globe oculaire et de la boîte noire afin qu'ils soient à la fois assez grands et puissent servir les objectifs décrits ci-dessus. Dans ce cas, vous devrez peut-être utiliser la totalité de votre échantillon de validation comme échantillon du globe oculaire.
Autrement dit, vous examinerez manuellement toutes les données de l'échantillon de validation.


Je pense que la sélection du globe oculaire est plus importante que la sélection de la boîte noire (en supposant que vous travaillez sur un problème dans lequel les gens savent bien définir des classes et vérifier manuellement des exemples vous aideront à vous faire une idée de vos données). Si vous ne disposez que d'une sélection du globe oculaire, vous pouvez travailler sur l'analyse des erreurs, la sélection des modèles et le réglage des hyperparamètres en l'utilisant uniquement. L'inconvénient de ne travailler qu'avec la sélection du globe oculaire est que dans ce cas, le risque de recyclage du modèle dans l'échantillon de validation augmente.


Si vous avez beaucoup de données à votre disposition, la taille de l'échantillon du globe oculaire sera déterminée principalement par le temps que vous pouvez consacrer à l'analyse manuelle des données. Par exemple, j'ai rarement rencontré quelqu'un qui analysait manuellement plus de 1000 erreurs.


19 Conclusions: analyse de base des erreurs


  • , , ,
  • . , — . , .
  • , 100 , , . , .
  • , , . , , .
  • , . , 1000-10000 .
  • Si votre échantillon de validation n'est pas assez grand pour le diviser en un échantillon de globe oculaire et un échantillon de boîte noire, utilisez simplement l'échantillon de validation Eyeball pour analyser manuellement les erreurs, sélectionner des modèles et configurer des hyperparamètres.

suite

Source: https://habr.com/ru/post/fr419885/


All Articles