Bei Neuronalen Netzen geht es darum, dem Computer das Lernen
(nicht das Denken) 'beizubringen'. Der Computer soll an Beispielen
lernen und sein 'Wissen' auch auf andere Beispiele übertragen können.
Der Aufbau eines neuronalen Netzes ist durch den Aufbau des menschlichen Nervensystems
inspiriert.
Eigentlich macht ein trainiertes neuronales Netz auch nur das, was ein 'normales' Computerprogramm macht :
Es wandelt eine Menge von Eingaben in eine Menge von Ausgaben um.
Neuronale Netze können in verschiedenen Bereichen eingesetzt werden. Diese sind
beispielsweise :
Mustererkenung
Funktionsapproximation
Optimierung
Prognose
und Regelung
Dabei haben sie eine Menge wünschenswerter Eigenschaften:
sie sind lernfähig
Dies bedeutet, das neuronale Netze unabhängig von einem
speziellen Anwendungsgebeit sind. Durch das 'Erlernen'
geeigneter Trainingsmuster kann ein neuronales Netz an das
gewünschte Anwendungsgebiet 'angepaßt' werden.
sie sind robust
Dadaurch, daß bei einem neuronalen Netz viele einzelne
Elemente zusammengeschaltet sind, sind die relativ
unempfindlich, wenn einige dieser Elemente ausfallen.
sie sind fehlertolerant
Neuronale Netze können auch verrauschte Daten bearbeiten
sie sind generalisierungsfähig
Neuronale netze können Entscheidungsflächen ausbilden, die
über die Trainingsdaten hinaus gültig sind.
die haben (oft) eine hohe Performanz
Viele Netzsorten sind im Einsatz (also nach dem Training)
sehr schnell. Daher sind sie gut für Realzeitanwendungen
geeignet.
Die wohl wichtigste Fähigkeit neuronaler Netze ist die Klassifikation von Daten. Dabei
werden Daten des Eingaberaumes (die Eingabedaten) auf Daten Ausgaberaumes (die
zugehörige Klasse) abgebildet.
Ein Hauptanwendungebiet für neuronale Netze ist die Mustererkennung.
Dies ist eigentlich auch nur ein Spezialfall der Klassifizierung. Es wird ein Muster (z.B. eine
Bildinfornmation) dem Netz übergeben und dieses sucht dann eine entsprechend eingelerntes
Musterbeispiel, daß der Eingabe am besten entspricht. Dieses Musterbeispiel ist einfach die
zum übergebenden Bild gehörende Klasse.
Damit neuronale Netze arbeiten können, müssen die Daten in einem geeigneten Format vorliegen
Z.B. kann ein Bild als eine Bitmap vorliegen. Wichtig sind bei der Umwandlung von realen
Daten in Daten die das nN verstehen kann, die relevanten Beschreibungsmerkmale. Z.B. ist
es für die Bilderkennung wichtiger, daß die Muster einigermaßen vernüftig 'zu erkennen'
sind als eine ultrahohe Farbauflösung.
Das Klassifikationsproblem
Ein Musterraum zerfällt in mehrere Partitionen, d.h. disjunkte Teile, die zusammen den
gesamten Musterraum abdecken. Diese Partitionen sind die sogenannten Klassen,
denen jedes Element , daß dieser Partition angehört zugeordnet werden soll. Es muß
nun eine entsprechende Darstellung der Grenze zwischen diesen Partitionen gefunden
werden. Kennt man die Grenzen, kann man sehen, zu welcher Partition das Element gehört.
Es gibt mehrere Ansätze, wie diese Grenzen dargestellt werden.
parametrische Ansätze
hier wird der darzustellenden Grenze ein bestimmter
Verlauf unterstellt (z.B. hat die Form eines Dreiecks)#
linear,quadratisch, stückweise linear
auch hier wird ein bestimmter Verlauf unterstellt
Format der Ein- und Ausgaben
Die Daten des Eingabe und Ausgaberaumes müssen in ein Format gebarcht werden,
das von einem neuronalen Netz akzeptiert wird. Man verwendet hier Vekltoren, deren
Elemente binär oder reale Zahlen sind. Die Musterräume werden in solche Vektoren umgewandelt.
Klassifikationstechniken
Die Nearest neightbour - Klassifikation
Für eine Klasse werden eine oder mehrere Repräsentanten ausgewählt.
Ein zu klassifizierendes Element wird genau der Klasse zugeordnet, zu deren
Musterelementes es den geringsten Abstand hat.
Ein Problem hier sind statistische Ausreißer in den Musterelementen. Um dieses
Problem zu verringern, kann man die sogenannte k-nearest Neighbour - Klassifikation
anwenden. Hier wird als 'Vergleichsabstand' jeweils der Durchschnitt der k ähnlichsten
Elemente jeder Klasse ausgewählt.
Distanzmetriken
Eine Distanzmetrik wird verwendet, um den Abstand von zwei Elementen (also hier
Vektoren) zu bestimmen. Eine Metrik ist eine Funktion, die auf zwei Elemente angewendet
wird. Sie hat einige Eigenschaften:
|| u , u || = 0 Ein Element hat zu sich selbst den Abstand 0
|| u , v || = || v , u || Eine Metrik ist symmetrisch
|| u,v || >= 0 ist nur positiv
Es gibt verschiedene Metriken.
Die Hamming-Distanz
Die Hamming-Distanz berechnet den Fehler (den Betrag der Differenz) von jedem
Vektorelement aus und addiert die Ergebnisse.
Euklidische Distanz
Das ist zum Beispiel der gewöhnliche Abstand im zweidimensionalen oder dreidimensionalen Raum.
Sie wird wie folgt berechnet :
Zwischen zwei Vektorelementen (an der gleichen Position) wird die Differenz errechnet und quadriert.
Diese qaudrierten Differenzen werden addiert und aus dem Gesamtausdruck wird die Wurzel gezogen.
lineare Klassifikatoren
Auf dem Musterraum wird eine lineare Funktion definiert. Dieser wird dadfurch in zwei
Teile (die beiden Klassen) aufgeteilt. Liefert die Funktion für ein Element einen Wert
kleiner als Null, gehört es zu der einen Klasse ; sonst zu der anderen.
Werden mehrere Funktionen auf dem Musterraum definiert, können auch mehr Klassen
ausgebildet und erkannt werden. Z.B. Kann man durch zwei Funktionen bis zu 4 Klassen
unterscheiden.
Bayes-Klassifikation
Hier wird mit Wahrscheinlichkeiten gerechnet. Ein Element wird der Klasse zugewiesen, zu der
er am wahrscheinlichsten gehört (wohin auch sonst). Das Problem ist hier meist, daß man meist
diese Wahrscheinlichkeit nicht genau kennt. Kann man einige andere Wahrscheinlichkeiten
abschätzen, kan man die Bayes'sche Formel verwenden, um die gesuchte Wahrscheinlichkeit
auszurechenen.
siehe hierzu auch weiter hinten
Fehlerabschätzung
Da neuronale Netze an Beispielen lernen, kann es auch sein, daß sie Fehler machen,
also ein Element in die falsche Klasse einordnen. Die Fehlerrate ist das Verhältnis vom
Anzahl der gemachten fehler und Anzahl der Datensätze insgesamt. Die tatsächliche
Fehlerrate ist die Fehlerrate auf dem gesamten Eingaberaum. Sie läßt sich nicht ermitteln,
wenn dieser unendlich viele Elemente enthält. Daher muß man sich mit Schätzungen der
Fehlerrate zufriedengeben. Es bleibt die Frage, wie gut die tatsächliche Fehlerrate durch
Berechnen mit nur endlich vielen Datenwerten angenähert werden kann.
Fehler,Kosten, Risiken
Allein die Fehlerrrate ist nicht sehr aussagekräftig. Oft sind Fehlklassifikationen
unterschiedlich zu bewerteten. Beispiel Man hat ein neuronales Netz, das zur
Diagnose eingesetzt wird, also als Eingabe einen Vektor von medizinischen Messwerten
erhält und als Ausgabedie Werte "gesund" und "krank" hat. Eine Falsche Einordnung
von einem Gesunden als krank hat weniger schlimme Folgen als umgekehrt.
Um so etwas auch zu berücksichtigen, gibt einen Wert,genannt Kosten. Um diesen zu
berchnen werden die 'Kosten' jeder Fehlinterpretation aufgestellt. Die Spalten bilden die
eingeordnete Klasse und die Spalten die Richtige Klasse. Die Einträge stellen die Kosten
dar. Da die Diagonale der Matrix die 'richtigen' Zuordnungen enthält sind die Kosten hierfür
natürlich Null.
Beispiel
Kosten für zugeordnete klasse :
richtige Klasse
krank
gesund
krank
0
10
gesund
3
0
Hier sieht amn, daß wenn eine Gesunder als krank eingestuft wird, fallen Kosten in Höhe von 3 an.
Wird ein Kranker als gesund eingeordent fallen aber KOsten von 10 an.
Die Gesamtkosten einer gegebenen Datenmenge lassen sich nur berechnen, wenn die richtigen
und Fehlentscheidungen auch etwas differenzierter als bei der Fehlerrate betrachtet werden.
Man verwendet hier die gleiche Matrxi, nur daß statt der Kosten die Anzahl der Elemente
eingetragen werden, die 'dorthin' klassifiziert wurden. Beispielsweise werden 67 Gesunde
richte eingeordnet, 4 Gesund als krank ; 5 Kranke als Gesund und 43 Kranke als krank klassifiziert.
krank
gesund
krank
43
5
gesund
4
67
Die Kosten werden nun berechnet, indem man die Matrizen elementweise multipliziert und die
Ergebnisse Ausummiert. Im Beispiel ergeben sich so Kosten von :
K gesamt = 43 * 0 + 5*3 + 4*10 + 67*0 = 55.
Die relativen Kosten berechnet man, indem man die Gesamtkosten durch die Anzahl an Daten teilt :
K relativ = K gesamt / N = 55 / (43+5+4+67) = 55 / 119 = 0,462
Möchte man nun auch noch richtige Klassifikationen bewerten, kommt man zum Begriff der Risiken.
Ich persönlich finde diesen Begriff ziemlich daneben, da hohe Risiken hier etwas 'Gutes' bedeuten
sollen, was ja im Allgemeinen nicht so ist.
Um die Risiken zu berehnen, nimmt man die Kostenmatrix und negiert alle Einträge. Nun trägt man
noch in die Diagonale die gewünschten Werte ein. Mit dieser Risikomatrix wird nun genauso
verfahren wie mit der Kostenmatrix um die Gesmtrisiken und relativen Risiken zu berechnen.
Mißt man die Fehlerrate oder Kosten/Risiken auf den Musterbeispielen (auch Trainingsbeispiele
genannt) kann man uneter Umstände sehr schlechte Abschätzungen erhalten, für die Fehlerrate
auf der Gesamtmenge. Z.B. hätte eine Tabelle mit den entsprechenden Einträgen stets Null Fehler,
aber diese könnte andere Beispiele nicht verarbeiten. Diese sogenannte Gereralisierungsfähigkeit
ist jedoch ein schönes Merkmal von neuronalen Netzen. Wir das neuronale Netz zu sehr auf die
Trainingsdaten ausgerichtet, spricht man von 'Overfitting' . Um so etwas zu vermeiden gibt es
eine Reihe von Ansätzen. Ein einfacher Ansatz
Ein sehr einfacher Ansatz ist die Train- und Test - Methode. Hier wird die Menge der
Trainingsbeispiele (Trainingsmenge) in zwei Teile aufgespalten. Mit einem Teil wird das
neuronale Netz trainiert, mit dem anderen wird die Fehlerrate gemessen. Das Netz gilt erst
als trainiert, wenn die Fehlerrate unter einem vorher festgelegten Wert gesunken ist.