2021-02-08 21:20:40 +01:00

177 lines
8.9 KiB
TeX

\chapter{Einführung}
\label{ml: einfuehrung}
Allgemein geht es beim maschinellen Lernen darum eine Abbildung $h$ zu erlernen, die auf Basis von Eingabedaten Vorhersagen trifft.
Zum erstellen (bzw. erlernen) von $h$ gibt es zwei Möglichkeiten:
\begin{enumerate}
\item \textbf{Offline Learning:}\\
$h$ wird auf der Basis von Trainingsdaten angelernt.
Sobald $h$ ausreichend gute Vorhersagen trifft wird es unverändert eingesetzt.
\item \textbf{Online Learning:}\\
Die durch Offline Learning erstellte Abbildung $h$ entwickelt sich auf den Produktivdaten weiter.
\end{enumerate}
\section{Was ist Lernen?}
\label{was ist lernen}
Um zu verstehen, was ein lernender Agent (\ref{learning agent}) tut muss zunächst einmal definiert werden, was Lernen überhaupt bedeutet.
Meyers großes Handlexikon definiert \say{Lernen} als:\\
\includegraphics[width = \textwidth]{definition_lernen.png}
\subsection{Arten des Lernen}
\label{arten des lernen}
\includegraphics[width = \textwidth]{lernarten.png}
\subsection{Formen des Lernen}
\label{formen des lernen}
\begin{itemize}
\item \textbf{Informationsbasiertes Lernen:}
\begin{itemize}
\item Welche Merkmale sind am informativsten?
\item Standardalgorithmen: Entscheidungsbäume
\end{itemize}
\item \textbf{Ähnlichkeitsbasiertes Lernen:}
\begin{itemize}
\item Welche bekannten Instanzen sind der Unbekannten am ähnlichsten?
\item Standardalgorithmus: K-Nächste-Nachbarn
\end{itemize}
\item \textbf{Wahrscheinlichkeitsbasiertes Lernen:}
\begin{itemize}
\item Was ist die wahrscheinlichste Vorhersage, die wir treffen sollten?
\item Standardalgorithmus: Naiver Bayes
\end{itemize}
\item \textbf{Fehlerbasiertes Lernen:}
\begin{itemize}
\item Welche Parameter müssen angepasst werden, um den Fehler zu verringern?
\item Standardalgorithmus: Multiple lineare Regression
\end{itemize}
\end{itemize}
\section{Übersicht über die Welt der \ac{KI}}
\label{ml: uebersicht}
\begin{center}
\includegraphics[width = .7\textwidth]{übersicht_ki.png}
\end{center}
\subsection{Einordnung}
\label{ml: uebersicht: einordnung}
\includegraphics[width = \textwidth]{übersicht_ki_einordnung.png}
\section{Aufgaben des \acl{ML}}
\label{ml: aufgaben}
Mögliche Aufgaben für die \ac{ML} eingesetzt wird, sind:
\begin{itemize}
\item \textbf{Klassifikation}:\\
\includegraphics[width = .4\textwidth]{Klassifikation.png}
\item \textbf{Regression:}\\
\includegraphics[width = .4\textwidth]{regression.png}
\item \textbf{Transkription:}\\
Daten werden in einen Text umgeschrieben (z.B. Spracherkennung, Texterkennung)
\item \textbf{Maschinelle Übersetzung:}\\
z.B. Deepl
\item \textbf{Anomalieerkennung}
\end{itemize}
\section{Leistungsbewertung}
\label{ml: leistungsbewertung}
siehe Zusammenfassung ML
\section{Generalisierung}
\label{ml: generalisierung}
Bei ML-Problemen handelt es sich um \say{ill-posed problems} - also Probleme, die eigentlich gar nicht wirklich gelöst werden sollen -.
So soll ein Klassifizierer beispielsweise nicht die perfekte Lösung für die Trainingsdaten liefern, sondern lediglich eine \textbf{generalisierte} Lösung erstellen,
die auch unbekannte Daten gut klassifiziert.\\
\includegraphics[width = \textwidth]{generalisierung.png}
\pagebreak
\section{Hypothesenraum}
\label{ml: hypothesenraum}
Der Hypothesenraum ist die Menge an Funktionen, die ein \ac{ML}-Algorithmus als mögliche Lösung wählen kann.
Der Hypothesenraum wird durch die Modellklasse (z.B. linearer Klassifikator) begrenzt.
Durch die Größe des Hypothesenraums wird die \textbf{Modellkapazität kontrolliert}.
\section{Fluch der Dimensionalität}
\label{ml: dimensionalitaet}
\includegraphics[width = \textwidth]{fluch_der_dimensionalität.png}
\section{Trainings- und Testdaten}
\label{ml: trainings- und testdaten}
Um der Gefahr von Overfitting vorzubeugen ist es sinnvoll den vorhandenen \say{gelabelten} Datensatz aufzuteilen.
Eine übliche Aufteilung ist 80\% Trainingsdaten und 20\% Testdaten.
Von den Trainingsdaten werden bei vielen Modellerstellungen noch einmal 20\% für die Validierung während des Trainings abgespalten.
Bei dem Splitten der Daten muss darauf geachtet werden, dass das Datenverhältnis in den Splits dem Gesamtdatensatz entspricht.
D.h. z.B. das sortierte Daten vor dem splitten gemischt werden müssen\\
\begin{center}
\includegraphics[width = .8\textwidth]{train_test_split.png}
\end{center}
\pagebreak
\subsection{N-fold Cross-Validation}
\label{ml: n-fold cross-validation}
Um sicherzustellen, dass die Daten in den Trainings- und Validierungs-Splits repräsentativ für den Gesamttrainingsdatensatz sind,
wird der Gesamttrainingsdatensatz in mehrere \say{Folds} unterteilt.
Anschließend wird der Algorithmus mehrmals ausgeführt, wobei jeweils andere Folds die Trainings bzw. Validierungsdaten darstellen.
Die Anzahl der Folds wird über einen Parameter $N$ bestimmt, weshalb dieses Verfahren \say{$N$-Fold Cross-Validation} heißt.\\
\includegraphics[width = .8\textwidth]{n-fold_cross-validation.png}
\section{Hyperparameter}
\label{ml: hyperparameter}
\say{Hyperparameter} sind Parameter, die das Verhalten des Algorithmus bestimmen.
Diese Parameter müssen vor Ausführung des Algorithmus festgelegt werden.
Ein typisches Beispiel für einen Hyperparameter ist die Anzahl der zu erreichenden Cluster.
Dieser Hyperparameter muss vielen Clustering-Algorithmen übergeben werden.
\section{\acf{CRISP-DM}}
\label{ml: crisp-dm}
Ein mögliches Prozessmodell für den Entwurf von \ac{ML}-Anwendungen ist \ac{CRISP-DM}.
\begin{center}
\includegraphics[width = .6\textwidth]{CRISP-DM_Process_Diagram.png}
\end{center}
\paragraph{Geschäftsverständnis}
\begin{itemize}
\item Welcher Geschätsprozess muss/kann optimiert werden?
\item Kann die Analyse von Daten helfen?
\item Nutzung von Domänenwissen und Experten
\end{itemize}
\paragraph{Datenverständnis}
\begin{itemize}
\item Welche Daten stehen wo und wie zur Verfügung?
\item Wie können benötigte Daten erfasst werden?
\item Wie können Daten aus unterschiedlichen Quellen zusammengeführt werden?
\item Visualisierung der Daten
\item Überprüfung der Daten mit Domänenwissen
\end{itemize}
\paragraph{Vorerarbeitung}
\begin{itemize}
\item Sind die Daten vollständig?
\item Gibt es Fehler in meinen Daten oder fehlende Daten?
\item Müssen oder können die Daten aufbereitet und bereinigt werden? (evtl. Domänenwissen hilfreich)
\item Wie müssen Die Daten für meinen Algorithmus vorverarbeitet werden?
\end{itemize}
\paragraph{Modellbildung}
\begin{itemize}
\item Welche Algorithmen können für die Daten zum Einsatz kommen?
\item Welche Algorithmen sind vielversprechend?
\item Modelle entwerfen und vergleichen
\end{itemize}
\paragraph{Evaluatoin}
\begin{itemize}
\item Löst das Modell mein Problem zufriedenstellend?
\item Wird der Geschäftsprozess verbessert?
\item Sind die Ergebnisse nachvollziehbar?
\item Ist der Einsatz meines Modells zuverlässig?
\end{itemize}
\paragraph{Modell bereitstellen}
\begin{itemize}
\item Wie kann die Anwendung skaliert werden?
\item Wie kann die Leistung des Modells kontinuierlich überwacht werden?
\item Wie wird reagiert, wenn die Leistung des Modells abnimmt? (z.B. durch Concept Drift)
\end{itemize}
\section{Auswahl des \ac{ML}-Algorithmus}
\label{ml: algorithmus-auswahl}
\includegraphics[width = \textwidth]{machine-learning-cheet-sheet.png}