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 --- .../NeuroFuzzy/assignment/part3.tex | 122 +++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 Master/Computational Intelligence/NeuroFuzzy/assignment/part3.tex (limited to 'Master/Computational Intelligence/NeuroFuzzy/assignment/part3.tex') 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