Publié le 13/09/2018 Par Laurent Plagnes

Machine Learning, Deep Learning, Reinforcement Learning, Collaborative Learning; vous pensiez avoir entendu toutes les combinaisons du mot Learning ? C’est bien évidemment avant de connaitre le… Transfer Learning ! Et là, je sais ce que vous vous dites : « encore un buzz word imbuvable, vraiment très inventifs ces scientifiques ! » Votre orgueil piqué au vif, vous vous résignez à lire cet article pour tenter de comprendre ce nouveau concept de l’Intelligence Artificielle. Mais, promis, il ne sera pas un vulgaire copié collé de Wikipédia (toujours en recherche de dons par ailleurs). Il se rapprochera davantage d’un Science et Vie Junior que d’un Tangente. L’objectif est donc de vulgariser un maximum certain concepts de Data Science. Alors accrochez-vous parce qu’après ça vous aurez trop la classe auprès de vos collègues : « Eh Francis ! Tu connais le Transfer Learning ? Non ? Ah bah attends je vais tout expliquer, c’est super simple ! ».

Commençons tout d’abord par quelques rappels

Le Machine Learning (apprentissage automatique pour les francophiles) est la possibilité de créer un algorithme capable d’analyser des données et d’en sortir une information supplémentaire. On parle d’automatisation car cet algorithme est capable de s’entraîner et de s’améliorer seul. Incroyable ! On dirait presque qu’il est vivant ! Mais au risque de vous décevoir, non. Alors prenons un exemple simple pour démystifier tout ça. Passionné de safari depuis toujours, vous cherchez à créer un algorithme qui distingue le rhinocéros de l’éléphant. Pourquoi créer cet algorithme et ne pas le faire vous-même ? Tout simplement parce qu’en raison de vos nombreux voyages en savane africaine accompagné de votre fidèle Canon, vous avez sur votre PC une quantité gargantuesque de photos à trier, la passion allant souvent de pair avec la volumétrie… Autant dire que vous allez y passer des week-ends. C’est dommage, le dernier Fifa est sorti…

Alors que peut faire le Machine Learning pour vous ? Et bien il va pouvoir réaliser ce travail fastidieux et bien plus rapidement que vous ! Quelle est donc cette sorcellerie ? Tout simplement, comme à vos enfants, vous allez pouvoir apprendre à votre algorithme de Machine Learning à distinguer le rhinocéros de l’éléphant. Pour cela, il suffit de lui donner une image en explicitant l’animal qui est représenté. L’algorithme étudie alors les caractéristiques de l’image et construit son modèle pour être capable par la suite de reconnaître l’animal représenté sur de nouvelles photos. Evidemment, plus on lui donne d’images différentes plus il sera efficace. En effet, il suffit que la photo soit prise sous un autre angle ou que l’animal soit légèrement différent de ce qu’il a déjà rencontré pour qu’il induise son modèle en erreur. Plus il connaîtra d’images différentes, plus son modèle sera robuste. L’algorithme peut également s’améliorer. En comparant ses propres résultats avec ceux que vous lui avez donnés, il est capable d’analyser ses erreurs et changer son modèle en fonction.

Dans ce cas de figure, cet apprentissage est dit supervisé car nous supervisons la reconnaissance des données en entrée (e.g les photos) en explicitant leur catégorie (éléphant ou rhinocéros). L’algorithme a besoin de nous. On dit que les données sont labellisées.

Bien, trêve de bavardage, laissons place à quelques illustrations. Comme le dit notre très cher Napoléon 1er : « Un bon croquis vaut mieux qu’un long discours. »

Ci-dessous un exemple du fonctionnement du Machine Learning pour distinguer un mouton d’un chien (source BFMTV):

