Transfer learning : définition, exemples, fine tuning...
Le transfer learning, ou apprentissage par transfert, consiste à mutualiser la phase d'apprentissage entre réseaux de neurones artificiels profonds. Ce qui se traduit par des économies en ressources machines et temps de calcul.
Le transfer learning, c'est quoi ?
Le transfer learning ou apprentissage par transfert consiste à compléter l'apprentissage d'un modèle de machine learning, préalablement entraîné à résoudre une tâche donnée, en vue de lui permettre de résoudre une tâche similaire, généralement plus précise. Par exemple, l'entrainement d'un modèle reconnaissance d'images généraliste pourra être complété pour identifier des formes particulières, typiquement des visages dans le cas d'une IA de reconnaissance faciale.
Pourquoi le transfer learning ?
Les réseaux de neurones profonds, notamment utilisés en reconnaissance d'image ou traitement automatique du langage (NLP), passent par une phase d'apprentissage gourmande en puissance de calcul. Ce qui se traduit par des coûts élevés en ressources machines et surtout des temps d'exécution longs pour aboutir à une IA de qualité. Le transfer learning permet de mutualiser cette phase d'entraînement d'un modèle à l'autre.
Comment fonctionne le transfer learning ?
Prenons l'exemple de la vision par ordinateur. Sur ce terrain, les réseaux de neurones permettent typiquement à la machine de reconnaitre un objet sur des photos, par exemple un type de produit ou une catégorie de personne (enfant, adulte, femme, homme...). Pour ce faire, ils se déclinent en couches, chacune centrée sur un élément graphique à identifier, du plus général au plus particulier. S'il s'agit de repérer un chien, le réseau s'attachera ainsi à rechercher d'abord la présence d'une tête, puis de deux oreilles, de quatre pattes, de poils... Pour chaque couche, de nombreuses variables graphiques pourront être prises en compte. Des poids seront définis pour chacune, permettant au final par hiérarchies de combinaisons de repérer la forme globale la plus approchante du sujet à trouver.
En fonction de la complexité de l'objet à cerner, le volume d'exemples à ingérer lors de la phase d'entrainement du modèle pourra représenter très vite des millions voire des milliards d'images, et par conséquent faire exploser la puissance et les temps de calcul nécessaires. D'où l'intérêt du transfer learning. Typiquement, un réseau neuronal qui a appris à reconnaître un chien en photo pourra être en majorité repris pour détecter un chat. Un animal qui a également une tête, deux oreilles, quatre pattes, etc. Les couches du réseau correspondantes pourront ainsi être réexploitées. Ne restera plus que les couches supérieures à ajouter. Ce qui, au final, contribue à réduire de manière très significative le temps et la capacité de calcul.
Comment faire du transfer learning ?
Pour faciliter la réexploitation des algorithmes de deep learning, des places de marché se sont développées. Baptisées les zoos dans le jargon des spécialistes, elles donnent accès à des modèles d'apprentissage mais aussi des data sets qualifiés conçus pour entraîner les IA. C'est le cas par exemple de la plateforme web Algorithmia. Créée en 2013, cette dernière regroupe plus de milliers d'algorithmes. Le MIT comme les universités d'Austin, Berkeley, Tokyo, Toronto et Washington figurent parmi ses contributeurs les plus célèbres (lire l'article : Algorithmia, la plus grande place de marché d'algorithmes indépendante). Autre place de marché positionnée sur ce terrain : Quantiacs.
Quels sont les différents types de transfer learning ?
Il existe différentes catégories de transfer learning :
- L'apprentissage par transfert inductif ou inductive transfer learning : les données d'apprentissage sont labélisées et relèvent du même domaine, et les tâches à réaliser sont proches (exemple : reconnaitre un chat et un chien).
- L'apprentissage par transfert non supervisé ou unsupervised transfer learning : les données d'apprentissage ne sont pas étiquetées mais relèvent du même domaine. Quant à la tâche à réaliser, elle est différente.
- L'apprentissage par transfert transductif ou transductive transfer learning : les tâches sont les mêmes, mais les domaines sont différents. C'est souvent le cas dans le traitement automatique du langage avec des réseaux de neurones spécialisés dans des thématiques différentes.
En quoi consiste le fine tuning en transfer learning ?
Le fin tuning est une méthode de transfer learning. Elle consiste à figer une partie des poids des couches du réseau pré-entraîné, ces couches recouvrant des variables génériques : détection de formes, de couleurs... A partir de là, on pourra appliquer l'apprentissage visant à ajouter les couches complémentaires permettant de réaliser la tâche ciblée, le tout sans risquer de déséquilibrer l'édifice.
Peut-on faire du transfer learning avec PyTorch, TensorFlow ?
PyTorch et TensorFlow figurent parmi les framework de deep learning les plus utilisés. Le transfer learning peut être appliqué aux réseaux de neurones développés à partir de ces deux technologies.