fpcs eingefügt

This commit is contained in:
paul-loedige 2021-01-29 22:19:29 +01:00
parent 65fd2f3866
commit 3d1b0956e5
12 changed files with 127 additions and 1 deletions

View File

@ -13,4 +13,7 @@
\acro{ML}{Maschinelles Lernen} \acro{ML}{Maschinelles Lernen}
\acro{CNN}{Convolutional Neural Network} \acro{CNN}{Convolutional Neural Network}
\acro{RNN}{Recurrent Neural Network} \acro{RNN}{Recurrent Neural Network}
\acro{FPC}{(Bocklisch's) Fuzzy Pattern Classifier}
\acro{MFPC}{Modified-Fuzzy-Pattern-Classifier}
\acro{FPGA}{Field Programmable Gate Array}
\end{acronym} \end{acronym}

View File

@ -1,4 +1,5 @@
\chapter{Information and Pattern Recognition} \chapter{Information and Pattern Recognition}
\label{information and pattern regocgnition}
Falls zu viele Daten vorliegen um diese manuell auszuwerten kann es möglich sein den Vorgang zu automatisieren. Falls zu viele Daten vorliegen um diese manuell auszuwerten kann es möglich sein den Vorgang zu automatisieren.
Hierbei werden die Daten mithilfe eines Musters klassifiziert (Pattern assignment $\rightarrow$ classification). Hierbei werden die Daten mithilfe eines Musters klassifiziert (Pattern assignment $\rightarrow$ classification).
Das Verfahren zur Auswahl der jeweiligen Klassenzuordnung wird als \say{Pattern Recognition} bezeichnet. Das Verfahren zur Auswahl der jeweiligen Klassenzuordnung wird als \say{Pattern Recognition} bezeichnet.

View File

@ -0,0 +1,121 @@
\chapter{\acf{FPC}}
\label{fuzzy-pattern-classifier}
Der \ac{FPC} wird allgemein als $h(\bm{m},\bm{p})$angegeben.
\paragraph{Beispiel:}\mbox{}\\
\includegraphics[width = .6\textwidth]{fpc_closed.png}\\
Der \ac{FPC} besteht aus mehreren Bestandteilen:\\
\includegraphics[width = .8\textwidth]{fpc_open.png}
\section{\acf{FPC} membership function}
\label{fpc membership function}
Allgmein geht es bei den \acp{FPC} darum Zugehörigkeitsfunktionen aus der Fuzzy Logic zu berechnen und die Ergebnisse zu aggregieren.
Dies wird dazu genutzt eine Klassifikation aufzubauen, die viele Merkmale miteinbezieht.
Die \ac{FPC} membership function stellt eine Abbildung $\mu(m,\bm{p})\rightarrow I$ auf die Identität $I\in \{0,1\}$ dar:
$$ \mu(m,\bm{p}) = \frac{A}{1+d(m,\bm{p})}(\Rightarrow A \in I) \text{ mit } d(m,\bm{p}) = \left(\frac{|m-S|}{C}\right)^D$$
\begin{itemize}
\item $\bm{p} = (S,C,D)$:\\
der Parameter-Vektor, der die Eigenschaften der der membership function festlegt
\begin{itemize}
\item $S$: der Durchschnittswert
\item $C$: die Breite
\item $D$: die Flankensteilheit
\end{itemize}
\item $d(m,\bm{p})$:\\
der Abstand von einem Feature-Wert $m$ von dem Durchschnittswert $S$
\item $A$:\\
der größte Wert der membership function
\end{itemize}
\includegraphics[width = \textwidth]{fuzzy-pattern-classifier.png}\\
Die einzelnen Parameter werden jeweils vorgegeben oder angelernt.
Die Form der Funktion wird dabei immer an den jeweiligen Einsatzzweck angepasst.\\
\includegraphics[width = \textwidth]{parameterized_fpc.png}
Auch eine mehrdimensionale Implementierung oder die Implementierung von parallel laufenden Funktionen ist möglich:\\
\includegraphics[width = \textwidth]{fpc_variants.png}
\subsection{\acf{MFPC} membership function}
\label{mfpc membership function}
\acp{MFPC} sind hardware-optimierte Varianten von \ac{FPC}.
Da zum Zeitpunkt der Entwicklung der \ac{FPC} membership funciton (\ref{fpc membership function}) war diese aufgrund der Division nicht für die Hardware-Implementation geeignet.
Die zugehörige membership function ist definiert durch:
$$\mu_\text{MFPC}(m,\bm{p}) = 2^{-d(m,\bm{p})}\in I \text{ mit } d(m,\bm{p}) = \left(\frac{|m-S|}{C}\right)^D$$
Diese Funktion ist sehr effizient in Hardware implementierbar.
\acp{MFPC} wurden dafür entworfen Pattern Recognition (\ref{information and pattern regocgnition}) Systeme auf \acp{FPGA} zu verwenden.
\subsection{Bestimmung der Parameter}
\label{fpc: parameterbestimmung}
\begin{itemize}
\item Distanzfunktion $d_i$ für jedes Feature $m_i$:
$$d_i(m_i;\bm{p})\left(\frac{|m_i-S_i}{C_i}\right)^D_i$$
\item Durchschnittswert $S$:
$$S_i = \frac{1}{N}\sum^{N-1}_{j=0}m_j$$
oder für kompakte Datensätze:
$$S_i = \frac{1}{2}\cdot \left(\max(m_i)+\min(m_i)\right)$$
\item Breite $C$ kann durch anlernen ermittelt werden:
$$C_i = \frac{1}{2}\cdot\left[\max(m_i)-\min(m_i)\right]+C_{E,i}$$
$C_{E,i}$ ist definiert als $C_{E,i}=p_{C_e}\cdot\left[\max(m_i)-\min(m_i)\right]$.
Hieraus ergibt sich dann für $C_i$:
$$C_i(1+2p_{C_e})\cdot \frac{1}{2}\left[\max(m_i)-\min(m_i)\right]$$
$p_{C_e}$ ist ein Controll-Parameter (in der Praxis meist $\approx5\%$)
\item Flankensteilheit $D$ wird empirisch festgelegt ($D=2\vee4\vee8$) oder mit dem \say{Petker, Mönks}-Ansatz erlent
\end{itemize}
\section{Defuzzifizierung}
\label{defuzzification}
Die Rückgabewerte des \ac{FPC} werden anhand eines Schwellwertes $B$ defuzzifiziert.
Hierdurch findet dann die eindeutige Klassifizierung statt.
$$c=\begin{cases}
1, &\mu(\bm{m};\bm{p})\ge B\\
0, &\mu(\bm{m};\bm{p})< B
\end{cases}
$$
\section{Aggregationsoperator $h$}
\label{fpc: aggregationsopperator}
Um die Ergebnisse der membership functions (\ref{fpc membership function}) der einzelnen Features zusammenzufassen wird ein Aggregationsoperator $h$ verwendet.
Hierfür werden meist \say{fuzzy averaging operators} verwendet.
Diese liegen frei zwischen einem harten \textbf{AND}-Operator und einem harten \textbf{OR}-Operator.
Man misst jeweils die \say{orness} bzw. \say{andness} des Operators.\\
\includegraphics[width = .8\textwidth]{fuzzy_averaging_operator.png}
Die geometrische Mitte liegt hierbei bei $\approx0.666$ andness.
\subsection{Axiome}
\label{fpc: aggregation axioms}
Um zu zeigen, dass die Leistungsfähigkeit für eine \ac{MFPC} aggregating fuzzy membership function ausreichend ist müssen folgende Axiome erfüllt sein:
\begin{itemize}
\item \textbf{Axiom H 1.} Monotonicity:\\
Das Verhältnis von zwei Eingangsparameter-Mengen soll sich in der Ausgabe des Aggregationsoperators wiederspiegeln.
D.h. für die Parameter-Tupel $(a_1,a_2,\dots,a_n)$ und $(b_1,b_2,\dots,b_n)$ ($a_i,b_i\in I \forall i\in \mathbb{N}_n)$) soll für
$a_i\le b_i\forall i\in \mathbb{N}_n$ gelten:
$$h(a_1,a_2,\dots,a_n)\le h(b_1,b_2,\dots,b_n)$$
\item \textbf{Axion H 2.} Continuity:\\
Eine kleine Änderung der Eingangsparameter soll auch nur zu einer kleinen Änderung des Ergebnisses der Aggregationsoperation führen
$$\lim_{\epsilon\rightarrow0} h (a_1,\dots,a_i + \epsilon, \dots,a_n) = h(a_1,\dots,a_i,\dots,a_n)$$
\item \textbf{Axiom H 3.} Symmetry:\\
Das Ergebnis des Aggregationsoperators bleibt für jede Permutation $p$ auf $\mathbb{N}_n = \{1,\dots n\}$ gleich:
$$h(a_1,a_2,\dots,a_n) = h(a_{p(1)},a_{p(2)},\dots,a_{p(n)})$$
\item \textbf{Axiom H 4.} Idempotency:\\
Wenn $a_i = a \forall i \in \mathbb{N}_n$, dann
$$ h(a_1,a_2,\dots,a_n) = a$$
\end{itemize}
\subsection{\ac{MFPC} aggregate membership function}
\label{mfpc: aggregate membership function}
Der Aggregationsoperator für die \acp{MFPC} ist definiert durch:
\Large
$$\mu(\bm{m},\bm{p}) = 2 ^ {-\frac{1}{M}\sum^M_{i=1}\left(\frac{|m_i-S_i|}{C_i}\right)^{D_i}} = \left[\prod^M_{i=1} 2^{-\left(\frac{|m_i-S_i|}{C_i}\right)^{D_i}}\right]^{\frac{1}{M}}$$
\normalsize
Hierbei ist der geometrische Mittelpunkt definiert durch:
\Large
$$\mu(\bm{m};\bm{p})= 2^{-\frac{1}{M}\sum^{M-1}_{i=0} d(m_i;\bm{p})}$$
\normalsize
Diese Aggregationsoperation erfüllt alle nötigen Axiome (\ref{fpc: aggregation axioms}) (Beweis: siehe Vorlesung).
\section{Asymmetrischer Ansatz}
In der Praxis wird neben dem normalen (symmetrischen) Ansatz auch der asymmetrische Ansatz verwendet.\\
\includegraphics[width =\textwidth]{fpc_asymmetric_aproach.png}
\section{Anwendungsbeispiel: Banknotenüberprüfung}
\includegraphics[width = \textwidth]{fpc_example.png}

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

BIN
images/fpc_closed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

BIN
images/fpc_example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

BIN
images/fpc_open.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

BIN
images/fpc_variants.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

@ -1,4 +1,5 @@
\part{Supervised Learning}\label{supervised learning} \part{Supervised Learning}\label{supervised learning}
\input{chapters/Supervised Learning/Occam's Razor.tex} \input{chapters/Supervised Learning/Occam's Razor.tex}
\input{chapters/Supervised Learning/Linear Machines.tex} \input{chapters/Supervised Learning/Linear Machines.tex}
\input{chapters/Supervised Learning/SVM.tex} \input{chapters/Supervised Learning/SVM.tex}
\input{chapters/Supervised Learning/Fuzzy Pattern Classifier.tex}