Dans un article du Figaro du 29/05/2018, intitulé « Un ordinateur pour repérer les cancers », on apprenait qu’un réseau de neurones (CNN) entraîné sur des images de mélanomes effectuait de meilleurs diagnostics que des dermatologues.
Je suis nullement étonné du résultat. Je vais même tenter de le démystifier.
Un ordinateur a réussi à être meilleur que les dermatologues pour repérer les cancers de la peau sur une série de photos, a annoncé aujourd’hui une équipe de chercheurs. Une équipe germano-franco-américaine a entraîné ce système d’intelligence artificielle à distinguer des lésions de la peau et grains de beauté selon qu’ils étaient bénins ou alarmants, en lui montrant plus de 100.000 images.
Un ordinateur pour repérer les cancers – Le Figaro – 29/05/2018
Je commente cet article tout en expliquant quelques notions de l’apprentissage supervisé.
L’article original cité par le Figaro est « Man against machine: diagnostic performance of a deep learning convolutional neural network for dermoscopic melanoma recognition in comparison to 58 dermatologists« .
Les conclusions de cet article sont que les diagnostics du réseau de neurones (CNN : convolutional neural network) sont meilleurs que ceux obtenus par un groupe international de 58 dermatologues, dont 30 experts.
La méthode utilisée pour le réseau s’appuie sur l’architecture CNN de Google (Inception v4 CNN architecture). Les images sont celles qu’on obtient en dermoscopie (la dermoscopie permet de visualiser la peau « en profondeur » avec un très fort grossissement).
Après l’entraînement du réseau, un jeu de 100 images de test a été présenté au réseau CNN et aux dermatologues. Les mesures comparées (sensibilité, spécificité et aire sous la courbe ROC) sont toutes favorables au logiciel.
Un ordinateur pour repérer les cancers
Le Figaro aurait dû titrer « un logiciel pour repérer les cancers » et plus particulièrement « un réseau de neurones profond pour diagnostiquer certains mélanomes« .
Le plus important en apprentissage profond n’est pas l’ordinateur mais le logiciel. Pour autant, les progrès considérables de ces derniers années n’ont été permis que grâce à l’utilisation des GPU (les processeurs des cartes graphiques). Nvidia est aujourd’hui le fournisseur quasi-exclusif des GPU utilisés en Deep Learning (DL). Les GPU sont excellents pour faire du calcul matriciel en parallèle. Ils sont de loin beaucoup plus performants que les CPU (>10 fois plus rapides)
Si vous n’avez pas de GPU(s) alors recourez à ceux qui en mettent à disposition sur le cloud (crestle, paperspace, aws (amazon), google cloud, … ) il vous en coûtera moins de 1$ de l’heure d’utilisation.
Le temps d’entraînement d’un réseau de neurones peut parfois être très très long (plusieurs heures, plusieurs jours). Les GPU sont alors indispensables.
Un CNN
Le réseau de neurones retenu pour l’apprentissage est un CNN (convolutional neural network). Un des premiers à avoir démontré les performances des CNN, est le français Yann LeCun titulaire actuel de la chaire « Informatique et sciences numériques » du Collège de France et scientifique en chef de l’IA chez Facebook.
Y. LeCun a popularisé les CNN, il y a 30 ans, lorsqu’il a obtenu des performances significatives lors de la reconnaissance automatique des caractères manuscrits. Ses travaux ont permis la lecture automatisée des chèques.
Je ne vais par décrire ici ce qu’est un CNN car d’autres l’ont fait beaucoup mieux que moi. Lisez à ce sujet l’excellent article « Comment les Réseaux de neurones à convolution fonctionnent« .
Apprentissage supervisé
Comment tout cela fonctionne ?
Nous sommes ici dans le cadre d’un apprentissage supervisé et d’une classification binaire.
On présente au logiciel (au réseau) un nombre important (si possible) de données étiquetés, c’est à dire avec les informations concernant leur classification (bénin, malin dans notre cas).
Le logiciel va au cours de son apprentissage modifier ses caractéristiques (ses poids) jusqu’à être à même de classifier au mieux les données d’apprentissage.
Lorsque l’apprentissage est terminé, on l’utilise pour analyser des nouvelles images (qui n’ont pas servi à l’apprentissage).
Inception v4 CNN
Comme je l’ai dit plus haut, il faut beaucoup de temps, beaucoup d’images, beaucoup de talent(s) ! pour entraîner un réseau.
Les architectures des réseaux sont créées par des experts qui définissent le nombre de couches du réseau, le nombre de neurones par couche, les fonctions d’activation, les fonctions de coût, les algorithmes de rétropropagation, les hyperparamètres, … Il s’agit d’un processus laborieux.
Fort heureusement, les expertises développées par ces architectes sont souvent mises à disposition de tous.
Ainsi, Google qui a entraîné 1.2 million d’images classifiées en 1000 catégories nous permet d’utiliser son modèle et de bénéficier des résultats d’apprentissage.
Bien évidemment, les images de dermoscopie sont très différentes de celles utilisées par Google pour son réseau mais elles ont, à bas niveau, des caractéristiques communes. L’image ci-dessous montre un exemple de ce que chaque couche de bas niveau permet (éventuellement) de reconnaitre.
Sensibilité et spécificité et ROC
Demain nous aurons tous sur notre smartphone des applications qui nous permettront d’estimer la probabilité qu’un « bouton » sur notre peau soit bénin ou malin. Etant-donné qu’il faut six mois d’attente pour obtenir un RdV chez un dermatologue, ça ne sera pas inutile .On peut même imaginer que le pronostic de l’application serve à obtenir (ou pas) un RdV plus tôt !
Mesurer la performance d’une application « médicale » n’est pas trivial. En effet, si on peut accepter (difficilement) que l’application vous annonce un cancer alors que vous n’en avez pas, il est vital qu’elle ne vous dise pas que vous n’avez rien si ce n’est pas le cas !
En statistique, la sensibilité (ou recall) d’un test mesure sa capacité à donner un résultat positif lorsqu’une hypothèse est vérifiée. La sensibilité est le taux de vrais positifs.
La spécificité, elle, mesure le taux de vrais négatifs.
Il faut des bons résultats, à la fois en sensibilité et en spécificité, pour que ces résultats soient bons, et encore plus important pour la pertinence d’une application, il faut que ces taux soient meilleurs que ceux des dermatologues.
Ce qui est le cas (voir Results)
Une courbe ROC (receiver operating characteristic) est un graphique représentant les performances d’un modèle de classification pour tous les seuils de classification. Cette courbe trace le taux de vrais positifs en fonction du taux de faux positifs en fonction de certains seuils de discrimination.
Là aussi, le CNN obtient des meilleurs performances que les dermatologues.
Conclusion
L’article montre que lorsqu’on soumet aux dermatologues, plus d’images et d’autres informations cliniques, leurs diagnostics s’améliorent, sans toutefois dépasser ceux du CNN.
Les auteurs de l’article ne présentent pas leur outil comme un remplaçant des dermatologues mais plutôt comme un compagnon.
Ils rejoignent en ça, ceux qui ont développé des logiciels analogues en ophtalmologie, en pneumologie, en cytologie, en radiologie.
Très souvent les performances obtenues sont supérieures à celles des médecins spécialistes. Il faut y voir une bonne nouvelle pour tous.