mardi 15 juillet 2008

What do I do again?

Alors j’en étais à essayer d'expliquer ce que je fais concrètement. Après trois semaines passées dans les articles scientifiques à tapoter du LaTeX pour un rapport de 50 pages à rendre dans dix jours, je devrais être en mesure de vous faire le pitch.

Mettons nous en situation : un jour où tu aurais mieux fait de ne pas te lever, tu te retrouves à l’hôpital. Pas en soins intensifs non plus, juste le niveau en-dessous, on garde un œil sur toi, mais tu as juste besoin de repos et d’un peu de potion magique en intraveineuse, un peu comme un coureur cycliste en fin de Tour. Normalement tout va bien. Sauf que voilà, il y a cette statistique qui ennuie un peu les systèmes hospitaliers depuis dix ans, qui raconte que 25 000 patients décèdent des suites d’un accident cardiaque survenu à l’hôpital par an au Royaume-Uni, et pas loin de 100 000 aux Etats-Unis (je ne connais pas le chiffre pour la France, mais je suspecte un ordre de grandeur comparable). Ça fait un peu tache sur le bilan de fin d’année, surtout si on sait que dans une grande majorité des cas l’accident peut être évité, à condition d’avoir identifié les signes avant-coureurs : anomalie des signes vitaux que sont le rythme cardiaque, le rythme respiratoire, la tension, la température et la saturation de l’oxygène dans le sang (‘O2 sat’ dans Urgences). Alors là tu te dis, mais à la télé, et maintenant même à l’hôpital à côté de chez moi, les patients ont une pince au bout du doigt reliée à un moniteur qui fait bip-bip quand leur cœur s’arrête. C’est vrai, et normalement le rôle du moniteur est de donner l’alarme si les dits signes vitaux se mettent à dériver. Le problème, c’est que les seuils d’alarmes (un maximum, un minimum) sont en général donnés pour chaque signe vital, ce qui du point de vue du traitement du signal est une farce grotesque qui oblige à restreindre considérablement la plage de valeurs acceptables pour chaque signe afin de ne pas rater les alertes importantes, mais qui a pour résultat d’engendrer un nombre considérable de fausses alertes, du genre "Monsieur, ça va, on vient d'avoir une alerte pour tachycardie", "Quoi, ah non, tout va bien, je regarde Derrick". Du coup, le personnel infirmier qui ne peut pas faire confiance au système n’a d’autre choix que celui d’ignorer toutes les alertes et font des rondes toutes les deux, trois ou quatre heures suivant l’état du patient. (Lecteur, prends ton souffle ça va devenir technique). Et là, l’ingénieur qui sommeille en chacun de nous se dit, premièrement, comment tu veux reconstruire correctement l’état d’un patient si tu échantillonnes toutes les deux heures alors que la dynamique du système (on parle toujours du patient là) est de l’ordre de la minute, Shannon doit se retourner dans sa tombe, et deuxièmement, c’est quand même ballot, on a la technologie pour acquérir les signes vitaux en permanence, et on en fait pas grand-chose d’utile, il y a un créneau pour de l’apprentissage artificiel. Et bien c’est exactement ce que s’est dit Supervisor il y a quelques années et il a même développé un système, qui est devenu une compagnie, pour se garer dans le créneau.

En gros, tu acquiers des données sur des patients bienveillants dans des hôpitaux à travers le monde, et ça te donne tout plein de vecteurs de signes vitaux. Tu utilises la formule magique ‘ils sont tous indépendants et identiquement distribués’ (hypothèse royalement fausse, mais il semblerait qu’on ne peut rien faire sans) selon une distribution en n dimensions (n = 4, 5 ou ‘plein’) que, comme tu en as tout plein des vecteurs, tu peux estimer. Un coup de K-means, un coup d’estimateurs de densité de noyaux (fenêtres de Parzen), tu rognes sur les bords pour ne garder que les données les plus 'normales', et tu dis, "bon voilà, donnez moi un vecteur de signes vitaux, et je vous dirai avec quelle probabilité le patient est en bon état". Pour éviter de recevoir un milliard d’emails par seconde, tu mets ça dans une tablette que tu installes dans les chambres des hôpitaux, juste à côté du moniteur qui du coup voit son utilité décupler. Et pour faire simple tu décides d’un seuil sur la valeur de la probabilité pour déclencher des alarmes. Et comme il est dans l’espace de probabilité et qu’il prend en compte tous les signes vitaux disponibles simultanément, ton système ne fait presque plus de fausses alertes, et repère toujours les bonnes alertes (sensibilité maximale, spécificité améliorée). Après tu te dis, okay, ça marche, mais mon hypothèse du début elle est royalement fausse, qu’est ce que je peux faire pour améliorer ça, et aussi, mon seuil, je l’ai un peu décidé au jugé, ce serait bien si je pouvais mettre un peu de théorie derrière. Et tu embauches Sam, et tu lui donnes huit semaines pour faire ça. (Lecteur, prends ton souffle ça va devenir super technique). Tu lui dis d’invoquer la théorie des valeurs extrêmes, qui modèle la queue des distributions de probabilité, et qui est aux extrema des distributions de probabilité ce que le théorème central limite est aux sommes de variables aléatoires, via le théorème de Fisher-Tippett. Et comme on a besoin d’une théorie multivariée, et que les valeurs extrêmes, ça n’existe pratiquement que pour le cas univarié, et que ça n’a été utilisé sur des séries temporelles de données biomédicales une seule fois de mémoire de Google, tu le fais travailler avec un post-doc qui s’intéresse exactement à ça, mais dont la thèse n’est pas encore publiée. Donc voilà, je suis presque prêt à rendre mon rapport, et même si je sature un peu, ça m’a diablement intéressé. La théorie est belle et légèrement sous-développée, l’apprentissage artificiel me plait, la cause est juste. Que demander de plus (pour un sujet de thèse, j’entends) ?


PS: Je n'ai pas vendu de secret industriel, il y a un brevet sur tout ça, gniark gniark.

1 commentaire:

Bernard a dit…

en faisant des ricochets grâce à un mot sur trois que je comprends, je crois avoir pourtant à peu près compris.
PS : je sais bien que les génies s'arrogent le privilège de négliger leur orthographe... mais quand même ! par exemple : ça ne fait pas "tâche", ça fait "tache" - confusion fréquente en Bourgogne...