# Adaptation de domaine

L'adaptation de domaine$^,$$^,$$^,$$^,$ (domain adaptation en anglais) est un champ de recherche de l'apprentissage automatique, et plus précisément de l'apprentissage par transfert. L'objectif est d'effectuer une tâche d'adaptation d'un système d'apprentissage d'un domaine (une distribution de probabilité) source vers un domaine (une distribution de probabilité) cible. Lorsque plusieurs domaines sources sont disponibles, on parle alors d’adaptation de domaine multi-sources.

## Un peu de formalisme

Soit $X$ l'espace d'entrée ou de description des données et $Y$ l'espace de sortie ou l'ensemble d'étiquetage. L'objectif en apprentissage automatique est d'apprendre un modèle mathématique (une hypothèse) $h:X\to Y$ permettant d'affecter une étiquette à une donnée. Ce modèle est appris à partir d'un échantillon d'apprentissage $S=\{(x_{i},y_{i})\}_{i=1}^{m}\in (X\times Y)^{m}$.
En apprentissage supervisé classique (sans adaptation de domaine), on suppose que les exemples $(x_{i},y_{i})\in S$ sont tirés i.i.d. selon une distribution $D_{S}$ sur $X\times Y$ (fixe et inconnue). Le but est alors d'apprendre $h$ (à partir de $S$) de telle sorte qu'il étiquette au mieux de nouvelles données issues de la distribution $D_{S}$ (autrement dit qu'il commette le moins d'erreurs possible sur $D_{S}$).
La principale différence entre l’apprentissage supervisé classique et l’adaptation de domaine réside dans l’étude de deux distributions $D_{S}$ et $D_{T}$ différentes sur $X\times Y$ . La tâche d’adaptation consiste à transférer des connaissances du domaine source $D_{S}$ vers le domaine cible $D_{T}$. L'objectif est alors d'apprendre $h$ (à partir d'échantillons étiquetés ou non issus des deux domaines) tel qu'il étiquette au mieux de nouvelles données issues du domaine cible $D_{T}$.
La question majeure soulevée par ce problème est la suivante : si un modèle a été appris à partir d'un domaine source, quelle sera sa capacité à étiqueter correctement des données provenant du domaine cible ?

## Les différents types d'adaptation de domaine

On distingue différents contextes d'adaptation de domaine. Ils diffèrent par l'information dont on dispose pour la tâche cible.
* L'adaptation de domaine non supervisée : l'ensemble d'apprentissage contient un ensemble de données étiquetées sources, un ensemble de données non étiquetées sources et un ensemble de données non étiquetées cibles.
* L'adaptation de domaine semi-supervisée : dans cette situation, on dispose de plus d'un (petit) ensemble de données étiquetées cibles.
* L'adaptation de domaine supervisée : on parle d'adaptation de domaine supervisée lorsque toutes les données cibles disponibles sont étiquetées (Ce contexte est assez peu étudié dans la littérature).

## Trois grands principes algorithmiques
### Les algorithmes de repondération

Le but est de repondérer l'échantillon étiqueté source de telle sorte qu'il ressemble le plus possible à l'échantillon cible (au sens de la mesure d'erreur considérée)$^,$.

### Les algorithmes itératifs

Une méthode pour adapter consiste à itérativement "auto-étiqueter" les données cibles. Le principe est simple :
* un modèle $h$ est appris à l'aide des données étiquetées disponibles ;
* $h$ étiquette automatiquement des données cibles ;
* un nouveau modèle est appris à partir des nouvelles données étiquetée.
D'autres méthodes itératives sans auto-étiquetage existent dans la littérature, mais requièrent généralement des données étiquetées cibles.

### Les algorithmes de recherche d'un espace commun

Il est courant dans la littérature de rechercher ou de construire un espace de représentation commun aux deux domaines$^,$. En effet, si on réussit à plonger les deux distributions de nos domaines dans un espace où elles semblent similaires, un transfert d'apprentissage de la source vers la cible peut avoir lieu en entraînant un modèle avec la nouvelle représentation de la source.
Aujourd'hui, il y a une tendance à créer cet espace invariant pendant la phase d'entraînement d'un réseau de neurones via le mécanisme de rétropropagation du gradient. Cela est possible en utilisant notamment un coût d'adaptation modélisant une distance entre les deux distributions des domaines. Le coût globale à minimiser devient alors la somme d'un coût d'apprentissage grâce auquel le réseau va apprendre avec les données étiquetées, et d'un coût d'adaptation qui va encourager la création d'un espace invariant pour les deux domaines dans lequel le réseau va les plonger avant d'effectuer sa tâche (typiquement classification).
Pour rechercher cet espace invariant, le coût d'adaptation doit satisfaire en pratique trois contraintes :
* Il doit être différentiable car on souhaite utiliser la rétropropagation du gradient en se basant sur ce dernier
* Il faut être capable de l'estimer raisonnablement à partir d’échantillons provenant des deux distributions puisque nous n'avons pas directement accès à ces distributions.
* Il ne doit pas être trop gourmand en termes de calculs et d'espace mémoire.
Dans la littérature, il existe de nombreux candidats qui répondent à ces conditions. Actuellement, il y a une tendance à l’utilisation de distances basées sur des noyaux reproduisant ou bien dérivées de la théorie du transport optimal.