Transfer learning

Transfer Learning

5 min

Andrew Ng, scientifique en chef à Baidu et professeur à Stanford, a déclaré lors de son très populaire tutoriel NIPS 2016 que l’apprentissage par transfert sera le prochain moteur du succès commercial de Machine Learning. Et il n’est pas le seul à vanter le potentiel du Transfer Learning …

Dans cet article, nous vous disons tout sur cette notion qui fait de plus en plus le buzz. DataScientest va vous aider à répondre à 3 questions fondamentales

  • Qu’est-ce que le Transfer Learning ? 
  • Sur quelles stratégies les techniques de Transfer Learning reposent ?

Comment sont-elles mises en œuvre concrètement pour la résolution de problématiques de Deep Learning ?

Transfer Learning : définition

Commençons d’abord par définir ce terme de plus en plus utilisé en Data Science.

Le Transfer Learning, ou apprentissage par transfert en français, désigne l’ensemble des méthodes qui permettent de transférer les connaissances acquises à partir de la résolution de problèmes donnés pour traiter un autre problème. 

Le Transfer Learning a connu un grand succès avec l’essor du Deep Learning.  En effet, bien souvent, les modèles utilisés dans ce domaine nécessitent des temps de calcul élevés et des ressources importantes. Or, en utilisant des modèles pré-entraînés comme point de départ, le Transfer Learning permet de développer rapidement des modèles performants et résoudre efficacement des problèmes complexes en Computer Vision ou Natural Language Processing, NLP.

transfer learning
Figure 1 – Approche traditionnelle vs. Approche de Transfert Learning

Intuitivement, le Transfer Learning s’inspire fortement du processus avec lequel nous apprenons. 

Prenons l’exemple de quelqu’un qui maîtrise la guitare et souhaite apprendre à jouer au piano. Il pourra capitaliser sur ses connaissances en musique pour apprendre à jouer un nouvel instrument. De la même manière, un modèle de reconnaissance de voiture pourra être très rapidement réadapté à la reconnaissance de camions.

Sur quelles stratégies les techniques de Transfer Learning reposent ?

Le Transfer Learning repose sur une idée simple, celle de ré-exploiter les connaissances acquises dans d’autres configurations (sources) pour la résolution d’un problème particulier (cible). Dans ce contexte, on peut distinguer plusieurs approches selon ce que l’on souhaite transférer, quand et comment réaliser le transfert. Globalement, nous pouvons distinguer trois types de Transfer Learning :

  1. Apprentissage par transfert inductif, ou Inductive Transfer Learning

Dans cette configuration, les domaines source et cible sont les mêmes (même données), mais les tâches source et cible sont différentes mais proches. L’idée consiste alors à utiliser les modèles existants pour réduire de manière avantageuse le champ d’application des modèles possibles (biais de modèle) comme illustré dans le figure ci-dessous.

Inductive Transfer Learning
Figure 2 – Illustration de l’apprentissage par transfert inductif, ou Inductive Transfer Learning

Par exemple, il est possible d’utiliser un modèle entraîné pour la détection d’animaux sur des images pour construire un modèle capable d’identifier des chiens.   

  1. Apprentissage par transfert non supervisé, ou Unsupervised Transfer Learning

Comme dans le cas de l’apprentissage par transfert inductif, les domaines source et cible sont similaires, mais les tâches sont différentes. Toutefois, les données des deux domaines ne sont pas labellisées.

Il est souvent plus facile d’obtenir de grandes quantités de données non labellisées, à partir de bases de données et de sources sur le web par exemple, que des données labellisées. C’est pourquoi l’idée d‘utiliser l’apprentissage non supervisé en combinaison avec le Transfer Learning suscite un grand intérêt

A titre d’exemple, le Self-taught clustering est une approche qui permet de réaliser le clustering de petites collections de données cibles non labellisées, avec l’aide d’une grande quantité de données sources non labellisées. Cette approche s’avère plus performante que les approches de pointe traditionnellement utilisées, lorsque les données cibles sont labellisées de manière non pertinente.

  1. Apprentissage par transfert transductif, ou Transductive Transfer Learning :

Dans cette configuration, les tâches sources et cibles sont similaires, mais les domaines correspondants sont différents soit en termes de données ou de distributions de probabilités marginales. 

Par exemple, les modèles de NLP, tels que ceux utilisés pour l’étiquetage morpho-syntaxique de mots, Part-Of-Speech Tagger (POS Tagger) en anglais, sont généralement entraînés et testés sur des données d’actualité comme celles du Wall Street Journal. Ils peuvent être adaptés aux données issues des réseaux sociaux dont le contenu est différent mais proche de celles des journaux.

Comment le Transfer Learning est mis en œuvre concrètement pour la résolution de problématiques de Deep Learning ?

Maintenant que nous avons défini le Transfer Learning, intéressons-nous à son application aux problématiques de Deep Learning, domaine dans lequel il connaît aujourd’hui un grand succès.

