Qu'est-ce que l'apprentissage de transfert ?
Définition
Le Transfer Learning (apprentissage de transfert en français) consiste à réutiliser les acuqis d'un modèle existant pour répondre à une nouvelle problématique. L'idée est de ne pas partir de zéro. Il existe trois niveau d'implémentation, le features extraction, le fine-tunning partiel et le fine-tuning total.
Motivations
Les raisons pour lesquelles on décide d'utiliser le transfer learning peuvent être diverses.
1. Base de données limitée
Très souvent on fait appel à l'apprentissage de transfert lorsqu'on dispose d'une base de donnée limitée. Dans le cadre de la classification d'images, des millions d'images peuvent être nécessaires pour obtenir un bon modèle. Il n'est pas toujours évident de trouver un tel nombre d'images
2. Faible capacité RAM
Apprendre un réseau de neurones nécessite également des capacités machine important, un capacité RAM capable d'allouer de l'espace pour les millions de paramètres des modèles. Ainsi en cas de capacité RAM limitée pour apprendre votre propore réseau de neurones à partir de zéro, l'apprentissage de transfert est une bonne alterntive.
3. Puissance de calcul faible
L'entrainement d'un réseau de neurones peut durer plusieurs heures, plusieurs jours, plusieurs semaines voire plusieurs mois. Tout dépend de la puissance de calcul, plus cette puissance de calcul est grande moins long est
Implémentation
1. Features Extraction
On tronque le réseau en enlevant les dernières couches.
2. Fine-tunning partiel
3. Fine-tunning total
Conclusion
Le fine tuning partiel est l'implémentation la plus courante du transfer learning.
Pour en savoir plus je vous renvoie à ma série de publications sur le sujet Comprendre l'apprentissage de transfert.