\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}