Dr. Skinner

Dr. Skinner

Anlernen und Optimieren eines KI-gestützten Modells zur Identifikation von Hautkrankheiten

Anlernen und Optimieren eines KI-gestützten Modells zur Identifikation von Hautkrankheiten

Im Rahmen des Projekts „Dr. Skinner“ wurde ein eigenes Convolutional Neural Network in PyTorch entwickelt, das Fotos von Hautkrankheiten einer von 21 angelernten Krankheitsklassen oder einer neutralen Klasse zuordnet. Als Trainingsgrundlage diente ein öffentlicher Datensatz von Kaggle mit insgesamt 15.400 Bildern.. Im Vordergrund stand für unsere Gruppe der Lerneffekt des Projekts. Daher haben wir eigene und vortrainierte Modelle eingesetzt und vergleichen, sowie die Auswirkungen von Parameteränderungen untersucht.

Zentraler Bestandteil der Arbeit sind

  • die systematische Auswahl und Aufbereitung der Rohdaten,

  • der Aufbau und das Training mehrerer Modellvarianten einschließlich eines Vergleichs mit vortrainierten ResNet-Netzwerken,

  • die Optimierung wesentlicher Hyperparameter (Schichtanzahl, Batch Size, Epochen, Datenaugmentation),

  • sowie die Evaluation der Modellleistung anhand quantitativer Kennzahlen und visueller Analysen (Grad-CAM).

1. Datenauswahl und -beschaffung

  • Systematische Recherche öffentlicher Bilddatensätze für Hautkrankheiten

  • Auswahl eines Kaggle-Datensatzes mit 21 Krankheitsklassen und einer neutralen Klasse (insgesamt 15.400 Bilder)

2. Codeverwaltung

  • Gemeinsame Codebasis in einem GitHub-Repository

  • Branching-Strategie für Features, Bugfixes und Experimente

3. Datenzugriff und -vorbereitung

  • Download des Datensets über die Kaggle-API (Authentifizierung mittels persönlichem Kaggle Key)

  • Vorverarbeitung:

    • Versuch, sichtbares Wasserzeichen zu entfernen

    • Aufteilung in Trainings-, Validierungs- und Testsplit

4. Aufbau und Training des eigenen Modells

  • Implementierung eines Convolutional Neural Network in PyTorch

  • Verwendung von TomlReader zur externen Konfiguration folgender Parameter:

    • Anzahl der Schichten

    • Batch Size ◦ Anzahl der Epochen

    • Lernrate und Optimierer

  • Training auf einer Nvidia-GPU (CUDA) bzw. auf AMD-GPU unter Linux, ansonsten CPU

5. Vergleich mit vortrainiertem ResNet

  • Einbindung und Fine-Tuning von ResNet-18 und ResNet-34 als Referenzmodelle

  • Einheitliche Trainings- und Evaluierungsprotokolle für fairen Leistungsvergleich

6. Modell- und Architekturoptimierung

  • Variation der Modelltiefe

    • Einfache Netze (weniger Schichten)

    • ResNet-18 vs. ResNet-34

  • Datenaugmentationsverfahren zur Erhöhung der Datensatzvariabilität

    • Rotation, Spiegelung, Cropping

  • Anpassung der Batch Size

  • Variation der Epochenzahl

  • Reduktion der Anzahl der Klassen auf vier Hauptgruppen zur Verbesserung der Klassenbalance

  • Integration zusätzlicher Residual Connections in eigener Architektur

  • Visuelle Evaluierung mit Grad-CAM-Heatmaps zur Überprüfung der Lernfokusbereiche

7. Hardwarebeschleunigung

  • Einsatz von CUDA für Training und Inferenz auf Nvidia-GPUs

  • Alternative Nutzung von AMD-GPUs unter Ubuntu, um Plattformunabhängigkeit zu gewährleisten

Einfluss des Datensatzes