L’utilisation des méthodes de Transfer Learning en Deep Learning consiste principalement à exploiter des réseaux de neurones pré-entraînés

Généralement, ces modèles correspondent à des algorithmes très performants qui ont été développés et entraînés sur de larges bases de données et qui sont aujourd’hui librement partagés.

Dans ce contexte, on peut distinguer 2 types de stratégies :

  1. Utilisation de modèles pré-entraînés comme extracteurs de features :

L’architecture des modèles de Deep Learning se présente très souvent sous la forme d’un empilement de couches de neurones. Ces couches apprennent différentes caractéristiques en fonction du niveau où elles se situent. La dernière couche (généralement une couche entièrement connectée, dans le cas de l’apprentissage supervisé) est utilisée pour obtenir la sortie finale. La figure ci-dessous illustre l’architecture d’un modèle de Deep Learning utilisé pour la détection de chat/chien. Plus la couche se situe en profondeur, plus elle permet d’extraire des features spécifiques.

transfer learning
Figure 3 – Exemple de modèle de réseau de neurones utilisé pour la classification d’images

L’idée est donc de réutiliser un réseau pré-entraîné sans sa couche finale. Ce nouveau réseau fonctionne alors comme un extracteur de features fixes pour la réalisation d’autres tâches.

Afin d’illustrer cette stratégie, prenons le cas où nous souhaitons créer un modèle capable d’identifier l’espèce d’une fleur à partir de son image. Il est alors possible d’utiliser les premières couches du modèle de réseau de neurones convolutif AlexNet, initialement entrainé sur la base d’image ImageNet pour la classification d’images.

Si l’idée paraît simple, on pourrait s’interroger sur les performances d’une telle approche. En pratique, elle fonctionne très bien comme le montre la figure ci-dessous.

transfer learning
Figure 4 – Performance de modèles Deep Learning spécifiquement entraînés sur la tâche (vert) par rapport aux modèles pré-entraînés (rouge, rose)
    1. Ajustement de modèles pré-trainés :

 

Il s’agit d’une technique plus complexe, dans laquelle non seulement la dernière couche est remplacée pour réaliser la classification ou la régression, mais d’autres couches sont également ré-entraîner de manière sélective. En effet, les réseaux neuronaux profonds sont des architectures hautement configurables avec divers hyperparamètres. De plus, alors que les premières couches capturent les caractéristiques génériques, les dernières couches se concentrent davantage sur la tâche spécifique à accomplir, comme le montre la figure-ci-dessous

modèle de réseau de neurone
Figure 5 – Exemple de modèle de réseau de neurones utilisé pour reconnaissance faciale

L’idée est donc de geler (c’est-à-dire fixer les poids) de certaines couches pendant l’entraînement et affiner le reste pour répondre à la problématique. 

Cette stratégie permet de réutiliser les connaissances en termes d’architecture globale du réseau et d’exploiter ses états comme point de départ pour l’entraînement. Elle permet donc d’obtenir de meilleures performances avec un temps d’entraînement plus court.


La figure ci-dessous récapitule les principales approches de Transfer Learning utilisées communément en Deep Learning

transfer learning
Figure 6 – Approche de Transfer Learning en Deep Learning,

L’une des exigences fondamentales de l’apprentissage par transfert est la présence de modèles qui fonctionnent bien sur les tâches sources. Heureusement, de nombreuses architectures de Deep Learning de pointe sont aujourd’hui partagées librement par leurs équipes respectives. Celles-ci s’étendent sur différents domaines tels que la vision par ordinateur ou Computer Vision, et le Traitement du langage nature ou le NLP, deux domaines très populaires en Deep Learning.

Parmi les modèles très fréquemment utilisés :

Points clés à retenir

Le Transfer Learning correspond à la capacité à utiliser des connaissances existantes, développées pour la résolution de problématiques données, pour résoudre une nouvelle problématique. Nous avons abordé plusieurs approches de Transfert Learning. Afin de pouvoir choisir la stratégie la plus adaptée, il est important d’examiner les trois questions suivantes : 
    1. Que veut-on transférer ? C’est la première question à se poser et la plus importante. Elle vise à définir quelle partie de la connaissance est à transférer de la source à la cible, afin de répondre à la problématique de la tâche cible. 
    2. Quand veut-on transférer ? Il peut y avoir des scénarios où l’application de méthodes de Transfert Learning peut conduire à une dégradation des résultats. En réalité, ces performances dépendent de la similarité entre les domaines et les tâches cible et source.
    3. Comment va-t-on réaliser le transfert ? Une fois que nous avons répondu à la question “quoi” et “quand”, nous pouvons commencer à identifier la technique de Transfer Leaning la plus adaptée au problème que nous souhaitons résoudre. 

Intéressé(e) par le Transfer Learning ? Découvrez prochainement un exemple d'application avec un article consacré au Style Transfer