gms | German Medical Science

64. Jahrestagung der Deutschen Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie e. V. (GMDS)

Deutsche Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie

08. - 11.09.2019, Dortmund

Reproduzierbarkeit eines Deep Learning Verfahrens zur Bestimmung von Schlafphasen

Meeting Abstract

Suche in Medline nach

  • Christoph Jansen - Hochschule für Technik und Wirtschaft, Berlin, Germany; Charité - Universitätsmedizin Berlin, Berlin, Germany
  • Dagmar Krefting - Hochschule für Technik und Wirtschaft, Berlin, Germany

Deutsche Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie. 64. Jahrestagung der Deutschen Gesellschaft für Medizinische Informatik, Biometrie und Epidemiologie e.V. (GMDS). Dortmund, 08.-11.09.2019. Düsseldorf: German Medical Science GMS Publishing House; 2019. DocAbstr. 300

doi: 10.3205/19gmds068, urn:nbn:de:0183-19gmds0687

Veröffentlicht: 6. September 2019

© 2019 Jansen et al.
Dieser Artikel ist ein Open-Access-Artikel und steht unter den Lizenzbedingungen der Creative Commons Attribution 4.0 License (Namensnennung). Lizenz-Angaben siehe http://creativecommons.org/licenses/by/4.0/.


Gliederung

Text

Einleitung: Künstlichen neuronalen Netzen (KNN) finden zunehmend Anwendung in entscheidungsunterstützenden Systemen der Medizin. Dabei sind nicht nur die KNN oft komplex, sondern auch die unterliegenden Ausführungsumgebungen und IT-Systeme. Wie bereits in anderen Zusammenhängen gezeigt, können unterschiedliche Konfigurationen der Ausführungsumgebungen und Prozessorarchitekturen die Reliabilität von entscheidungsunterstützenden Verfahren beeinträchtigen [1]. In diesem Beitrag soll dies am Beispiel eines hochrangig publizierten auf KNN basierenden Verfahrens zur automatischen Bestimmung von Schlafphasen gezeigt werden [2]. Die Implementierung des Verfahrens basiert auf Python 3.6 mit diversen Programmierbibliotheken, darunter auch das KNN-Framework Tensorflow 1.9.0. Wir haben festgestellt, dass bei Verwendung einer falschen Python-Programmversion konsistent fehlerhafte Ergebnisse geliefert werden.

Methoden: Programmcode, Modelle, sowie ein Testdatensatz mit den zu erwartenden Ausgaben sind auf Github verfügbar [3]. Die Anwendung wird nach Anleitung [4] innerhalb eines Docker Images installiert. Als Basis dient das offizielle Tensorflow 1.9.0 Docker Image [5]. Bei diesem Image ist nicht unmittelbar ersichtlich, dass es Ubuntu 16.04 Programmbibliotheken (veröffentlicht 2016) mit Python 3.5 enthält und somit nicht der vorgegebenen Mindestversion 3.6 entspricht. Das Programm wird als Container ausgeführt und dabei ein lokales Verzeichnis mit dem Testdatensatz eingehängt. Die erzeugten Ergebnisdaten werden mit den Ergebnissen aus anderen Image-Konfigurationen verglichen. Dabei werden unterschiedliche Kombinationen auf Basis von Ubuntu 16.04 und 18.04 mit den Python-Versionen 3.5 und 3.6 getestet, in denen das Paket „tensorflow“, beziehungsweise „tensorflow-gpu“ für Berechnungen auf Cuda-GPUs, manuell nachinstalliert wird.

Ergebnisse: Die Ausführung des Containers auf Basis des Tensorflow-Images mit Python 3.5 läuft ohne Absturz und augenscheinlich ohne Probleme. Erst beim Vergleich der erzeugten Daten mit den erwarteten Ergebnissen werden Unterschiede deutlich. Zum einen weisen die Ergebnisse hauptsächlich die Schlafphase „Wach“ auf, während die Vergleichsdaten einen ausgeglichenen Schlaf über alle Schlafphasen zeigen. Zum anderen werden mit jeder Ausführung zufällige, leicht unterschiedliche Ergebnisse erzeugt, obwohl die Ausführung deterministisch sein sollte. Beim Vergleich mit anderen Image-Konfigurationen zeigt sich, dass die fehlerhaften Ergebnisse nicht durch ein bestimmtes Basis-Image, eine bestimmte Ubuntu-Variante oder den Einsatz von GPUs gegenüber CPUs zustande kommen. Stattdessen werden mit Python 3.5 in allen Varianten falsche Ergebnisse erzeugt, während der Einsatz von Python 3.6 deterministisch zu sein scheint und korrekte Schlafphasen liefert. Die genauen Gründe für das Fehlverhalten der Software sind noch nicht bekannt. Eine Teilmenge der verwendeten Docker-Konfigurationen inklusive der KNN-Modelle wurde auf Zenodo archiviert [6]. Wir haben die Entwickler über das Problem informiert [7], sodass ein Warnhinweis publiziert werden konnte.

