Contenu du billet
La data est l’essence même de l’IA. Or, la pertinence d’un modèle d’intelligence artificielle est déterminée par deux caractéristiques de la donnée : son volume et sa diversité. En l’absence d’un large panel de données en entrée du modèle, le risque de sur-apprentissage est plus élevé. Dans le cas de la reconnaissance faciale par exemple, une IA peut devenir « raciste » si l’entrainement n’est fait que sur des sujets blancs. Cependant, dans certaines situations, le dataset disponible pour la mise en place d’un modèle peut être composé d’une faible quantité de données, parfois peu diversifiées. La création de synthetic data pourrait alors être une voie d’amélioration du dataset.
Qu’est-ce que la synthetic data ?
La synthetic data est l’ensemble des données obtenues après avoir généré artificiellement un dataset ou après avoir modifié le dataset existant avec pour objectif de « l’augmenter » ou de le remplacer. Il faut au préalable avoir une base de données sur laquelle travailler. Deux procédés peuvent être appliqués :
- Data augmentation : Partir d’une donnée existante, la modifier et ajouter cette nouvelle donnée au dataset.
- Data alteration : Partir d’une donnée existante, la modifier et la remplacer par cette nouvelle donnée.
Plus largement, les termes Data generation sont utilisés pour décrire ces procédés.
Le paradoxe de la synthetic data
La difficulté lors de la création de synthetic data réside dans le calibrage de la différence entre les nouvelles données et les données d’origine. Les données augmentées, modifiées ou générées doivent être suffisamment différentes des données d’origine pour ne pas générer de surapprentissage, ni permettre la réidentification. Cependant, elles doivent être suffisamment similaires pour ne pas introduire de biais dans la modélisation. Et par-dessus tout, elles doivent garder une cohérence fonctionnelle vis-à-vis de l’original.
Les synthetic data ?
La création de synthetic data s’effectue différemment selon les 4 grands types de données à traiter par l’IA :
- Les données tabulaires. Un exemple de cas d’usage serait l’avatarisation, c’est-à-dire la création de sosie de données à caractère personnel dans la santé par exemple, la RH, le service client… Cette donnée n’est liée à aucune personne physique mais garde la cohérence nécessaire pour les analyses. Ceci permet de s’affranchir des exigences du RGPD en évitant de procéder à l’anonymisation des données qui pourrait les détruire.
- Les ondes vibratoires. La génération de voix synthétiques a atteint un tel niveau de crédibilité qu’elles peuvent être utilisées pour entrainer de nouveaux modèles spécifiques de speech-to-text.
- Le langage naturel. Pour entrainer un bon modèle de NLP, une intention doit être exprimée avec une multitude de paraphrases. Il est désormais possible de générer artificiellement ces paraphrases.
- Les images. Depuis 2019, des œuvres d’art ont pu être générées artificiellement, notamment par le site 9GANS – une gallerie d’art créée par une intelligence artificielle – qui produit 9 tableaux par heure. Il est aussi possible de générer des images qui peuvent être utilisées pour entrainer un modèle de computer vision.
La génération de synthetic data appliquée à la détection de défauts sur des images
Le cas de Bostik Non Woven
Bostik Non Woven est une société française, filiale du groupe ARKEMA qui crée, fabrique et commercialise des solutions de collage pour la construction, l’industrie et le grand public. Elle fabrique des blocs de colle semi-transparents de 300mm entourés par un film plastique. Des ouvriers sont chargés de vérifier, à la fin de la chaine de fabrication en usine, que ces colles ne contiennent aucun défaut (ni bulles d’air, ni bulles d’eau, ni corps étrangers). Dans une optique de digitalisation, l’entreprise s’est donné pour objectif d’améliorer la détection de défauts des colles, parfois invisibles à l’œil nu, en confiant cette tâche à une IA.
Detection d’anomalie vs détection de défaut
Il existe 2 grandes approches de détection d’un défaut :
- La détection de l’anomalie. L’IA détecte la différence avec l’état normal. L’entrainement se fait sur des images sans défaut.
- La détection explicite du défaut. L’IA est entrainée à reconnaitre le défaut. Il peut donc y avoir une problématique liée au volume de données. En effet, pour ce type de détection, l’entrainement se fait sur des images avec des défauts, mais le nombre d’images avec des défauts est très souvent réduit.
Dans le cas de ces colles transparentes, le nombre de clichés de défauts était limité. Il s’est avéré nécessaire de recourir à la génération de synthetic data.
La première étape consistait à prendre des photos des colles et à les labéliser. A l’issue de cette phase, le dataset était composé de 190 images de colles, et de 815 bulles. Le modèle entrainé pouvait détecter 83% des colles ayant des défauts.
La Data augmentation pour détecter les défauts
Pour améliorer ce modèle, les data scientists se sont tournés vers la génération données artificielles. Premièrement, ils ont déformé les images de défauts pour en créer de nouvelles : data augmentation. Par la suite, ils ont injecté ces défauts dans des images de colles sans défaut. Avec ce nouveau dataset composé de 1710 colles et de 2340 bulles, le résultat était de 92% de détection de colles ayant des défauts.
Pour aller encore plus loin, les data scientists ont utilisé un ProGAN (Progressively Growing Generative Adversarial Network). C’est un réseau de neurones capable de synthétiser des images de haute résolution et de haute qualité grâce à la croissance progressive du discriminateur et du générateur pendant le processus d’entrainement. Avec ce ProGAN, les data scientists ont pu obtenir 3418 colles et 3857 bulles. L’entrainement d’un nouveau modèle a permis d’atteindre une détection de 100% de colles avec défauts. La génération de synthetic data ouvre ainsi le champ des possibles pour des cas d’usage autrefois difficiles à traiter par une IA.
Conclusion
En définitive, la création de synthetic data est un moyen efficace « d’augmenter » un dataset lorsque celui-ci est réduit ou peu diversifié. C’est une étape importante dans la création d’un modèle performant, qui ne doit pas être prise à la légère. Les données peuvent être transformées pour obtenir un dataset de meilleure qualité en fonction de l’utilisation souhaitée.
Sources
- Conférence de Jean-Paul MULLER et Philippe KEMIKIAN au salon de l’IA à Paris
- Wikipédia, Synthetic data
- towardsdatascience.com, ProGAN