La Data Augmentation, un outil à double tranchant !

 
Parmi les astuces à disposition de l’ingénieur en machine learning, la data augmentation est de celles qu’il faut utiliser avec prudence. Son rôle est d’améliorer la qualité de nos prédictions de façon significative en augmentant artificiellement le volume de données à disposition pour l’entraînement du modèle. Cependant son utilisation n’est pas gratuite et comporte des risques. Cet article décrit son fonctionnement, ses dysfonctionnements et comment contourner ces derniers.
 

Le processus d’apprentissage de la data augmentation

En machine learning, bien qu’il existe une moultitude de processus, algorithmes, outils et astuces, on procède essentiellement toujours de la manière suivante :
 

  1. collecte des données;
  2. nettoyage des données;
  3. séparation des données en un ensemble d’entraînement et de test;
  4. choix d’un algorithme de machine learning adapté au problème;
  5. entraînement d’un modèle en lui donnant les réponse sur des données d’entraînement;
  6. évaluation des prédictions du modèle en lui montrant les données de test, qui lui sont inconnues;
  7. itération sur les étapes précédentes pour optimiser les résultats.

 
La data augmentation peut intervenir entre les étapes 2 à 5. Généralement, elle n’est appliquée que sur les données d’entraînement mais ce n’est pas une règle absolue.
 

Définition de la data augmentation

La data augmentation consiste à faire subir des transformations aux données avant de les utiliser pour l’entraînement tout en conservant leur structure. Pour chaque observation, on crée plusieurs variations. Ainsi le volume de données est artificiellement multiplié. On l’utilise le plus souvent lorsque les données sont des images.
 
Dans ce cas, la data augmentation peut consister en : des rotations, déformations, recadrages, changements de couleurs, ajout de bruit ou autres. Pour d’autres types de données, on peut appliquer des fonctions mathématiques simples (log, puissances)e, combiner des caractéristiques pour en créer une nouvelle (par ex : pression sanguine moyenne = pression systo / 3 + pression diasto * 2/3), créer des groupes (les patients de plus de 75 sont dans le groupe « vieux »), ou appliquer des techniques plus avancées comme la PCA ou l’auto-encoding.
 

Le chat « augmenté »

Prenons comme exemple une image de Thurston Waffles le chat. Après une application de la data augmentation, on pourrait arriver aux variations suivantes:
 
ici on a appliqué, dans l’ordre : rotation de 180°, saturation, rotation de 270°, bruit, flou gaussien, étirement horizontal et désaturation. Il est commun de cumuler plusieurs transformations sur une seule image.
 
À première vue, on pourrait penser que cette méthode permet de compenser un faible volume de machine learning à disposition de notre modèle. Hors ce n’est pas le cas.
 
Data augmentation
Data augmentation

Motivation

Si vous devez retenir une seule chose de cet article, c’est que la data augmentation ne remplace pas les données réelles. Un jeu de données trop petit restera trop petit même si cette méthode multiplie sa taille par 8. Alors pourquoi s’en servir ?
 
Lorsque l’on évalue la performance d’un modèle, on veut savoir s’il se généralise bien. En gros, arrive-t-il à faire de bonnes prédictions à partir de données qu’il n’a jamais vu ? Pour cela, il doit avoir appris à reconnaître les caractéristiques importantes des données et ignorer les détails insignifiants. Dans le pire des cas, on parle d’overfitting quand le modèle colle de trop près les données de training.
 
Par exemple, si l’on entraîne une machine à identifier si une photo représente un chat ou un lion, elle ne regardera parfois que l’arrière-plan de l’image. Pourquoi ? Parce que c’est plus facile : si elle voit la couleur chaude de la Savane, elle dira que c’est un lion. Si on prend une nouvelle photo d’un chat sur un fond jaune, elle y verra un lion. On voudrait que le modèle voit la forme du félin comme le verrait un humain, et ignore le reste.
 
