In den ersten beiden Blogeinträgen haben wir uns mit der Glaukomerkrankung und den Grundlagen des „Deep learnings“ beschäftigt. Dabei stellten wir heraus, wie tückisch diese Erkrankung verläuft und warum eine frühe Diagnose wichtig ist. Von besonderem Interesse ist hierbei, inwiefern eine Diagnose durch moderne bildgebende Verfahren mithilfe von künstlicher Intelligenz unterstützt werden kann. Im weiteren Verlauf beleuchteten wir die mathematischen Grundlagen eines Convolution Neural Network (CNN), welches zur Erkennung von Glaukomen auf Basis von Aufnahmen sogenannter Funduskopien genutzt werden kann.
In dritten Teil unserer Blogserie möchte ich diesmal beschreiben, wie wir ein solches CNN genutzt haben, um unser Ziel zu erreichen und welche Architektur diesem Zugrunde liegt.
Generelles Vorgehen
Grundsätzlich ist das Vorgehen bei der von uns entwickelten Glaukom Diagnose wie in Abbildung 1 gezeigt.
Zu Beginn wird das jeweilige Fundus Bild segmentiert. Im Anschluss wird dieses als Eingabe für die jeweiligen unterschiedlichen CNN-Modelle genutzt, um eine erste visuelle Diagnose zu erreichen. Um die Diagnose weiter zu verfeinern wird im Anschluss diese Diagnose mit Meta-Daten der Untersuchung des Auges kombiniert. Hierbei werden klassische Machine-Learning-Modelle genutzt. Zusammen ergibt dies dann die finale Diagnose, ob ein Glaukom vorliegt oder nicht.
Einige Bilder, wie exemplarisch in Abbildung 2 dargestellt, wiesen gravierende Fehler wie Lichtbrechungen und oder Über-/Unterbelichtung auf. Da diese für eine Segmentierung nicht geeignet sind, da der Sehnerv nicht gefunden werden kann, wurden diese im Vorfeld manuell aussortiert. Einige wenige wurde manuell segmentiert.
Bildsegmentierung mit der Unet-Architektur
Wie wir gesehen haben, ist eine Funduskopie nichts anderes als ein bildgebendes Verfahren, bei dem der Augenhintergrund mithilfe eines Augenspiegels aufgenommen wird. Das Ergebnis ist ein Bild, welches die Retina zeigt. Von besonderem Interesse für unser Vorgehen zur Diagnose ist der Zustand des Sehnervs, welcher als runder heller Bereich zu erkennen ist. Abbildung 3 verdeutlicht dies am Beispiel einer solchen Aufnahme.
Wie wir bereits im ersten Teil erfahren haben, ist für eine erste Diagnose auf Basis einer solchen Aufnahme der Bereich um den Sehnerv entscheidend.
Um dies auch in den jeweils genutzten CNN’s zu unterstützen, wurde zu Beginn eine Bildsegmentierung mithilfe des UNet Modells vorgenommen (Link Unet modell).
Das U-Net-Modell ist eine spezielle Architektur für Convolution Nueral Networks (CNNs), die hauptsächlich für die Bildsegmentierung verwendet wird. Es wurde ursprünglich für die medizinische Bildanalyse entwickelt, hat sich aber auch in vielen anderen Bereichen bewährt.
Die Architektur des UNet-Modells besteht im Wesentlichen aus zwei Komponenten.
- Encoder: Der Encoder ist dafür verantwortlich, die Eingabebilder in eine Reihe von Merkmalskarten zu transformieren. Dies geschieht durch eine Kombination von Faltungsschichten und Max-Pooling-Schichten, die die räumlichen Dimensionen der Bilder reduzieren und dabei die wichtigsten Merkmale erfassen.
- Decoder: Der Decoder nimmt die komprimierten Merkmalskarten und dekodiert sie zurück zu den ursprünglichen Bildabmessungen. Dies geschieht durch transponierte Faltungsschichten (auch bekannt als Upsampling-Schichten), die die räumlichen Dimensionen wiederherstellen. Während des Dekodierungsprozesses werden die Merkmalskarten des Encoders mit den entsprechenden Schichten im Decoder kombiniert, um die Genauigkeit der Segmentierung zu verbessern.
Das Ergebnis ist ein Bild, welches den Bereich um den Sehnerv darstellt. Abbildung 4 zeigt ein solch segmentiertes Bild.
Architektur der CNNs zur Glaukom Erkennung
Die aus der Bildsegmentierung erzeugten Bilder wurden nach einer visuellen Überprüfung anschließend in den jeweiligen CNN-Modellen als Eingabedaten verwendet, um eine erste visuelle Diagnose zu erzeugen. Hierbei wurden 4 unterschiedliche CNN-Architekturen getestet.
- Residual (ResNet)
- Inception
- Seperable
- (Links zu den jeweiligen Modellen).
Im folgenden Abschnitt werden kurz die diese verwendeten Modelle erläutert.
Residual (ResNet)
Ein Residual Convolutional Neural Network (ResNet [1512.03385] Deep Residual Learning for Image Recognition) ist eine Art von tiefem neuronalem Netzwerk, das speziell für die Bilderkennung entwickelt wurde. Es wurde 2015 von Kaiming He und seinen Kollegen eingeführt und ist bekannt für seine Fähigkeit, sehr tiefe Netzwerke effizient zu trainieren1.
Grundprinzip des ResNet
Das Hauptprinzip des ResNet ist die Verwendung von Residualblöcken. Diese Blöcke ermöglichen es dem Netzwerk, die Eingabedaten direkt an die Ausgabeschicht zu übergeben, indem sie die Residuen (Unterschiede) zwischen den Eingaben und den Ausgaben der Zwischenschichten lernen.
Architektur des ResNet
Ein typisches ResNet besteht aus mehreren Schichten, die jeweils aus Faltungsschichten, Normalisierungsschichten und Aktivierungsfunktionen bestehen. Die Residualblöcke sind die Schlüsselkomponenten, die diese Schichten verbinden.
Vorteile des ResNet
- Tiefe Netzwerke: ResNet ermöglicht es, sehr tiefe Netzwerke zu trainieren, ohne dass die Leistung abnimmt.
- Vermeidung des Verschwinden-Gradienten-Problems: Durch die Verwendung von Residualblöcken wird das Problem des verschwindenden Gradienten reduziert, was das Training tiefer Netzwerke erleichtert.
- Hohe Genauigkeit: ResNet hat in verschiedenen Wettbewerben und Anwendungen hohe Genauigkeiten erreicht.
Inception Modell
Das Inception-Modell, auch bekannt als GoogLeNet, wurde von Google eingeführt und stellt eine bedeutende Entwicklung in der Architektur von Convolutional Neural Networks (CNNs) dar. Es wurde entwickelt, um die Rechenleistung zu optimieren und gleichzeitig die Genauigkeit bei Bildklassifizierungsaufgaben zu verbessern.
Architektur des Inception-Modells
Die Hauptidee hinter dem Inception-Modell ist die Verwendung von sogenannten Inception-Modulen. Diese Module kombinieren verschiedene Arten von Faltungen innerhalb desselben Layers, um unterschiedliche Skalen von Informationen zu erfassen.
- Parallele Faltungen: In jedem Inception-Modul gibt es mehrere parallele Faltungsoperationen, darunter 1×1, 3×3 und 5×5 Faltungen. Diese verschiedenen Faltungen ermöglichen es dem Netzwerk, Merkmale auf verschiedenen räumlichen Skalen zu extrahieren.
- 1×1 Faltungen: Diese werden verwendet, um die Dimensionen zu reduzieren und gleichzeitig die Berechnungskosten zu senken.
- Pooling-Schichten: Max-Pooling-Schichten werden ebenfalls parallel zu den Faltungsschichten eingesetzt, um wichtige Merkmale zu extrahieren und die Dimensionen zu reduzieren.
Vorteile des Inception-Modells
- Effizienz: Durch die Reduktion der Dimensionen mittels 1×1 Faltungen wird die Rechenleistung optimiert.
- Genauigkeit: Die Kombination verschiedener Faltungsgrößen ermöglicht es dem Netzwerk, reichhaltige und detaillierte Merkmale zu extrahieren.
- Skalierbarkeit: Das Inception-Modell kann leicht auf größere Netzwerke skaliert werden, ohne die Berechnungskosten drastisch zu erhöhen.
Separable Modell
Ein Separable Modell ([1706.03059] Depthwise Separable Convolutions for Neural Machine Translation) in Convolutional Neural Networks (CNNs) bezieht sich oft auf Depthwise Separable Convolutions. Diese Technik wurde in Modellen wie MobileNets populär und bietet eine effizientere Möglichkeit, Konvolutionen durchzuführen1.
Depthwise Separable Convolutions
Depthwise Separable Convolutions zerlegen eine herkömmliche Faltung in zwei Schritte:
- Depthwise Convolution: Anstatt eine große Faltung durchzuführen, wird eine 1×1 Faltung (auch bekannt als Punktweise Faltung) auf jede Kanal der Eingabedaten angewendet. Dies reduziert die Anzahl der Parameter erheblich2.
- Pointwise Convolution: Nach der Depthwise-Faltung wird eine 1×1 Faltung verwendet, um die Kanäle wieder zu kombinieren und die gewünschte Anzahl von Ausgabekanälen zu erreichen.
Vorteile des Separable Modells
- Effizienz: Reduziert die Anzahl der Parameter und Berechnungen, was zu schnelleren Trainingszeiten und geringerer Speicherbelastung führt.
- Leistung: Kann vergleichbare Leistung wie herkömmliche Faltungen erzielen, aber mit weniger Rechenressourcen.
Sequential Modell
Ein Sequential Modell in Convolutional Neural Networks (CNNs) ist eine einfache und häufig verwendete Architektur, bei der die Schichten nacheinander gestapelt werden, wobei jede Schicht genau einen Eingabtensor und einen Ausgabtensor hat. Dieses Modell ist besonders gut geeignet für einfache Netzwerke, bei denen die Daten linear durch die Schichten fließen.
Hauptmerkmale des Sequential Modells
- Lineare Schichtstruktur: Die Schichten werden nacheinander gestapelt, und jede Schicht erhält den Ausgabtensor der vorherigen Schicht als Eingabtensor.
- Einfachheit: Es ist einfach zu erstellen und zu trainieren, da es keine komplexen Verbindungen oder mehrere Eingaben/Ausgaben hat.
- Verwendung in Keras: In Keras kann ein Sequential Modell durch Übergeben einer Liste von Schichten an den Sequential-Konstruktor erstellt werden.
Vorteile des Sequential Modells
- Einfachheit: Ideal für einfache Netzwerke und schnelle Prototypen.
- Lesbarkeit: Die lineare Struktur macht das Modell leicht verständlich und wartbar.
Einschränkungen des Sequential Modells
- Eingeschränkte Flexibilität: Es ist nicht geeignet für Netzwerke mit mehreren Eingaben oder Ausgaben, komplexen Verbindungen oder nicht-linearen Topologien
In unserm Ansatz war es primär das Ziel Wege zu finden mit einer KI gestützten Bildklassifikation ein Glaukom zu diagnostizieren. Ein weiterer Ansatz war es diese Klassifikation durch Hinzunahme weiterer diagnostischer Merkmale die Zuverlässigkeit der Klassifikation weiter zu steigern. In dem nächsten Beitrag in unserer Blogserie werden wir dies genauer beleuchten.