A contrario, si vous décidez de ne pas aider votre algorithme, l’apprentissage est dit non supervisé. C’est à ce moment-là qu’on se dit que le Machine Learning c’est vraiment puissant ! Il est capable de trouver de lui-même des similitudes parmi les données que vous lui avez fournies et ce, sans votre aide. En cherchant ces similarités, il va regrouper les données et en déduire des catégories. Cette méthode est notamment très utilisée pour les recommandations que vous pouvez maintenant voir systématiquement sur votre page Youtube : « Vous avez adoré regarder la vidéo de Gangnam Style ? Voici en suggestion des vidéos K-pop pouvant vous intéressez. » Bon… Pas sûr qu’on en veuille voir davantage mais le principe est là !

Le coeur du sujet : le Transfer Learning

Maintenant qu’on a posé les bases du Machine Learning, passons au cœur du sujet, le Transfer Learning. Pour cela, nous allons nous fixer sur l’apprentissage supervisé du Machine Learning.

Tel un rendez-vous galant avec votre soupirant(e) qui cache bien ses défauts, le Machine Learning n’est pas parfait et fait face à plusieurs problématiques auxquelles il ne peut répondre. La première, que nous avons mentionnée un peu plus haut, concerne la quantité de données qu’on possède. Si cette dernière n’est pas assez importante alors le modèle qui se construit dessus ne sera pas pertinent et se trompera probablement souvent. Le deuxième problème majeur concerne la difficulté d’appliquer un modèle de Machine Learning dans une autre situation, même similaire.

Prenons un exemple. Nous avons entraîné un modèle à reconnaître les piétons sur des photos prises en plein jour. En théorie on pense pouvoir appliquer le même modèle sur des photos prises de nuit. Le contexte restant le même on s’aperçoit cependant que les résultats du modèle sont loin d’être satisfaisants… Il nous faudrait donc construire un nouveau modèle pour que l’algorithme apprenne à reconnaître les piétons cette fois sur des photos de nuit. Autant dire qu’on est loin de faire des prouesses d’optimisation…

De plus, ces modèles sont très gourmands en données et en énergie. Il leur faut beaucoup d’image et de temps pour apprendre. Autre situation, si on demande à ce même modèle déjà entraîné de reconnaître des bicyclettes il n’en sera pas non plus capable.

C’est dans ce contexte qu’intervient le Transfer Learning. Ce dernier consiste à stocker les connaissances apprises par un modèle de Machine Learning pour résoudre un problème spécifique et à les transférer à un second modèle. Ce dernier sera alors capable d’appliquer cette connaissance et de résoudre sa problématique bien plus rapidement.

Qu’est-ce que cela peut bien signifier ? Tout simplement, si vous voulez apprendre à jouer du piano mais que vous savez déjà jouer de la guitare, vos connaissances en musique vont pouvoir vous aider à apprendre beaucoup plus rapidement ce nouvel instrument.

Prenons l’exemple de l’apprentissage par la simulation. Supposons que nous souhaitons entraîner un modèle pour qu’il sache reconnaître une situation dangereuse sur la route qui pourra servir ensuite aux futures voitures autonomes. Pour cela il a besoin d’étudier la circulation autoroutière. Le faire dans le monde réel serait chronophage. De plus, laisser une voiture autonome sans aucun apprentissage sur la route pour qu’elle apprenne d’elle-même serait beaucoup trop dangereux. La solution est donc de créer un monde virtuel qui simule aussi parfaitement que possible la vie réelle. Dans ce cas précis cela concernerait donc le trafic, les accidents, les piétons, les situations à risque, etc. Toutes ces informations sont des données grâce auxquelles le modèle apprend. Une fois qu’il nous parait satisfaisant en terme de qualité, nous pouvons l’appliquer au monde réel. C’est là qu’intervient le Transfert Learning : nous transférons les connaissances acquises de la simulation au trafic réel.

Nous avons donc un modèle source qui servira à créer de nouvelles connaissances et le modèle cible qui appliquera ces connaissances.

Ci-dessous, nous avons pris l’exemple de la problématique de la reconnaissance des piétons pour illustrer le Transfer Learning :

