Domain Adaptation : la clé du déploiement des algorithmes à grande échelle

Guillaume Fradet
AZmed
Published in
14 min readJun 22, 2020

Introduction

Aujourd’hui, il est universellement admis que les algorithmes d’apprentissage profond (Deep Learning) sont capables d’atteindre d’excellentes performances dans un environnement qui leur est connu. Par exemple, une voiture autonome entraînée à New York excellera à détecter des piétons dans les rues new-yorkaises. Mais qu’arriverait-t’il si on plaçait le même véhicule à Paris ? Pouvons-nous espérer de telles performances ? La réponse courte est non. Pourtant, à quelques particularités près, rien ne différencie un new-yorkais d’un parisien, la tâche de détection de piétons est donc bien toujours la même. Cependant, nous avons opéré un changement d’environnement majeur. L’architecture des bâtiments, la signalisation routière, et l’agencement des routes et trottoirs sont bien différents dans les deux métropoles. Ces changements dans l’environnement perturbent l’algorithme. On peut y voir une confusion qui sera ressentie jusque dans les prédictions du modèle. Cette problématique, nommée Domain Adaptation, est un sujet actuel qui anime de plus en plus la communauté deep learning.

L’adaptation de domaine en imagerie médical

Exemple d’image avec annotation (label)

En radiologie, nous sommes confrontés à ce problème quand nous utilisons nos algorithmes dans des centres médicaux différents de ceux sur lesquels l’entraînement a été fait. Ces deux dernières années, nous avons développé chez AZmed un système de détection performant, capable de localiser automatiquement les fractures osseuses sur radiographie conventionnelle. Nous sommes partis d’un algorithme à la pointe de l’état de l’art, qui excellait dans la tâche de détection d’objets sur images naturelles (i.e. images de tous les jours), et nous l’avons transformé pour qu’il excelle dans la détection de fractures sur images radiographiques.

Notre ambition a toujours été de développer un modèle généralisant à tous les centres. Nous nous sommes donc heurtés aux problématiques d’adaptation de domaine très rapidement. C’est un défi, car comme nous le verrons plus tard, chaque centre médical est unique et a ses propres spécificités. Au-delà d’être un défi excitant pour les chercheurs d’AZmed, résoudre cette problématique est essentiel pour plusieurs raisons. Naïvement, pour se débarrasser de cette problématique, on pourrait imaginer développer un algorithme propre à chaque centre médical, en utilisant seulement leurs images dans l’apprentissage. Or, les algorithmes ont besoin de milliers d’images pour atteindre les performances souhaitées. Cette idée demanderait une lourde tâche de collection de données, suivie d’une phase d’annotation de milliers d’images. En effet, les images fournies à l’algorithme doivent être préalablement labellisées manuellement afin que l’apprentissage puisse se faire. C’est une tâche chronophage qui nécessite l’expertise de plusieurs radiologues. Chaque image dans notre base d’entraînement doit passer dans les mains de trois radiologues : le premier rédige un compte-rendu médical, le deuxième annote la radio, en dessinant un rectangle autour de la fracture, et le troisième valide ou non l’annotation.

L’idée de mettre en commun les images de tous nos centres partenaires pour l’entraînement des algorithmes est donc plus naturelle. De plus, même pour un centre dans lequel l’algorithme a de bonnes performances, il est essentiel d’avoir développé un modèle qui ne soit pas sensible au changement de domaine (i.e. centre médical). En effet, nous ne devrions pas voir un centre médical comme étant un environnement ou un domaine fixe. Avec le temps et pour différentes raisons, l’aspect des radiographies changera (e.g. les machines d’acquisition sont remplacées régulièrement). Nos algorithmes en production seront donc confrontés à des images sensiblement différentes de celles sur lesquelles ils furent entraînés. Dans la littérature scientifique, on appelle domaine source l’environnement d’origine sur lequel le modèle a été entraîné, et domaine cible un environnement distinct et inconnu de l’algorithme, sur lequel on souhaite obtenir de bonnes performances. Maintenant que nous avons introduit le contexte et les défis, plongeons nous réellement dans le sujet de l’adaptation de domaine.