Diskussion und Ausblick: Die experimentellen Ergebnissen zeigen, dass bereits kleine Abweichungen in der Software-Konfiguration zu falschen Ergebnissen ohne Absturz der Software führen können, die nur durch die zur Verfügung gestellten Testdaten nachvollziehbar sind. Den Autoren des verwendeten Verfahrens ist kein Vorwurf zu machen, da sie die getestete Softwareversionen dokumentiert haben und die Software noch nicht im klinischen Umfeld zum Einsatz kommt. Im Kontext des immer breiteren Einsatzes von Algorithmen in kritischen Bereichen, wie der medizinischen Diagnostik, zeigt dieses Ergebnis aber deutlich, dass bei Zulassungen im Produktivbetrieb eine Validierung der Anwendung nicht ausreicht und stattdessen immer die gesamte Ausführungsumgebung einbezogen werden muss [8], [9]. Container-Technologien können dazu beitragen diese Umgebungen zu definieren [10], [11], [12] und die Inbetriebnahme zu vereinfachen.

Die Autoren geben an, dass kein Interessenkonflikt besteht.

Die Autoren geben an, dass kein Ethikvotum erforderlich ist.


Literatur

1.
Krefting D, Scheel M, Freing A, Specovius S, Paul F, Brandt A. Reliability of quantitative neuroimage analysis using freesurfer in distributed environments. In: MICCAI Workshop on High-Performance and Distributed Computing for Medical Imaging; 2011; Toronto, Canada. 2011.
2.
Stephansen JB, Olesen AN, Olsen M, Ambati A, Leary EB, Moore HE, Carrillo O, Lin L, Han F, Yan H, Sun YL. Neural network analysis of sleep stages enables efficient diagnosis of narcolepsy. Nature communications. 2018 Dec 6;9(1):5229.
3.
GitHub. Stanford-Stages. [Accessed 16 July 2019]. Available from: https://github.com/Stanford-STAGES/stanford-stages Externer Link
4.
Narcolepsy App. [Accessed 16 July 2019]. Available from: https://docs.google.com/document/d/e/2PACX-1vTvin7Gdn7FN9-2NbAQKgnApR6F73en46cTFYosxCMlgFgp3pMqSJgDthaCghrfAGIZ_BoKThb4bHtt/pub Externer Link
5.
Docker. Tensorflow. [Accessed 16 July 2019] Available from: http://docker.io/tensorflow/tensorflow:1.9.0-py3 Externer Link
6.
Jansen C, Krefting D. Stanford Narcolepsy Repro. 16 April 2019 [Accessed 16 July 2019]. DOI: 10.5281/zenodo.2642257 Externer Link
7.
GitHub. Stanford-Stages - Wrong calculations with Python 3.5 #5. [Accessed 16 July 2019]. Available from: https://github.com/Stanford-STAGES/stanford-stages/issues/5 Externer Link
8.
Tatman R, VanderPlas J, Dane S. A Practical Taxonomy of Reproducibility for Machine Learning Research. Preprint
9.
Chirigati F, Rampin R, Shasha D, Freire J. Reprozip: Computational reproducibility with ease. In: Proceedings of the 2016 International Conference on Management of Data; 26 June 2016; San Francisco, California, USA. New York: ACM; 2016. p. 2085-2088.
10.
Priego LP, Wareham J. REANA: Reproducible research data analysis platform. Brussels: Publications Office of the European Union; 2019. Available from: https://ec.europa.eu/info/sites/info/files/research_and_innovation/reana.pdf Externer Link
11.
Forde J, Head T, Holdgraf C, Panda Y, Nalvarete G, Ragan-Kelley B, Sundell E. Reproducible research environments with repo2docker. Preprint
12.
Jansen C, Beier M, Witt M, Frey S, Krefting D. Towards Reproducible Research in a Biomedical Collaboration Platform following the FAIR Guiding Principles. In: Proceedings of the 10th International Conference on Utility and Cloud Computing; 5 December 2017; Austin, Texas, USA. New York: ACM, p. 3-8.