fpcs eingefügt
@ -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}
|
@ -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.
|
||||||
|
121
chapters/Supervised Learning/Fuzzy Pattern Classifier.tex
Normal 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}
|
BIN
images/fpc_asymmetric_aproach.png
Normal file
After Width: | Height: | Size: 52 KiB |
BIN
images/fpc_closed.png
Normal file
After Width: | Height: | Size: 25 KiB |
BIN
images/fpc_example.png
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
images/fpc_open.png
Normal file
After Width: | Height: | Size: 174 KiB |
BIN
images/fpc_variants.png
Normal file
After Width: | Height: | Size: 136 KiB |
BIN
images/fuzzy-pattern-classifier.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
images/fuzzy_averaging_operator.png
Normal file
After Width: | Height: | Size: 30 KiB |
BIN
images/parameterized_fpc.png
Normal file
After Width: | Height: | Size: 72 KiB |
@ -2,3 +2,4 @@
|
|||||||
\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}
|