Et le transfert, ça marche comment ?

Bien, nous avons compris ce qui se cachait derrière le mot Transfer Learning mais concrètement, comment transférer les connaissances d’un modèle à un autre ? Plusieurs méthodes sont possibles.

La première consiste à introduire des données du modèle source dans le modèle cible. Si nous reprenons notre exemple sur le problème de reconnaissance des piétons sur des photos prises de nuit, il suffirait de prendre quelques images de jour et de les ajouter à notre modèle cible de nuit. Mais cela nécessiterait un nouvel apprentissage.

La deuxième approche consiste à garder les variables les plus similaires entre les deux modèles ou bien à les transformer pour les rendre plus similaires, puis de créer un métamodèle qui n’aura pas besoin de refaire toute la partie apprentissage. Encore d’autres méthodes tout aussi pertinentes existent et permettent le transfert de connaissances d’un modèle à l’autre.

De manière concrète, transférer la connaissance d’un modèle à un autre demande une adaptation en modifiant les données ou les paramètres afin de pouvoir l’appliquer à d’autres situations. Nous créons donc un second modèle qui reprend les bases du premier.

Cette illustration ci-dessus représente ce passage de connaissance entre un modèle source, qui a eu les conditions idéales pour s’entraîner et apprendre, et un modèle cible qui a eu soit besoin de connaissances pour fonctionner soit de gagner du temps en évitant la phase d’apprentissage.

A l’heure actuelle, 4 scénarios ont été identifiés dans lequel le Transfer Learning s’applique :

  • Les variables sont différentes entre le modèle source et cible (2 documents écrits en 2 langues différentes).
  • Les variables n’ont pas la même probabilité de se passer (2 documents qui traitent de différents sujets).
  • Les catégories (labels) entre le modèle source et cible sont de types différents (labels sources binaires, labels cibles en 10 classes).
  • Avec les mêmes données on ne retrouve pas la même catégorie car il est soumis à la subjectivité (humour drôle pour les anglais vs humour noir pour les français).

Conclusion

Les problématiques du Transfer Learning sont aujourd’hui au cœur des recherches menées par la communauté scientifique. Ces nouvelles applications permettront de pallier les défauts actuels du Machine Learning où la perte d’optimisation est importante. Le Transfer Learning suscite aujourd’hui un engouement fort soulignant l’importance de la connaissance : une fois acquise comment la partager et l’optimiser au mieux ?

Dans un avenir proche, nous pouvons imaginer des robots autonomes capables de communiquer et partager des connaissances précieuses, tout à l’image de l’Homme.

Le laboratoire de Meritis s’intéresse vivement à ce sujet effervescent pour s’investir toujours davantage dans les thématiques de l’Intelligence Artificielle. Le Transfer Learning répond à la préoccupation d’optimisation de la richesse créée par la connaissance. Une préoccupation que nous avons cernée chez nos clients. Aujourd’hui, nous souhaitons les aider à résoudre ces problématiques rencontrées dans lesquelles seul le Transfer Learning peut intervenir. C’est donc dans cette dynamique que notre équipe souhaite centraliser des compétences fortes dans ce domaine. Etre à la pointe de l’innovation, chercher à comprendre de quoi sera fait le monde de demain et répondre ainsi au mieux aux besoins de nos clients sont nos leitmotivs.

« Transfer Learning will be the next driver of Machine Learning success. » Andrew NG, NIPS 2016 tutorial.

Vos commentaires

  1. Par ibrahim souleiman, le 11 Oct 2018

    Je trouve l’idée du transfert learning interressant et je ne douter pas qui va allégé le problème lie aux données.

    j’aimerais vous posez une question :  » Serait’il possible des créer des algorithmes IA permettons de faire ce transfert learning ? » même si la tâche est assez comblique il aura plusieur problèmes a se confronter certes ,mais néonmoins je crois que cela sera dans le domaine de possible .

Publier un commentaire

Auteur

Laurent Plagnes