|
Nächste Seite: 9. Neuronale Fuzzy Systeme Aufwärts: I. Der Untersuchungsbereich Vorherige Seite: 7. Fuzzy Logik   Inhalt
|
|
- Eingangssignale
: - Diese Daten können von der Umgebung
oder vom Ausgang eines anderen künstlichen Neuron
stammen. Unterschiedliche Netzwerkmodelle erlauben dabei
unterschiedliche Wertebereiche. Typische Wertebereiche sind die
reellen Zahlen, das Intervall
oder die diskreten Werte
.
- Gewichte
: - Jeder Verbindung in einem Neuronalen Netz ist eine reelle Zahl als Gewicht zugeordnet. Dieses Gewicht beschreibt die Stärke der Verbindung. In diesen Verbindungsgewichten ist das Wissen des Neuronalen Netzes gespeichert.
- Netto-Input
: - Der Netto-Input entspricht der Summe der
gewichteten Eingangssignale.

(8.1) - Aktivierungsfunktion
: - Die Aktivierungsfunktion
bestimmt, abhängig vom Netto-Input
, den Output
des
Neurons. Dieser Output
kann das Eingangssignal für ein
anderes Neuron sein oder das Ausgangssignal des Neuronalen
Netzes. Als Aktivierungsfunktion wird meist eine der nachfolgenden
Grundtypen verwendet:
- Schwellwertfunktion:

(8.2) Der Funktionsverlauf ist in Abbildung 8.2 graphisch dargestellt. Neuronen (Gatter), die diese Aktivierungsfunktion verwenden, nennt man Schwellwertgatter. Das in Abschnitt 8.3 vorgestellte Perzeptron, stellt ein solches Schwellwertgatter dar.
- Sigmoide Funktion:
-

(8.3) Der Funktionsverlauf ist in Abbildung 8.3 graphisch dargestellt. Der Unterschied der Sigmoiden Funktion zur Schwellwertfunktion ist, daß diese ein kontinuierliches Ausgangssignal liefert und differenzierbar ist. Erst dadurch werden Lernverfahren wie das Backpropagation-Learning, das in Abschnitt 8.4 vorgestellt wird, möglich. Gatter, die diese Aktivierungsfunktion verwenden, nennt man Sigmoide-Gatter.
- Lineare Funktion:
-