Der gewählte Kaggle-Datensatz mit 21 Krankheitsklassen und einer neutralen Klasse erwies sich in mehrfacher Hinsicht als limitierend.

  • Starkes Klassenungleichgewicht: Die Anzahl der Bilder pro Klasse variierte zwischen 275 und 1 651, was selbst mit Klassengewichtung zu verzerrten Modellergebnissen führte.

  • Heterogene Bildaufnahmen: Kombination aus Ganzkörper- und Nahaufnahmen erschwerte das Erlernen konsistenter Merkmale.

  • Wasserzeichen: Automatisierte Entfernung war nur bedingt erfolgreich. Der zeitliche Mehraufwand für Vorverarbeitung überstieg den Nutzen.

  • Grad-CAM-Auswertung: Wasserzeichen beeinflussten die Entscheidungspfade des Netzwerks aber nur marginal. Insgesamt deutet dies darauf hin, dass die Detailunterschiede der Hautkrankheiten in Kombination mit der geringen Datenmenge pro Klasse für das Netzwerk zu fein sind, um zuverlässig erlernt zu werden.

Auswirkungen der Parameteranpassung

  • Systematische Variation einzelner Hyperparameter lieferte differenzierte Erkenntnisse zur Trainingsstabilität und Genauigkeit:

  • Batch Size

    • Wechsel von 1 auf 8 führte zu einem deutlichen Anstieg der Validierungsgenauigkeit.

    • Weitere Erhöhung brachte keine nennenswerte Verbesserung.

  • Klassenreduktion

    • Eingrenzung auf die vier häufigsten Krankheitsgruppen steigerte die Klassifikationsgenauigkeit, da das Klassenungleichgewicht abnahm.

    • Auswahl anhand für Laien sichtbarer optischer Unterschiede führte zu einer weiteren Leistungssteigerung, trotz insgesamt geringerer Bildanzahl.

  • Netzwerkarchitektur

    • Reduktion der Schichten im selbstentwickelten Modell verbesserte die Konvergenz und verringerte Überanpassung (Overfitting).

    • Erhöhung der Epochen über 10 hinaus zeigte bei keinem Modell signifikante Verbesserungen.

  • Bilddimensionen

    • Variationen oberhalb eines Schwellenwerts („nicht zu klein“) hatten nur marginale Effekte auf die Modellleistung.

Hardwarebeschleunigung und Plattformwahl

  • Unter Windows stehen nur Nvidia-GPUs (CUDA) zur Beschleunigung zur Verfügung; AMD-Karten werden nicht unterstützt, wodurch Training im CPU-Modus deutlich langsamer erfolgt.

  • Als praktische Lösung wurde Ubuntu eingesetzt, da hier auch AMD-GPUs genutzt werden können.

  • Deutliche Reduzierung der Trainingszeit pro Epoche mit GPU Unterstützung im Vergleich zur reinen CPU-Berechnung.

Weitere technische Herausforderungen

  • Gelegentliche Systemabstürze unter Linux während der Modellberechnung erschwerten reproduzierbare Experimente.

  • Hintergrundprozesse terminierten nicht immer automatisch, was manuelle Eingriffe erforderte.

  • Artefakte in der GPU-Speichernutzung ließen sich nur durch Neustarts vollständig bereinigen.

Zusammenfassende Erkenntnisse und Ausblick

Die Modellgenauigkeit hängt in hohem Maße von der Qualität und Struktur des Datensatzes ab, ebenso wie von der gewählten Trainingskonfiguration. Vorab ist nicht eindeutig bestimmbar, welche Kombination aus Schichtanzahl, Epochenzahl und Datenaugmentation die besten Ergebnisse liefert. Trial-and-Error bleibt aktuell das primäre Vorgehen.

Für zukünftige Weiterentwicklung empfiehlt sich die Implementierung eines automatisierten Hyperparameter-Optimierungsframeworks (z. B. Bayesian Optimization oder Grid Search), um den manuellen Abstimmungsaufwand zu reduzieren.

Der Vergleich mit vortrainierten ResNet-Modellen bestätigte, dass ResNet-18 und ResNet-34 eine höhere Grundgenauigkeit aufweisen als das selbstentwickelte Modell. Ein Wechsel von ResNet-18 auf ResNet-34 brachte jedoch keinen signifikanten Mehrwert, sodass hinsichtlich Modellkomplexität ResNet-18 als effizientere Ausgangsbasis betrachtet werden kann.

Team & Rollen

André Pohlmann

Ammar

Stefan Kraneburg

Stefan 2

Mentor:in

Nils Uhrberg

Unsere Partner

Unsere Partner

Unsere Partner