From 33613a85afc4b1481367fbe92a17ee59c240250b Mon Sep 17 00:00:00 2001 From: Sven Eisenhauer Date: Fri, 10 Nov 2023 15:11:48 +0100 Subject: add new repo --- .../assignment/Noll/ANFIS_Noll_Ausarb.odt | Bin 0 -> 273796 bytes .../assignment/Noll/ANFIS_Noll_Ausarb.txt | 163 +++++++++++++++++ .../assignment/Noll/ANFIS_Sugeno_Takagi_Kang.jpg | Bin 0 -> 55220 bytes .../NeuroFuzzy/assignment/Noll/ANFIS_Tsukamoto.jpg | Bin 0 -> 43733 bytes .../NeuroFuzzy/assignment/Noll/Formel_1.jpg | Bin 0 -> 21971 bytes .../NeuroFuzzy/assignment/Noll/Formel_2.jpg | Bin 0 -> 5073 bytes .../NeuroFuzzy/assignment/Noll/Formel_3.jpg | Bin 0 -> 6805 bytes .../assignment/Noll/Sugeno_Takagi_Kang_Regler.jpg | Bin 0 -> 28028 bytes .../NeuroFuzzy/assignment/Noll/Tabelle1.jpg | Bin 0 -> 38567 bytes .../assignment/Noll/Tsukamoto_Regler.jpg | Bin 0 -> 30842 bytes .../Noll/neuro-fuzzy-assignment_Inhalt_neu.pdf | Bin 0 -> 46535 bytes .../Noll/neuro-fuzzy-assignment_Teil_1.pdf | Bin 0 -> 397287 bytes .../Noll/neuro-fuzzy-assignment_Teil_2.pdf | Bin 0 -> 451273 bytes .../Noll/neuro-fuzzy-assignment_Teil_3.pdf | Bin 0 -> 422024 bytes .../Noll/neuro-fuzzy-assignment_Titelblatt_neu.pdf | Bin 0 -> 127072 bytes .../assignment/Noll/neuro-fuzzy-assignment_neu.pdf | Bin 0 -> 1433067 bytes .../assignment/img/ANFIS_Sugeno_Takagi_Kang.jpg | Bin 0 -> 55220 bytes .../NeuroFuzzy/assignment/img/ANFIS_Tsukamoto.jpg | Bin 0 -> 43733 bytes .../assignment/img/Sugeno_Takagi_Kang_Regler.jpg | Bin 0 -> 28028 bytes .../NeuroFuzzy/assignment/img/Tsukamoto_Regler.jpg | Bin 0 -> 30842 bytes .../NeuroFuzzy/assignment/img/logo_hda_fbi.png | Bin 0 -> 503318 bytes .../NeuroFuzzy/assignment/img/nefconexample.jpg | Bin 0 -> 308378 bytes .../NeuroFuzzy/assignment/literature.bib | 55 ++++++ .../assignment/neuro-fuzzy-assignment.tex | 43 +++++ .../NeuroFuzzy/assignment/part1.tex | 198 +++++++++++++++++++++ .../NeuroFuzzy/assignment/part2.tex | 142 +++++++++++++++ .../NeuroFuzzy/assignment/part3.tex | 122 +++++++++++++ 27 files changed, 723 insertions(+) create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.odt create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.txt create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Sugeno_Takagi_Kang.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Tsukamoto.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_1.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_2.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_3.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Sugeno_Takagi_Kang_Regler.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tabelle1.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tsukamoto_Regler.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Inhalt_neu.pdf create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_1.pdf create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_2.pdf create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_3.pdf create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Titelblatt_neu.pdf create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_neu.pdf create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Sugeno_Takagi_Kang.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Tsukamoto.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/img/Sugeno_Takagi_Kang_Regler.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/img/Tsukamoto_Regler.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/img/logo_hda_fbi.png create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/img/nefconexample.jpg create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/literature.bib create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/neuro-fuzzy-assignment.tex create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/part1.tex create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/part2.tex create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/part3.tex (limited to 'Master/Computational Intelligence/NeuroFuzzy/assignment') diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.odt b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.odt new file mode 100644 index 0000000..321849e Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.odt differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.txt b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.txt new file mode 100644 index 0000000..200ef87 --- /dev/null +++ b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Noll_Ausarb.txt @@ -0,0 +1,163 @@ +Anfis + +ANFIS wurde als weiteres Modell eines Neuro-Fuzzy-Systems 1992 von Jyh-Shing Roger Jang an der University of California at Berkeley entwickelt. +Es stellt ein Adaptive Network-based Fuzzy Inference System, also ein lernfähiges netzwerkbasiertes Fuzzy-Schlussfolgerungs-System dar. +Hierfür werden Fuzzy-Regeln in einem Neuronalen Netz implementiert. +Kennzeichnend für das ANFIS-Modell ist, daß die jeweiligen Zugehörigkeitsfunktionen festgelegt sind, währen sich die Parameter dieser Funktionen beim Lernvorgang verändern können. + +Mit ANFIS können zwei Typen von Fuzzy-Controllern emuliert werden. + + - Tsukamoto-Regler + - Sugeno-Takagi-Kang-Regler + +Der Mamdani-Regler kann nicht nachgebildet werden, da die Weitergabe von Fuzzymengen mit Neuronen nicht erreicht werden kann. [Sau08] + +Als Lernalgorithmus wird für ANFIS ein Hybrid-Lern-Algorithmus verwendet. + + + + +Tsukamoto-Regler + +Der Tsukamoto-Regler ist einer der beiden von ANFIS emulierbaren Fuzzy-Controllern. +Seine Funktionsweise kann wie folgt beschrieben werden. + + - Jede Regel aus der Regelbasis, des Controllers wird mit einer monotonen Zugehörigkeitsfunktion (ZGF) verknüpft. Im Bild unten C1, C2. + + - Die Ergebnisse dieser Zugehörigkeitsfunktion sind jeweils ein crisper Wert. + + - Der Ausgangswert z des Controllers wird gebildet, in dem das gewichtete Mittel aus den einzelnen crispen Funktionswerten z1, z2, ... zn berechnet wird. Das Ergebnis ist ebenfalls ein crisper Wert. Er muß daher nicht aufwendig defuzzyfiziert werden, wie es zum Beispiel bei einem Mamdani-Controller notwendig ist. + + + + Abbildung 1: Das Tsukamoto-Modell [Bar05] + + + +Sugeno-Takagi-Kang-Regler + +Der Sugeno-Takagi-Kang-Regler ist der zweite, von ANFIS emulierbare Fuzzy-Controller. +Seine Funktionsweise kann wie folgt beschrieben werden. + +Eine typische Regel mit zwei Eingangswerten lautet zum Beispiel: + + - If x is A1 and y is B1 then z = f(x,y) [Mic02] + +Wobei A1, B1 Werte linguistischer Variablen und x, y, z Crispe Werte sind. + + - Die anzuwendenden Regeln b.z.w. Funktionen werden nun anhand der Eingangswerte bestimmt. + + - Der Ausgangswert z des Controllers wird ebenfalls gebildet, in dem das gewichtete Mittel aus den einzelnen crispen Funktionswerten z1, z2, ..., zn berechnet wird. Das Ergebnis ist daher wie bei dem zuvor vorgestellten Controller auch ein crisper Wert, welcher nicht aufwendig defuzzyfiziert werden muss, wie es bei einem Mamdani-Controller erforderlich ist. + + + + Abbildung 2: Das Sugeno-Takagi-Kang-Modell [Bar05] + + + +Ein Beispiel, zur Verdeutlichung, wie die anzuwendende Regel ermittelt wird: + + - Gegeben seien A1 und A2 als crispe Eingangswerte. + + - Aufgrund vordefinierter Zugehörigkeitsfunktionen ZGF ergebe sich, daß der gegebene Wert für A1 der ZGF nK und der gegebene Wert für A2 der ZGF pK angehöre. + + - So ist in diesem Beispiel aus der nachfolgend aufgeführten Tabelle zu entnehmen, daß die Regel eN anzuwenden ist. + +Diese Regel könnte dann zum Beispiel so aussehen: ZeN = 0,01x + 0,025y + 7 + + + + + n negativ + p positiv + e etwas + N Null + K Klein + G Groß + +Tabelle 1: Bestimmung von Fuzzy-Regeln aufgrund der Zugehörigkeit der Einganswerte zu bestimmten Fuzzy-Mengen [Bar05] + + + +ANFIS-Architektur + +Die ANFIS Architekturen zur Nachbildung der beiden zuvor vorgestellten Fuzzy-Reglern bestehen jeweils aus einem 5-Schichten Modell. +Wie zu Anfang schon erwähnt werden im ANFIS Modell die Parameter der Regeln erlernt, während die Regeln selbst von Anfang an feststehen. In den nachfolgend gezeigten ANFIS-Architekturen werden die Optimierungen der Parameter in der ersten und vierten Schicht vorgenommen. +Die einzelnen Schichten dieser Architekturen übernehmen nun folgende Aufgaben. +In der ersten Schicht wird die Zugehörigkeit zu den Fuzzymengen betimmt. +Innerhalb der zweiten Schicht werden die Gewichte der Regeln durch Produktbildung erstellt. +Die dritte Schicht dient der Berechnung der normalisierten Gewichte. +Während in der vierten Schicht die Berechnung der Ergebnisse der einzelnen Regeln stattfindet, wird in der fünften Schicht das Gesamtergebnis durch Summenbildung erzeugt. +Zu beachten ist, daß in der vierten Schicht des Sogeno-Takagi-Kang-Reglers die Eingangswerte zur Berechnung der Funktionsergebnisse direkt mit einfließen. [Sau08] + + + + +Abbildung 3: ANFIS-Architektur zur Nachbildung des Tsukamoto-Reglers [Sau08] + + + + +Abbildung 4: ANFIS-Architektur zur Nachbildung des Sugeno-Takagi-Kang-Regler [Sau08] + + + + +Hybrid-Lern-Algorithmus + +ANFIS verwendet zur Optimierung seiner Parameter den sogenannten Hybrid-Lern-Algorithmus. +Dieser beinhaltet den Backpropagation-Algorithmus und die Methode des kleinsten quadratischen Schätzers. [Bot08] +Der Premissenparameter S1, der ersten Schicht in den ANFIS-Modellen wird mittels des Backpropagationverfahren optimiert. +Der Konsequenzparameter S2, der vierten Schicht in den ANFIS-Modellen wird mit der Methode des kleinsten quadratischen Schätzers optimiert. [Bor03] + + +Die Vorgehensweise ist dabei wie folgt: + +Zur Optimierung des Konsequenzparameters S2 wird ein Forward Pass durchgeführt. +Für jedes Trainingspaar (x, output) werden die Werte berechnet. +Der Premissenparameter S1 bleibt unverändert, so daß die Funktion des Netzes nur vom Konsequenzparameter S2 abhängig ist. +Diese Funktion ist bzgl. der Parameter bei festen Werten von S1 linear. +Man erhält so zwei Matrizen A, B mit -------->Formel_2.jpg<----------. +Nun wird der kleinste Quadratische Schätzer über die Minimierung von -------->Formel_3.jpg<---------- berechnet. +Dies ergibt die optimierten Parameter von S2. [Sau08] + + +Zur Optimierung des Premissenparameters S1 wird ein Backward Pass durchgeführt. +Hierfür bleibt nun der Konsequenzparameter S2 unverändert. +Zur Anwendung kommt nun der Backprobagation-Algorithmus als spezialfall der Gradientenmethode. [Sau08] + +Bei ANFIS-Netzen, die den Tsukamoto-Regler nachbilden werden die Ereignisfunktionen der vierten Schicht durch stückweise lineare Funktionale ersetzt und dann jeweils die Hybrid-Methode angewandt. + +Bei ANFIS Netzen, die den Sugeno-Takagi-Kang-Regler nachbilden, wird das Gesamtverhalten des Netzes als Linearkombination der Parameter der vierten Schicht interpretiert. [Mic02] + +-------->Formel_1.jpg<-------------- + + +Quellenverzeichnis + +@Book{Bot08, +author = {Hans-Heinrich Bothe}, +title = {Neuro- Fuzzy-Methoden: Einführung in Theorie und Anwendungen}, +publisher = {Springer Verlag}, +year = {2008}, +pages = {230-236} +} +@Book{Mic02, +author = {Michels, Klawonn, Kruse, Nürnberger}, +title = {Fuzzy-Regelung: Grundlagen, Entwurf, Analyse}, +publisher = {Springer}, +year = {2002}, +pages = {367-369} +} +@Article{Sau08, +author = {Jürgen Sauer}, +title = {Neuronale Netze, Fuzzy Control-Systeme und Genetische Algorithmen}, +year = {2008}, +pages = {273-275} +} +@Article{Bar05, +author = {Mrkus Barnert}, +title = {Neuronalen Netze und das Fuzzy-Inferenz-System als Grundlagenerläuterung von Adaptive-Network-Based Fuzzy Inference Systemen}, +year = {2005}, +pages = {15-18} +} \ No newline at end of file diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Sugeno_Takagi_Kang.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Sugeno_Takagi_Kang.jpg new file mode 100644 index 0000000..d87d223 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Sugeno_Takagi_Kang.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Tsukamoto.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Tsukamoto.jpg new file mode 100644 index 0000000..9766ee3 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/ANFIS_Tsukamoto.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_1.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_1.jpg new file mode 100644 index 0000000..aca5e29 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_1.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_2.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_2.jpg new file mode 100644 index 0000000..29d9dc4 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_2.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_3.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_3.jpg new file mode 100644 index 0000000..540998a Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Formel_3.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Sugeno_Takagi_Kang_Regler.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Sugeno_Takagi_Kang_Regler.jpg new file mode 100644 index 0000000..6b1c3a9 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Sugeno_Takagi_Kang_Regler.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tabelle1.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tabelle1.jpg new file mode 100644 index 0000000..22eac86 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tabelle1.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tsukamoto_Regler.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tsukamoto_Regler.jpg new file mode 100644 index 0000000..8409a6c Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/Tsukamoto_Regler.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Inhalt_neu.pdf b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Inhalt_neu.pdf new file mode 100644 index 0000000..ebfdfff Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Inhalt_neu.pdf differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_1.pdf b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_1.pdf new file mode 100644 index 0000000..6af4b33 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_1.pdf differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_2.pdf b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_2.pdf new file mode 100644 index 0000000..4bed404 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_2.pdf differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_3.pdf b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_3.pdf new file mode 100644 index 0000000..36b5c66 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Teil_3.pdf differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Titelblatt_neu.pdf b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Titelblatt_neu.pdf new file mode 100644 index 0000000..3d57f88 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_Titelblatt_neu.pdf differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_neu.pdf b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_neu.pdf new file mode 100644 index 0000000..168ed2f Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/Noll/neuro-fuzzy-assignment_neu.pdf differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Sugeno_Takagi_Kang.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Sugeno_Takagi_Kang.jpg new file mode 100644 index 0000000..d87d223 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Sugeno_Takagi_Kang.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Tsukamoto.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Tsukamoto.jpg new file mode 100644 index 0000000..9766ee3 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/ANFIS_Tsukamoto.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/img/Sugeno_Takagi_Kang_Regler.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/Sugeno_Takagi_Kang_Regler.jpg new file mode 100644 index 0000000..6b1c3a9 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/Sugeno_Takagi_Kang_Regler.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/img/Tsukamoto_Regler.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/Tsukamoto_Regler.jpg new file mode 100644 index 0000000..8409a6c Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/Tsukamoto_Regler.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/img/logo_hda_fbi.png b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/logo_hda_fbi.png new file mode 100644 index 0000000..cea43d7 Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/logo_hda_fbi.png differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/img/nefconexample.jpg b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/nefconexample.jpg new file mode 100644 index 0000000..80fbe1c Binary files /dev/null and b/Master/Computational Intelligence/NeuroFuzzy/assignment/img/nefconexample.jpg differ diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/literature.bib b/Master/Computational Intelligence/NeuroFuzzy/assignment/literature.bib new file mode 100644 index 0000000..28a6a9a --- /dev/null +++ b/Master/Computational Intelligence/NeuroFuzzy/assignment/literature.bib @@ -0,0 +1,55 @@ +@Book{Bor03, +author = {Christian Borgelt and Frank Klawonn and Rudolf Kruse and Detlef Nauck}, +title = {Neuro-Fuzzy-Systeme}, +publisher = {Vieweg Verlag}, +year = {2003}, +address = {Wiesbaden} +} +@Article{Kar10, +author = {Dr. T. Karthikeyan}, +title = {Efficient Bio Metric IRIS Recognition System Using Fuzzy Neural Network}, +journal = {Int. J. of Advanced Networking and Applications}, +year = {2010}, +volume = {01}, +pages = {371-376} +} +@Book{Lip06, +author = {Wolfram-Manfred Lippe}, +title = {Soft-Computing}, +publisher = {examen press}, +year = {2006} +} +@Article{Nue99, +author = {A. Nürnberger and D. Nauck and R. Kruse}, +title = {Neuro-fuzzy control based on the NEFCON-model: recent developments}, +journal = {Soft-Computing}, +year = {1999}, +volume = {2}, +pages = {168-182} +} +@Book{Bot08, +author = {Hans-Heinrich Bothe}, +title = {Neuro- Fuzzy-Methoden: Einführung in Theorie und Anwendungen}, +publisher = {Springer Verlag}, +year = {2008}, +pages = {230-236} +} +@Book{Mic02, +author = {Michels, Klawonn, Kruse, Nürnberger}, +title = {Fuzzy-Regelung: Grundlagen, Entwurf, Analyse}, +publisher = {Springer}, +year = {2002}, +pages = {367-369} +} +@Article{Sau08, +author = {Jürgen Sauer}, +title = {Neuronale Netze, Fuzzy Control-Systeme und Genetische Algorithmen}, +year = {2008}, +pages = {273-275} +} +@Article{Bar05, +author = {Mrkus Barnert}, +title = {Neuronalen Netze und das Fuzzy-Inferenz-System als Grundlagenerläuterung von Adaptive-Network-Based Fuzzy Inference Systemen}, +year = {2005}, +pages = {15-18} +} \ No newline at end of file diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/neuro-fuzzy-assignment.tex b/Master/Computational Intelligence/NeuroFuzzy/assignment/neuro-fuzzy-assignment.tex new file mode 100644 index 0000000..b1fff0d --- /dev/null +++ b/Master/Computational Intelligence/NeuroFuzzy/assignment/neuro-fuzzy-assignment.tex @@ -0,0 +1,43 @@ +\documentclass[12pt,a4paper,oneside]{scrartcl} +\usepackage[utf8x]{inputenc} +\usepackage{ucs} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\usepackage{graphicx} +\graphicspath{{img//}{../presentation/img//}} +\usepackage[scaled]{helvet} +\usepackage[ngerman]{babel} +\renewcommand{\familydefault}{\sfdefault} +\bibliographystyle{alphadin} +\newcommand{\mytitle}{Neuro-Fuzzy-Systeme} +\begin{document} + +\begin{titlepage} +\begin{center} +\includegraphics[width=10cm]{logo_hda_fbi} \\ +\vspace*{\fill}{Hochschule Darmstadt\\ Fachbereich Informatik} +\vfill {{\Large \mytitle}} +\vfill {Computational Intelligence \\ Dr. Norbert Waleschkowski} +\vfill {von} \\ +\vfill{ + \makebox[3.5cm][l]{Walter Noll} \makebox[7cm][r]{Martikel-Nr.: 546014} \\ + \makebox[3.5cm][l]{Stefan Sonski} \makebox[7cm][r]{Martikel-Nr.: 714352} \\ + \makebox[3.5cm][l]{Sven Eisenhauer} \makebox[7cm][r]{Martikel-Nr.: 707173} \\ +} +\vfill{\today} +\end{center} +\end{titlepage} + +\tableofcontents + +\include{part1} +\include{part2} +\include{part3} + +\newpage +\addcontentsline{toc}{section}{Literatur} +\nocite{*} +\bibliography{literature} + +\end{document} \ No newline at end of file diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/part1.tex b/Master/Computational Intelligence/NeuroFuzzy/assignment/part1.tex new file mode 100644 index 0000000..9115310 --- /dev/null +++ b/Master/Computational Intelligence/NeuroFuzzy/assignment/part1.tex @@ -0,0 +1,198 @@ +\newcommand{\gfp}{generische Fuzzy-Perzeptron} +\section{Einleitung} +Bei \mytitle n handelt es sich um die Kombination eines Neuronalen Netzes mit einem Fuzzy-System. Da der Umfang dieser Arbeit beschränkt ist, setzen die Autoren bestimmte Vorkenntnisse aus den Bereichen Neuronale Netze und Fuzzy-Logik voraus. Dazu zählen der grundlegende Aufbau eines mehrschichtigen Perzeptrons und der Ablauf des Backpropagation-Algorithmus aus dem Bereich der Neuronalen Netze. Die Kenntnis der Begriffe T-Norm und T-Conorm, Zugehörigkeitsfunktion, linguistische Variable sowie Mamdani- und Sugeno-Controller bildet weitere Voraussetzung. Darin eingeschlossen sind Kenntnisse über Fuzzy-Mengen und -Regeln sowie Fuzzy-Logik im Allgemeinen. \\ +Basierend auf diesem Grundwissen betrachten wir bestimmte Eigenschaften von Fuzzy-Systemen und Neuronalen Netzen. \\ +Im Allgemeinen orientiert sich der Entwurf von Fuzzy-Controllern an Expertenwissen, das der Fuzzy-Controller nachahmt. Dies setzt voraus, dass für das zu regelnde System die Reaktionen und das Wissen des Experten bekannt sind. Ohne dieses Wissen lassen sich weder Fuzzy-Mengen noch Fuzzy-Regeln entwerfen. Ebenso besteht das Problem der Vollständigkeit. Da ein Fuzzy-Controller nicht zur Laufzeit lernen kann, muss die Lösung des Problems beim Entwurf vollständig und richtig über alle Eingabedaten sein. Auch kann sich der Fuzzy-Controller nicht an sich ändernde Parameter z. B. durch mechanischen Verschleiß anpassen. \\ +Im Gegensatz dazu stehen Neuronale Netze, deren Hauptmerkmal ihre Lernfähigkeit darstellt. Als Nachteil steht dem gegenüber, dass evtl. vorhandenes Wissen über das Problem nicht in einem Neuronalen Netz implementiert werden kann. Gleichzeitig besteht darin der Vorteil, dass eine Problemlösung durch rein daten-getriebenes Lernen erfolgt. Der Lernerfolg eines Neuronalen Netzes stellt einen Unsicherheitsfaktor dar, da nicht vorher bestimmt werden kann, ob und wann sich ein Trainingserfolg einstellt. Unter ungünstigen Voraussetzung kann eine Überanpassung an die Trainings- oder Validierungsdaten eintreten, was die Lösung für reale Daten negativ beeinflussen kann. Da sich Neuronale Netze wie eine \textit{Blackbox} nach außen darstellen, lässt sich ihr innerer Zustand nicht oder nur sehr eingeschränkt interpretieren. \\ +Die Motivation zur Kombination Neuronaler Netze und Fuzzy-Systeme zu \mytitle n liegt in der Idee des \textit{best of both worlds}. Das Ziel besteht hierbei darin, mit einer Stärke des einen Ansatzes in einem bestimmten Bereich eine Schwäche des anderen in diesem Bereich zu kompensieren, um so zu einem leistungsfähigeren Gesamtsystem zu kommen. + +\section{Grundlagen} +Bei der Betrachtung von \mytitle n liegt das Hauptunterscheidungsmerkmal im Grad der Kopplung von Neuronalem Netz und Fuzzy-System. Kooperative \mytitle zeichnen sich durch eine lose Kopplung aus, wobei hybride \mytitle eine enge Kopplung aufweisen. +\subsection{Kooperative \mytitle} +Bei kooperativen \mytitle n bleibt die Eigenständigkeit des beteiligten Neuronalen Netzes und Fuzzy-Systems erhalten und es besteht eine klar definierte Trennung. \\ +Die einfachste Kombination eines Neuronalen Netzes und eines Fuzzy-Systems besteht in dem Ansatz der Aufbereitung der Eingabedaten des Fuzzy-Controllers durch das Neuronale Netz. Ebenso lassen sich die Ausgaben eines Fuzzy-Controllers durch ein Neuronales Netz aufbereiten. Hierbei beeinflussen sich die beiden Systeme gegenseitig nicht sondern nur die Daten. \\ + +Wenn sich die Fuzzy-Mengen der linguistischen Variablen eines Fuzzy-Controllers zur Regelung eines Systems nicht bestimmen lassen, aber gleichzeitig Datenpaare aus Eingabe und gewünschter Ausgabe vorliegen, lassen sich diese Fuzzy-Mengen mit einem Neuronalen Netz erzeugen. Dies erfolgt offline durch Bestimmung geeigneter Parameter der Zugehörigkeitsfunktionen oder Approximation der Zugehörigkeitsfunktionen durch das Neuronale Netz. Die Abbildung \ref{fig:koop-fuzzysets} zeigt den schematischen Aufbau einer solchen Lösung. Das Training und die Erzeugung der Fuzzy-Mengen erfolgt offline, so dass das Neuronale Netz zur Laufzeit nicht benötigt wird. \\ +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.6\textwidth]{koop-fuzzysets.png} +\end{center} +\caption{Neuronales Netz zum Offline-Lernen der Fuzzy-Mengen eines Fuzzy-Controllers} +\label{fig:koop-fuzzysets} +\end{figure} + +Mit einem ähnlichen Ansatz lassen sich auch Fuzzy-Regeln erzeugen, wie Abbildung \ref{fig:koop-fuzzyrules} zeigt. \cite{Bor03} nennt hierzu Clustering-Verfahren oder selbstorganisierende Karten als Neuronale Methode zur Bestimmung der Fuzzy-Regeln. Auch hier arbeitet das Neuronale Netz offline. \\ +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.6\textwidth]{koop-fuzzyrules.png} +\end{center} +\caption{Neuronales Netz zum Offline-Lernen der Fuzzy-Regeln eines Fuzzy-Controllers} +\label{fig:koop-fuzzyrules} +\end{figure} + +Die Anpassung der Fuzzy-Mengen eines Fuzzy-Controllers durch ein Neuronales Netz kann auch online erfolgen, wie in Abbildung \ref{fig:koop-fuzzysets-online} gezeigt. Dazu benötigt das Neuronale Netz die Ausgaben des Fuzzy-Controllers als Eingabe zur Fehlerbestimmung. \\ +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.6\textwidth]{koop-fuzzysets-online.png} +\end{center} +\caption{Neuronales Netz zur Online-Anpassung der Fuzzy-Mengen eines Fuzzy-Controllers} +\label{fig:koop-fuzzysets-online} +\end{figure} + +Mit einer solchen Fehlerbestimmung lässt sich auch ein System wie in Abblidung \ref{fig:koop-fuzzyrules-online} gezeigt entwerfen, das die Gewichte der Fuzzy-Regeln des Fuzzy-Controllers online verändert. \\ +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.6\textwidth]{koop-fuzzyrules-online.png} +\end{center} +\caption{Neuronales Netz zur Online-Anpassung der Fuzzy-Regeln eines Fuzzy-Controllers} +\label{fig:koop-fuzzyrules-online} +\end{figure} + +\subsection{Hybride \mytitle} +Bei hybriden \mytitle n verschmelzen Neuronales Netz und Fuzzy-Controller zu einem System bei dem keine klare Trennung zwischen Neuronalem und Fuzzy-Teil mehr möglich ist. Abbildung \ref{fig:hybrid-neuro-fuzzy-ctrl} zeigt das Schema eines solchen hybriden Neuro-Fuzzy-Controllers nach \cite{Bor03}. +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.6\textwidth]{hybrid-neuro-fuzzy-ctrl.png} +\end{center} +\caption{Schema eines hybriden Neuro-Fuzzy-Controllers} +\label{fig:hybrid-neuro-fuzzy-ctrl} +\end{figure} + +\section{Das \gfp} +Als ein Beispiel hybrider \mytitle betrachten wir in diesem Abschnitt das \gfp nach \cite{Bor03} genauer. Abbildung \ref{fig:xor} zeigt ein generisches Fuzzy-Perzeptron zur Lösung des XOR-Problems. Dabei handelt es sich um ein dreischichtiges vorwärtsgetriebenes Neuronales Netz bestehend aus einer Eingabeschicht, einer versteckten Schicht und einer Ausgabeschicht. Die Gewichte der Verbindungen zwischen den Neuronen werden durch den Zugehörigkeitsgrad der Ausgabe der vorherigen Schicht zu den beiden abgebildeten Fuzzy-Mengen s für small und b für big repräsentiert. Die Ausgabefunktion der Neuronen der versteckten Schicht bildet eine T-Norm, die Ausgabefunktion der Ausgabeschicht bildet die entsprechende T-Conorm, hier min und max.\\ +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.4\textwidth]{xor.png} +\end{center} +\caption{Generisches Fuzzy-Perzeptron zur Lösung des XOR-Problems} +\label{fig:xor} +\end{figure} + +\paragraph*{Wertetabelle} +Die Tabelle \ref{tab:xortab} zeigt die Ausgaben der jeweiligen Schichten für die möglichen Eingaben des XOR-Problems. An den Ausgabewerten der Ausgabeschicht lässt sich die korrekte Lösung des XOR-Problems durch das \gfp erkennen. +\begin{table}[htp] + \centering + \begin{tabular}{|l|l|l|l|l|l|l|} + \hline $x_1$ & $x_2$ & $out_{u_{11}}$ & $out_{u_{12}}$ & $out_{u_{21}}$ & $out_{u_{22}}$ & $out_{u_{31}}$ = y \\ + \hline 0 & 0 & 0 & 0 & min(0,1)\linebreak = 0 & min(0,1)\linebreak = 0 & max(0,0)\linebreak = 0 \\ + \hline 0 & 1 & 0 & 1 & min(0,0)\linebreak = 0 & min(1,1)\linebreak = 1 & max(0,1)\linebreak = 1\\ + \hline 1 & 0 & 1 & 0 & min(1,1)\linebreak = 1 & min(0,0)\linebreak = 0 & max(1,0)\linebreak = 1 \\ + \hline 1 & 1 & 1 & 1 & min(1,0)\linebreak = 0 & min(1,0)\linebreak = 0 & max(0,0)\linebreak = 0 \\ + \hline + \end{tabular} + \caption{Ausgaben der Neuronen für das XOR-Problem} + \label{tab:xortab} +\end{table} + +\subsection{Beschreibung} +Dieser Abschnitt beschreibt die einzelnen Komponenten des generischen Fuzzy-Perzeptrons genauer. +\paragraph*{Schichten} +Die drei Schichten des generischen Fuzzy-Perzeptrons lassen sich jeweils als Menge von Neuronen beschreiben. +\begin{itemize} + \item Eingabeschicht $U_1 = \left\lbrace x_1,\dots,x_n \right\rbrace$ + \item Versteckte Schicht $U_2 = \left\lbrace R_1,\dots,R_r \right\rbrace$ + \item Ausgabeschicht $U_3 = \left\lbrace y_1,\dots,y_m \right\rbrace$ +\end{itemize} +Jedes Neuron verfügt dabei über drei Funktionen: +\begin{itemize} + \item Die Netzeingabefunktion $net_u$ + \item Die Aktivierungsfunktion $act_u$ + \item Die Ausgabefunktion $out_u$ +\end{itemize} +Die Verarbeitung je Neuron $u$ erfolgt dabei in der Reihenfolge $net_u \to act_u \to out_u$. + +\paragraph*{Gewichte} Das Gewicht der Verbindung zwischen zwei Neuronen unterschiedlicher Schichten ist definiert + durch die Fuzzy-Menge $\mu$ für die Verbindungen zwischen Neuronen der Eingabeschicht und Neuronen der versteckten Schicht. Für die Verbindungen zwischen Neuronen der versteckten Schicht und der Ausgabeschicht erhalten ihr Gewicht über die Fuzzy-Menge $\nu$. Das Gewicht $w$ der Verbindung zwischen dem Neuron $u$ und dem Neuron $v$ der nachgelagerten Schicht lässt sich also wie folgt berechnen. +\begin{displaymath} +w_{vu} = +\begin{cases} +\mu^{\left(i\right)}_{j} \qquad \qquad \qquad \textrm{für}~ u=x_i,v=R_j +\\ +\nu^{\left(k\right)}_{j} \qquad \qquad \qquad \textrm{für}~ u=R_j,v=y_k +\\ +\textrm{undefiniert} \qquad \quad \textrm{sonst} +\end{cases} +\end{displaymath} +Mit $1 \leq i \leq n$, $1 \leq j \leq r$, $1 \leq k \leq m$ +\\ +$\mu^{\left(i\right)}_{j} \in F\left(\mathbb{R}\right)$, +$\nu^{\left(k\right)}_{j} \in F\left(\mathbb{R}\right)$ +\\und $F\left(\mathbb{R}\right) := \textrm{die Menge aller Fuzzy-Mengen über } \mathbb{R}$ + +\paragraph*{Eingabeschicht} Für Neuronen der Eingabeschicht $u \in U_1$ lassen sich die drei Funktionen $net_u$, $akt_u$ und $out_u$ wie folgt beschreiben. +\begin{description} + \item[Die Netzeingabefunktion $net_u$] stellt eine Abbildung von $\mathbb R$ auf $\mathbb R$ für die externe Eingabe $ext_u$ dar.\\ + $f^{\left(u\right)}_{net}: net_u = ext_u$ + \item [Die Aktivierungsfunktion $act_u$] stellt eine Abbildung der Netzeingabe $net_u$ von $\mathbb R$ auf $\mathbb R$ dar.\\ + $f^{\left(u\right)}_{act}: act_u = net_u$ + \item[Die Ausgabefunktion $out_u$] bildet die Aktivierung $act_u$ von $\mathbb R$ auf $\mathbb R$ ab.\\ + $f^{\left(u\right)}_{out}: out_u = act_u$ +\end{description} + +\paragraph*{Versteckte Schicht} Für Neuronen der versteckten Schicht $u \in U_2$ lassen sich die drei Funktionen $net_u$, $akt_u$ und $out_u$ wie folgt beschreiben. +\begin{description} + \item [Die Netzeingabefunktion $net_u$] stellt eine Abbildung von $\left(\mathbb R \times F\left(\mathbb{R}\right)\right)$ auf $\left[0,1\right] \in \mathbb{R}$. + Sie verwendet dabei das Gewicht $w_{uu^{'}}$ zwischen $u$ und $u^{'} \in U_1$ unter Bildung der T-Norm. Dieses Beispiel verwendet hierfür die Minimum-Norm $min$. + \item [Die Aktivierungsfunktion $act_u$] stellt eine Abbildung von $\mathbb R$ auf $\mathbb R$ für die Netzeingabe $net_u$ dar. \\ + $f^{\left(u\right)}_{act}: act_u = net_u$ + \item[Die Ausgabefunktion $out_u$] bildet die Aktivierung $act_u$ von $\mathbb R$ auf $\mathbb R$ ab. \\ + $f^{\left(u\right)}_{out}: out_u = act_u$ +\end{description} + +\paragraph*{Ausgabeschicht} Für Neuronen der $u \in U_3$ lassen sich die drei Funktionen $net_u$, $akt_u$ und $out_u$ wie folgt beschreiben. +\begin{description} + \item[Die Netzeingabefunktion $net_u$] verwendet die T-Conorm über die Ausgaben aller Neuronen der versteckten Schichten $u^{'} \in U_2$ mit dem Gewicht $w_{uu^{'}}$ zur Berechnung des Netzeingabewertes. Dieses Beispiel verwendet die Maximum-Conorm $max$. + \item [Die Aktivierungsfunktion $act_u$] stellt eine Abbildung von $F\left(\mathbb{R}\right)$ auf $F\left(\mathbb{R}\right)$ für die Netzeingabe $net_u$ dar. \\ + $f^{\left(u\right)}_{act}: act_u = net_u$ + \item[Die Ausgabefunktion $out_u$] Durch eine geeignete Abbildung der Aktivierung $act_u$ von $F\left(\mathbb{R}\right)$ auf $\mathbb R$ erfolgt hier die Defuzzifizierung der Aktivierung $act_u$ zu einem scharfen Wert. +\end{description} + +\subsection{Fuzzy-Fehlerbestimmung} +Für ein Lernverfahren bildet die Bestimmung des Fehlers für eine bestimmte Eingabe bei gewünschter Ausgabe ein zentrales Element. Für ein Neuron $u$ der Ausgabeschicht lässt sich der Fehler $E$ für ein Muster $p$ nach \cite{Bor03} wie folgt berechnen. +\begin{displaymath} +E^{\left(p\right)}_{u}=1-\exp{\left(\beta\left(\frac{t^{\left(p\right)}_{u}-o^{\left(p\right)}_{u}}{range_{u}}\right)^{2}\right)} +\end{displaymath} +Unter Verwendung von +\begin{itemize} + \item $u \in U_3$ bezeichnet das Neuron der Ausgabeschicht. + \item Der Zielwert $t$ bezeichnet die gewünschte Ausgabe für das Muster $p$. + \item Der Ausgabewert $o$ repräsentiert die aktuelle Ausgabe des Neurons. + \item $range_u$ bezeichnet die Differenz zwischen dem maximalem und dem minimalem Ausgabewert des Neurons $u$. + \item $\beta$ bildet einen multiplikativen Toleranzfaktor. +\end{itemize} +Aus dieser Formel ist leicht zu erkennen, dass es sich hierbei um ein Delta-Lernverfahren handelt. Stimmen Ausgabe und Zielwert überein, wird der Exponent im zweiten Term $0$. Durch $e^0=1$ ergibt sich wie erwartet ein Fehler $E = 1-1 = 0$ + +\subsection{Fuzzy-Backpropagation} +Der Backpropagation-Algorithmus für dieses Perzeptron lässt sich nach \cite{Bor03} wie folgt formulieren. +\begin{enumerate} + \item Wähle ein beliebiges Muster $p$ einer gegebenen festen Lernaufgabe und propagiere den Eingabevektor $i^{p}$ + \item Bestimme + \begin{displaymath} + \delta^{\left(p\right)}_{u} = + \begin{cases} + sgn\left( t^{p}_{u} - out^{p}_{u} \right) * E^{\left(p\right)}_{u} + \qquad \textrm{für}~ u \in U_3 + \\ + \sum_{v \in U_{3} } act^{\left(p\right)}_{u}*\delta^{\left(p\right)}_{v} + \qquad \quad ~\textrm{für}~ u \in U_2 + \end{cases} + \end{displaymath} + \item Bestimme + \begin{displaymath} + \Delta_{p}w_{vu} = f\left( \delta^{\left(p\right)}_{u}, act^{\left(p\right)}_u, net^{\left(p\right)}_u \right) + \end{displaymath} + +\end{enumerate} +Wiederhole diese Schritte bis der Gesamtfehler +\begin{displaymath} +E=\sum_{p}\sum_{u \in U_{3}}E^{\left(p\right)}_{u} +\end{displaymath} +hinreichend klein ist oder ein anderes Abbruchkriterium erfüllt wird.\\ +Im zweiten Schritt lässt sich erkennen, wie der Fehler der Ausgabeneuronen $v \in U_3$ auf die Neuronen der versteckten Schicht $u \in U_2$ wirken. \\ +Die Funktion $f$, die in Schritt drei Verwendung findet ist nicht genauer spezifiziert. Hier könnte beispielsweise eine Anpassung der Parameter der Zugehörigkeitsfunktionen der Fuzzy-Mengen stattfinden. Bei den Fuzzy-Mengen in Abbildung \ref{fig:xor} könnte z. B. die Steigung der Geraden variiert werden. \ No newline at end of file diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/part2.tex b/Master/Computational Intelligence/NeuroFuzzy/assignment/part2.tex new file mode 100644 index 0000000..5b296f5 --- /dev/null +++ b/Master/Computational Intelligence/NeuroFuzzy/assignment/part2.tex @@ -0,0 +1,142 @@ +\section{ANFIS} +ANFIS wurde als weiteres Modell eines Neuro-Fuzzy-Systems 1992 von Jyh-Shing Roger Jang an der University of California at Berkeley entwickelt. \\ +Es stellt ein Adaptive Network–based Fuzzy Inference System, also ein lernfähiges netzwerkbasiertes Fuzzy-Schlussfolgerungs-System dar. \\ +Hierfür werden Fuzzy-Regeln in einem Neuronalen Netz implementiert. \\ +Kennzeichnend für das ANFIS-Modell ist, daß die jeweiligen Zugehörigkeitsfunktionen festgelegt sind, währen sich die Parameter dieser Funktionen beim Lernvorgang verändern können. \\ + +Mit ANFIS können zwei Typen von Fuzzy-Controllern emuliert werden. +\begin{itemize} + \item Tsukamoto-Regler + \item Sugeno-Takagi-Kang-Regler +\end{itemize} + +Der Mamdani-Regler kann nicht nachgebildet werden, da die Weitergabe von Fuzzymengen mit Neuronen nicht erreicht werden kann. \cite{Sau08} \\ +Als Lernalgorithmus wird für ANFIS ein Hybrid-Lern-Algorithmus verwendet. + +\subsection{Tsukamoto-Regler} +Der Tsukamoto-Regler ist einer der beiden von ANFIS emulierbaren Fuzzy-Controllern. +Seine Funktionsweise kann wie folgt beschrieben werden. +\begin{itemize} + \item Jede Regel aus der Regelbasis, des Controllers wird mit einer monotonen Zugehörigkeitsfunktion (ZGF) verknüpft. Im Bild \ref{fig:Tsukamoto-Regler} unten C1, C2. + \item Die Ergebnisse dieser Zugehörigkeitsfunktion sind jeweils ein crisper Wert. + \item Der Ausgangswert z des Controllers wird gebildet, in dem das gewichtete Mittel aus den einzelnen crispen Funktionswerten z1, z2, ... zn berechnet wird. Das Ergebnis ist ebenfalls ein crisper Wert. Er muß daher nicht aufwendig defuzzyfiziert werden, wie es zum Beispiel bei einem Mamdani-Controller notwendig ist. +\end{itemize} +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.8\textwidth]{Tsukamoto_Regler.jpg} +\end{center} +\caption{Das Tsukamoto-Modell \cite{Bar05}} +\label{fig:Tsukamoto-Regler} +\end{figure} + +\newpage + +\subsection{Sugeno-Takagi-Kang-Regler} +Der Sugeno-Takagi-Kang-Regler ist der zweite, von ANFIS emulierbare Fuzzy-Controller. +Seine Funktionsweise kann wie folgt beschrieben werden. \\ +Eine typische Regel mit zwei Eingangswerten lautet zum Beispiel: +\begin{itemize} + \item If x is A1 and y is B1 then z = f(x,y) \cite{Mic02}\\ +Wobei A1, B1 Werte linguistischer Variablen und x, y, z Crispe Werte sind. + \item Die anzuwendenden Regeln b.z.w. Funktionen werden nun anhand der Eingangswerte bestimmt. + \item Der Ausgangswert z des Controllers wird ebenfalls gebildet, in dem das gewichtete Mittel aus den einzelnen crispen Funktionswerten z1, z2, ..., zn berechnet wird. Das Ergebnis ist daher wie bei dem zuvor vorgestellten Controller auch ein crisper Wert, welcher nicht aufwendig defuzzyfiziert werden muss, wie es bei einem Mamdani-Controller erforderlich ist. +\end{itemize} +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.8\textwidth]{Sugeno_Takagi_Kang_Regler.jpg} +\end{center} +\caption{Das Sugeno-Takagi-Kang-Modell \cite{Bar05}} +\label{fig:Sugeno_Takagi_Kang_Regler} +\end{figure} + +\newpage + +Ein Beispiel, zur Verdeutlichung, wie die anzuwendende Regel ermittelt wird: +\begin{itemize} + \item Gegeben seien A1 und A2 als crispe Eingangswerte. + \item Aufgrund vordefinierter Zugehörigkeitsfunktionen ZGF ergebe sich, daß der gegebene Wert für A1 der ZGF nK und der gegebene Wert für A2 der ZGF pK angehöre. + \item So ist in diesem Beispiel aus der nachfolgend aufgeführten Tabelle zu entnehmen, daß die Regel eN anzuwenden ist. +\end{itemize} +Diese Regel könnte dann zum Beispiel so aussehen: ZeN = 0,01x + 0,025y + 7 +\begin{table}[htp] + \begin{tabular}{ll} + \centering + \begin{tabular}{|l||l|l|l|l|l|} + \hline $A_2 \Downarrow A_1 \Rightarrow$& nG & nK & eN & pK & pG \\ + \hline nG & pG & pG & pK & eN &nK \\ + \hline nK & pG & pG & pK & eN &nK \\ + \hline eN & pG & pK & eN & nK &nG \\ + \hline pK & pK & eN & nK & nG &nG \\ + \hline pG & pK & nK & nG & nG &nG \\ + \hline + \end{tabular} + & \begin{tabular}{l} + n negativ \\ + p positiv \\ + e etwas \\ + N Null \\ + K Klein \\ + G Groß + \end{tabular} + \end{tabular} + \caption{Bestimmung von Fuzzy-Regeln aufgrund der Zugehörigkeit der Eingangswerte zu bestimmten Fuzzy-Mengen \cite{Bar05}} + \label{tab:anfistab} +\end{table} + +\newpage + +\subsection{ANFIS-Architektur} + +Die ANFIS Architekturen zur Nachbildung der beiden zuvor vorgestellten Fuzzy-Reglern bestehen jeweils aus einem 5-Schichten Modell. +Wie zu Anfang schon erwähnt werden im ANFIS Modell die Parameter der Regeln erlernt, während die Regeln selbst von Anfang an feststehen. In den nachfolgend gezeigten ANFIS-Architekturen werden die Optimierungen der Parameter in der ersten und vierten Schicht vorgenommen. +Die einzelnen Schichten dieser Architekturen übernehmen nun folgende Aufgaben. +In der ersten Schicht wird die Zugehörigkeit zu den Fuzzymengen bestimmt. +Innerhalb der zweiten Schicht werden die Gewichte der Regeln durch Produktbildung erstellt. +Die dritte Schicht dient der Berechnung der normalisierten Gewichte. +Während in der vierten Schicht die Berechnung der Ergebnisse der einzelnen Regeln stattfindet, wird in der fünften Schicht das Gesamtergebnis durch Summenbildung erzeugt. +Zu beachten ist, daß in der vierten Schicht des Sogeno-Takagi-Kang-Reglers die Eingangswerte zur Berechnung der Funktionsergebnisse direkt mit einfließen. \cite{Sau08} + +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.8\textwidth]{ANFIS_Tsukamoto.jpg} +\end{center} +\caption{ANFIS-Architektur zur Nachbildung des Tsukamoto-Reglers \cite{Sau08}} +\label{fig:ANFIS_Tsukamoto} +\end{figure} + +\begin{figure}[h!] +\begin{center} +\leavevmode +\includegraphics[width=0.8\textwidth]{ANFIS_Sugeno_Takagi_Kang.jpg} +\end{center} +\caption{ANFIS-Architektur zur Nachbildung des Sugeno-Takagi-Kang-Regler \cite{Sau08}} +\label{fig:ANFIS_Sugeno_Takagi_Kang} +\end{figure} + +\newpage + +\subsection{Hybrid-Lern-Algorithmus} +ANFIS verwendet zur Optimierung seiner Parameter den sogenannten Hybrid-Lern-Algorithmus. \\ +Dieser beinhaltet den Backpropagation-Algorithmus und die Methode des kleinsten quadratischen +Schätzers \cite{Bot08}. \\ +Der Premissenparameter S1, der ersten Schicht in den ANFIS-Modellen wird mittels des Backpropagationverfahren optimiert. \\ +Der Konsequenzparameter S2, der vierten Schicht in den ANFIS-Modellen wird mit der Methode des kleinsten quadratischen Schätzers optimiert \cite{Bor03}. \\ +Die Vorgehensweise ist dabei wie folgt:\\ +Zur Optimierung des Konsequenzparameters S2 wird ein Forward Pass durchgeführt. \\ +Für jedes Trainingspaar (x, output) werden die Werte berechnet. \\ +Der Premissenparameter S1 bleibt unverändert, so daß die Funktion des Netzes nur vom Konsequenzparameter S2 abhängig ist. \\ +Diese Funktion ist bzgl. der Parameter bei festen Werten von S1 linear. \\ +Man erhält so zwei Matrizen A, B mit $A*S = B$.\\ +Nun wird der kleinste Quadratische Schätzer über die Minimierung von ${\parallel A*S-B \parallel}^2$ berechnet. \\ +Dies ergibt die optimierten Parameter von S2 \cite{Sau08}. \\ +Zur Optimierung des Premissenparameters S1 wird ein Backward Pass durchgeführt. \\ +Hierfür bleibt nun der Konsequenzparameter S2 unverändert. \\ +Zur Anwendung kommt nun der Backprobagation-Algorithmus als Spezialfall der Gradientenmethode \cite{Sau08}. \\ +Bei ANFIS-Netzen, die den Tsukamoto-Regler nachbilden werden die Ereignisfunktionen der vierten Schicht durch stückweise lineare Funktionale ersetzt und dann jeweils die Hybrid-Methode angewandt. \\ +Bei ANFIS Netzen, die den Sugeno-Takagi-Kang-Regler nachbilden, wird das Gesamtverhalten des Netzes als Linearkombination der Parameter der vierten Schicht interpretiert. \cite{Mic02} \\ +\begin{displaymath} +f=\frac{w_1}{w_1+w_2}f_1+\frac{w_2}{w_1+w_2}f_2=\bar{w_1}f_1+\bar{w_2}f_2 +\end{displaymath} diff --git a/Master/Computational Intelligence/NeuroFuzzy/assignment/part3.tex b/Master/Computational Intelligence/NeuroFuzzy/assignment/part3.tex new file mode 100644 index 0000000..113196d --- /dev/null +++ b/Master/Computational Intelligence/NeuroFuzzy/assignment/part3.tex @@ -0,0 +1,122 @@ +\section{Das NEFCON-Model} +Das NEFCON-Model basiert auf dem dreischichtigen, generischen Fuzzy-Perzeptron. +Dabei wird der Ansatz des reinforcement learnings\cite{Nue99} verwendet. Das +heißt, dass Regeln bzw. Fuzzy-Mengen je nach Güte belohnt oder bestraft werden. + +Dabei kann das NEFCON-Model zwei Problemstellungen lösen. Zum einen kann es eine +Regelbasis aufbauen. Voraussetzung ist hierbei, dass die Fuzzy-Mengen korrekt +und vollständig sind. Zum anderen kann es dazu verwendet werden Fuzzy-Mengen zu +lernen, wobei eine vollständige Regelbasis vorausgesetzt wird. Zusätzlich ist +es nötig, dass die Anzahl der Fuzzy-Mengen bekannt ist. +\subsection{Erlernen einer Regelbasis} +Die Regelbasen, die optimiert werden sollen, lassen sich in drei Klassen +unterteilen. Regelbasen die bisher leer sind, Regelbasen die vollständig sind im +Sinne aller kombinatorischen Möglichkeiten und Regelbasen, die zufällig +generiert wurden. Bisher ist allerdings nur das Lernen durch leere und volle +Regelbasen umgesetzt worden. Vgl. \cite{Nue99} + +Wird eine leere Regelbasis verwendet, werden zu Beginn alle kombinatorischen +Mög"-lich"-keiten generiert und anschließend Regeln mit falschem Vorzeichen +entfernt. Im Grunde erhält man dadurch also auch eine volle Regelbasis +und somit lässt sich nun für beide möglichen Vorgehensweisen der +gleiche Ablauf definieren. + +Die anschließende Vorgehensweise lässt sich nun in zwei Phasen aufteilen. +In Phase 1 wird eine feste Periode oder Anzahl an Iterationen definiert und +dabei werden Regeln entfernt, wenn diese nicht zur optimalen Ausgabe passen. + +In Phase 2 werden Regeln, die die gleiche Prämisse enthalten in Regelgruppen +zusammengeführt um anschließend zufällig eine Regel der Regelgruppe auszuwählen. +Jede dieser ausgewählten Regeln wird anhand ihrer Gewichtung ein Fehleranteil +am Ergebnis berechnet. Anschließend werden alle Regeln, bis auf die mit dem kleinsten Fehleranzahl aus der Regelgruppe entfernt, wie auch Regeln die selten verwendet wurden. \subsubsection{Beispiel des Erlernens einer Regelbasis} Um das Lernverfahren zu veranschaulichen wird ein Beispiel verwendet das aus \cite{Lip06} entnommen ist. Dabei wird in diesem Beispiel ein inverses Pendel +verwendet, dass sich auf einem Wagen bewegt. Ziel ist es nun geeignete Regeln zu +finden, die das Pendel bei der Fahrt des Wagens ausbalanciert und es somit nicht +umkippt. + +Die durch dieses Lernverfahren entstandenen Regeln sind wie folgt: +\begin{center} +\includegraphics[width=15cm]{img/nefconexample} +\end{center} + +Das Erlernen der Regelbasis ist dabei vor allem davon abhängig, wie gut die +Parameter gewählt wurden. Wichtig ist dabei die Wahl der Anzahl, der Iterationen +durch Phase 1, sowie Phase 2. Empfohlen werden dabei 2000 bis 300 Iterationen. +Außerdem sollte eine geeignete Stellgröße für die Minimalverwendung einer Regel +gefunden werden. Dieser Wert sollte dabei zwischen 1.00 und 1.03 gewählt werden, +da sonst wichtige Regeln, die aber nur selten vorkommen aus der Regelbasis +entfernt werden. Zusätzlich ist es möglich bekannte Regeln zu definieren. Diese +werden dann vom Lernalgorithmus nicht entfernt und es werden auch keine Regeln +erzeugt, die die gleiche Prämisse enthalten.\cite{Lip06} +\subsection{Erlernen von Fuzzy-Mengen} +Ein weiterer Einsatzbereich des NEFCON-Models ist das Erlernen von Fuzzy-Mengen. +Dabei wird vorausgesetzt, dass eine korrekte Regelbasis besteht. Durch den +Fuzzy-Backpropagationalgorithmus wird die Güte einer Regel bestimmt um ``gute'' +Regeln zu belohnen und ``schlechte'' Regeln zu bestrafen. + +Dabei wird der Beitrag $t_k$ der Regel $R_k$ zum Ergebnis durch $t_k = +u^{-1}_{k}(o_k)$ ermittelt. Die dadurch erhaltene Stellgröße gibt den Zustand +der Größe an wobei der Wert 0 dem optimalen Zustand entspricht. Enthält die +Stellgröße dabei das richtige Vorzeichen, wird die Regel als gut eingestuft. Mit +dieser Klassifizierung wird der Einfluss ``guter'' Regeln vergrößert und der +Einfluss ``schlechter'' Regeln verkleinert. + +Das Lernverfahren selbst besteht aus sechs Einzelschritten: + +\paragraph{Schritt 1} +Berechne Ausgabe $o$ für die Messwert, wende sie auf das zusteuernde System +an und berechne die sich daraus ergebenden Messwerte. + +\paragraph{Schritt 2} +Berechne den Fuzzy-Fehler, der sich aus den Messwerten von Schritt 1 ergibt. + +\paragraph{Schritt 3} +Bestimme das Vorrücken des Stellwertes im neuen Systemzustand. + +\paragraph{Schritt 4} +Berechne für Regel $R_k$ den Beitrag $t_k$. Dabei ist das Fehlersignal $F_k$ für +Regel $R_k$ gegeben durch + \begin{displaymath} + F_k := + \begin{cases} + -o * E \qquad \text{Vorzeichen von $t_k$ richtig} + \\ + o * E \qquad \quad \text{Vorzeichen von $t_k$ falsch} + \end{cases} + \end{displaymath} +\paragraph{Schritt 5} +Modifizierung aller Eingabe-Fuzzy-Mengen $\tilde{A}_{i*}^{(k)} = +(l_{i*}^{(k)},m_{i*}^{(k)},r_{i*}^{(k)})$. + +\begin{displaymath} + \Delta l_{i*}^{(k)} = -\eta * F_k * (m_{i*}^{(k)} - l_{i*}^{(k)}) +\end{displaymath} +\begin{displaymath} + \Delta r_{i*}^{(k)} = -\eta * F_k * (r_{i*}^{(k)} - m_{i*}^{(k)}) +\end{displaymath} + +Dabei stehen $l$, $m$ und $r$ für die linke, rechte und mittlere Fuzzy-Menge, +die in diesem Beispiel verwendet wird. Diese Fuzzy-Mengen werden um den $\Delta$ +verschoben um ein optimale Fuzzy-Menge zu erhalten. $\eta$ entspricht der +Gewichtung der Fuzzy-Menge. Allerdings wird Fuzzy-Menge $m$ nicht neu berechnet, +sondern als korrekt angesehen. + +\paragraph{Schritt 6} +Modifizierung aller Ausgabe-Fuzzy-Mengen $\tilde{B}_{i*}^{(k)} = +(m_{i*}^{(k)},b_{i*}^{(k)})$. + +\begin{displaymath} + \Delta b_{j*}^{(k)} + \begin{cases} + \eta * F_k * (b_{j*}^{(k)} - m_{j*}^{(k)}) \qquad b_{j*}^{(k)} > + m_{j*}^{(k)}\\ \eta * F_k * (m_{j*}^{(k)} - b_{j*}^{(k)}) \qquad b_{j*}^{(k)} < m_{j*}^{(k)} + \end{cases} +\end{displaymath} + +\subsection{Nachteile des NEFCON-Models} +Ein großer Nachteil des NEFCON ist die Voraussetzung von monotonen +Fuzzy-Mengen. Das heißt das keine Gauß- \& Dreiecks-Mengen möglich, diese werden +von Fuzzy-Control"-lern allerdings häufig verwendet. +Ein weiterer Nachteil ist, dass es nur möglich ist ein Ausgabeneuron zu +verwenden und es somit auch nur einen Ausgabewert gibt. +Zusätzlich ist es nicht möglich die erzeugten Regeln zu überprüfen oder fehlende +Fuzzy-Mengen zu generieren.\cite{Lip06} -- cgit v1.2.3