(8.4) Der Funktionsverlauf ist in Abbildung 8.4 graphisch dargestellt. Die lineare Funktion stellt die einfachste und am wenigsten mächtige Aktivierungsfunktion dar. Gatter die diese Aktivierungsfunktion verwenden, nennt man Linearegatter. Bei der linearen Aktivierungsfunktion ist zu beachten, daß eine Hintereinanderschaltung mehrerer linearer Gatter nur die selbe Funktion berechnen kann, wie ein einzelnes Gatter. Der Grund dafür ist, daß eine Hintereinanderschaltung von linearen Funktionen wieder linear ist8.3.
Zusätzlich zu den Eigenschaften der individuellen Neuronen, werden die Eigenschaften eines Neuronalen Netzes auch durch folgende Charakteristika bestimmt: [Luger1997]
- Netzwerktopologie:
- Unter der Topologie des Netzwerkes wird das Muster der Verbindungen zwischen den einzelnen künstlichen Neuronen verstanden. Meistens werden die Neuronen in Schichten (Layern) angeordnet. Auf die Einschränkungen, die aus der Topologie folgen, wird im nächsten Abschnitt noch näher eingegangen.
- Lernalgorithmus:
- Darunter versteht man jenen Algorithmus, mit dem das Netzwerk auf seine zukünftige Aufgabe trainiert wird. In Abschnitt 8.4 wird der Backpropagation Algorithmus als grundlegender Algorithmus für das Lernen in Neuronalen Netzen vorgestellt.
In diesem Abschnitt wurden die grundlegenden Eigenschaften eines Neuronalen Netzes besprochen. Darauf aufbauend soll im nächsten Abschnitt die Arbeitsweise von Neuronalen Netzen anhand des Modells von McCulloch und Pitts erläutert werden.
8.3 Das Perzeptron
Das Perzeptron von McCulloch und Pitts (1943) stellt den ersten Ansatz von Neuronal Computing dar. [Luger1997] Anhand dieses historischen Ansatzes soll die Arbeitsweise eines Neuronalen Netzes veranschaulicht werden. Dabei werden auch die Grenzen dieses Modells beleuchtet und ein Ausweg in der Verwendung von Multi-Layer-Perzeptronen gezeigt.
Ein Perzeptron ist ein Neuron, wie dies in Abbildung 8.1
dargestellt ist. Als Eingangssignale sind die reellen Zahlen zulässig,
die Gewichte entsprechen ebenfalls reellen Zahlen. Als
Aktivierungsfunktion dient eine Schwellwertfunktion mit variabler
Schwelle (Threshold
). Das Ausgangssignal des Perzeptrons ist
somit diskret aus der Menge
. [Haykin1994]
![]() |
(8.5) |
Zur Vereinfachung kann die Aktivierungsfunktion auch anderst angeschrieben werden:
![]() |
(8.6) |
Verwendet man diese Schreibweise, so kann man erkennen, daß der
Threshold
auch als zusätzliches Gewicht für einen
zusätzlichen Eingang, der konstant auf 1 liegt, aufgefaßt werden
kann. Ein Perzeptron mit der Realisierung des Schwellwerts durch einen
zusätzlichen Eingang und einem zusätzlichen Gewicht ist in Abbildung
8.5 dargestellt. Somit ergibt sich für die
Aktivierungsfunktion:
|
![]() |
(8.7) |
Durch diese Schreibweise, kann wie später gezeigt wird, der Perzeptron Lernalgorithmus für die Gewichte, als auch für die Schwellwerte einfach angeschrieben werden.
|
Wie Abbildung 8.6 zeigt, können mit der Hilfe von
Perzeptronen logische Gatter realisiert werden. Die gewichtete Summe
für das UND-Gatter lautet:
| (8.8) |
|
Die stärke Neuronaler Netze liegt jedoch in der Eigenschaft, daß sie auf ihre spätere Aufgabe trainiert werden können. Als einfacher Lernalgorithmus soll hier der Perzeptron-Lernalgorithmus vorgestellt werden.
8.3.1 Der Perzeptron Lernalgorithmus
Der Perzeptron Lernalgorithmus wurde erstmals 1958 von F. Rosenblatt vorgestellt. Dabei handelt es sich um ein einfaches überwachtes Lernverfahren. Zu Beginn der Lernphase werden die Gewichte zumeist zufällig initialisiert. Als ersten Lernschritt legt man am Eingang das gewünschte Eingangsmuster an und vergleicht das Ausgangssignal des Perzeptrons mit dem gewünschten Wert. Durch den Lernalgorithmus werden im nächsten Schritt die Gewichte so verändert, daß der Fehler reduziert wird. Die Änderung der Gewichte erfolgt nach folgender Formel: [Luger1997]
>
| Gewichtsänderung des Gewichts |
||
| Lernrate, bestimmt die Größe der Schritte mit
denen das Gewicht verändert wird. |
||
| gewünschter Output des Trainingsbeispiels | ||
| tatsächlicher Output des Perzeptrons
|
||
| Eingangssignal am Eingang |
Die Berechnung der neuen Gewichte erfolgt dann mit der Formel:
| (8.10) |
Da der Ausgang des Perzeptrons nur die diskreten Werte
annehmen kann, kann der Faktor
aus Formel 8.9
nur die Werte
annehmen. Somit werden für jedes Gewicht
folgende Schritte vollzogen:
- Ist der gewünschte Output und der tatsächliche Output gleich, dann tue nichts.
- Ist der gewünschte Output
und der tatsächliche Output
, so wird das Gewicht um
erniedrigt. - Ist der gewünschte Output
und der tatsächliche Output
, so wird das Gewicht um
erhöht.
Mit der Lernrate
kann die Größe der Gewichtsänderung
eingestellt werden. In der Praxis wählt man die Lernrate als Kompromiß
zwischen möglichst großen Lernschritten (großes
) und möglichst
geringer Veränderung des bereits gelernten (kleines
). Ist die
Lernrate zu groß, kann ein Lernschritt zuvor gelerntes zerstören. Das
Netz merkt sich jeweils das zuletzt präsentierte Muster am besten.
Zuvor erlernte Muster bleiben jedoch nicht ausreichend genug
gespeichert. Ist die Lernrate zu klein, sind dementsprechend viele
Lernschritt notwendig. In der Praxis wird oft am Beginn der Lernphase
die Lernrate groß gewählt, um mit großen Schritten näher zur Lösung zu
gelangen, und mit der Fortdauer des Lernprozesses immer mehr
verringert. [Köhle1990]
Die Vorgehensweise des Perzeptron Lernalgorithmus bewirkt, daß die
Gewichte in der Art verändert werden, daß sich der durchschnittliche
Fehler über die gesammte Menge der Testdaten minimiert. Existiert ein
Satz von Gewichten
, sodaß für alle Trainingsdaten der korrekte
Output ausgegeben wird, so konvergiert der Perzeptron Lernalgorithmus
zu einer Lösung. Dies wurde 1969 von Minsky und Papert
bewiesen [Luger1997]. Die Lösung muß jedoch nicht eindeutig sein,
d.h. es können mehrere Sätze von Gewichten existieren, die zu den
Trainingsdaten den korrekten Output liefern. Anschaulich wird dies,
durch die, im folgenden eingeführte, grafische Interpretation der
Arbeitsweise eines Perzeptrons.
Es stellt sich nun die Frage, welche Probleme sich mit der Hilfe eines Perzeptrons lösen lassen. Um dies zu veranschaulichen, kann ein Perzeptron als Klassifikator angesehen werden. Einem Eingangsmuster wird entweder die Zahl 0 oder 1 am Ausgang zugeordnet. Dies kann als Zuordnung zur Klasse ,,0'' oder Klasse ,,1'' aufgefaßt werden. Das Perzeptron trifft somit die Entscheidung, ob ein Eingangsmuster zur Klasse ,,0'' oder ,,1'' gehört.
Graphisch kann das Perzeptron als Klassifikator folgendermaßen veranschaulicht werden. Als Beispiel soll an dieser Stelle ein Perzeptron mit zwei Eingangsvariablen dienen, wie diese in Abbildung 8.6 a. und b. dargestellt sind. Ein Eingangssignal wird auf der x-Achse, das andere auf der y-Achse aufgetragen. In der Ebene, die sich so ergibt, werden die Ausgangssignale entsprechend ihren Koordinaten eingetragen. Dabei stellt ein leerer Kreis ein Element der Klasse ,,0'', ein gefüllter Kreis ein Element der Klasse ,,1'' dar. Dies ist in Abbildung 8.7 für das UND, ODER und das XOR-Gatter dargestellt.
Das Trainieren eines Perzeptrons kann somit als finden einer Trennung zwischen den beiden Klassen aufgefaßt werden. Für das UND- und das ODER-Gatter kann diese Trennung durch eine einzige Linie vorgenommen werden, welche die beiden Klassen trennt. In diesem Fall nennt man die Klassen linear separierbar. Für den Fall des XOR-Gatters sind dazu zwei Linien notwendig. Es läßt sich nun zeigen, daß linear separierbare Klassifikationsprobleme durch ein Perzeptron gelöst werden können. Nicht linear separierbare Klassifikationsprobleme können durch ein einfaches Perzeptron nicht gelöst werden. Dies soll anhand des Problems des XOR-Gatters demonstriert werden.
Soll ein Perzeptron das XOR-Problem lösen, so müssen 3 Gewichte
existieren, sodaß Nachfolgende Ungleichungen erfüllt sind:
[Rojas1993]

