Les multiples voies de l’apprentissage frugal
⏱ 4 minL’apprentissage machine fait merveille quand il peut exploiter un jeu de données copieux. Mais les données sont parfois rares et/ou chères, c’est pourquoi on explore les diverses pistes de l’apprentissage frugal.
Malgré les progrès spectaculaires de l’apprentissage profond, nous sommes bien obligés de constater que décidément ses réseaux de neurones n’apprennent pas aussi vite que les nôtres. Alors qu’un enfant de 2 ans apprend à reconnaître un chat dès qu’il en voit un, il leur faut absorber des quantités énormes d’exemples pour obtenir le même résultat.
S’appuyer sur des connaissances préalables
Apprendre, même avec peu de données, est devenu une thématique de recherche majeure. De fait, on assiste, ces dernières années, à une floraison de publications qui semblent promettre un printemps du « frugal learning ». Elles proposent des solutions pour pratiquer le « few-shot learning », le « one-shot learning », le « less-than-one-shot learning » et même le « zero-shot learning ». Le point de départ commun à toutes les solutions proposées : s’appuyer sur des connaissances préalables pour aider le modèle à intégrer de nouvelles classes, de nouveaux concepts, malgré la pénurie d’exemples.
Précisons le vocabulaire. « On parle de few-shot learning quand on ne dispose que d’une poignée d’exemples annotés, disons entre un et vingt, pour entraîner le réseau de neurones sur une nouvelle classe », explique Matthieu Cord. Professeur à Sorbonne Université et chercheur au sein de l’équipe MLIA (Machine Learning and Information Access) du LIP6, il est également directeur de recherche chez Valeo.ai, le centre de recherche en IA de l’équipementier Valeo. Le one-shot learning correspond au cas particulier où on ne dispose que d’un seul exemple par classe à apprendre. »
Apprendre même sans exemple
Mais on publie des solutions pour traiter des situations plus extrêmes… « Dans le cas du less-than-one-shot, poursuit le chercheur, on n’a pas d’exemple annoté pour chaque nouvelle classe, mais on dispose de suffisamment de connaissances sur ces classes pour intervenir sur le modèle afin qu’il les apprenne. » La situation la plus extrême étant le zero-shot learning : on ne dispose alors d’aucun exemple illustrant les classes à apprendre. Le modèle ne les intègre donc que par le biais d’une intervention sur ses paramètres, visant à introduire des connaissances définissant ces classes.
« On dispose de tout un tas de modèles qui marchent bien si on dispose d’un gros corpus d’exemples pour l’entraîner, explique Julien Mairal, chercheur à l’Inria Grenoble au sein de l’équipe Thoth. Ce que l’on cherche aujourd’hui, c’est à obtenir de bons résultats en utilisant moins de données et surtout moins de données annotées, car le plus souvent, ce sont les annotations qui coûtent cher. » Que faire ? « La première idée qui vient à l’esprit, poursuit le chercheur, c’est de repartir d’un modèle existant, pré-entraîné. La plupart des publications en vision artificielle partent d’un modèle qui a appris sur ImageNet. » Rappelons que la base d’images annotées ImageNet contient aujourd’hui quelque 14 millions d’images, réparties en plus de 20 000 classes.
Intégrer des connaissances dans le modèle
« Imaginons un modèle qui a appris à partir d’exemples annotés à reconnaître des chiens, des chats, des tigres… mais aussi des voitures, des camions, des motos, suggère Matthieu Cord. Et supposons que ce modèle n’a jamais vu le moindre loup. Il n’y en avait pas dans la base de données initiale. Mais nous savons qu’un loup est un animal, que son apparence est proche de celle d’un chat, d’un tigre et surtout d’un chien. Et qu’à l’inverse il est très éloigné d’une voiture, d’un camion ou d’une moto. Certaines techniques de few-shot learning permettent d’incorporer ce type de connaissances dans le classifieur du modèle. » Ce qui lui permet d’apprendre à reconnaître un loup, à partir d’un petit jeu d’exemples.
Une équipe de chercheurs de l’université des sciences et technologies de Hong Kong a récemment publié une revue¹ des publications portant sur le few-short learning. Elle propose une taxonomie de ces multiples approches. Laquelle distingue pour commencer trois grands types de méthodes, selon l’usage que l’on fait de connaissances préalables pour permettre un apprentissage à partir d’un jeu de données réduit. Ces connaissances peuvent être utilisées pour intervenir sur le jeu de données, ou alors sur le modèle, enfin sur l’algorithme d’apprentissage.
Fabriquer plusieurs images à partir d’une seule
Faire appel à des connaissances préalables pour intervenir sur le (petit) jeu de données lui-même ? Une pratique courante consiste à s’inspirer d’un miracle biblique, la multiplication des pains. Pour entraîner un modèle à reconnaître une nouvelle espèce animale, on n’a trouvé qu’une poignée de photos, voire une seule ? Qu’à cela ne tienne, on va fabriquer plusieurs images à partir d’une seule en la modifiant de diverses manières : rotation, inversion, recadrage… Ainsi le modèle verra au moins le sujet que l’on cherche à apprendre dans des contextes un peu différents et sera moins influencé par lui. C’est ce que l’on appelle l’augmentation de données (data augmentation).
« On peut encore faire appel à des données synthétiques, ajoute Matthieu Cord. Ainsi lorsqu’un avion est en développement, il est facile de produire en quantité des images artificielles le montrant sous toutes les coutures. » Et même dans des environnements divers, dans la mesure où existent des modèles numériques d’aéroports et de toutes sortes de territoires. « Mais bien sûr, poursuit le chercheur, les premiers clichés obtenus lorsque le prototype de cet avion roulera puis volera dans le monde réel seront un peu différents. » Moins lisses, plus sales… « Mais on dispose de méthodes pour réaliser ce que l’on appelle une « adaptation de domaine », qui permet d’entraîner le modèle, par apprentissage non supervisé, à reconnaître cet avion dans le monde réel à partir de quelques photos, en s’appuyant sur ce qu’il a déjà appris grâce à un gros jeu de données synthétiques. »
Intervenir sur l’algorithme d’apprentissage
Reprenons la taxonomie proposée par cette équipe de Hong Kong. Intervenir sur le modèle, c’est ce que proposent la plupart des publications. Les solutions proposées reposent sur des techniques variées : « multi-task learning », « embedding learning », « learning with external memory » ou encore « generative modeling ». Enfin, troisième catégorie de méthodes selon ces auteurs : des publications décrivent des méthodes pour intervenir sur l’algorithme d’apprentissage lui-même. Elles invoquent plus souvent que les précédentes le concept de « meta-learning » (méta-apprentissage), qui ressemble fort à un Graal : en deux mots, il s’agit d’apprendre à (mieux) apprendre. Un vaste sujet… qui mérite d’être traité prochainement.
Note
1. Yaqing Wang et al., “Generalizing from a Few Examples: A Survey on Few-shot Learning”, ACM Computing Surveys, June 2020 doi.org/10.1145/3386252