Pourquoi les performances de l’algorithme peuvent varier d’un centre médical à un autre ?

L’idée peut être contre-intuitive à première vue, car on aimerait penser que rien ne différencie une fracture osseuse diagnostiquée à la Pitié Salpêtrière (Paris) d’une même fracture diagnostiquée au centre hospitalier de la Timone (Marseille). Pour répondre à cette question, rappelons d’abord comment l’Homme et la machine apprennent.

Apprentissage de l’homme vs. machine

Un humain a la capacité d’apprendre grâce à une simple description accompagnée parfois de quelques exemples. Notre cerveau gère à merveille l’extrapolation de la description qui lui a été donnée, et qu’on peut voir comme un enseignement théorique. Cette faculté nous permet d’appliquer l’enseignement reçu dans n’importe quel environnement, même s’il diffère de celui dans lequel on a pu observer quelques cas pratiques. La faculté de l’homme à comprendre aussi vite et nos compétences visuelles s’expliquent aussi par le darwinisme. Contrairement à un algorithme qui part de zéro, on peut voir l’expérience humaine comme une expérience partagée au fil de l’évolution humaine.

La machine apprend autrement. Aujourd’hui, il est difficile de donner un enseignement théorique à une machine. L’apprentissage par imitation (Imitation Learning) explore la possibilité de montrer à la machine comment se comporter à partir de démonstrations. Mais ce champ de recherche se limite aux scénarios où la machine doit agir, comme pour le cas de la voiture autonome. Comment montrer une tâche qui est basée sur un concept ? Par exemple, comment un radiologue pourrait-il montrer à une machine comment détecter une fracture ? Pour apprendre de tels concepts complexes, les machines d’aujourd’hui apprennent seulement par la pratique et par tâtonnement (trial and error), ce qui requière une base de données importantes d’exemples labellisés. En suivant ces entraînements, les machines peuvent atteindre d’excellentes performances aussi bien sur des taches simples (e.g. différencier un chat d’un chien) qu’extrêmement complexes, pour lesquelles un humain aurait besoin de plusieurs années d’apprentissage. Il arrive même que les machines atteignent d’impressionnantes performances sur des tâches considérées jusqu’alors comme impossibles. Par exemple, un algorithme d’apprentissage profond de Google a été capable de prédire correctement le sexe de patients en se basant uniquement sur une image de rétine (AUC: 0.97), alors que les ophtalmologues ont 50% de chance de se tromper [1]. Il est alors extrêmement intéressant d’analyser et de chercher à comprendre comment le modèle a fait ses prédictions, car on pourrait y découvrir de nouvelles approches que l’Homme n’a pas encore imaginé. Tout cela n’est pas très excitant pour l’exemple de classification du genre à partir d’une image de rétine, mais ça prend tout son sens quand on parle de découvrir de nouvelles techniques de diagnostic et pronostic. Laisser libre cours à “l’imagination” de la machine pour explorer le champ des possibles est aussi une idée très séduisante dans la découverte de nouveaux médicaments ou vaccins. Mais, car il y a toujours un “mais”, sortie de son environnement d’origine, la machine peut perdre ses repères. A l’inverse de l’homme, elle ne peut reposer que sur son entraînement pratique, elle est donc à même de faire des erreurs quand elle est confrontée à des choses inhabituelles.

Particularités propres à chaque centre médical

