Domain Adaptation
Le domain adaptation (adaptation de domaine) est une sous-catégorie du transfer learning qui traite le problème spécifique du « domain shift » : quand un modèle entraîné sur des données d’un domaine source (ex. photos de jour) doit fonctionner sur des données d’un domaine cible différent (ex. photos de nuit), sans ou avec très peu de données étiquetées dans ce domaine cible.
- Catégorie
- Transfer Learning / Machine Learning
- Problème résolu
- Le domain shift : dégradation des performances quand les données changent de distribution
- Principe
- Aligner les distributions des domaines source et cible pour que le modèle généralise
- Types principaux
- Supervisé (labels cible dispo), semi-supervisé (quelques labels), non supervisé (aucun label cible)
- Techniques clés
- Adversarial DA, divergence-based, image-to-image translation (CycleGAN)
- Différence avec le transfer learning
- La tâche reste la même (même espace de labels), seule la distribution des données change
Qu’est-ce que le domain adaptation ?
Un modèle de vision par ordinateur entraîné à reconnaître des voitures sur des photos prises par beau temps, en plein jour, avec un appareil photo professionnel, va probablement mal fonctionner sur des photos prises de nuit, sous la pluie, avec un smartphone. Les objets sont les mêmes (des voitures), la tâche est la même (les reconnaître), mais la distribution des données a changé. C’est ce qu’on appelle le « domain shift ».
Le domain adaptation résout ce problème en alignant les représentations internes du modèle pour qu’elles soient invariantes au domaine. L’objectif : trouver ou construire un espace de features commun où les données des deux domaines sont proches les unes des autres, tout en conservant les capacités discriminantes nécessaires pour la tâche.
Ce qui distingue le domain adaptation du transfer learning général est une contrainte importante : la tâche reste la même (classification de voitures), seule la distribution des données change. L’espace des features et l’espace des labels sont identiques entre source et cible. En transfer learning général, même la tâche peut changer (passer de la classification à la détection, par exemple).
Comprendre le domain shift
Le domain shift se manifeste de plusieurs façons, et comprendre le type de shift aide à choisir la bonne technique d’adaptation.
| Type de shift | Ce qui change | Exemple |
|---|---|---|
| Covariate shift | La distribution des entrées change, mais la relation entrée→label reste la même | Photos de jour vs photos de nuit pour la même tâche de classification |
| Prior shift (label shift) | La distribution des labels change, mais la relation features→labels reste la même | Dataset source : 50% chats / 50% chiens. Cible : 90% chats / 10% chiens |
| Concept shift | La relation entrée→label change entre les domaines | Le mot « spam » a des critères différents selon les utilisateurs d’email |
| Dataset shift complet | Combinaison de plusieurs shifts simultanés | Changement de caméra + conditions météo + distribution de classes |
Le covariate shift est le cas le plus fréquent et le plus étudié. C’est typiquement ce qui se passe quand vous changez de capteur (smartphone vs DSLR), de conditions d’acquisition (intérieur vs extérieur), ou de population (données d’un hôpital vs un autre).
Les trois types de domain adaptation
Domain adaptation supervisé
Dans le cas supervisé, vous disposez de données étiquetées dans le domaine cible, mais en quantité limitée. Le modèle utilise les données étiquetées abondantes du domaine source combinées aux quelques données étiquetées du domaine cible pour s’adapter.
C’est le cas le plus « simple » mais aussi le moins réaliste : si vous avez des données étiquetées dans le domaine cible, un fine-tuning classique peut souvent suffire. Le domain adaptation supervisé apporte un plus quand les données cible sont vraiment très peu nombreuses (quelques dizaines d’exemples).
Domain adaptation semi-supervisé
Vous avez quelques données étiquetées dans le domaine cible, plus une quantité importante de données non étiquetées. C’est le scénario le plus réaliste en pratique : collecter des données dans le nouveau domaine est facile, les annoter est cher. Le modèle exploite simultanément les labels source, les quelques labels cible, et la structure des données non étiquetées cible.
Domain adaptation non supervisé (UDA)
Le cas le plus ambitieux et le plus étudié : aucune donnée étiquetée n’est disponible dans le domaine cible. Le modèle doit transférer ses connaissances du domaine source vers le domaine cible en utilisant uniquement des données non étiquetées du domaine cible.
C’est le scénario qui motive la majorité de la recherche en domain adaptation, car il correspond à de nombreuses situations réelles où étiqueter des données dans le nouveau domaine est trop coûteux ou impossible. Les techniques d’UDA sont les plus sophistiquées et les plus actives en recherche.
Les techniques de domain adaptation
Approches basées sur la divergence
L’idée est de mesurer la distance entre les distributions des features source et cible, puis de minimiser cette distance. Si les features des deux domaines deviennent statistiquement indistinguables, le classifieur entraîné sur la source fonctionnera aussi sur la cible.
Les métriques de divergence courantes incluent le Maximum Mean Discrepancy (MMD), qui mesure la distance entre les moyennes des distributions dans un espace de Hilbert à noyau reproduisant ; le Correlation Alignment (CORAL), qui aligne les statistiques de second ordre (matrices de covariance) ; et la distance de Wasserstein, qui mesure le « coût de transport » minimal pour transformer une distribution en l’autre.
Ces méthodes sont non paramétriques et mathématiquement fondées, mais elles ne sont pas spécifiques au problème. Elles alignent les distributions globalement, sans tenir compte de la structure fine de la tâche.
Approches adversariales
Inspirées des GANs, les approches adversariales utilisent un discriminateur de domaine qui apprend à distinguer les features source des features cible. L’extracteur de features est entraîné pour tromper ce discriminateur, c’est-à-dire pour produire des features indistinguables entre les deux domaines.
L’architecture type comprend trois composants : un extracteur de features (le « générateur »), un classifieur de tâche, et un discriminateur de domaine. Le Gradient Reversal Layer (GRL) est une astuce élégante : pendant la backpropagation, il inverse le signe du gradient venant du discriminateur, forçant l’extracteur de features à produire des représentations domain-invariantes.
Les approches adversariales sont souvent plus performantes que les approches par divergence car le discriminateur apprend une mesure de distance spécifique au problème et aux données, plutôt que d’utiliser une métrique prédéfinie.
Approches par traduction d’images
Au lieu d’aligner les features, ces méthodes transforment directement les images d’un domaine à l’autre. Les CycleGANs sont l’architecture phare : deux réseaux encodeur-décodeur apprennent simultanément à transformer des images source en images cible et vice-versa, avec une contrainte de cohérence cyclique (une image traduite puis re-traduite doit revenir à l’originale).
Exemple concret : transformer des images synthétiques (simulation) en images réalistes pour entraîner un modèle de conduite autonome. Le modèle est entraîné sur les images traduites, qui ont le réalisme du domaine cible mais les annotations du domaine source.
Applications concrètes
Conduite autonome. Un véhicule autonome doit fonctionner dans des conditions météo, d’éclairage et géographiques variées. Le domain adaptation permet d’adapter un modèle entraîné sur des données d’un pays ou d’une saison à de nouvelles conditions, sans ré-annoter des milliers d’images. Le sim-to-real transfer (simulation vers monde réel) est un cas emblématique de domain adaptation en conduite autonome.
Imagerie médicale. Les images acquises par des scanners de marques ou modèles différents, dans des hôpitaux différents, ont des distributions visuelles différentes (contraste, résolution, bruit). Le domain adaptation permet d’utiliser un modèle entraîné sur les données d’un hôpital pour diagnostiquer dans un autre, sans réannotation par des médecins. Des travaux récents (2025) appliquent le domain adaptation avec des autoencodeurs variationnels et le MMD pour classifier des conditions neurodéveloppementales à partir de données IRM multi-sites.
Robotique et exosquelettes. Une publication de 2025 dans Science Robotics démontre que le domain adaptation élimine le besoin de données coûteuses pour le contrôle d’exosquelettes robotiques. Le modèle est entraîné sur des données d’un capteur/dispositif source et adapté à un nouveau dispositif sans données étiquetées spécifiques, atteignant des réductions de coût métabolique de 9,5 à 14,6 % chez les utilisateurs.
Biologie et sciences de la vie. Les datasets biologiques proviennent souvent de laboratoires différents avec des protocoles variés. Le domain adaptation aligne ces datasets pour qu’un modèle entraîné sur les données d’un labo fonctionne sur celles d’un autre, un problème critique pour la reproductibilité scientifique.
Filtrage de spam multi-utilisateurs. Un classifieur de spam entraîné sur les emails d’un utilisateur doit fonctionner pour un autre utilisateur dont les patterns d’emails sont très différents. C’est l’exemple historique classique du domain adaptation.
Analyse de sentiment cross-domaine. Un modèle d’analyse de sentiment entraîné sur des avis de restaurants doit être adapté aux avis de produits électroniques, où le vocabulaire et les critères de satisfaction sont différents.
Reconnaissance vocale multi-accents. Un modèle de reconnaissance vocale entraîné sur l’anglais américain doit être adapté à l’anglais australien ou indien. Le domain adaptation align les représentations acoustiques sans nécessiter des milliers d’heures d’audio annoté pour chaque accent.
Vision par ordinateur industrielle. Un système de détection de défauts entraîné sur les images d’une chaîne de production spécifique doit fonctionner sur une autre chaîne avec un éclairage, un angle de caméra, ou un fond différent. Le domain adaptation évite de ré-annoter des milliers d’images de produits pour chaque nouvelle configuration.
Comment implémenter du domain adaptation
Le choix de la technique dépend de vos contraintes :
Si vous avez quelques données étiquetées cible : commencez par un fine-tuning classique avec LoRA. C’est souvent suffisant avec les modèles fondamentaux actuels. Si ça ne suffit pas, ajoutez une perte de divergence (MMD) pour encourager l’alignement des features.
Si vous n’avez aucune donnée étiquetée cible : l’UDA adversarial (DANN avec Gradient Reversal Layer) est la méthode la plus éprouvée. Elle s’intègre facilement dans n’importe quelle architecture existante en ajoutant un discriminateur de domaine et un GRL.
Si le shift est principalement visuel (changement de style, de conditions d’éclairage) : les approches par traduction d’images (CycleGAN, style transfer) peuvent être plus efficaces. Vous transformez les images cible pour qu’elles ressemblent au domaine source, puis utilisez le modèle tel quel.
Si vous avez plusieurs domaines sources : explorez le multi-source domain adaptation, qui combine les connaissances de plusieurs sources pour une meilleure couverture du domaine cible.
Des librairies comme NVIDIA Transfer Learning Toolkit (TLT) et des frameworks spécialisés facilitent l’implémentation de ces techniques. Côté datasets de benchmark, les plus utilisés sont Office-31, VisDA, et DomainNet pour la vision, et Amazon Reviews pour le NLP.
État de l’art en 2026
L’UDA adversarial reste dominant. Les approches adversariales avec Gradient Reversal Layer et leurs variantes (DANN, ADDA, CDAN) continuent de donner les meilleurs résultats sur la plupart des benchmarks de domain adaptation non supervisé. Des travaux récents (2025) ajoutent des mécanismes d’attention et des modules d’alignement local pour améliorer l’adaptation fine.
Les modèles fondamentaux réduisent le besoin de DA. Des modèles comme CLIP, entraînés sur des données extrêmement diversifiées, sont naturellement plus robustes aux domain shifts que les modèles spécialisés. Leur pré-entraînement massif et multimodal leur donne une forme de domain adaptation « gratuite ». Cependant, pour les domaines très spécialisés (médical, industriel, satellite), le domain adaptation explicite reste nécessaire.
Le multi-source domain adaptation progresse. Au lieu d’adapter depuis un seul domaine source, les nouvelles méthodes combinent plusieurs domaines sources pour une meilleure couverture. C’est plus réaliste en production, où les données proviennent souvent de multiples sources hétérogènes.
Limites et défis
Le negative transfer. Si les domaines source et cible sont trop éloignés, aligner leurs distributions peut dégrader les performances au lieu de les améliorer. Le modèle force un alignement artificiel entre des features qui n’ont pas de correspondance réelle.
L’alignement peut détruire les propriétés discriminantes. En forçant les features à être domain-invariantes, on risque de perdre des informations utiles pour la classification. C’est le dilemme fondamental du domain adaptation : trouver le bon équilibre entre invariance au domaine et discrimination de la tâche.
L’évaluation est difficile. En UDA, par définition, on n’a pas de labels dans le domaine cible. Comment savoir si l’adaptation fonctionne ? Les métriques de divergence (MMD, distance de Wasserstein) donnent des indices, mais elles ne garantissent pas la performance sur la tâche réelle.
Le coût computationnel. Les approches adversariales ajoutent un discriminateur au modèle, augmentant le temps d’entraînement. Les approches par traduction d’images (CycleGAN) sont encore plus coûteuses car elles nécessitent d’entraîner des réseaux génératifs complets.
Questions fréquentes sur le domain adaptation
Quelle est la différence entre domain adaptation et transfer learning ?
Le domain adaptation est un cas spécifique de transfer learning. En transfer learning général, la tâche source et la tâche cible peuvent être différentes (classification → détection). En domain adaptation, la tâche reste la même, seule la distribution des données change. Vous faites toujours de la classification de voitures, mais les photos viennent d’une caméra différente. Le domain adaptation s’attaque spécifiquement au problème du « domain shift » : quand un modèle performe bien sur un type de données mais mal sur un autre.
Quand faut-il utiliser le domain adaptation plutôt qu’un simple fine-tuning ?
Utilisez le domain adaptation quand vous n’avez pas ou très peu de données étiquetées dans le domaine cible (c’est le cas du UDA). Si vous avez quelques centaines de données étiquetées, un fine-tuning classique (ou avec LoRA) suffit souvent. Le domain adaptation explicite est justifié quand l’annotation est impossible ou extrêmement coûteuse (imagerie médicale multi-sites, adaptation sim-to-real en robotique).
Les modèles fondamentaux (CLIP, GPT) ont-ils besoin de domain adaptation ?
Moins que les modèles classiques, car leur pré-entraînement diversifié les rend plus robustes aux domain shifts. Mais ils ne sont pas immunisés : un CLIP entraîné sur des images web peut mal fonctionner sur des images satellite ou des microscopes électroniques. Pour les domaines très spécialisés, le domain adaptation reste nécessaire, soit via du fine-tuning spécifique, soit via des techniques d’adaptation explicites.
Comment mesurer le domain shift entre deux datasets ?
Plusieurs métriques existent. Le Maximum Mean Discrepancy (MMD) mesure la distance entre les moyennes des distributions dans un espace de features. La A-distance (proxy) entraîne un classifieur linéaire pour distinguer les deux domaines et utilise son erreur comme mesure de distance. Le Fréchet Inception Distance (FID) est courant en vision. En pratique, entraînez un modèle sur le domaine source et mesurez sa perte de performance sur le domaine cible : c’est la mesure la plus directe du domain shift pour votre tâche.
Qu’est-ce que le Gradient Reversal Layer (GRL) ?
Le GRL est une astuce technique utilisée dans le domain adaptation adversarial. Pendant la forward pass, il ne fait rien (identité). Pendant la backward pass, il multiplie le gradient par -1 (inversion). Placé entre l’extracteur de features et le discriminateur de domaine, il fait en sorte que l’extracteur apprenne des features qui trompent le discriminateur, c’est-à-dire des features que le discriminateur ne peut pas distinguer entre les domaines. C’est la manière la plus simple d’implémenter un entraînement adversarial pour le domain adaptation.