| Neuronale Netze: Fehler | |||||||||||||
5. FehlerIn diesem Abschnitt erfahren Sie, warum bei einer Simulation mit einem neuronalen Netz Fehler auftreten können und wie diese zu behandeln sind.
5.1 Grundlegende BemerkungenHat man mit Hilfe eines neuronalen Netzes Ausgabedaten erhalten, stellt sich die Frage, mit welchem Fehler diese Daten behaftet sind. Es ist nie möglich, mit Hilfe eines neuronalen Netzes eine fehlerlose Vorhersage zu machen. Deshalb ist es besonders wichtig, Fehler abzuschätzen.
Mögliche Fehlerquellen stecken zum einen in der eingeschränkten Vorhersagefähigkeit des Netzes, zum anderen in dem immer vorhandenen Fehler der Eingabedaten. Das bedeutet, daß für eine Fehlerabschätzung unterschiedliche Fehlerquellen zu berücksichtigen sind.
Oft hört oder liest man, daß ein neuronales Netz im Prinzip eine beliebige Präzession erlaubt. Das ist richtig, wenn beliebig viele Trainingsdaten beliebig hoher Genauigkeit zur Verfügung stehen und wenn man beliebig komplexe Netze simulieren kann. Ersteres ist der Fall, wenn die zu lernende Funktion schon bekannt ist. Für praktische Anwendungen ist dies aber nie der Fall.
5.2 FehlerquellenSystematische Fehler der Eingabedaten müssen bei der Datenaufnahme soweit möglich vermieden werden. In Fällen, wo das nicht möglich ist, kann ein bekannter systematischer Fehler eventuell bei der Kodierung eliminiert werden.
Statistische Fehler der Eingabedaten lassen sich mit geeigneten statistischen Methoden meist abschätzen. In vielen Fällen spielen die statistischen Fehler der Eingabedaten nur eine untergeordnete Rolle. In Fällen, wo dies nicht der Fall ist, ist zu klären, wie sich die Fehler in dem neuronalen Netz fortpflanzen und welchen Einfluß sie auf die Ausgabedaten haben. Statistische Fehler der Eingabedaten sind aber im strengen Sinn kein Fehler des neuronalen Netzes.
Fehler des neuronalen Netzes selbst können verschiedene Ursachen haben. Zum einen ist es möglich, daß die Daten, mit denen das Netz trainiert wurde, nicht die für die Aufgabe nötige Information enthalten haben. Zum zweiten kann es sein, daß das Netz nicht das für die Aufgabe nötige Design aufweist, also beispielsweise zu einfach konstruiert ist und damit die gestellte Aufgabe nur unvollständig erfüllen kann. Zum dritten besteht die Möglichkeit, daß die Eingabedaten in einem Parameterbereich liegen, in dem das Netz nicht trainiert worden ist. In diesen drei Fällen kann man die Fehler durch eine geeignete Modifikation des Netzes oder durch eine bessere Auswahl der Trainingsdaten vermeiden. Wenn ein Netz trotz solcher Modifikationen große Fehler macht, läßt sich das gestellte Problem mit Hilfe eines neuronalen Netzes eventuell nicht lösen.
Wenn man davon ausgeht, daß das Netz richtig modelliert wurde und die Trainingsdaten die nötige Information enthalten, bleibt schließlich die Abschätzung der statistischen Fehler des Netzes.
5.3 Fehler bei KlassifizierungenEine typische Aufgabe eines neuronalen Netzes ist die Klassifizierung von Datensätzen. Die Ausgabedaten sind in diesem Fall diskret. Ein typisches Beispiel einer Klassifizierung hat man in der Fertigungskontrolle: Ein Produkt ist entweder in Ordnung oder mangelhaft. Die Klassifizierung der Produkte in diese zwei Klassen kann in unter Umständen mit einem neuronalen Netz automatisiert werden.
Um diskrete Ausgabedaten zu erhalten, wird in der Regel ein Schwellenwert eingeführt. In dem einfachen Beispiel der Fertigungskontrolle gibt es zwei Klassen, die mit 1 (Produkt ist in Ordnung) und 0 (Produkt ist mangelhaft) bezeichnet werden können, und in die kontinuierlich verteilte Daten eingeordnet werden. Die Schwelle wird in diesem Fall zwischen 0 und 1 liegen. Je nach der Struktur der Daten kann man den Fehler in solchen Fällen durch eine Variation der Schwelle beeinflussen. In welchem Bereich die Schwelle variiert werden kann, hängt dabei von der konkreten Problemstellung ab. Die statistischen Aussagen, die mit einem solchen Netz möglich sind, sind von dem Typ, daß ein Datensatz mit einer bestimmten Wahrscheinlichkeit zu einer bestimmten Klasse gehört.
Im Fall von Klassifizierungen geben die Ausgabedaten schon selbst einen Hinweis darauf, wie gut die Klassifizierung gelungen ist. Typischerweise wird die Klassifizierung umso ungenauer, je näher man der Schwelle kommt. Einen guten Hinweis auf Fehler bei Klassifizierungen bekommt man, wenn man um die Schwelle eine Ausschlußregion fester Breite festlegt und bei einer Variation der Schwelle und der Breite feststellt, wieviele Datensätze in diese Ausschlußregion fallen.
5.4 Fehler bei kontinuierlichen AusgabedatenFür kontinuierliche Ausgabedaten können absolute Fehler oder relative Fehler angegeben werden. Typischerweise wird in diesen Fällen der Fehler auch davon abhängen, in welchem Parameterbereich man sich befindet. Man kann die Abbildung der Eingabedaten auf die kontinuierlichen Ausgabedaten als eine nichtlineare Funktion auffassen, die das Netz lernen soll. Hat man homogen verteilte Trainingsdaten, so wird diese Funktion in Regionen geringer Krümmung häufig leichter gelernt als in Regionen starker Krümmung. Das führt dazu, daß der Fehler in Regionen starker Krümmung größer wird. Stark inhomogene Verteilungen der Fehler können also auf solche Regionen hindeuten, sie können ihre Ursache aber auch in der Verteilung der Trainingsdaten haben.
5.5 Abschätzung der FehlerDie Fehlerabschätzung für ein neuronales Netz basiert in der Regel auf Testläufen. Die Menge vollständiger Datensätze wird in Trainings- und Testdaten zerlegt, das Netz wird mit den Trainingsdaten trainiert und anschließend mit den Testdaten getestet. Die dabei auftretenden Fehler sind die Grundlage für die Fehlerabschätzung. Da in der Regel nur endlich viele vollständige Datensätze vorliegen, besteht hier ein Dilemma: Auf der einen Seite benötigt man viele Trainingsdaten, um zu gewährleisten, daß das Netz hinreichend gut trainiert ist, zum anderen benötigt man hinreichend viele Testdaten, um die Fehler abschätzen zu können. Wie die Aufteilung in Test- und Trainingsdaten vorgenommen wird, hängt von den Gegebenheiten ab und variiert von Problemstellung zu Problemstellung.
Eine weitere Möglichkeit der Fehlerabschätzung, die besonders bei der Berücksichtigung von statistischen Fehlern der Eingabedaten eine Rolle spielt, ist die Fehlerfortpflanzung. Kennt man die Parameter eines (trainierten) Netzes, dann kann die Fortpflanzung des Fehlers der Eingabedaten abgeschätzt werden. Diese Abschätzungen erlauben eventuell, Regionen starker Krümmung zu identifizieren.
Eine weitere Möglichkeit, Fehler abzuschätzen, besteht darin, die Datensätze selbst mittels eines Zufallszahlengenerators mit einem bekannten Fehler zu versehen und die Reaktion des Netzes auf die so verrauschten Daten zu untersuchen.
5.6 Bedeutung und Interpretation von FehlernAus den (sauber abgeschätzten) Fehlern kann man häufig etwas über das Verhalten des Netzes lernen. Beispielsweise haben wir oben schon gesehen, daß eine inhomogene Verteilung der Fehler auf starke Krümmungen der zu lernenden Funktion hinweisen kann. Unter Umständen besteht dann die Möglichkeit, dem Netz in diesen Parameterbereichen weitere Trainingsdaten zur Verfügung zu stellen. Man kann auf diese Weise auch Regionen im Parameterraum identifizieren, die von dem Netz schlecht gelernt werden, um damit dann das Design des Netzes geeignet anzupassen.
Ein grundsätzliches Problem, das bei der Fehlerabschätzung auftritt, besteht darin, daß in vielen Fällen die Verknüpfungen innerhalb des Netzes nicht eindeutig sind. Eine typische Lernstrategie, bei der der Fehler der Testdaten minimiert wird, liefert bei unterschiedlichen Trainingsläufen oft unterschiedliche Konfigurationen, die einen vergleichbar kleinen Fehler aufweisen. Dies tritt insbesondere dann auf, wenn die Eingabedaten redundante Informationen enthalten. Oft kann dieses Problem aber nicht behoben werden. Damit wird die Fehlerabschätzung zusätzlich erschwert. Eine Möglichkeit besteht dann darin, mit einem Ensemble von Netzen zu arbeiten, die mit Gewichten versehen sind, die ihrerseits vom Fehler der Testläufe abhängen. Gerade bei medizinischen Anwendungen, bei denen zum einen oft nicht sehr viele Datensätze zur Verfügung stehen, zum anderen die Daten selbst größere statistische Fehler aufweisen, hat sich dieses Verfahren bewährt. Wir kommen auf diese Variante später zurück.
5.7 SpezialfälleEs gibt spezielle Aufgabenstellungen und damit spezielle Varianten von Mehrschicht-Perceptronen, bei denen dem Fehler eine besondere Bedeutung zukommt. Ein Beispiel ist die Vorhersage der Eingabedaten aus den Eingabedaten. Zunächst scheint diese Aufgabe sinnlos zu sein. Führt man aber eine oder mehrere Zwischenschichten mit weniger Neuronen als Ein- und Ausgabedaten ein, so wird diese Aufgabe nichttrivial. Der Sinn einer solchen Anwendung kann darin bestehen, die Datensätze zu einer Klasse zusammenzufassen und zu erkennen, ob neue Datensätze in diese Klasse passen. In der kleineren Zwischenschicht liegen die Eingabedaten in komprimierter Form vor. Die Voraussetzung, die hier gemacht wird, besteht also darin, daß alle Datensätze die gleiche Informationsdichte haben und in ähnlicher Weise komprimiert werden können. Tritt bei einem neuen Datensatz ein großer Fehler in den Ausgabedaten auf, stimmen diese also nicht mehr mit den Eingabedaten überein, so hat man ein Indiz dafür, daß dieser neue Datensatz nicht zu der Klasse gehört.
|
|
|
Copyright (c) Andreas Mielke 1999-2010. Letzte Änderung: 04.03.2011. info@andreas-mielke.de |