ECGAN – Reproduzierbares maschinelles Lernen für EKG-Daten
Die Auswertung von Elektrokardiogrammen ist von zentraler Bedeutung für die Erkennung von potenziell lebensbedrohlichen Umständen wie Herzinfarkten. Eine autonome Erkennung dieser abnormalen Umstände kann Leben retten – die Forschung dazu ist jedoch nur stark eingeschränkt möglich. Wie in vielen Forschungsbereichen liegen die Gründe hierfür unter anderem bei ethischen, sozialen und rechtlichen Aspekten, einer mangelnden Datenlage und diffusen Einsatzszenarien, aber auch an der sehr eingeschränkten Reproduzierbarkeit.
Um diese zu verbessern, wurde im Rahmen eines Forschungsprojekts ein Open-Source-Framework entwickelt, mit dem Datensätze automatisch heruntergeladen und vorverarbeitet werden können und der Trainingsablauf erleichtert wird. Zusätzlich werden einige bestehende Modelle und Algorithmen zur Anomaliedetektion bereitgestellt, die als Referenzmodelle nutzbar sind.
Herz-Kreislauf-Erkrankungen sind sowohl weltweit, als auch in Deutschland die häufigste Todesursache [1]. Elektrokardiogramme (EKGs) messen die elektrische Aktivität des Herzens meist an mehreren Stellen des Körpers. Diese Messungen können unter Einbezug von weiteren Variablen genutzt werden, um viele abnormale und krankhafte Aktivitäten zu diagnostizieren. Die Forschung an medizinischen Daten zur automatischen Erkennung krankhafter Muster hat im Besonderen durch die Fortschritte des maschinellen Lernens im letzten Jahrzehnt ein starkes Wachstum erfahren, tausende wissenschaftliche Beiträge werden jährlich publiziert. Derzeitige Methoden des maschinellen Lernens werden in der Medizin häufig für die Entdeckung neuer Krankheiten oder für eine Diagnoseunterstützung genutzt. Eine komplett autonome Diagnose benötigt in vielen Bereichen noch substantielle Fortschritte, unter anderem bezüglich der Interpretierbarkeit, Erklärbarkeit und Kausalität.
Mögliche Anwendungsgebiete der autonomen Erkennung von abnormalen Verläufen sind vielseitig. Bereits jetzt nutzen kommerzielle Produkte die Erkennung von Vorhofflimmern als Verkaufsargument für Wearables. Langfristig sind auch die Verbesserung von Diagnoseempfehlungen in Kliniken oder die Erkennung von Herzinfarkten in Wearables mögliche Ziele. Neben den ethischen, sozialen und rechtlichen Komplikationen stellen Gesundheitsdaten Forschende vor besondere Herausforderungen und es gibt viele strukturelle Probleme, die die Forschung erschweren.
Strukturelle Probleme
Da medizinische Daten höchst schützenswert sind, ist die Veröffentlichung der Daten schwierig. Die offene Forschung beschränkt sich derzeit meist auf sehr limitierte Datensätze wie den MITBIH-Datensatz, der nur eine geringe Anzahl von Patienten beinhaltet [2]. Auch bei weiteren Datensätzen, die in den letzten Jahrzehnten veröffentlicht wurden, wie die Daten der Physikalisch-technischen Bundesanstalt bleibt das Volumen und auch die Möglichkeit, verschiedene Datenquellen zu kombinieren, beschränkt [3]. Wünschenswert wäre eine umfangreiche und bestenfalls kontinuierliche Ergänzung von Daten. Durch versionierte Datensätze können auch neue Erkenntnisse der medizinischen Forschung zum Beispiel durch Hinzufügen neuer Attribute berücksichtigt werden.
Erst vor kurzem wurden neue Datensätze mit einem höheren Volumen an Patienten veröffentlicht, deren Nutzbarkeit und Güte jedoch noch eingehender untersucht werden muss [4]. Während diese Datensätze ein Schritt in Richtung besserer Modelle zur Diagnoseunterstützung sind, benötigen signifikante Verbesserungen und langfristig auch der praktische Einsatz in vielen Einsatzszenarien häufig größere Datensätze, die derzeit meist proprietär sind (bspw. [5]). Mögliche Lösungsansätze zur Verbesserung dieser Probleme sollen an dieser Stelle nicht weiter diskutiert werden, eine entsprechende Entwicklung ist dennoch wichtig für das Voranschreiten der Forschung.
Bestehende Arbeiten beruhen zu einem großen Teil auf dem MITBIH-Datensatz. Trotz teils identischer Evaluationsszenarien ist ein direkter Vergleich von Modellen schwer: Oft gibt es marginale Unterschiede in der Vorverarbeitung der Daten oder nötige Parameter für die Modelle werden nicht ausreichend dokumentiert. Diese Unterschiede können durch verschiedene Umstände motiviert sein. Einige Änderungen verändern die Aussagekraft der Modelle kaum, andere verzerren die Daten und Modelle stark. Initial muss dies neutral betrachtet werden: Häufig kann die signifikanteste Verbesserung der Qualität bei einer gegebenen Aufgabe nicht durch einen neuen Algorithmus, sondern durch eine geschickte Vorverarbeitung der Daten erreicht werden. Gleichzeitig ist es auch leicht möglich, die Daten – absichtlich oder unabsichtlich – so zu verändern, dass die Vorhersage eines Algorithmus verbessert werden kann, die praktische Relevanz jedoch nicht gegeben ist oder die Anwendbarkeit auf einen anderen Algorithmus nicht mehr möglich ist bzw. dieser angepasst werden muss. Was jedoch notwendig ist und immer wichtiger wird, ist, eine einheitliche Basis zu schaffen, um Modelle zu vergleichen. Eine solche Basis soll Nutzern eine einfache Möglichkeit bieten, die eigenen Methoden zur Datenvorverarbeitung oder zum Training genauso einfach auszutauschen wie den genutzten Datensatz. Der Einfluss der entsprechenden Komponenten kann dadurch nachvollziehbar gestaltet werden. Dies ermöglicht eine einheitliche Evaluation der Fragestellung, die mithilfe eines Modells untersucht werden soll.
Macht Fehler!
Gerade in der angewandten Forschung hängen Ruf und Liquidität häufig von Fortschritten in der Anwendung und Adaption bestehender Modelle und nicht nur von disruptiven theoretischen Ideen ab. Eine gemeinsame Basis, um diese Anwendungen transparent zu gestalten, ist die Veröffentlichung des genutzten Codes. Manchmal ist dies aus rechtlichen Gründen, wie Nutzungsrechten, nicht möglich. Aber auch wenn es prinzipiell möglich ist, birgt eine Publikation Risiken: Einfache Fehler in der Datenverarbeitung können die Ergebnisse wissenschaftlicher Arbeiten leicht invalidieren, wodurch häufig auch eine Schädigung des Rufs gefürchtet wird. Sowohl für erfahrene als auch unerfahrene Forschende ist es eine nachvollziehbare Angst, vermeintlich simple Zusammenhänge zu übersehen und solche Fehler zu machen. Auch wird die meist nötige Aufarbeitung des Codes gerade in der schnelllebigen Forschung des maschinellen Lernens teilweise als Argument genutzt, den Code nicht zu veröffentlichen. Die Veröffentlichung ist oft also keine einfache Entscheidung: Der einfache, verschlossene Weg kann schneller sein und der Karriere mehr helfen, auch wenn der offene Weg ein höheres Potenzial hat, die Forschung nachhaltig zu verbessern und die Arbeit anderer Forschender zu beschleunigen.
Eine offene und kritische Auseinandersetzung mit der eigenen Arbeit ist zwar im Interesse der Forschung, aufgrund existierender Publikationsmodelle und einhergehender Anreize jedoch nicht notwendigerweise im Interesse der Forschenden. Das Setzen solcher Anreize ist schwer. Publikationen ähneln daher teilweise einem Sales-Pitch, bei dem die Kritik an der eigenen Methodik stark abgeschwächt wird. Die Problematik ist weit bekannt und einige wenige alternative Publikationsmodelle versuchen dies zu umgehen. Die Anwendung in populären Wissenschaftszweigen ist jedoch schwierig. Strukturelle Probleme gehen hierbei natürlich über die Veröffentlichung von Quellcode hinaus: Eine der wenigen offenen (und in diesem Fall auch provokativen) Diskussionen zeigt, dass die Veröffentlichung von Code selbst kein Garant für reproduzierbare und gute Forschung ist [6]. Während Code für die Verbesserung und Beschleunigung der Forschung also keine hinreichende Bedingung ist, ist sie in vielen Bereichen jedoch eine notwendige Bedingung.
Schaffung einer gemeinsamen Basis
Mit der Reproduzierbarkeit haben viele Forschungszweige zu kämpfen, entsprechende Probleme werden regelmäßig angesprochen (bspw. [7]). Eine Lösung ist mühselig und muss an einzelne Forschungsgebiete angepasst werden. Der Aufbau einer gemeinsamen Basis für ein Themengebiet kann vielfältig sein. Im Bereich der Erkennung von abnormalen EKGs gibt es hierfür viele Ansatzpunkte. Dies umfasst unter anderem die Erstellung und Vermittlung von interdisziplinären Ressourcen, die Veröffentlichung von neuen Modellen oder Evaluationsszenarien aber auch zusätzliche Aufarbeitungen bestehender Arbeiten, die einen Fokus auf die Limitationen der Ansätze legen. Ebenfalls wichtig ist die Bereitstellung von Werkzeugen entlang der Abhängigkeiten, mit denen ein Forschungsgebiet zu kämpfen hat, wie das Erheben, Verarbeiten und Teilen von Daten.
Dadurch, dass es sich um einen anwendungsbezogenen Ansatz handelt, ist eine erste Basis die Definition und Diskussion von sowohl praktisch als auch theoretisch motivierten, validen Anwendungsszenarien. Wichtig ist, dass auch die Anforderungen, die in einzelnen Szenarien existieren, gesammelt und diskutiert werden, was eine enge Zusammenarbeit mit Domänenexperten (hier: Kardiologen) erfordert. Zusätzlich ist es wichtig, die zuvor erwähnte gemeinsame Basis zur Verarbeitung und Auswertung der Methoden und Datensätze zu schaffen. Der veröffentlichte Quellcode aus bestehenden Forschungsarbeiten ist meist prototypisch und bricht zudem mit den typischen Best Practices der Softwareentwicklung und der Forschung. Dies wird durch die häufig schlechte oder nicht vorhandene Dokumentation verstärkt.
ECGAN
Um diese gemeinsame Basis zu ermöglichen, wurde ECGAN entwickelt, ein Python-Framework, das sich möglichst umfassend hiermit auseinandersetzen soll. ECGAN kann unter anderem genutzt werden, um:
- Die Verarbeitung von Datensätzen zu automatisieren: ECGAN ist eine zentrale Anlaufstelle für verschiedene frei verfügbare Datensätze, die meist automatisch heruntergeladen und deterministisch vorverarbeitet werden können. Diese Datensätze umfassen viele gängige EKG-Datensätze und weitere Referenzdatensätze im Bereich der Zeitreihen. Am Ende dieses Prozesses sollen die Daten in einem einheitlichen Format abgespeichert werden und durch Konfigurationsdateien für unterschiedliche Evaluationsszenarien aufbereitet werden können. Die einheitliche Schnittstelle erlaubt es, einfach neue Datensätze hinzuzufügen – egal ob öffentlich oder proprietär.
- Modelle einheitlich zu evaluieren: Nach der Selektion einer gemeinsamen Datenbasis sollen verschiedene Modelle vergleichbar sein. Hierfür sollen etablierte Vorgehensweisen genutzt werden, bspw. die Unterteilung der Daten in Trainings-, Validierungs- und Testdaten und eine stratifizierte Kreuzvalidierung. Dabei sollen die Ergebnisse leicht reproduzierbar sein.
- Die Evaluation von neuen Ansätzen einfach und vergleichbar zu machen: Neue Ansätze zu Vorverarbeitung, Training und Auswertung sollen sich einfach einfügen, austauschen und umfangreich auswerten lassen.
Hierbei werden unterschiedliche Analysemöglichkeiten während der einzelnen Schritte bereitgestellt: Dies umfasst Tools zur Visualisierung oder Analyse der Daten wie bspw. die spektrale Analyse mit Hilfe von Fourier-Transformationen oder aber die Einbettung in niedrigerdimensionale Räume zur Dimensionsreduktion für das Training oder zur Visualisierung (bspw. klassische Methoden wie PCA aber auch t-SNE oder UMAP).
Aufgrund der Breite und Tiefe möglicher Modelle und Anwendungsszenarien sind viele Vergleichsmodelle und relevante Szenarien möglich. Während auch erste Modelle zur Klassifikation integriert sind, fokussiert sich das Projekt derzeit auf generative Ansätze aus dem Bereich Deep Learning, mit einer zentralen Abhängigkeit von der PyTorch-Bibliothek [9]. Ein Beispiel ist in Abb. 3 sichtbar, bei dem ein generatives Modell auf gesunden Daten (die "normale" Klasse) trainiert wurde und nur Daten dieser Klasse ausreichend rekonstruieren können soll. Dieses Vorgehen kann auch zur Anomaliedetektion genutzt werden: Wenn Datenpunkte nicht generiert werden können, wird angenommen, dass diese nicht zu der normalen Klasse gehören und somit abnormal sind.
Durch den modularen Aufbau lassen sich viele weitere Szenarien ergänzen. Auch sind die generativen Ansätze mittelfristig nicht der einzige Fokus, sondern es können verschiedenste Trainings- und Evaluationsansätze einfach integriert und über Konfigurationsdateien gesteuert werden, im Besonderen im Bereich der Klassifikation. Ein einführendes, angewandtes Nutzungsbeispiel ist als Blogpost verfügbar [10].
Ausblick
Während die Erstellung von Machine-Learning-Modellen durch Frameworks wie PyTorch, Tensorflow oder auch Sklearn stark vereinfacht wird, ist eine sinnvolle Evaluation für einzelne Anwendungsfälle sehr schwer. Dies soll durch ein einheitliches Framework verbessert werden.
Das entwickelte Framework ist generell für viele Zeitreihen nutzbar, jedoch wird der Fokus bei EKG-Daten bleiben: ECGAN soll als Einstieg genutzt werden können, um einen Überblick über die Forschung an EKG-Daten zu erlangen. Hierfür soll der Fokus vor allem auch auf einer interdisziplinären Zusammenarbeit liegen, wodurch bestehende Evaluationsszenarien weiter konkretisiert und abgegrenzt werden. Derzeit wird sowohl die Auswahl der unterstützten Modelle ausgeweitet, als auch die Werkzeuge zur Untersuchung der Daten.
ECGAN ist weit davon entfernt perfekt zu sein. Ziel ist es vielmehr, eine offene Grundlage zu schaffen, um die Forschung reproduzierbar und weniger zeitaufwändig – kurzum also nach und nach besser – zu machen.
Das vorgestellte Projekt wurde durch die Bayerische Forschungsstiftung (AZ-1419-20) gefördert.
- WHO: The top 10 causes of death
Statistisches Bundesamt: Todesursachen - PhysioNet: MIT-BIH Arrhythmia Database
- PhysioNet: PTB Diagnostic ECG Database
- PhysioNet: PTB-XL, a large publicly available electrocardiography dataset
PubMed.gov: A 12-lead electrocardiogram database for arrhythmia research - Stanford ML Group: Cardiologist-Level Arrhythmia Detection With Convolutional Neural Networks
- Buckman's Homepage: Please Commit More Blatant Academic Fraud
- Süddeutsche Zeitung: Viele Psychologie-Experimente lassen sich nicht wiederholen
- UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction
- PyTorch
- F. Lüer: ECGAN - A framework for reproducible research on ECG data