diff --git a/Acronyms.tex b/Acronyms.tex index dedec40..4d1f52d 100644 --- a/Acronyms.tex +++ b/Acronyms.tex @@ -2,9 +2,10 @@ % list of acronyms %% \begin{acronym} - \acro{vc-dimension} [VC-Dimension] {Vapnik-Chervonenkis-Dimension} - \acro{srm} [SRM] {Structural Risk Minimisation} - \acro{svm} [SVM] {Support Vector Machine} - \acro{kkt} [KKT] {Karush-Kuhn-Tucker} - \acro{rbf} [RBF] {Radial Basis Function} + \acro{VC-Dimension} {Vapnik-Chervonenkis-Dimension} + \acro{SRM} {Structural Risk Minimisation} + \acro{SVM} {Support Vector Machine} + \acro{KKT} {Karush-Kuhn-Tucker} + \acro{RBF} {Radial Basis Function} + \acro{DBSCAN} {Density-Based Spatial Clustering of Applications with Noise} \end{acronym} \ No newline at end of file diff --git a/Packages.tex b/Packages.tex index 7dad8c8..f5719bf 100644 --- a/Packages.tex +++ b/Packages.tex @@ -26,7 +26,7 @@ rightsub = \grq% \usepackage{xcolor} \usepackage{listings} %acronyms -\usepackage{acronym} +\usepackage[printonlyused]{acronym} %header and footer \usepackage{fancyhdr} %custom font sizes diff --git a/chapters/Basics/Information and Pattern Recognition.tex b/chapters/Basics/Information and Pattern Recognition.tex index ab954a5..53685d4 100644 --- a/chapters/Basics/Information and Pattern Recognition.tex +++ b/chapters/Basics/Information and Pattern Recognition.tex @@ -43,8 +43,8 @@ \say{Semantical classes} werden aufgrund der inhaltlichen Äquivalenz der Pattern gebildet. Hierbei werden die Klassen selber meist durch einen menschlichen Experten definiert. Die Aufgabe ist dann ein System zu erstellen, welche die Pattern in die vordefinierten Klassen einordnet. - Man spricht hierbei vom \textbf{Supervised Learning}. + Man spricht hierbei vom \textbf{Supervised Learning} (\ref{supervised learning}). \paragraph{Natural classes} \say{Natural classes} werden auf Basis mathematischer Formalismen gebildet. Hierfür wird z.B. der mathematische Abstand eines bestimmten Patterns zu einem anderen für die Klassifikation verwendet. - Diese Art Klassen wird vor allem im Bereich der \say{numerical classification} verwendet, welche ein Beispiel für ein \textbf{Unsupervised Learning} Verfahren ist. + Diese Art Klassen wird vor allem im Bereich der \say{numerical classification} verwendet, welche ein Beispiel für ein \textbf{Unsupervised Learning} (\ref{unsupervised learning}) Verfahren ist. diff --git a/chapters/Supervised Learning/Hierachische Verfahren.tex b/chapters/Supervised Learning/Hierachische Verfahren.tex deleted file mode 100644 index cdb8bba..0000000 --- a/chapters/Supervised Learning/Hierachische Verfahren.tex +++ /dev/null @@ -1,30 +0,0 @@ -\chapter{Hierachische Verfahren} - \includegraphics[width = \textwidth]{hierachische Verfahren.png} - Eine hierarchische Clusterung lässt sich mithilfe eines Dendogramms darstellen:\\ - \includegraphics[width=.6\textwidth]{dendogramm.png} - - \section{Algorithmus} - \begin{enumerate} - \item erzeuge für jeden Punkt aus dem Datensatz ein separates Cluster - \item Berechne den Abstand zwischen allen Clustern - \item Verschmelze die beiden Cluster, die den geringsten Abstand zueinander haben - \item Aktualisiere die Distanzen zwischen den Clustern bis alle Punkte in dem gleichen Cluster liegen - \item goto 3. - \end{enumerate} - Meistens wird in den Algorithmus eine Abbruchbedingung eingebaut, damit nicht alle Elemente in dem gleichen Cluster zusammengefasst werden. - Diese Abbruchbedingung definiert sich über den maximalen Abstand der Elemente in einem Cluster. - - \section{Abstand zwischen Clustern} - Es gibt mehrer Möglichkeiten um den Abstand zwischen zwei Clustern festzustellen - - \paragraph{Single Link}\mbox{}\\ - \includegraphics[width=.8\textwidth]{single-link.png} - - \paragraph{Complete Link}\mbox{}\\ - \includegraphics[width=.8\textwidth]{complete-link.png} - - \paragraph{Average Link}\mbox{}\\ - \includegraphics[width=.8\textwidth]{average-link.png} - - \paragraph{Abstand der Zentroide der beiden Cluster}\mbox{}\\ - \includegraphics[width=.8\textwidth]{centroid-distance.png} \ No newline at end of file diff --git a/chapters/Supervised Learning/Linear Machines.tex b/chapters/Supervised Learning/Linear Machines.tex index 08914b6..506b4a2 100644 --- a/chapters/Supervised Learning/Linear Machines.tex +++ b/chapters/Supervised Learning/Linear Machines.tex @@ -63,8 +63,8 @@ \subsection{Beispiel: symmetrischer Lernalgorithmus} \includegraphics[width=.8\textwidth]{Perzeptron_Lernalgorithmus_symmetrisch.png} - \section{\acs{vc-dimension}}\label{vc-dimension} - Die \acl{vc-dimension} gibt ein Maß für die \say{learning power} einer Klassifizierung. + \section{\acs{VC-Dimension}}\label{vc-dimension} + Die \acl{VC-Dimension} gibt ein Maß für die \say{learning power} einer Klassifizierung. \subsection{Shattering} \say{Here we will only consider functions that correspond to the two-class pattern recognition case, so that $g(\bm{m}, y) \in \{-1, 1\}\forall x, y$. @@ -135,7 +135,7 @@ \begin{itemize} \item $N$: Anzahl der Trainingsdatenpunkte \item $\kappa$: das \say{confidence level}, $0\le\kappa\le1$ - \item $h$: \acs{vc-dimension} (\ref{vc-dimension}) + \item $h$: \acs{VC-Dimension} (\ref{vc-dimension}) \end{itemize} \includegraphics[width=.8\textwidth]{risk-bound.png} @@ -149,8 +149,8 @@ Das Strukturelle Risiko wird durch das empirische Risiko $R_{emp}(\bm{w})$ (\ref{empirical risk}) und den Kapazitätsterm $\varepsilon(N,\kappa,h)$ (\ref{capacity term}) definiert.\\ \includegraphics[width=.6\textwidth]{structural_risk.png} - \subsubsection{\acl{srm}} + \subsubsection{\acl{SRM}} Das strukurelle Risiko kann entweder dadurch reduziert werden, dass das empirische Risiko (\ref{empirical risk}) bei gleichbleibenden $\varepsilon$ (\ref{capacity term}) reduziert wird, oder durch eine Reduzierung von $\varepsilon$ bei gleichbleibenden empirishen Risiko. - Letzteres ist der Ansatz den die \acs{svm}s (\ref{svm}) verfolgen. \ No newline at end of file + Letzteres ist der Ansatz den die \acs{SVM}s (\ref{svm}) verfolgen. \ No newline at end of file diff --git a/chapters/Supervised Learning/SVM.tex b/chapters/Supervised Learning/SVM.tex index 3668740..c5454b0 100644 --- a/chapters/Supervised Learning/SVM.tex +++ b/chapters/Supervised Learning/SVM.tex @@ -1,5 +1,5 @@ -\chapter{\acl{svm}}\label{svm} - \acs{svm}s können als lineare (\ref{linear machines}) oder nicht-lineare Maschinen aufgebaut werden.\\ +\chapter{\acl{SVM}}\label{svm} + \acs{SVM}s können als lineare (\ref{linear machines}) oder nicht-lineare Maschinen aufgebaut werden.\\ \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|} \hline \textbf{Vorteile} & \textbf{Nachteile}\\ @@ -16,7 +16,7 @@ \hline \end{tabular} - \section{lineare \acl{svm}} + \section{lineare \acl{SVM}} \begin{wrapfigure}{h}{.6\textwidth} \vspace{-10mm} \includegraphics[width=.6\textwidth]{svm_base.png} @@ -63,7 +63,7 @@ \frac{\delta L_\alpha}{\delta w_0} &= 0 \Rightarrow \sum^N_{i=1}\alpha_i \cdot g_i = 0\\ \frac{\delta L_\alpha}{\delta \bm{w}} &= 0 \Rightarrow \bm{w} - \sum^N_{i=1}\alpha_i \cdot \bm{m}_i \cdot g_i = 0 \rightarrow \bm{w} = \sum^N_{i=1}\alpha_i \cdot g_i \cdot \bm{m}_i \end{align*} - Hieraus ergeben sich die \acl{kkt} Bedingungen + Hieraus ergeben sich die \acl{KKT} Bedingungen \begin{align*} (\bm{w}^T\bm{m}_i + w_0)\cdot g_i - 1 &\ge 0 \\ \alpha_i &\ge 0 \\ @@ -72,10 +72,10 @@ Jeder Datenpunkt, für den $\alpha_i>0$ gilt, ist ein \say{support vector}. \subsubsection{Sparsity} - \acs{svm}s sind \say{sparse learning machines}, da Sie meist nur von wenigen Support Vektoren abhängen. + \acs{SVM}s sind \say{sparse learning machines}, da Sie meist nur von wenigen Support Vektoren abhängen. - \section{nicht-lineare \acl{svm}}\label{non linear svm} - \acs{svm}s können auch dafür benutzt werden, nicht-linear-trennbare Cluster zu teilen. + \section{nicht-lineare \acl{SVM}}\label{non linear svm} + \acs{SVM}s können auch dafür benutzt werden, nicht-linear-trennbare Cluster zu teilen. Hierfür müssen einige mathematischen Tricks angewandt werden. \subsection{Dual Representation **} @@ -118,14 +118,14 @@ \subsection{Polynomialer Kernel} \includegraphics[width=.8\textwidth]{kernel_trick_polynomial_kernel.png} - \subsubsection{Beispiel: Gausian \acl{rbf} Kernel} + \subsubsection{Beispiel: Gausian \acl{RBF} Kernel} $$K(\bm{m}_i,\bm{m}_j) = \exp\left(-\frac{||\bm{m}_1-\bm{m}_2||^2}{2\sigma^2}\right)$$ \includegraphics[width=\textwidth]{kernel_trick_example.png} \section{Soft Margin} Falls Daten vorliegen, die nicht \say{einfach} (\ref{occam's razor}) separierbar sind ist es zwar möglich den Feature Space so zu transformieren, dass er linear separierbar wird, allerdings ist dies wenig sinnvoll. - Hierbei ist die \acs{vc-dimension} sehr hoch, weshalb auch die Gefahr für Overfitting sehr hoch ist. + Hierbei ist die \acs{VC-Dimension} sehr hoch, weshalb auch die Gefahr für Overfitting sehr hoch ist. Dieses Problem kann umgangen werden, indem mittels \say{soft margins} zugelassen wird, dass eine geringe Anzahl an Datenpunkten auf der falschen Seite der Diskriminanten liegt.\\ \includegraphics[width=.6\textwidth]{soft_margin.png} diff --git a/chapters/Unsupervised Learning/Clustering Algorithms.tex b/chapters/Unsupervised Learning/Clustering Algorithms.tex new file mode 100644 index 0000000..e334e21 --- /dev/null +++ b/chapters/Unsupervised Learning/Clustering Algorithms.tex @@ -0,0 +1,114 @@ +\chapter{Clustering Algorithms}\label{clustering algorithms} + \includegraphics[width = .6\textwidth]{clustering_algorithms.png} + + \section{partition based algorithms} + Partitionsbasierte Clustering Algorithmen starten mit einer vordefinierten Partitionierung. + Anschließend werden die Elemente so lange zwischen den Partitionen verschoben, bis das optimale Ziel erreicht ist. + Die meisten dieser Algorithmen erfordern, dass die Anzahl der angestrebten Partitionen vorgegeben ist.\\ + \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|} + \hline + \textbf{Vorteile} & \textbf{Nachteile}\\ + \hline + \begin{itemize} + \item geringe Komplexität + \item hohe Recheneffizienz + \end{itemize}& + \begin{itemize} + \item nicht geeignet für nicht-konvexe Daten + \item stark durch Ausreißer beeinflusst + \item Anzahl der Cluster muss bekannt sein + \item Ergebnis ist abhängig von der Anzahl der Cluster + \end{itemize}\\ + \hline + \end{tabular} + + \paragraph{Zeitliche Komplexität}\mbox{}\\ + \includegraphics[width = \textwidth]{partition_based_clustering_complexity.png} + + \subsection{Verfahren} + \includegraphics[width = .6\textwidth]{partition_based_clustering.png} + + \subsection{k-means} + \begin{itemize} + \item Anzahl der angestrebten Cluster ist bekannt + \item Das Zentrum der Cluster entspricht dem Zentrum der jeweiligen Datenpunkte + \item Das Das zuvor beschriebene Verfahren wird so lange wiederholt, bis ein Konvergenzkriterium erreicht wurde + \end{itemize} + \subsubsection{Beispiel} + \includegraphics[width = .9\textwidth]{k-means.png} + + \section{Hierachische Verfahren} + \includegraphics[width = \textwidth]{hierachische Verfahren.png}\\ + \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|} + \hline + \textbf{Vorteile} & \textbf{Nachteile}\\ + \hline + \begin{itemize} + \item für Datensätze mit beliebiger Form und Typ geeignet + \item Erkennung von hierarchischen Zusammenhängen ist einfach + \item gut skalierbar + \end{itemize}& + \begin{itemize} + \item Hohe zeitliche Komplexität + \end{itemize}\\ + \hline + \end{tabular} + \paragraph{Zeitliche Komplexität}\mbox{}\\ + \includegraphics[width = .5\textwidth]{hierarchical_clustering_complexity.png} + + \paragraph{Dendogramm}\mbox{}\\ + \includegraphics[width=.6\textwidth]{dendogramm.png} + + \subsection{Algorithmus} + \begin{enumerate} + \item erzeuge für jeden Punkt aus dem Datensatz ein separates Cluster + \item Berechne den Abstand zwischen allen Clustern + \item Verschmelze die beiden Cluster, die den geringsten Abstand zueinander haben + \item Aktualisiere die Distanzen zwischen den Clustern bis alle Punkte in dem gleichen Cluster liegen + \item goto 3. + \end{enumerate} + Meistens wird in den Algorithmus eine Abbruchbedingung eingebaut, damit nicht alle Elemente in dem gleichen Cluster zusammengefasst werden. + Diese Abbruchbedingung definiert sich über den maximalen Abstand der Elemente in einem Cluster. + + \subsection{Abstand zwischen Clustern} + Es gibt mehrer Möglichkeiten um den Abstand zwischen zwei Clustern festzustellen + + \paragraph{Single Link}\mbox{}\\ + \includegraphics[width=.8\textwidth]{single-link.png} + + \paragraph{Complete Link}\mbox{}\\ + \includegraphics[width=.8\textwidth]{complete-link.png} + + \paragraph{Average Link}\mbox{}\\ + \includegraphics[width=.8\textwidth]{average-link.png} + + \paragraph{Abstand der Zentroide der beiden Cluster}\mbox{}\\ + \includegraphics[width=.8\textwidth]{centroid-distance.png} + + \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|} + \hline + \textbf{Vorteile} & \textbf{Nachteile}\\ + \hline + \begin{itemize} + \item hocheffizientes Clustering + \item geeignet für viele verschiedene Clusterformen + \end{itemize}& + \begin{itemize} + \item schlechte Qualität bei ungleichmäßiger Dichte der Datenpunkte in einem Cluster + \item hoher Speicherplatzbedarf bei großer Datenmenge + \item starke Abhängigkeit von den Parametern + \end{itemize}\\ + \hline + \end{tabular} + \paragraph{Zeitliche Komplexität}\mbox{}\\ + $O(n\cdot \log n)$ + + \section{density based clustering} + Algorithmen, die davon ausgehen, dass die Elemente in einem Cluster nach einer bestimmbaren Funktion normalverteilt um ein Zentrum liegen werden als \acs{DBSCAN} bezeichnet. + Hierfür benötigt der \ac{DBSCAN} Algorithmus 2 Parameter:\\ + \includegraphics[width = .8\textwidth]{dbscan-parameters.png}\\ + Für eine gute Auswahl der Parameter ist Vorwissen über den Datensatz erforderlich.\\ + \includegraphics[width = .6\textwidth]{eps_minPts_estimation.png} + + \subsection{Beispiele} + \includegraphics[width = \textwidth]{dbscan_examples.png} \ No newline at end of file diff --git a/images/clustering_algorithms.png b/images/clustering_algorithms.png new file mode 100644 index 0000000..e273793 Binary files /dev/null and b/images/clustering_algorithms.png differ diff --git a/images/dbscan-parameters.png b/images/dbscan-parameters.png new file mode 100644 index 0000000..bc9fdb1 Binary files /dev/null and b/images/dbscan-parameters.png differ diff --git a/images/dbscan_examples.png b/images/dbscan_examples.png new file mode 100644 index 0000000..21e7fde Binary files /dev/null and b/images/dbscan_examples.png differ diff --git a/images/eps_minPts_estimation.png b/images/eps_minPts_estimation.png new file mode 100644 index 0000000..8e53c6c Binary files /dev/null and b/images/eps_minPts_estimation.png differ diff --git a/images/hierarchical_clustering_complexity.png b/images/hierarchical_clustering_complexity.png new file mode 100644 index 0000000..65736ea Binary files /dev/null and b/images/hierarchical_clustering_complexity.png differ diff --git a/images/k-means.png b/images/k-means.png new file mode 100644 index 0000000..44d6b7d Binary files /dev/null and b/images/k-means.png differ diff --git a/images/partition_based_clustering.png b/images/partition_based_clustering.png new file mode 100644 index 0000000..f2ebe4f Binary files /dev/null and b/images/partition_based_clustering.png differ diff --git a/images/partition_based_clustering_complexity.png b/images/partition_based_clustering_complexity.png new file mode 100644 index 0000000..14e3449 Binary files /dev/null and b/images/partition_based_clustering_complexity.png differ diff --git a/parts/Supervised Learning.tex b/parts/Supervised Learning.tex index 9271c78..e82e67e 100644 --- a/parts/Supervised Learning.tex +++ b/parts/Supervised Learning.tex @@ -1,5 +1,4 @@ -\part{Supervised Learning} +\part{Supervised Learning}\label{supervised learning} \input{chapters/Supervised Learning/Occam's Razor.tex} \input{chapters/Supervised Learning/Linear Machines.tex} - \input{chapters/Supervised Learning/SVM.tex} - \input{chapters/Supervised Learning/Hierachische Verfahren.tex} \ No newline at end of file + \input{chapters/Supervised Learning/SVM.tex} \ No newline at end of file diff --git a/parts/Unsupervised Learning.tex b/parts/Unsupervised Learning.tex index 69d86b0..477501f 100644 --- a/parts/Unsupervised Learning.tex +++ b/parts/Unsupervised Learning.tex @@ -1,3 +1,4 @@ -\part{Unsupervised Learning} +\part{Unsupervised Learning}\label{unsupervised learning} -\input{chapters/Unsupervised Learning/Clustering.tex} \ No newline at end of file +\input{chapters/Unsupervised Learning/Clustering.tex} +\input{chapters/Unsupervised Learning/Clustering Algorithms.tex} \ No newline at end of file