Suivez nous sur
Classe de maître IA :

AI 101

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

mm
Le kit de préparation mis à jour on

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

Lors de la pratique du machine learning, la formation d’un modèle peut prendre beaucoup de temps. Créer une architecture de modèle à partir de zéro, entraîner le modèle, puis le peaufiner demande énormément de temps et d'efforts. Un moyen beaucoup plus efficace de former un modèle d’apprentissage automatique consiste à utiliser une architecture déjà définie, potentiellement avec des pondérations déjà calculées. C'est l'idée principale derrière transférer l'apprentissage, en prenant un modèle qui a déjà été utilisé et en le réaffectant à une nouvelle tâche.

Avant d’aborder les différentes manières d’utiliser l’apprentissage par transfert, prenons un moment pour comprendre pourquoi l’apprentissage par transfert est une technique si puissante et utile.

Résoudre un problème d'apprentissage en profondeur

Lorsque vous essayez de résoudre un problème d'apprentissage en profondeur, comme la création d'un classificateur d'images, vous devez créer une architecture de modèle, puis entraîner le modèle sur vos données. La formation du classificateur de modèle implique l'ajustement des pondérations du réseau, un processus qui peut prendre des heures, voire des jours, selon la complexité du modèle et de l'ensemble de données. Le temps de formation sera adapté à la taille de l'ensemble de données et à la complexité de l'architecture du modèle.

Si le modèle n'atteint pas le type de précision nécessaire pour la tâche, des ajustements du modèle devront probablement être effectués, puis le modèle devra être recyclé. Cela signifie plus d'heures de formation jusqu'à ce qu'une architecture, une durée de formation et une partition de jeu de données optimales puissent être trouvées. Lorsque vous considérez combien de variables doivent être alignées les unes avec les autres pour qu'un classifieur soit utile, il est logique que les ingénieurs en apprentissage automatique recherchent toujours des moyens plus simples et plus efficaces de former et de mettre en œuvre des modèles. Pour cette raison, la technique d'apprentissage par transfert a été créée.

Après avoir conçu et testé un modèle, si le modèle s'est avéré utile, il peut être enregistré et réutilisé ultérieurement pour des problèmes similaires.

Types d'apprentissage par transfert

En général, il y a deux différents types d'apprentissage par transfert: développer un modèle à partir de rien et utiliser un modèle pré-entraîné.

Lorsque vous développez un modèle à partir de rien, vous devez créer une architecture de modèle capable d'interpréter vos données d'entraînement et d'en extraire des modèles. Une fois le modèle formé pour la première fois, vous devrez probablement y apporter des modifications afin d'obtenir les performances optimales du modèle. Vous pouvez ensuite enregistrer l'architecture du modèle et l'utiliser comme point de départ pour un modèle qui sera utilisé sur une tâche similaire.

Dans la deuxième condition - l'utilisation d'un modèle pré-formé - il vous suffit de sélectionner un modèle pré-formé à utiliser. De nombreuses universités et équipes de recherche rendront les spécifications de leur modèle disponibles pour une utilisation générale. L'architecture du modèle peut être téléchargée avec les poids.

Lors de l'apprentissage par transfert, l'ensemble de l'architecture et des pondérations du modèle peut être utilisé pour la tâche à accomplir, ou seules certaines parties/couches du modèle peuvent être utilisées. L'utilisation d'une partie seulement du modèle pré-entraîné et l'entraînement du reste du modèle sont appelés ajustements.

Réglage fin d'un réseau

Le réglage fin d'un réseau décrit le processus de formation de certaines des couches d'un réseau. Si un nouvel ensemble de données d'apprentissage ressemble beaucoup à l'ensemble de données utilisé pour former le modèle d'origine, plusieurs des mêmes pondérations peuvent être utilisées.

Le nombre de couches du réseau qui doivent être dégelées et recyclées doit être mis à l'échelle en fonction de la taille du nouvel ensemble de données. Si le jeu de données sur lequel la formation est effectuée est petit, il est préférable de conserver la majorité des couches telles quelles et de former uniquement les dernières couches. Ceci afin d'éviter que le réseau ne se suradapte. Alternativement, les couches finales du réseau pré-formé peuvent être supprimées et de nouvelles couches sont ajoutées, qui sont ensuite formées. En revanche, si l'ensemble de données est un grand ensemble de données, potentiellement plus grand que l'ensemble de données d'origine, l'ensemble du réseau doit être recyclé. Pour utiliser le réseau comme un extracteur de caractéristiques fixes, la majorité du réseau peut être utilisée pour extraire les caractéristiques tandis que seule la couche finale du réseau peut être dégelée et entraînée.

Lorsque vous ajustez un réseau, n'oubliez pas que les couches antérieures du ConvNet contiennent les informations représentant les caractéristiques les plus génériques des images. Ce sont des caractéristiques comme les bords et les couleurs. En revanche, les couches ultérieures du ConvNet contiennent les détails plus spécifiques aux classes individuelles contenues dans l'ensemble de données sur lequel le modèle a été initialement formé. Si vous entraînez un modèle sur un jeu de données assez différent du jeu de données d'origine, vous souhaiterez probablement utiliser les couches initiales du modèle pour extraire les entités et simplement recycler le reste du modèle.

Exemples d'apprentissage par transfert

Les applications les plus courantes de l'apprentissage par transfert sont probablement celles qui utilisent des données d'image comme entrées. Il s'agit souvent de tâches de prédiction/classification. Le chemin Réseaux de neurones convolutionnels interpréter les données d'image se prête à la réutilisation d'aspects des modèles, car les couches convolutionnelles distinguent souvent des caractéristiques très similaires. Un exemple de problème d'apprentissage par transfert courant est la tâche ImageNet 1000, un ensemble de données massif rempli de 1000 classes d'objets différentes. Les entreprises qui développent des modèles qui atteignent des performances élevées sur cet ensemble de données publient souvent leurs modèles sous des licences qui permettent à d'autres de les réutiliser. Certains des modèles qui ont résulté de ce processus comprennent le Modèle Microsoft ResNet, le modèle de lancement de Google et le Modèle Oxford VGG groupe.

Blogueur et programmeur spécialisé dans Machine Learning et L'apprentissage en profondeur les sujets. Daniel espère aider les autres à utiliser le pouvoir de l'IA pour le bien social.