Vorhersage von Blutzuckerwerten durch Zeitreihenanalyse mit einem Neuronalen Netz

Belegarbeit

Fach Neuroinformationsverarbeitung
Lehrender: Prof. Dr. rer. nat. habil. H. Iwe

Antje Elsner
Dresden, den 01. Oktober 2001

Kurzbeschreibung

Im Rahmen der Lehrveranstaltung "Neuroinformationsverarbeitung" im Sommersemester 2001 entstand der im Folgenden beschriebene Beleg.

Am Anfang stand die Idee, ein Programm zu entwickeln, das aus einer Reihe von Messdaten einen zukünftigen Wert vorhersagt und dabei auch bei sehr komplizierten Zusammenhängen zwischen den Parametern realistische Werte erzeugt.

Die Vorhersage von Blutzuckerwerten ist eine sehr schwierige Aufgabe, da hier ein hochkomplexes Zusammenspiel biologischer und nichtbiologischer Einflüsse vorliegt. Derartige Aufgaben sind oft nur mit sehr hohem Aufwand oder gar nicht analytisch lösbar.

Gerade bei solchen medizinischen Anwendungen müssen jedoch die errechneten Werte in kurzer Zeit (oft nur wenigen Minuten) und dabei in sehr hoher Genauigkeit vorliegen, so dass ein System notwendig wird, welches die Daten nicht bei jedem Schritt aufwändig analytisch verarbeitet, sondern dessen Aufwand vor dem Verarbeiten der Daten liegt und dessen Struktur während der eigentlichen Vorhersage mit wenig Aufwand genutzt wird.

Für diese Aufgabe ein neuronales Netz zu nutzen lag daher sehr nahe, zudem viele Anwendungen zur Zeitreihenanalyse (z.B. Börsenprognosen) mit neuronalen Netzen arbeiten.

Ich entschied mich, ein dreischichtiges sogenanntes multilayer feed forward neuronal network einzusetzen, der Wertebereich der Eingabe- und auch der Ausgabeneuronen ist reell zwischen 0 und 1. Die Aktivierungsfunktion der Neuronen ist eine Sigmoidalfunktion(Bild 1).

Output=1/1+exp(-Input)

Das Netz besitzt vier Gruppen Eingabeneuronen mit jeweils 4 Neuronen für die Eingabequadrupel zu den Zeiten t-3, t-2, t-1 und t sowie ein Biasneuron pro Schicht. Die Eingabequadrupel bestehen aus den Werten des aktuellen Blutzuckers, der Insulinmenge, der Menge der gegessenen Kohlenhydrate und die körperliche Aktivität. Diese Werte werden normiert (Bereich 0 bis 1). Da neuronale Netze besser mit relativen Werten als mit Absolutwerten arbeiten können, werden als Eingabewerte die Differenzen jeweils zweier aufeinander folgender Daten gebildet.

Netzstruktur

Die verdeckte Schicht enthält standardmäßig 10 Neuronen, die Anzahl kann aber über die grafische Nutzeroberfläche schnell verändert werden. Ebenso eingestellt werden können andere Netzparameter, wie die Anzahl der Trainingszyklen, die Lernrate, der Momentumfaktor und die individuellen Grenzwerte (z.B. maximale Menge Kohlenhydrate pro Mahlzeit).

Nutzeroberfläche

Die Ausgabe besteht aus dem vorhergesagten Blutzuckerwert in mmol/l (Millimol pro Liter, international gültige Einheit), in grafischer, farbiger und nummerischer Form. Das Bild 2 zeigt die Benutzeroberfläche des Prototyps der Anwendung. Die endgültige Benutzerversion sollte keine Elemente zur Änderung der Netzparameter enthalten.

Erweiterungen der Anwendung sind möglich, z.B. durch Hinzufügen anderer Aktivierungsfunktionen (z.B. Tangens hyperbolicus), weiterer Lernverfahren (z.B. Quick Prop) oder durch gänzlich andere Netzstrukturen (z.B. Kohonen Map).

Einsatzgebiete einer erweiterten Version der vorgestellten Anwendung können Trendvorhersagen in Blutzuckermessgeräten mit Speicher sein, Steuermechanismen in mit Glukose-Sensoren gekoppelten Insulinpumpen oder die Erforschung der auf den Blutzuckerverlauf wirkenden Einflussparameter. Für solche Anwendungen müssen jedoch noch umfangreiche Testreihen und Untersuchungen der Netzalgorithmen stattfinden.

Hier kann die vollständige Dokumentation heruntergeladen und eine Demonstration der Anwendung (in Form eines Applets) ausgeführt werden.

Dokumentation im PDF-Format (156 KB)

Demonstration der Anwendung als Applet