Qu'est-ce que l'apprentissage par transfert ?

Nœud source: 1882581

Qu'est-ce que l'apprentissage par transfert ?
Image qimono sur Pixabary

 

L'apprentissage par transfert est une méthode d'apprentissage automatique où l'application des connaissances obtenues à partir d'un modèle utilisé dans une tâche peut être réutilisée comme point de départ pour une autre tâche.

Les algorithmes d'apprentissage automatique utilisent des données historiques comme entrée pour faire des prédictions et produire de nouvelles valeurs de sortie. Ils sont généralement conçus pour effectuer des tâches isolées. Une tâche source est une tâche à partir de laquelle des connaissances sont transférées vers une tâche cible. Une tâche cible correspond à un apprentissage amélioré grâce au transfert de connaissances à partir d'une tâche source. 

Au cours de l'apprentissage par transfert, les connaissances mises à profit et les progrès rapides d'une tâche source sont utilisés pour améliorer l'apprentissage et le développement vers une nouvelle tâche cible. L'application des connaissances utilise les attributs et les caractéristiques de la tâche source, qui seront appliqués et mappés sur la tâche cible. 

Cependant, si la méthode de transfert entraîne une diminution des performances de la nouvelle tâche cible, on parle de transfert négatif. L'un des principaux défis lorsque l'on travaille avec des méthodes d'apprentissage par transfert est de pouvoir fournir et assurer le transfert positif entre des tâches liées, tout en évitant le transfert négatif entre des tâches moins liées. 

Le quoi, quand et comment de l'apprentissage par transfert

  1. Que transférons-nous ? Pour comprendre quelles parties des connaissances acquises transférer, nous devons déterminer quelles parties des connaissances reflètent le mieux à la fois la source et la cible. Dans l'ensemble, améliorer les performances et la précision de la tâche cible. 
  2. Quand est-ce qu'on transfère ? Comprendre quand transférer est important, car nous ne voulons pas transférer des connaissances qui pourraient, à leur tour, aggraver les choses, conduisant à un transfert négatif. Notre objectif est d'améliorer les performances de la tâche cible, pas de l'aggraver. 
  3. Comment transférons-nous? Nous avons maintenant une meilleure idée de ce que nous voulons transférer et du moment où nous pouvons ensuite passer à l'utilisation de différentes techniques pour transférer efficacement les connaissances. Nous en reparlerons plus loin dans l'article. 

Avant de nous plonger dans la méthodologie de l'apprentissage par transfert, il est bon de connaître les différentes formes d'apprentissage par transfert. Nous passerons en revue trois types différents de scénarios d'apprentissage par transfert, basés sur les relations entre la tâche source et la tâche cible. Vous trouverez ci-dessous un aperçu des différents types d'apprentissage par transfert :

Différents types d'apprentissage par transfert

 
Apprentissage par transfert inductif: Dans ce type d'apprentissage par transfert, la tâche source et la tâche cible sont les mêmes, cependant, elles sont toujours différentes l'une de l'autre. Le modèle utilisera des biais inductifs de la tâche source pour aider à améliorer les performances de la tâche cible. La tâche source peut contenir ou non des données étiquetées, menant ensuite au modèle utilisant l'apprentissage multitâche et l'apprentissage autodidacte. 

Apprentissage par transfert non supervisé: Je suppose que vous savez ce qu'est l'apprentissage non supervisé, cependant, si vous ne le savez pas, c'est lorsqu'un algorithme est soumis à la capacité d'identifier des modèles dans des ensembles de données qui n'ont pas été étiquetés ou classés. Dans ce cas, la source et la cible sont similaires, cependant, la tâche est différente, où les deux données ne sont pas étiquetées à la fois dans la source et la cible. Des techniques telles que la réduction de dimensionnalité et le regroupement sont bien connues dans l'apprentissage non supervisé. 

