Un modèle affiche 98 % de précision sur des données d’entraînement et 51 % sur des données jamais vues auparavant. Le débutant qui obtient ce résultat pense d’abord avoir trouvé un excellent modèle. Il a en réalité construit un modèle qui a mémorisé ses exemples au lieu d’apprendre à généraliser, l’erreur la plus fréquente et la plus trompeuse du domaine.
Le surapprentissage, ou l’art de mémoriser sans comprendre
Ce phénomène porte un nom, le surapprentissage, et il touche presque tous les débutants au moins une fois. Le modèle dispose de suffisamment de paramètres pour retenir chaque exemple d’entraînement individuellement, comme un étudiant qui apprendrait par cœur les réponses d’un examen blanc sans comprendre la matière. Face à un examen différent, ses résultats s’effondrent.
La parade consiste à toujours évaluer un modèle sur des données qu’il n’a jamais vues pendant l’entraînement, et à se méfier d’un score d’entraînement qui semble trop parfait. Un excellent score sur les données d’entraînement combiné à un score médiocre sur des données nouvelles signale un échec complet du modèle à généraliser.
Ignorer la qualité des données au profit du modèle
Un débutant passe des heures à comparer des architectures de réseaux de neurones différentes, en changeant le nombre de couches ou la fonction d’activation, alors que son jeu de données contient des erreurs d’étiquetage, des valeurs manquantes ou un déséquilibre massif entre les catégories à prédire. Le modèle le plus sophistiqué du monde ne dépasse jamais la qualité des données qu’on lui fournit.
Avant de changer quoi que ce soit à un modèle qui performe mal, inspectez d’abord vos données à la main, un échantillon suffit. Vérifiez que les étiquettes sont correctes, que les catégories rares ne sont pas noyées sous des catégories fréquentes, que rien d’incohérent ne s’est glissé dans le jeu de données pendant la collecte.
Utiliser une seule métrique pour juger un modèle
Un modèle qui prédit qu’aucun email n’est un spam obtient 95 % de précision si seulement 5 % des emails de test sont réellement des spams. Ce chiffre impressionnant cache un modèle inutile, qui n’a rien appris et se contente de prédire la catégorie majoritaire à chaque fois.
Regardez toujours plusieurs métriques ensemble, en particulier sur des catégories déséquilibrées : combien de vrais spams le modèle détecte-t-il réellement, et combien d’emails légitimes classe-t-il à tort comme spam. Une seule métrique globale masque ce genre de comportement dégénéré.
Copier une architecture sans comprendre pourquoi elle marche
Un tutoriel en ligne propose une architecture de réseau de neurones qui fonctionne bien sur son exemple, et le débutant la recopie telle quelle sur un problème différent, sans ajuster ni comprendre les choix faits. Une architecture adaptée à la reconnaissance d’images ne convient pas nécessairement à la prédiction de séries temporelles financières, même si le code se copie-colle sans erreur de syntaxe.
Chaque architecture répond à des propriétés spécifiques des données qu’elle a été conçue pour traiter. Comprendre pourquoi un choix a été fait sur l’exemple original permet de juger s’il reste pertinent sur votre propre problème, ou s’il faut l’adapter.
Le point commun entre ces quatre erreurs
Aucune ne demande davantage de puissance de calcul ou un modèle plus sophistiqué pour se corriger. Toutes se corrigent en ralentissant, en vérifiant les données avant le modèle, et en creusant pourquoi un résultat semble bon avant de s’en satisfaire. La vitesse d’apprentissage en machine learning vient de cette discipline, pas de la rapidité à empiler des couches supplémentaires.