diff --git a/Content.tex b/Content.tex index a01deb7..50a9a29 100644 --- a/Content.tex +++ b/Content.tex @@ -5,4 +5,5 @@ \input{parts/Agenten.tex} \input{parts/Problemlösen durch Suchen.tex} \input{parts/Optimierung.tex} -\input{parts/Logik.tex} \ No newline at end of file +\input{parts/Logik.tex} +\input{parts/Maschinelles Lernen.tex} \ No newline at end of file diff --git a/chapters/Maschinelles Lernen/Einführung.tex b/chapters/Maschinelles Lernen/Einführung.tex new file mode 100644 index 0000000..4e44e87 --- /dev/null +++ b/chapters/Maschinelles Lernen/Einführung.tex @@ -0,0 +1,118 @@ +\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} + \includegraphics[width = \textwidth]{übersicht_ki.png} + + \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} + + \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\\ + \includegraphics[width = .8\textwidth]{train_test_split.png} + + \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{Auswahl des \ac{ML}-Algorithmus} + \label{ml: algorithmus-auswahl} + \includegraphics[width = \textwidth]{machine-learning-cheet-sheet.png} \ No newline at end of file diff --git a/images/Klassifikation.png b/images/Klassifikation.png new file mode 100644 index 0000000..6c2e518 Binary files /dev/null and b/images/Klassifikation.png differ diff --git a/images/definition_lernen.png b/images/definition_lernen.png new file mode 100644 index 0000000..47d47eb Binary files /dev/null and b/images/definition_lernen.png differ diff --git a/images/fluch_der_dimensionalität.png b/images/fluch_der_dimensionalität.png new file mode 100644 index 0000000..47dfb7e Binary files /dev/null and b/images/fluch_der_dimensionalität.png differ diff --git a/images/generalisierung.png b/images/generalisierung.png new file mode 100644 index 0000000..bea4a42 Binary files /dev/null and b/images/generalisierung.png differ diff --git a/images/lernarten.png b/images/lernarten.png new file mode 100644 index 0000000..9b9c0a5 Binary files /dev/null and b/images/lernarten.png differ diff --git a/images/machine-learning-cheet-sheet.png b/images/machine-learning-cheet-sheet.png new file mode 100644 index 0000000..e79e9ae Binary files /dev/null and b/images/machine-learning-cheet-sheet.png differ diff --git a/images/n-fold_cross-validation.png b/images/n-fold_cross-validation.png new file mode 100644 index 0000000..dcee9a0 Binary files /dev/null and b/images/n-fold_cross-validation.png differ diff --git a/images/regression.png b/images/regression.png new file mode 100644 index 0000000..22933bc Binary files /dev/null and b/images/regression.png differ diff --git a/images/train_test_split.png b/images/train_test_split.png new file mode 100644 index 0000000..fb395ea Binary files /dev/null and b/images/train_test_split.png differ diff --git a/images/übersicht_ki.png b/images/übersicht_ki.png new file mode 100644 index 0000000..ce0d526 Binary files /dev/null and b/images/übersicht_ki.png differ diff --git a/images/übersicht_ki_einordnung.png b/images/übersicht_ki_einordnung.png new file mode 100644 index 0000000..108ab00 Binary files /dev/null and b/images/übersicht_ki_einordnung.png differ diff --git a/parts/Maschinelles Lernen.tex b/parts/Maschinelles Lernen.tex new file mode 100644 index 0000000..779808c --- /dev/null +++ b/parts/Maschinelles Lernen.tex @@ -0,0 +1,4 @@ +\part{\acf{ML}} +\label{ml} + +\input{chapters/Maschinelles Lernen/Einführung.tex} \ No newline at end of file