Apprentissage par transfert transductif: Dans ce dernier type d'apprentissage par transfert, les tâches source et cible partagent des similitudes, cependant, les domaines sont différents. Le domaine source contient beaucoup de données étiquetées, alors qu'il y a une absence de données étiquetées dans le domaine cible, ce qui conduit davantage au modèle utilisant l'adaptation de domaine. 

Apprentissage par transfert vs ajustement

 
Le réglage fin est une étape facultative dans l'apprentissage par transfert et est principalement intégré pour améliorer les performances du modèle. La différence entre l'apprentissage par transfert et le réglage fin réside dans le nom.

L'apprentissage par transfert repose sur l'adoption de fonctionnalités apprises à partir d'une tâche et le « transfert » des connaissances acquises sur une nouvelle tâche. L'apprentissage par transfert est généralement utilisé sur des tâches où l'ensemble de données est trop petit, pour former un modèle à grande échelle à partir de zéro. Le réglage fin consiste à effectuer des ajustements "fins" d'un processus afin d'obtenir le résultat souhaité pour améliorer encore les performances. Les paramètres d'un modèle formé pendant le réglage fin sont ajustés et adaptés avec précision et spécifiquement, tout en essayant de valider le modèle pour obtenir les résultats souhaités.

Pourquoi utiliser l'apprentissage par transfert ?

 
Raisons d'utiliser l'apprentissage par transfert :

Pas besoin de beaucoup de données – L'accès aux données est toujours un obstacle en raison de leur manque de disponibilité. Travailler avec des quantités de données insuffisantes peut entraîner une baisse des performances. C'est là que l'apprentissage par transfert brille car le modèle d'apprentissage automatique peut être construit avec un petit ensemble de données de formation, car il est pré-formé. 

Gain de temps de formation – Les modèles d'apprentissage automatique sont difficiles à former et peuvent prendre beaucoup de temps, ce qui entraîne une inefficacité. Il faut beaucoup de temps pour former un réseau neuronal profond à partir de zéro sur une tâche complexe, donc l'utilisation d'un modèle pré-formé permet de gagner du temps sur la construction d'un nouveau.

Avantages de l'apprentissage par transfert

 
Meilleure base: L'utilisation d'un modèle préformé dans l'apprentissage par transfert vous offre une meilleure base et un meilleur point de départ, vous permettant d'effectuer certaines tâches sans même formation. 

Taux d'apprentissage plus élevé: Étant donné que le modèle a déjà été entraîné sur une tâche similaire au préalable, le modèle a un taux d'apprentissage plus élevé. 

Taux de précision plus élevé: Avec une meilleure base et un taux d'apprentissage plus élevé, le modèle fonctionne à une performance plus élevée, produisant des sorties plus précises. 

Quand est-ce que l'apprentissage par transfert Pas Travail?

 
L'apprentissage par transfert doit être évité lorsque les poids formés à partir de votre tâche source sont différents de votre tâche cible. Par exemple, si votre ancien réseau a été formé pour classer les chats et les chiens et que votre nouveau réseau essaie de détecter les chaussures et les chaussettes, il y aura un problème car les poids transférés de votre source à la tâche cible ne pourront pas donner vous le meilleur des résultats. Par conséquent, initialiser le réseau avec des pondérations pré-formées qui correspondent à des sorties similaires à celle que vous attendez est préférable à l'utilisation de pondérations sans corrélation.

La suppression de couches d'un modèle pré-entraîné entraînera des problèmes avec l'architecture du modèle. Si vous supprimez les premières couches, votre modèle aura un faible taux d'apprentissage car il doit jongler avec des fonctionnalités de bas niveau. La suppression de calques réduit le nombre de paramètres pouvant être formés, ce qui peut entraîner un surajustement. Être capable d'utiliser la bonne quantité de couches est essentiel pour réduire le surajustement, cependant, c'est aussi un processus opportun. 

Inconvénients de l'apprentissage par transfert

 
Apprentissage par transfert négatif: Comme je l'ai mentionné ci-dessus, l'apprentissage par transfert négatif se produit lorsqu'une méthode d'apprentissage précédente entrave la nouvelle tâche. Cela ne se produit que si la source et la cible ne sont pas suffisamment similaires, ce qui rend le premier cycle d'entraînement trop éloigné. Les algorithmes ne doivent pas toujours être en accord avec ce que nous considérons comme similaire, ce qui rend difficile la compréhension des principes fondamentaux et des normes de quel type de formation est suffisant. 

Transfert d'apprentissage en 6 étapes

 
Plongeons-nous dans une meilleure compréhension de la façon dont l'apprentissage par transfert est mis en œuvre et des étapes suivies. Il y a 6 étapes générales prises dans l'apprentissage par transfert et nous passerons en revue chacune d'elles.

  1. Sélectionner la tâche source : la première étape consiste à sélectionner un modèle pré-formé qui contient une abondance de données, ayant une relation entre les données d'entrée et de sortie avec la tâche cible que vous avez choisie.
  2. Créer un modèle de base : instanciez un modèle de base avec des poids pré-formés. Les pondérations pré-formées sont accessibles via des architectures telles que Xception. Il s'agit de développer votre modèle source, de sorte qu'il soit meilleur que le modèle naïf avec lequel nous avons commencé, assurant une certaine augmentation du taux d'apprentissage. 
  3. Geler les calques : pour réduire la réinitialisation des poids, il est nécessaire de geler les calques du modèle pré-formé. Cela rachètera les connaissances déjà acquises et vous évitera de former le modèle à partir de zéro.
base_model.trainable = Faux
  1. Ajouter de nouvelles couches pouvant être formées : l'ajout de nouvelles couches pouvant être formées au-dessus de la couche gelée convertira les anciennes fonctionnalités en prédictions sur un nouveau jeu de données.
  2. Former les nouvelles couches : le modèle pré-formé contient déjà la couche de sortie finale. La probabilité que la sortie actuelle sur le modèle pré-entraîné et la sortie souhaitée de votre modèle soient différentes est élevée. Par conséquent, vous devez former le modèle avec une nouvelle couche de sortie. Par conséquent, l'ajout de nouvelles couches denses et de la couche dense finale en correspondance avec votre modèle attendu améliorera le taux d'apprentissage et produira les résultats de votre désir. 
  3. Réglage fin : Vous pouvez améliorer les performances de votre modèle par un réglage fin, qui se fait en dégelant tout ou partie des modèles de base, puis en réentraînant le modèle avec un taux d'apprentissage très faible. Il est essentiel d'utiliser un faible taux d'apprentissage à ce stade, car le modèle que vous entraînez est beaucoup plus volumineux qu'il ne l'était initialement au premier tour, tout en étant un petit ensemble de données. Par conséquent, vous risquez de sur-ajuster si vous appliquez de grandes mises à jour de poids, vous souhaitez donc affiner de manière incrémentielle. Recompilez le modèle au fur et à mesure que vous avez modifié le comportement du modèle, puis recyclez le modèle à nouveau, en surveillant tout retour de surajustement. 

J'espère que cet article vous a donné une bonne introduction et une bonne compréhension de l'apprentissage par transfert. Restez à l'écoute, mon prochain article sera sur la mise en œuvre de l'apprentissage par transfert pour la reconnaissance d'images et le traitement du langage naturel.

 
Nisha Arya est Data Scientist et rédacteur technique indépendant. Elle est particulièrement intéressée à fournir des conseils de carrière en science des données ou des tutoriels et des connaissances théoriques sur la science des données. Elle souhaite également explorer les différentes façons dont l'intelligence artificielle est/peut bénéficier à la longévité de la vie humaine. Une apprenante passionnée, cherchant à élargir ses connaissances techniques et ses compétences en écriture, tout en aidant à guider les autres.

Source : https://www.kdnuggets.com/2022/01/transfer-learning.html

Horodatage:

Plus de KDnuggetsGenericName