Alors les gars vous êtes prêt ?

Dans quelques heures le master @bayethiernodiop nous parlera du transfer learning appliqué aux problèmes de NLP.

Mais au fait savez-vous ce qu'est le transfer learning ?

Voici un petit thread pour vous donner une petite idée. https://twitter.com/galsenai/status/1309932252453896214
Tout d'abord faut noter qu'il sera très difficile de vous donner tous les détails techniques du transfer learning dans un thread. Celà nécessiterait tout un article de blog voire même un livre.
En plus ce n'est vraiment pas l'idée dans ce thread. Thierno vous donnera plus de détails sûrement dans sa présentation. L'objectif de ce thread est juste de vous préparer un peu avec quelques notions de bases.
Je connais Thierno et croyez-moi je sais qu'il ne va pas y aller molo 😂. Alors je pense que (pour les débutants) ce thread vous sera très utile pour pouvoir bien suivre sa présentation.

Bon assez bavardé, allons y ! Qu'est-ce que le transfer learning ?
Le transfer learning ou apprentissage par transfert est une méthode de machine learning dans laquelle un modèle développé pour une tâche est réutilisé comme point de départ d'un (autre) modèle sur une deuxième tâche.
En gros l'idée est de transférer les «connaissances» apprises par un modèle sur des données D1 dans un autre modèle qui apprend sur des données D2. Avec D1 et D2 ayant des similitudes (bien-sûr).
Cette technique peut paraître simple mais elle est directement inspirée des techniques d'apprentissage de l'être humain. Si vous êtes à mesurer de conduire un vélo, vous réutilisez vos connaissances pour apprendre à conduire une moto. C'est exactement le même principe.
C'est une approche très populaire en Deep learning où des modèles pré-entraînés sont utilisés comme point de départ pour les tâches de computer vision et de NLP étant donné les grandes ressources de calcul et le temps nécessaires pour entraîner efficacement
des modèles de deep learning sur ces problèmes. Ici la reutilisabilité est une notion très importante. Elle est au cœur de la compréhension de l'intérêt et du fonctionnement du transfer learning.
Le transfer learning peut aussi être vu comme une technique d'optimisation qui permet des progrès rapides et de meilleures performances lors de la modélisation d'une tâche donnée.
Le transfer learning ne fonctionne vraiment que si les paramètres du modèle apprises sont assez génériques. Il s'agit d'une technique de généralisation -> spécialisation. C'est ce qu'on appelle le transfert inductif en deep learning.
Cela permet de beaucoup réduire les biais d'un modèle en utilisant un ajustement de modèle sur une tâche différente mais connexe. Thierno reviendra et insistera sûrement sur ça. Sinon n'hésitez pas à lui poser la question 😂 c'est important.
Maintenant que nous savons tous ça, comment utiliser le transfer learning concrètement ?
Alors il y a deux approches possibles. Soit on développe le tout nous même (Develop Model Approach) soit on utilise des modèles déjà pré-entrainé (Pre-trained Model Approach) je crois que Thierno va plus insister sur cette deuxième approche. Et c'est la plus commune
Parce qu'après tout pourquoi réinventer la roue les gars ?

Bref, parlons un peu de la première approche (Thierno est parresseux il ne va pas trop insister sur celle là 😂). Elle se résume en 4 phases:
1/ Sélection de la tâche source.

Vous devez sélectionner un problème de modélisation prédictive associé avec une abondance de données où il existe une relation entre les données d'entrée, les données de sortie et/ou les concepts appris lors du mappage entre les deux.
2/ Développement du modèle source.

Ensuite, vous devez développer un modèle habile pour cette première tâche. Le modèle doit être meilleur qu'un modèle naïf pour garantir que le maximum de paramètres a été appris et qu'il est optimal.
3/ Réutilisation du modèle.

L'ajustement du modèle sur la tâche source peut ensuite être utilisé comme point de départ d'un modèle sur la deuxième tâche (finale). Cela peut impliquer l'utilisation de tout ou d'une partie du modèle, selon la technique de modélisation utilisée.
4/ Réglage du modèle.

Facultativement, le modèle peut devoir être adapté ou affiné sur les données de paire entrée-sortie disponibles pour la tâche finale.
Pour la deuxième approche on ne va pas en parler dans ce thread. Comme je l'ai dit, je connais Thierno (c'est un imminent ingénieur) et je sais qu'il va plus parler de cette approche.
Mais sachez juste qu'elle se résume en 3 parties et c'est essentiellement les parties 1, 3 et 4 de l'approche précédente avec les partie 1 et 4 étant les plus importantes ici.
Alors une dernière chose c'est quand est-ce qu'on utilise du transfer learning en deep learning ?

En général, l'avantage à utiliser cette technique n'est pas si visible que ça tant que le modèle n'a pas été développé et évalué.
C'est une approche à essayer si vous pouvez identifier une tâche connexe avec des données abondantes et si vous avez les ressources pour développer un modèle pour cette tâche et le réutiliser sur votre propre problème, ou s'il existe un modèle pré-entraîné
disponible que vous pouvez utiliser comme un point de départ pour votre propre modèle.

Sur certains problèmes pour lesquels vous n'avez peut-être pas beaucoup de données, le transfer learning peut vous permettre de développer des modèles puissant facilement.
Bon voila en gros, ce que je voulais vous dire du transfer learning. C'est une technique vraiment très intéressante et j'espère que ce petit thread vous permettra d'avoir les bases et de mieux suivre l'excellente presentation que Thierno nous feras sur ce sujet aujourd'hui.
You can follow @eliaswalyba.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: