diff --git a/Acronyms.tex b/Acronyms.tex index 363e10d..d7f124c 100644 --- a/Acronyms.tex +++ b/Acronyms.tex @@ -26,4 +26,5 @@ \acro{FPC}{(Bocklisch's) Fuzzy Pattern Classifier} \acro{MFPC}{Modified-Fuzzy-Pattern-Classifier} \acro{FPGA}{Field Programmable Gate Array} + \acro{ID3}{Iterative Dichotomizer 3} \end{acronym} \ No newline at end of file diff --git a/Readme.md b/Readme.md index 01682ed..d18ef80 100644 --- a/Readme.md +++ b/Readme.md @@ -1,4 +1,21 @@ # Zusammenfassung Künstliche Intelligenz Dieses Repo beinhaltet die $\LaTeX$ Informationen für die Zusammenfassung im Fach Künstliche Intelligenz. + +## Änderungen für die Zusammenfassung +- [ ] Lineare Programmierung hinzufügen +- [ ] Automated Machine Learning +- [ ] CRISP +- [ ] CRISP-DM +- [ ] Informationsbasiertes Lernen + - [ ] Entscheidungsbaum + - [ ] Entropie + - [ ] Kullback-Leibler-Divergenz + - [ ] ID3 Algorithmus +- [ ] Ähnlichkeitsbasiertes Lernen + - [ ] K-Nächste-Nachbarn + - [ ] Normalisierung +- [ ] Fehlerbasiertes Lernen +- [ ] Backpropagation + ## Hinweise Requires you to enable [--shell escape](https://tex.stackexchange.com/questions/516604/how-to-enable-shell-escape-or-write18-visual-studio-code-latex-workshop) diff --git a/chapters/Maschinelles Lernen/Informationsbasiertes Lernen.tex b/chapters/Maschinelles Lernen/Informationsbasiertes Lernen.tex new file mode 100644 index 0000000..d94cd83 --- /dev/null +++ b/chapters/Maschinelles Lernen/Informationsbasiertes Lernen.tex @@ -0,0 +1,117 @@ +\chapter{Informationsbasiertes Lernen} +\label{information-based learning} + Beim \say{informationsbasierten} Lernen geht es im Kern darum die informativsten Features auszuwählen. + Die informativsten Features sind die, deren Werte die Instanzen in möglichst homogene (gleichgroße) Teilmengen teilen. + + \paragraph{Beispiel: Guess Who}\mbox{}\\ + \includegraphics[width = .6\textwidth]{guess who.png} + \includegraphics[width = .4\textwidth]{guess who2.png}\\ + In den ersten 2 Beispielen werden schlechte Features gewählt. + Die durchschnittliche Anzahl an nötigen Fragen ist $\frac{1+2+3+3}{4}=2,25$. + Das 3.Beispiel benutzt die besten Features, da die Teilmengen hierbei maximal homogen sind. + Die durchschnittliche Anzahl an nötigen Fragen ist $\frac{2+2+2+2}{4}=2$. + + \section{Entropie} + \label{entropie} + Die Entropie liefert eine numerische Metrik für die Reinheit einer Menge. + Sie beschreibt die Unsicherheit, die mit dem Raten eines Ergebnisses verbunden ist. + Hierbei gilt: + \begin{itemize} + \item Hohe Wahrscheinlichkeit $\rightarrow$ niedrige Entropie + \item Geringe Wahrscheinlichkeit $\rightarrow$ hohe Entropie + \end{itemize} + Die Formel für die Entropie lautet: + \Large + $$H(y)=-\sum^l_{i=1}\left(P(y=i)\cdot\log_2\left(P(y=1)\right)\right)$$ + \normalsize + + \subsection{Beispiele} + \label{entropie: beispiele} + \includegraphics[width = \textwidth]{entropie_beispiele.png} + + \section{Informationsgewinn} + \label{information-based learning: informationsgewinn} + Der Informationsgewinn, den man durch ein bestimmtes Feature erreicht, ist gleichzusetzen mit der Reduktion der Entropie(\ref{entropie}) durch dieses Feature. + Man bezeichnet dies als \say{Kullback-Leibler-Divergenz}. + Der Informationsgewinn $IG$ lässt sich berechnen durch: + \Large + $$IG(d,D)=H(y,D)-rest(d,D)$$ + $$H(y,D)=-\sum^l_{i=1}\left(P(y=i)\cdot\log_2\left(P(y=1)\right)\right)$$ + $$rest(d,D)=\sum_{l\in Level(d)} \underbrace{\frac{|D_{d=l}|}{|D|}}_{\text{Gewichtung}}\cdot\underbrace{H(y,D_{d=l})}_{\text{Entropie von Partition $D_{d=l}$}}$$ + \normalsize + + \subsection{Beispiel: Spamfilter} + \label{informationsgewinn: spamfilter} + \begin{tabular}{ccccc} + \hline + ID &SUSPICIOUS WORDS & UNKNOWN SENDER & CONTAINS IMAGE & CLASS\\ + \hline + 376 & true & false & true & spam\\ + 489 & true & true & false & spam\\ + 541 & true & true & false & spam\\ + 693 & false & true & true & ham\\ + 782 & false & false & false & ham\\ + 976 & false & false & false & ham\\ + \hline + \end{tabular} + \begin{align*} + H(t,D) =& -\sum_{l\in\{\text{'spam', 'ham'}\}}\left(P(t=l)\cdot \log_2\left(P(t=l)\right)\right)\\ + =& -((P(t=\text{'spam'})\cdot\log_2(P(t=\text{'spam'})))\\ + &+ (P(t=\text{'ham'})\cdot\log_2(P(t=\text{'ham'}))))\\ + =& -\left(\left(\frac{3}{6}\cdot\log_2\left(\frac{3}{6}\right)\right) + ¸\left(\frac{3}{6}\cdot\log_2\left(\frac{3}{6}\right)\right)\right)\\ + =& 1 [\text{bit}] + \end{align*} + \begin{align*} + rest(\text{SW},D)&=\left(\frac{|D_{\text{SW}=T}|}{|D|}\cdot H(t,D_{\text{SW}=T})\right) + \left(\frac{|D_{\text{SW}=F|}}{|D|}\cdot H(t,D_{\text{SW}=F})\right)\\ + &=\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ + &+\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ + &=\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{3}{3}\cdot\log_2\left(\frac{3}{3}\right)\right)+\left(\frac{0}{3}\cdot\log_2\left(\frac{0}{3}\right)\right)\right)\right)\right)\\ + &+\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{0}{3}\cdot\log_2\left(\frac{0}{3}\right)\right)+\left(\frac{3}{3}\cdot\log_2\left(\frac{3}{3}\right)\right)\right)\right)\right)\\ + &= 0 [\text{bit}] + \end{align*} + \begin{align*} + rest(\text{US},D)&=\left(\frac{|D_{\text{US}=T}|}{|D|}\cdot H(t,D_{\text{US}=T})\right) + \left(\frac{|D_{\text{US}=F|}}{|D|}\cdot H(t,D_{\text{US}=F})\right)\\ + &=\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ + &+\left(\frac{3}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ + &=\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{2}{3}\cdot\log_2\left(\frac{2}{3}\right)\right)+\left(\frac{1}{3}\cdot\log_2\left(\frac{1}{3}\right)\right)\right)\right)\right)\\ + &+\left(\frac{3}{6}\cdot\left(-\left(\left(\frac{1}{3}\cdot\log_2\left(\frac{1}{3}\right)\right)+\left(\frac{2}{3}\cdot\log_2\left(\frac{2}{3}\right)\right)\right)\right)\right)\\ + &= 0.9183 [\text{bit}] + \end{align*} + \begin{align*} + rest(\text{CI},D)&=\left(\frac{|D_{\text{CI}=T}|}{|D|}\cdot H(t,D_{\text{CI}=T})\right) + \left(\frac{|D_{\text{CI}=F|}}{|D|}\cdot H(t,D_{\text{CI}=F})\right)\\ + &=\left(\frac{2}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ + &+\left(\frac{4}{6}\cdot\left(-\sum_{l\in\{\text{'spam', 'ham'}\}} P(t=l)\cdot\log_2(P(t=l))\right)\right)\\ + &=\left(\frac{2}{6}\cdot\left(-\left(\left(\frac{1}{2}\cdot\log_2\left(\frac{1}{2}\right)\right)+\left(\frac{1}{2}\cdot\log_2\left(\frac{1}{2}\right)\right)\right)\right)\right)\\ + &+\left(\frac{4}{6}\cdot\left(-\left(\left(\frac{2}{4}\cdot\log_2\left(\frac{2}{4}\right)\right)+\left(\frac{2}{4}\cdot\log_2\left(\frac{2}{4}\right)\right)\right)\right)\right)\\ + &= 1 [\text{bit}] + \end{align*} + \normalsize + Folglich ergeben sich die folgenden Informationsgewinne: + \begin{align*} + IG(\text{SUSPICIOUS WORDS},D)&=H(CLASS,D)-rest(\text{SW},D) \\ + &=1-0=1[\text{bit}]\\\\ + IG(\text{UNKNOWN SENDER},D)&=H(CLASS,D)-rest(\text{US},D) \\ + &=1-0.9183=0.0817[\text{bit}]\\\\ + IG(\text{CONTAINS IMAGES},D)&=H(CLASS,D)-rest(\text{CI},D) \\ + &=1-1=0[\text{bit}] + \end{align*} + + \section{\acf{ID3} Algorithmus} + \label{id3 algorithmus} + Der \ac{ID3} Algorithmus versucht den Flachsten Baum, der mit den Daten konsistent ist, zu erstellen. + + \paragraph{Algorithmus} + \begin{enumerate} + \item Wähle das beste Merkmal für die Teilung mit Hilfe des Informationsgewinns aus. + \item Wurzelknoten wird erstellt, der mit dem gewählten Merkmal teilt. + \item Trainingsdaten werden anhand des gewählten Merkmals aufgeteilt. + \item Für jede Teilmenge wird ein Zweig erstellt. + \item Der Prozess wird für jeden der Zweige mit dem ausgewählten Teil der Daten wiederholt. + \end{enumerate} + + \paragraph{Abbruchbedingungen} + \begin{enumerate} + \item Alle Instanzen im (Teil‐)Datensatz haben die gleiche Klassifikation (Zielmerkmal y). Erstelle einen Blattknoten mit dieser Klassifikation als Label. + \item Menge der zu testenden Merkmal ist leer. Erstelle einen Blattknoten mit der Mehrheitsklasse des Teildatensatzes als Klassifikation. + \item Der Teildatensatz ist leer. Erstelle einen Blattknoten mit der Mehrheitsklasse des Teildatensatzes des Elternknotens. + \end{enumerate} \ No newline at end of file diff --git a/images/entropie_beispiele.png b/images/entropie_beispiele.png new file mode 100644 index 0000000..8b627ea Binary files /dev/null and b/images/entropie_beispiele.png differ diff --git a/images/guess who.png b/images/guess who.png new file mode 100644 index 0000000..dc21b78 Binary files /dev/null and b/images/guess who.png differ diff --git a/images/guess who2.png b/images/guess who2.png new file mode 100644 index 0000000..30fd2c3 Binary files /dev/null and b/images/guess who2.png differ diff --git a/parts/Maschinelles Lernen.tex b/parts/Maschinelles Lernen.tex index ae3ba4d..6a3f268 100644 --- a/parts/Maschinelles Lernen.tex +++ b/parts/Maschinelles Lernen.tex @@ -2,5 +2,6 @@ \label{ml} \input{chapters/Maschinelles Lernen/Einführung.tex} +\input{chapters/Maschinelles Lernen/Informationsbasiertes Lernen.tex} \input{chapters/Maschinelles Lernen/Lernbarkeit.tex} \input{chapters/Maschinelles Lernen/Reinforcement Learning.tex} \ No newline at end of file