ML_Zusammenfassung/chapters/Supervised Learning/Fuzzy Pattern Classifier.tex
2021-01-29 22:19:29 +01:00

121 lines
7.4 KiB
TeX

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