Peut-on vraiment détecter la Covid-19 via des enregistrements de toux forcée ?

 


Le 29 octobre 2020, une nouvelle sensationnelle était diffusée dans le monde entier :

Cette nouvelle est basée sur cette prépublication  dans la revue scientifique IEEE Journal of Engineering in Medicine and Biology (troisième lien vers l'article en pdf, révisé le 25 décembre 2020)

Pour résumer, cet article affirme que :
  • il est possible de détecter la Covid-19 en toussant à proximité du micro de son smartphone :  un réseau de neurones spécialement entraîné et intégré à une application du smartphone procède alors à une classification binaire (malade/pas malade) de l'enregistrement de toux fourni.
  • Ce test est fiable à 98.5%, il détecte les asymptotiques avec un taux de succès de 100%
  • Ce test obtient une précision AUC de 0.97 avec  98.5% de sensibilité et une sensibilite de 85%
  • Ce test ne coûte rien, peut être déployé sur 2 milliards de téléphone en quelques jours et peut être utilisé pour avoir une réponse instantanée.

En bref, cela permettrait de faire des tests massifs, simplement, quotidien et de faire considérablement reculer la covid-19 en un temps record, avec un coût ridicule, SI CELA MARCHE

La version de l'article du 29 octobre annonçait que des essais cliniques étaient menés pour valider le test.
La version de l'article du 25 décembre affirme que ces essais cliniques sont menés : 
  • aux Etats unis : Mount Sinai and White Planes Hospitals in the US
  • en Espagne : Catalan Health Institute (catalogne)
  • au Mexique (Hospitales Civiles de Guadalajara in Mexico)
  • en Italie (Ospedale Luigi Sacco)

Pour info, il y a d'autres équipes de recherches qui travaillent sur la détection de la Covid-19 via enregistrements sonores : 

Ce test repose essentiellement sur 2 hypothèses fondamentales :
  1. Comme la Covid-19 agit sur le système respiratoire et les cordes vocales, directement (musculairement, inflammation) ou indirectement (neurones moteurs, sentiments, dépression) , elle impacte les bruits produits par le système respiratoire (toux, voix, respiration)
  2. chez les porteurs asymptomatiques de la maladie, la différence de bruit existe également et est détectable

L'auteur de cet article a voulu reproduire les résultats extraordinaires du MIT. 
Après 2 mois de calculs et entrainement de 26 réseaux de neurones, voici les résultats obtenus : 
  • Il est très facile et rapide d'entraîner un réseau de neurone sur plusieurs milliers d'enregistrements à reconnaître la Covid-19 et d'obtenir 99.5% de réussite
  • Malheureusement, l’efficacité de ces réseaux de neurones chute à 0% quand on les utilise sur d'autres enregistrements (10000) distincts des enregistrements (2000) ayant été utilisés pour entraîner les modèles.
Il peut y avoir plusieurs raisons à ces résultats complètement médiocres :
  • L'auteur de cet article ne sait pas bien s'y prendre et à encore beaucoup de choses à apprendre
  • Les hypothèses 1 et 2 ne sont pas (toujours) vérifiées
  • Il est très difficile d'apprend à un réseau de neurones à reconnaître la présence de Covid-19 et trop facile de leur apprendre à reconnaître des enregistrements d'entrainement (over-fiting). 
Au final, ces 2 mois de calcul ne prouvent pas que le MIT à tort (d'ailleurs leur expérience n'a pas été exactement reproduite) mais qu'il est très difficile d'établir un lien entre la présence de la maladie et certaines composantes acoustiques d'un enregistrement de toux forcée (mfcc, ...)


A ce stade, alors que la Covid-19 fait trembler le monde, que les gouvernements confinent leurs citoyens pour combattre la pandémie, il serait bien d'avoir la réponse à quelques questions :
  • L'intelligence artificielle permet-elle effectivement de détecter via des enregistrements audio la présence de Covid-19 ou pas ?

    Des essais cliniques pour valider la réponse ont lieu depuis novembre 2020. La réponse doit-être connue à ce jour. 

    L'auteur de cet article (qui n'est que simple citoyen) a écrit au MIT et à l'EPFL sans obtenir de réponse. Des personnes morales avec plus de poids  (le sénat ? le gouvernement ? les hôpitaux participant aux essais cliniques ? un journal ?) peuvent-t-elles obtenir cette réponse ?
     
  • Si la réponse à la précédente question est "oui", qu'attend on pour mettre en production une solution permettant au monde entier de détecter la Covid-19 (au prix de 15% de faux positifs) ? 

    N'est il pas urgent de faire reculer la pandémie ? 

    Pour info : si on lui fournit un modèle pré-entraîne, un développeur a besoin de quelques jours  seulement pour écrire et déployer une application, qui enregistre une toux et l'évalue à l'aide du modèle, sur plusieurs centaines de millions de téléphone.

    Si la réponse est "non", cela serait bien de savoir aussi

  • La base de donnée de toux forcée suisse ayant été téléchargée plus de 894 individus (d'après le compteur  ici), il y a bien un millier de chercheurs dans le monde essayant de détecter le Covid-19 via ces enregistrements.  Pourrait-on échanger, mettre en commun nos informations pour obtenir la réponse à la première question et faire avancer les choses ?

LES CALCULS MENÉS


la version la plus récente du code python utilisé par l'auteur est disponible ici
voici ce qui a été tenté : 
  1. Télécharger et décompresser la base de donnée suisse (les méta-données à propos de chaque enregistrement sont accessibles dans le fichier metadata_compiled.csv
  2. décompresser chaque enregistement de toux (via ffmpeg) pour les exporter (sous forme de tableau numpy comportant les données temporelles wav) dans 20 fichers data/wavesrxx.npz de 400MO avec xx =0..19
  3. choisir un modèle (dans le fichier models.py). Le modele ResNet50V2 a été principalement utilisé (mais pas que). 
  4. choisir une transformation, pour associer un tableau numpy de caractéristiques sonores à un enregistrement wave (dans le ficher transforms.py)

    Les librairies librosa, python_speech_features, pyAudioAnalysis, nlpaug ont été utilisées pour segmenter la toux (détecter la presence d'une toux, son debut et sa fin) de manière simple et basique (mais qui marche assez bien), pour extraire des caractéristiques sonores (surtout des mfcc mais pas que), pour augmenter les enregistrements (pour eviter l'overfiting et améliorer l'entrainement)
  5. entrainer le modèle (python train.py) sur le modèle. Les enregistrements suisses qui ont été évalués par les professionels de la santé ont été utilisés principalement
  6. évaluer le modèle enregistré (python evaluate.py) sur les autres enregistrements suisses


Les tentatives d'entrainement ont fait varier :
  • la durée des enregistrements : 0.3s, 1s, 3s
  • le nombre de mfcc 13, 120, 200
  • la normalisation, l'augmentation des données (translation, pitch, ...)
  • divers modèles : ResNet 50, ResNet100, Conv2D+Dense (comme dans cet article)
Voici les résultats d'un modèle (M14), mais c'est pareil pour les autres :
  • Précision obtenue à l'entrainement : 91% (on peut aller jusqu'à 99.5% cela ne change rien)
  • Evaluation sur les données ayant servi à l'entrainement :
    AUC = 0.89 (proche de 1, super).
    Graphe ROC qui proche du coin supérieur gauche (pas mal !)
  • Evaluation sur les données n'ayant pas servi à l'entrainement :
    AUC = 0.5053 (pathétique)
    Graphe ROC proche de la diagonale (minable)


Pour info, un modele simpliste qui prédit la presence de la maladie en ne se basant que sur l'age, le genre, les problemes respiratoires (oui/non), la presence de fievre (oui/non) et de douleur musculaire(oui/non) a ces résultats : 
  • efficacité à l'entrainement 71%
  • Evaluation sur les données n'ayant pas servi à l'entrainement :
    AUC = 0.65
    courbe ROC : 

Même ce modèle simpliste est meilleur que l'analyse de toux forcée...




Ce qui inquiète l'auteur : 
  • L'efficacité d'un modèle à l'entrainement ne se traduit pas par de l'efficacité en production, sur d'autres enregistrements
  • dans l'article du MIT, 5300 enregistrements ont été utilisés pour l'entrainement. N'ont ils pas utilisés les mêmes enregistrements pour l'évaluation ?

    Pourquoi publient-ils un article AVANT d'avoir la confirmation par les essais cliniques ?

    Pourquoi ne donnent-ils pas de nouvelles ?

  • dans cet article de l'EPFL, ils n'auraient utilisé que les enregistrements de 236 patients. Cela semble peu. Comment ont ils évalué leur modèle après entrainement ? 

L'opinion personnelle de l'auteur est maintenant que : 
  • il va attendre d'avoir confirmation des résultats du MIT avant de passer d'autres heures de recherche à essayer de reproduire leurs résultats
  • Il n'y croit plus trop



Commentaires

Posts les plus consultés de ce blog

Diagonaliser une matrice : le cas complexe

La législation des classes filmées