Revenons à notre problématique d’adaptation de domaine et voyons maintenant pourquoi, d’un centre médical à un autre, l’algorithme fait face à des particularités dans les images. La première raison majeure est liée aux machines utilisées pour prendre les clichés radiographiques. Ces systèmes d’acquisition proviennent de différents constructeurs, sont réglées différemment, peuvent générer de multiples artefacts, et ont diverses qualités d’images. En effet, les machines de radiologie, de plus en plus précises, utilisent différents niveaux de profondeur de couleur. Contrairement aux images en couleur (RGB) encodées pour la plupart en 8-bit (256 valeurs possibles pour le canal rouge, vert et bleu), l’imagerie par rayons X crée des images en noir et blanc, encodées généralement en 12, 14, ou 16-bit. Un pixel encodé en 16-bit peut prendre 2¹⁶ valeurs, soit 65 536 teintes différentes.

La seconde cause de diversité dans les images vient de la manière de prendre les clichés. En effet, les méthodes peuvent varier selon les centres médicaux. Ces différences peuvent aussi bien venir des consignes de l’établissement, que directement des manipulateurs radio qui n’ont pas forcément les mêmes manières d’opérer. Il en résulte un impact évident sur l’aspect de l’image obtenue.

Réduction de densité osseuse

Enfin, les centres médicaux peuvent avoir des particularités propres aux traumas et pathologies de leurs patients. Les traumas les plus sévères seront seulement observés dans les grands hôpitaux, tandis que les petites cliniques radiologiques observeront une majorité de traumas légers ou modérés. Par exemple, les fractures du col du fémur, nécessitant une immobilisation du patient, seront plus observées dans les hôpitaux. Ainsi, l’algorithme rencontrera également une diversité au niveau de l’état du patient si le déploiement est fait dans un hôpital public, un hôpital privé, ou une clinique radiologique. De plus, une différence majeure réside dans la diversité des patients traités au regard de leurs âges. La quantité d’os du squelette diminue avec le temps, et cette perte du tissu osseux se manifeste notamment au niveau des métaphyses des os longs, régions intermédiaires situées entre la diaphyse et les épiphyses. Sur les images radiologiques, ces différences s’observent au niveau de la densité des os. Aussi, l’aspect de l’ossature évolue tout au long de l’enfance jusqu’à l’adolescence.

[2] Compilation de radiographies de mains d’enfants d’âges différents (filles en haut, garçons en bas)

Toutes ces particularités affectent l’aspect des images, qui se traduit par une distribution moyenne de pixels unique et propre à chaque centre. L’algorithme basant ses prédictions seulement sur ces pixels, il peut être perturbé quand il passe d’une distribution à une autre. En résumé, la problématique de l’adaptation de domaine en imagerie médicale est due à deux choses : la variabilité des données qui est intrinsèque aux images médicales, et la difficulté d’obtenir suffisamment de données pour représenter cette diversité.

Solutions

Plusieurs solutions sont envisageables pour répondre à cette problématique et ainsi permettre à nos algorithmes de généraliser à divers centres médicaux. Tachons de les explorer à présent.

1. Traitement des images

Premièrement, certaines opérations peuvent être appliquées sur les images afin de les uniformiser. Nous l’avons dit, la distribution des pixels est propre à chaque centre. En normalisant les images, on peut essayer de rapprocher ces distributions, ce qui facilitera la tâche de l’algorithme. Plusieurs types de normalisation existent : min-max recale l’intensité des pixels entre deux valeurs fixées (e.g. entre 0 et 1), mean-variance recale l’intensité des pixels en faisant en sorte que la moyenne des intensités soit 0 et l’écart-type 1. Notez que cette dernière méthode est aussi appelée standardisation ou normalisation Z-score.

Distributions des pixels avec et sans normalisation
CLAHE (contrast limited adaptive histogram equalization)

Nous essayons aussi d’uniformiser l’aspect des images. En effet, en fonction des machines et réglages, les images seront plus ou moins lumineuses et contrastées. Nous utilisons une technique de preprocessing nommée CLAHE (contrast limited adaptive histogram equalization) pour améliorer le contraste.

