Concepts et stratégies de l’apprentissage par transfert
Extraction de caractéristiques ou ajustement fin, couches gelées, situations où l’apprentissage par transfert est utile.
Concepts et stratégies de l’apprentissage par transfert est une leçon Learn AI with Python gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Learn AI with Python, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Learn AI with Python comprend 4 leçons au total.
Qu’est-ce que l’apprentissage par transfert
L’apprentissage par transfert réutilise un modèle entraîné sur un vaste jeu de données comme point de départ pour une nouvelle tâche apparentée. Au lieu d’apprendre les caractéristiques visuelles à partir de zéro, vous réutilisez celles qu’un réseau a déjà apprises.
Cela réduit considérablement la quantité de données et la puissance de calcul nécessaires pour atteindre une grande précision.
La base ImageNet
La plupart des modèles de vision préentraînés sont entraînés sur ImageNet : environ 1,4 million d’images réparties en 1000 classes.
Au cours de cet entraînement, le réseau apprend une hiérarchie de caractéristiques : les contours et les couleurs dans les premières couches, les textures au milieu et les parties des objets vers le sommet. Ces caractéristiques de bas niveau se transfèrent bien à presque toutes les tâches de traitement d’images.
Pourquoi les premières caractéristiques se transfèrent bien
Les premières couches convolutionnelles détectent des motifs génériques (contours, formes floues et dégradés) qui apparaissent dans toutes les images naturelles, qu’il s’agisse de chats, de radiographies ou de photos satellites.
Les couches plus profondes deviennent davantage spécifiques à la tâche : elles assemblent ces contours pour former les parties des objets d’ImageNet. C’est pourquoi nous conservons généralement les premières couches et remplaçons ou réentraînons les suivantes.
Stratégie 1 : extraction de caractéristiques
L’extraction de caractéristiques gèle toutes les couches de la base préentraînée afin que leurs poids ne changent jamais. La base agit comme un extracteur de caractéristiques fixe ; vous n’entraînez qu’une nouvelle petite tête de classification au-dessus.
Utilisez cette méthode lorsque votre jeu de données est petit et similaire à ImageNet. Elle est rapide et résiste au surapprentissage, car peu de paramètres sont entraînables.
base.trainable = False
model = Sequential([
base, # frozen ImageNet features
GlobalAveragePooling2D(),
Dense(num_classes, activation="softmax") # only this trains
])Stratégie 2 : ajustement fin
L’ajustement fin déverrouille les couches supérieures de la base et les réentraîne avec la tête, ce qui permet au réseau d’adapter ses caractéristiques de haut niveau à vos données particulières.
Utilisez cette méthode lorsque vous disposez de davantage de données ou lorsque votre domaine diffère d’ImageNet (par exemple, pour des examens médicaux). Effectuez toujours l’ajustement fin avec un taux d’apprentissage très faible afin d’éviter de détruire les poids préentraînés.
Extraction de caractéristiques ou ajustement fin
- Extraction de caractéristiques : base gelée, seule la tête est entraînée, très rapide, idéale pour des données peu nombreuses et similaires.
- Ajustement fin : les couches supérieures de la base sont déverrouillées avec la tête, méthode plus lente, idéale pour des données plus nombreuses ou différentes.
Une approche courante consiste à commencer par l’extraction de caractéristiques, puis à effectuer un ajustement fin lors d’une seconde phase, une fois la tête stabilisée.
Quantité de données nécessaire
La quantité de données dont vous disposez détermine votre stratégie :
- Quelques centaines d’images : extraction de caractéristiques uniquement (gelez tout).
- Quelques milliers : extraction de caractéristiques, puis ajustement fin des quelques couches supérieures.
- Des dizaines de milliers ou plus : ajustement fin d’une plus grande partie de la base, voire de l’ensemble du réseau.
Moins vous avez de données, plus vous devez geler de couches, car un nombre réduit de paramètres entraînables diminue le risque de surapprentissage.
Remplacer la tête de classification
Les modèles ImageNet produisent 1000 classes. Votre tâche en comporte probablement un nombre différent : vous supprimez donc la partie supérieure d’origine (include_top=False) et ajoutez votre propre tête, adaptée au nombre de vos classes.
from tensorflow.keras import layers, Model
x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(5, activation="softmax")(x) # 5 custom classes
model = Model(base.input, outputs)Le prétraitement doit être identique
Chaque famille de modèles préentraînés attend des entrées mises à l’échelle de la même manière que lors de son entraînement sur ImageNet. Utiliser le preprocess_input correspondant est essentiel, sans quoi la précision s’effondre.
from tensorflow.keras.applications.resnet50 import preprocess_input
# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)Maîtriser le taux d’apprentissage
Lors de l’extraction de caractéristiques, un taux d’apprentissage normal (par exemple 1e-3) convient, car seule la nouvelle tête est entraînée.
Lors de l’ajustement fin, vous devez descendre à une valeur minuscule comme 1e-5. Des mises à jour importantes effaceraient les poids ImageNet appris avec soin ; cet effet est appelé oubli catastrophique.
Processus type
- Chargez une base préentraînée avec
include_top=False. - Gelez-la et entraînez une nouvelle tête (extraction de caractéristiques).
- Déverrouillez les couches supérieures et réentraînez-les avec un taux d’apprentissage minuscule (ajustement fin).
- Évaluez le modèle et convertissez-le pour le déploiement.
Cette approche progressive offre une grande précision, même avec des jeux de données modestes.
Vérification rapide
Testez votre compréhension des stratégies d’apprentissage par transfert.
Récapitulatif
Vous avez appris que l’apprentissage par transfert réutilise les caractéristiques préentraînées sur ImageNet (1,4 million d’images, 1000 classes). L’extraction de caractéristiques gèle la base pour les jeux de données petits et similaires ; l’ajustement fin déverrouille les couches supérieures avec un taux d’apprentissage minuscule pour les données plus nombreuses ou différentes.
Adaptez le prétraitement à la base, remplacez la tête pour vos classes et utilisez un processus progressif. Ensuite, nous mettrons cela en pratique avec VGG16 et ResNet50.
Questions Fréquemment Posées
La leçon « Concepts et stratégies de l’apprentissage par transfert » est-elle gratuite ?
Oui — le texte complet de « Concepts et stratégies de l’apprentissage par transfert » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Learn AI with Python, passe à CoddyKit PRO. Le cours Learn AI with Python comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Concepts et stratégies de l’apprentissage par transfert » ?
Extraction de caractéristiques ou ajustement fin, couches gelées, situations où l’apprentissage par transfert est utile. Tu pratiques Learn AI with Python avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Learn AI with Python ?
Aucune expérience préalable n'est requise. Learn AI with Python sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.
Combien de temps prend la leçon « Concepts et stratégies de l’apprentissage par transfert » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Learn AI with Python ?
Oui. Chaque leçon Learn AI with Python inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Concepts et stratégies de l’apprentissage par transfert
- Utiliser VGG16 et ResNet50 comme modèles de base
- Ajustement fin : dégel et réentraînement
- MobileNet et EfficientNet pour le déploiement en périphérie