La data augmentation permet d’introduire du chaos dans les aspects insignifiants des données pour empêcher le modèle de les utiliser pour tirer des conclusions. On le force ainsi à voir ce que l’humain verrait : un chat ou un lion.

Les dangers à éviter

À chaque étape du nettoyage des données, il est crucial d’être attentif au biais qu’on y introduit. La data augmentation transforme drastiquement les données, il faut alors redoubler d’attention. Voici les principaux pièges à éviter.
 
Essayer de compenser un manque de données : la data augmentation ne remplace pas les données réelles. Déformer la photo d’un chat donnera toujours une photo du même chat. Le jeu de données n’a pas gagné en diversité car le sujet de la photo n’a pas changé.
 
Changer un aspect significatif de la donnée : lorsque l’on décide d’une transformation à appliquer, il faut prendre garde à ne pas changer son sens. Par exemple, si on entraîne une machine à lire des chiffres manuscrits, on ne devrait pas effectuer de grande rotation ou symétrie : on risque de transformer un 6 en 9, ou un 2 en 5 ! Il faut que le résultat désiré de la prédiction ne change pas malgré la transformation appliquée.
 
Transformer de façon prévisible : pour chaque type de transformation, il faut se demander si le modèle peut apprendre la transformation. Certaines transformations peuvent être trop simples pour constituer du chaos. Dans ces cas-là, le modèle peut tricher en apprenant les quelques cas supplémentaires auxquels il est confronté.
 
Il faut donc penser, quand c’est possible, à introduire une variable aléatoire dans la transformation. Par exemple :

  • rotation : angle aléatoire;
  • saturation : intensité aléatoire;
  • étirement : zoom aléatoire.

 
Data Leakage : la « fuite de données » intervient à l’étape qui suit parfois la data augmentation, à savoir la séparation en données d’entraînement et de test.
 
Reprenons notre exemple de notre chat : chaque variation de cette image sera, si tout se passe bien, considérée par la machine comme des photos du même sujet car c’est ainsi que les humains le voient. Le modèle n’aura certainement pas besoin d’avoir vu les 7 variantes de la même photo pour reconnaitre la huitième comme étant aussi Thurston Waffles. Il est alors impératif que toutes les variantes de ce félin soient exclusivement dans le jeu de données d’entraînement, ou dans celles de test, mais pas les deux. Dans le cas contraire, on risque d’évaluer notre modèle sur des observations qu’il a déjà vues pendant l’entraînement, même si les pixels n’étaient pas exactement les mêmes. Le modèle nous apparaîtrait alors comme plus performant qu’il ne l’est sur des données réelles.
 

La data augmentation chez CALYPS

CALYPS utilise la data augmentation pour améliorer la performance des prédictions de durées de séjour des patients produites par l’intelligence artificielle CALAI. Certaines données d’entraînement sont une composition d’autres données existantes. C’est notamment le cas de la pression sanguine moyenne, l’heure de la journée ou le jour de la semaine de l’entrée dans l’hôpital ou le service. Elles sont dérivées de la pression sanguine systo/diasto et de la date d’entrée.
 
De plus, chaque séjour est décomposé en plusieurs observations des mêmes données à différentes étapes du séjour. Ainsi, le modèle n’est pas seulement exposé aux données connues en fin de séjour, mais aussi aux données parfois incomplètes qu’il sera amené à interpréter au cours d’un séjour inachevé. De cette manière, il est capable de mieux discerner un patient qui n’est pas malade d’un patient qui n’a simplement pas encore reçu de diagnostique médical.
 

Vos données ont de la valeur !

La Data Intelligence est destinée aux gestionnaires, décideurs et dirigeants d’entreprise. Il s’agit de la mise en œuvre des moyens, outils et méthodes destinés à fournir l’information utile pour décider et agir en toute connaissance de cause. Mettez-toutes les chances de votre côté en vous appuyant sur des professionnels de la donnée.

Les experts CALYPS sont là pour vous aider