En complément de ces techniques d’uniformisation, nous appliquons des techniques d’augmentation de données afin d’ajouter de la diversité dans les images vues par l’algorithme. Les transformations aléatoires nous permettent d’imiter les différences que l’algorithme pourrait rencontrer dans des centres distincts. Ces techniques consistent à transformer une image originale en lui ajoutant des perturbations. Ces dernières sont aussi bien des opérations géométriques telles que des rotations, translations, et zooms dans les images, que des modifications des caractéristiques de l’image comme la luminosité et le contraste. On peut aussi simuler différentes qualités d’image en détériorant le cliché en ajoutant du bruit, des artefacts, et du flou.

Transformations aléatoires d’une image

2. Composition de la base de données d’entrainement

Pour la phase d’entraînement, plutôt que d’entraîner nos algorithmes sur un centre spécifique, nous mélangeons et mettons en commun les images de tous nos centres partenaires. Le but est d’ajouter un maximum de diversité naturelle afin que les modèles ne soient pas perturbés par un futur changement d’environnement. Cette diversité apporte une régularisation naturelle de l’algorithme, qui permet d’éviter un sur-apprentissage (overfitting). Une autre méthode d’entraînement consiste à effectuer plusieurs entraînements à la suite sur différents centres, en commençant chaque entraînement avec l’algorithme précédemment entraîné. C’est une technique d’apprentissage par transfert (Transfer Learning; voir A.I and Medical Imagery — A Much Needed Marriage). Cette dernière évite de devoir relancer un entraînement global (i.e. avec toutes les images de nos centres partenaires) avant le déploiement de l’algorithme dans un nouveau centre. En effet, aujourd’hui chaque déploiement dans un nouveau centre est précédé d’une phase d’apprentissage incluant des images de ce centre, afin de maximiser les performances en production. L’apprentissage par transfert peut donc nous permettre de réduire drastiquement le temps d’entraînement en spécialisant l’algorithme sur les images du nouveau centre. Cependant, nous avons observé que les algorithmes issus de cette technique d’apprentissage généralisaient moins bien que ceux obtenus à partir d’un entraînement global. Notre hypothèse est qu’au fil des entraînements consécutifs sur différents centres, l’algorithme “oublie” les particularités observées dans les centres précédents. Autrement dit, ces entraînements spécifiques détruisent ce qui a été précédemment appris.

3. Architecture du réseau de neurones

En complément des modifications apportées aux images et à la manière d’opérer les entraînements, des changements dans l’architecture du réseau neuronal convolutif (CNN) aident l’algorithme à être moins sensible au changement d’environnement. La technique Batch Normalization [3] est couramment utilisée dans la plupart des architectures neuronales, car elle permet de faciliter et ainsi accélérer l’apprentissage de réseaux profonds. Une autre facette pour laquelle cette technique est moins connue est sa contribution dans la tâche d’adaptation de domaine. La méthode consiste à appliquer une normalisation des activations dans chacune des couches du réseau. Sans cette normalisation, un décalage dans la distribution de l’image en entrée du réseau provoquera un décalage dans les couches suivantes du réseau de neurones. Avec la normalisation, les couches sont contraintes d’avoir la même moyenne et variance, limitant ainsi cet effet de décalage. Ce phénomène a été nommé internal covariate shift par les auteurs du papier introduisant la Batch Normalization.

Enfin d’autres méthodes, plus complexes, permettent à l’algorithme de s’adapter à un nouvel environnement en utilisant des images brutes qui en proviennent. Avec ces techniques, nous n’avons pas besoin de l’annotation qui indique la présence ou non d’une fracture, seule l’image suffit pour s’adapter au nouveau centre (i.e. domaine). C’est un fardeau important en moins, car rappelons que l’annotation ne peut être faite que par un expert, soit un radiologue. Parmi ces techniques, on peut citer Domain-Adversarial Training of Neural Networks [4] qui est une technique semi-supervisée (i.e. utilisant des images avec et sans labels dans l’apprentissage). L’idée est d’introduire un discriminateur dans le réseau, ayant pour objectif d’indiquer si l’image provient d’un centre A ou B. En même temps que l’algorithme s’entraîne sur les images du centre A (pour lesquelles il dispose des annotations), le réseau va chercher à tromper le discriminateur, pour qu’il ne puisse plus faire la distinction entre les deux centres. Le but est de forcer le réseau à créer des features qui soient invariantes aux domaines. Ainsi, l’algorithme devrait fonctionner aussi bien sur le centre A que sur le centre B.

