5ème et ultime volet de notre dossier consacré au Deep Learning, cet article vous présentera en détail la définition et le fonctionnement du Transfer Learning. Si vous souhaitez revenir sur les premiers articles, en voici la liste :
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).
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.
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.
2. 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.
À 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.
3. 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.
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.
2. 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.
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
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 :
- 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.
- 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.
- 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.
Bravo ! Vous avez terminé notre dossier Deep Learning ! Vous savez maintenant l’essentiel sur ses applications à succès, le fonctionnement des réseaux de neurones, les CNN et désormais le Transfer Learning . Vous souhaitez aller plus loin dans votre apprentissage du Deep Learning ? Découvrez (et démarrez prochainement) l’une de nos formations spécialisées.
Article 1 : Introduction au deep learning et aux réseaux de neurones
Article 2 : Convolutional neural network
Article 3 : Fonctionnement des réseaux de neurones
Article 4 : Transfer learning