Vereinfacht kann dies angeschrieben werden als:
Es ist nun offensichtlich, wenn die ersten drei Ungleichungen erfüllt sind, kann Ungleichung vier nicht erfüllt werden. Es existieren somit keine Gewichte um das XOR-Problem mit Hilfe eines Perzeptrons zu lösen. [Rojas1993]
Diese Einschränkung der Anwendbarkeit des Perzeptrons wurde 1969 von Minsky und Papert nachgewiesen und führte zu einer Stagnation in der Euphorie auf dem Gebiet der Neuronalen Netze. Da sich mit Hilfe von Perzeptronen logische Gatter realisieren lassen, war bekannt, daß durch eine Hintereinanderschaltung von mehreren Gattern auch das XOR-Problem und andere komplexe Probleme gelöst werden können. Es war jedoch kein Lernalgorithmus für mehrschichtige Perzeptronennetzwerke bekannt. Erst im Jahr 1986 wurde von Rumelhart, Hinton und Williams der Back-Propagation Algorithmus als Lernverfahren für mehrschichtige Perzeptronennetzwerke (Multi Layer Perzeptron) veröffentlicht und belebte das Interesse am Forschungsgebiet Neuronaler Netze. [Rojas1993]
8.4 Der Backpropagation Algorithmus
Am Ende des vorigen Abschnitts wurde erklärt, daß Netze bei denen mehrere Perzeptronen hintereinander geschalten sind, ein breiteres Anwendungsspektrum abdecken, als ein einfaches Perzeptron. Ein solches Multilayer Perzeptron (MLP) ist in Abbildung 8.8 dargestellt. Dabei sind die Perzeptronen in Schichten (Layern) angeordnet. Das Einganssignal wird an der Eingangs-Schicht (input layer) angelegt. Danach folgen ein oder mehrere Interne Schichten (hidden layer). Am Ende des Netzwerks folgt noch die Ausgangs-Schicht (output layer). Dabei ist jedes Neuron einer Schicht mit den Ausgängen aller Neuronen der Vorgängerschicht verbunden. Für die Angabe der Anzahl der Schichten eines Neuronalen Netzes gibt es in der Literatur keine einheitliche Vorgehensweise. In den meisten Fällen werden nur die Internen Schichten und die Ausgangsschicht gezählt. Ein Neuronales Netz mit einer Internen Schicht wird somit als zweischichtiges Neuronales Netz bezeichnet. [Haykin1994]
|
Die Anzahl der Internen Schichten die verwendet wird und wieviele Neuronen pro Schicht vorhanden sind, wird von der Komplexität der Aufgabe bestimmt. Grundsätzlich kann ein Perzeptron mit genügend vielen Neuronen in nur einer Internen Schicht und genügend vielen Trainingsbeispielen alle Aufgaben erfüllen, die auch eine Turing Maschine berechnen kann. [Rojas1993] Es werden jedoch trotzdem Netzwerke mit mehreren internen Schichten verwendet, da diese unter Umständen leichter zu trainieren sind. Dies hängt jedoch von der Art der Anwendung ab.
Es erweist sich jedoch nicht als sinnvoll, ein Neuronales Netz auf eine Aufgabe zu trainieren, die algorithmisch einfacher gelöst werden kann. So ist es z.B. nicht zielführend, ein Neuronales Netz auf die Multiplikation zweier Zahlen zu trainieren. Das Netz müßte erst durch viele Trainingsbeispiele das ,,1x1'' und dessen Anwendung erlernen. In diesem Fall erweist sich eine algorithmische Problemlösung als zielführender.
Der Backpropagation Algorithmus arbeitet in zwei Schritten. Im
Feedforward Schritt wird am Eingang ein Testmuster angelegt, und der
Output berechnet. Aus dem errechneten Output und dem gewünschten
Output wird mit Hilfe der Fehlerfunktion der Fehler berechnet. Dieser
Fehler wird nun im Backpropagation Schritt von der Ausgansschicht aus
auf die Gewichte in den einzelnen Layern aufgeteilt und diese in der
Art modifiziert, daß der Fehler reduziert wird. Als Fehlerfunktion wird
dabei der quadratische Fehler
verwendet.
| (8.11) |
| tatsächlicher Output des Neurons |
||
| gewünschter Output des Neurons |
Der Backpropagation Algorithmus sucht das Minimum der Fehlerfunktion
eines bestimmten Lernproblems durch Abstieg in der Gradientenrichtung
entlang der Fehlerfunktion. Die Kombination der Gewichte
eines Netzes, die den Berechnungsfehler minimiert, wird als Lösung des
Lernproblems betrachtet. Der Gradient der Fehlerfunktion muß somit für
alle Punkte des Gewichtsraums existieren, d.h. die partiellen
Ableitungen der Fehlerfunktion nach den einzelnen Gewichten müssen
überall definiert sein. Durch Verwendung der Sigmoiden-Funktion als
Aktivierungsfunktion wird die Fehlerfunktion des Netzes stetig und
überall differenzierbar. [Rojas1993] Zudem kann die Ableitung der
Sigmoiden-Funktion einfach als
Herleitung des Backpropagation Algorithmus
An diese Stelle soll nun der Backpropagation Algorithmus für ein Multilayer Perzeptron mit einer internen Schicht hergeleitet werden. Ein solches Netzwerk ist in Abbildung 8.9 dargestellt. Die Herleitung ist angelehnt an [Pao1989].
| Eingangssignal am Eingang |
||
| Gewichte zwischen der Eingangsschicht und der inneren Schicht | ||
| Netto-Input des Neurons |
||
| Output des Neurons |
||
| Gewichte zwischen der inneren Schicht und der Ausgangssicht | ||
| Netto-Input des Neurons |
||
| tatsächlicher Output des Neurons |
||
| gewünschter Output des Neurons |
Am Beginn der Trainingsphase werden alle Gewichte zufällig
initialisiert. Im Feedforward Schritt wird ein Eingangsmuster am
Eingang des Multilayer Perzeptrons angelegt und der Output des Netzes
berechnet. Dazu wird zuerst der Netto-Input der Neuronen im Layer
berechnet.
| (8.13) |
| (8.14) |
Im nächsten Schritt wird der Output des Layers
, der dem Output des
Multilayer Perzeptrons entspricht, berechnet. Der Netto-Input der
Neuronen im Layer
entspricht
| (8.15) |
| (8.16) |
Im Backpropagation Schritt wird nun mit Hilfe der Fehlerfunktion der
quadratische Fehler
berechnet.
Wobei
| (8.19) |
Mit Hilfe der Kettenregel kann die partielle Ableitung
| (8.21) |
| (8.22) |
| (8.23) |
und setzt dann in Gleichung 8.18 ein, so erhält man
Um den Ausdruck
zu
berechnen, verwendet man wieder die Kettenregel.
| (8.27) |
| (8.28) |
| (8.29) |
| (8.30) |
Eingesetzt in Gleichung 8.25 erhält man für die Änderung der Gewichte
| (8.32) |
Für den Fall, daß nur eine Interne Schicht vorhanden ist, entspricht in obiger Gleichung
Aus Gleichung 8.33 und 8.34 folgt nun somit
| (8.35) |
Da als Aktivierungsfunktion die Sigmoide-Funktion verwendet wird gilt
nach Gleichung 8.12
| (8.36) |
| (8.37) |
| (8.38) |
Zusammenfassend erfolgt die Gewichtsänderung während des Lernprozesses eines Multi Layer Perzeptrons mit Hilfe des Backpropagation Algorithmus nach folgenden Formeln:
| (8.39) | |||
| (8.40) |
Für die Berechnung der
's der inneren Schichten werden, nach
obigen Formeln, jeweils die
's der Vorgängerschicht in
Backpropagation-Richtung verwendet. Der Fehler wird somit vom Ausgang
zum Eingang ,,backpropagiert''.
Bei der Realisierung eines Neuronalen Netzes mit der Hilfe eines Multi Layer Perzeptrons muß darauf geachtet werden, daß die Topologie des Netzes in einem sinnvollen Zusammenhang mit der Anzahl der zur verfügungstehenden Trainingsbeispiele steht. Bei der Festlegung der Topologie wird festgelegt, aus wievielen Schichten ein Multi Layer Perzeptron bestehen soll und wieviele Neuronen sich in jeder internen Schicht befinden. Somit wird die Anzahl der Gewichte des Netzes festgelegt. Um jetzt ein sinnvolles trainieren des Netzes zu ermöglichen, sollte die Anzahl der Trainingsbeispiele um den Faktor 10 größer sein, als die Anzahl der Gewichte des gesamten Netzwerks. Ist obiger Zusammenhang nicht erfüllt, so existieren zuviele freie Parameter (Gewichte) im Netzwerk, alsdaß ein sinnvolles Training möglich wäre. [Haykin1994]
In Neuronalen Netzen ist das Wissen das aus den Trainingsdaten erlernt wurde in den Gewichten verteilt über das Netz gespeichert. Aus diesem gespeicherten Wissen kann der Mensch jedoch leider keine Rückschlüsse auf Gesetzmäßigkeiten und Regeln ziehen. Das erlernte Wissen ist somit für den Menschen nicht unmittelbar zugänglich, das Neuronale Netz arbeitet als ,,Black Box''. Im folgenden Kapitel soll aus der Verbindung von Fuzzy Logic und Neuronalen Netzen ein Ansatz gezeigt werden, bei dem unscharfe Regeln ähnlich wie bei Neuronalen Netzen erlernt werden können. Durch die Verwendung von Neuronalen Fuzzy Systemen wird es somit möglich, Einblicke in das vom System erlernte Wissen zu erhalten. [Kruse1997]
Nächste Seite: 9. Neuronale Fuzzy Systeme Aufwärts: I. Der Untersuchungsbereich Vorherige Seite: 7. Fuzzy Logik   Inhalt Gerald Reif
2000-02-01