[4] Ganin, Yaroslav, et al. “Domain-adversarial training of neural networks.”
[5]. Jeong, Jisoo, et al. “Consistency-based Semi-supervised Learning for Object detection.”

CSD [5] est une autre approche semi-supervisée. Ici, l’idée consiste à créer un double de chaque image originale, sur lequel on applique une transformation. En parallèle de l’apprentissage classique avec les images labellisées du centre A, des prédictions sont faites sur les images originales, ainsi que sur leur version transformée. Si les deux prédictions ne sont pas similaires, l’algorithme est pénalisé car il n’a pas été cohérent. Ce procédé simple, appelé consistency loss, force l’algorithme à s’adapter au nouveau centre B, sans avoir besoin des annotations.

Une dernière approche intéressante nommée CycleGAN [6] consiste à transformer les images du centre B vers le “style” du centre A avant que les prédictions soient effectuées. L’idée est la suivante : étant donné que l’algorithme a été entraîné sur le centre A, il aura des meilleures performances si les images d’un nouveau centre “ressemblent” aux images du centre A. La transformation est effectuée par un modèle génératif entraîné en suivant la méthode des GANs (Generative Adversarial Networks). Cette méthode consiste à entraîner deux réseaux l’un contre l’autre : un générateur qui génère de nouvelles images et un discriminateur qui essaye de distinguer les images réelles des images générées. En s’entraînant l’un contre l’autre, les deux réseaux deviennent plus précis, rendant les images générées de plus en plus semblables à des images réelles. On utilise aussi le concept de consistency (cohérence) pour forcer le modèle génératif à créer des images proches de celles d’origines, afin d’éviter une perte d’information en passant d’un style à l’autre.

[6] Zhu, Jun-Yan, et al. “Unpaired image-to-image translation using cycle-consistent adversarial networks.”

Conclusion

Nous avons évoqué ici quelques techniques pertinentes pour répondre à la problématique d’adaptation de domaine. Rappelons aussi que les données sont la clé pour s’adapter à la diversité introduite par les différents centres médicaux. Nous en avons été les témoins au cours de notre recherche chez AZmed. Notre premier algorithme fut développé sur un unique centre. Quand nous l’avons essayé sur des images provenant d’un autre centre, les performances ont chuté. Puis, au fur à mesure, en ajoutant de nouveaux centres à notre base d’entraînement, les performances sur les centres inconnus sont devenues de plus en plus stables, indiquant que l’algorithme généralisait mieux. Aujourd’hui, nous continuons de récolter les images de nos nouveaux centres partenaires, car le réentrainement est une manière efficace d’adapter au mieux l’algorithme pour lui faire gagner les quelques points de performance restants. Grâce à ces données additionnelles et à notre travail de recherche, l’algorithme arrive à une phase de maturité. A terme, nous n’aurons donc plus besoin d’inclure des nouvelles données d’entraînement, car les modèles auront été confrontés à une diversité représentative de la plupart des centres. La récolte de données dans un nouveau centre sera néanmoins toujours nécessaire, afin que notre équipe R&D puisse valider les performances des modèles avant la mise en production. Ce stade de maturité que l’algorithme est en train d’atteindre est une étape importante. La capacité à généraliser à tous les centres réduit fortement le temps nécessaire à la mise en production, nous permettant ainsi d’être en mesure de répondre à une forte demande pour déployer notre algorithme auprès de plusieurs centres en simultané.

Une des clés pour le déploiement à grande échelle est donc bien liée à l’adaptation de domaine.

--

--