\chapter{Lernbarkeit}
\label{lernbarkeit}
    Offensichtlich sind nicht alle Probleme lernbar (Negativbeispiel: Primzahlen und Verschlüsselung).
    Manche Probleme sind auch nur mit einem sehr hohen Aufwand lernbar.
    So war es Computern erst durch eine starke Entwicklung in Rechenleistung und Speicher möglich einen Schachspiel-Algorithmus zu entwerfen,
    der jeden Menschen schlagen kann (1997: Deep Blue vs Kasparow).
    Da sich diese Entwicklung seit Deep Blue exponentiell fortgesetzt hat ist zu erwarten,
    dass immer mehr der \say{schwer lernbaren} Probleme (nicht mit unlernbar verwechseln) von Computern bewältigt werden.
    Bei diesen Problemen handelt es sich aber bereits um Probleme,
    für die es zwar theoretisch mit unbegrenzter Rechenzeit und Speicher möglich wäre eine Optimale Lösung zu finden,
    allerdings ist ein Brute-Force-Ansatz in der Praxis \textbf{unmöglich}.
    So gibt es beim Schach für die ersten 40 Züge bereits $\approx 10^115 - 10^120$ Möglichkeiten.
    Dies sind mehr Möglichkeiten als es Atome im Universum ($\approx 10^84 - 10^89$) gibt.
    Somit ist alleine das Abspeichern aller möglichen Zustände unmöglich.
    Nicht berücksichtigt ist hierbei die Rechenzeit.
    Folglich müssen für diese Probleme Algorithmen erstellt werden, die eine Art \say{Intuition} entwickeln.

    \section{\acf{PAC} Learning}
    \label{pac}
        Beim \ac{PAC}-Lernen wird analysiert, 
        unter welchen Umständen ein Lern-Algorithmus wahrscheinlich(P) eine annähernd(A) richtige(C) Hypothese erstellt.
        Ein Lerner $L$ hat ein Konzept bzw. eine Funktion gelernt, wenn:
        $$P(error_D(h)>\epsilon)<\delta ~ (D: \text{Trainingsdatenverteilung})$$
        Ein Problem ist \ac{PAC}-lernbar, wenn es möglich ist eine näherungsweise korrekte Hypothese in polynomieller Zeit zu lernen.

        \paragraph{Approximately}
            Eine Hypoteste $h\in H$ ist annähernd (approximately) richtig,
            wenn ihr Fehler über die Verteilung von Trainingsdaten durch $\epsilon(0\le\epsilon\le\frac{1}{2})$ begrenzt ist.
            D.h. wenn die Hypothese dank der Trainingsdaten min. 50\% korrekt ist.

        \paragraph{Probably}
            Ein Lerner $L$, der eine ungefähr richtige Hypothese $h$ mit einer Wahrscheinlichkeit von 
            $1-\delta(0\le\delta\le\frac{1}{2})$ ausgibt ist wahrscheinlich ungefähr richtig.

        \subsection{Lower Bound}
        \label{pac: lower bound}
            Es lässt sich eine untere Schranke für die Anzahl der benötigten Trainingsdaten,
            die gebraucht werden um einen \ac{PAC}-Lerner zu erstellen, berechnen.
            Die Wahrscheinlichkeit, dass eine \say{schlechte} Hypothese mit den Trainingsdaten konsistent ist beträgt:
            $$P(\forall x:h'(x)=c(x)) = (1-\epsilon)^m$$
            hieraus ergibt sich:
            $$P(\forall x:h'(x)=c(x)) = (1-\epsilon)^m \le P(H \text{ beinhaltet min. ein }h')$$
            $$=P(\exists h':\forall x:h'(x)=c(x))$$
            $$\le\sum^{|H|}_{i=1} P(\forall x:h_i(x)=c(x)\vee h_i \text{ schlecht})$$
            $$\le |H|\cdot(1-\epsilon)^m$$
            Dies können wir als Schranke für unser $\delta$ annehmen:
            $$\le |H|\cdot(1-\epsilon)^m\le\delta$$
            Hieraus ergibt sich dann eine untere Schranke für die Anzahl der Trainingsdaten,
            die für einen \ac{PAC}-Lerner benötigt werden:
            \Large
            $$m\ge\frac{1}{\epsilon}\cdot(\ln\frac{1}{\delta}+\ln|H|)$$
            \normalsize