\chapter{\acf{RL}}
\label{rl}
    Beim \ac{RL} wir einem Agenten über mehrere Epochen ein gewünschtes Verhalten gelehrt.
    Hierbei wird jeweils mit bestimmten Zielen gearbeitet, die dafür sorgen,
    dass der Agent eigenständig sein Verhalten entwirft.
    Das /ac{RL} unterscheidet sich von dem Supervised Learning darin, dass die Trainingsdaten nicht gelabelt sind.
    D.h., dass der Agent keine Informationen darüber erhält, ob er auf einen einzelne Dateneingabe korrekt reagiert hat.
    Der Agent geht also nach dem Prinzip \say{Learning by Doing} vor.
    Er interagiert mit einer Umgebung (möglicherweise eine Mehragentenumgebung) und lernt die Sensordaten zu interpretieren.
    Während der Interaktion erhält er Feedback (Feedback-Loop) zu seinem Handeln.\\
    \includegraphics[width = \textwidth]{reinforcement_learning_agentenmodell.png}
    Eine Folge $S_0,A_0,R_0,S_1,A_1,R_1,\dots,A_T,S_T,R_T$ stellt eine Episode (einen Versuch) dar.
    Der Reward ist eine abstrakte Beschreibung dafür, ob das Verhalten des Agenten gut oder schlecht ist.
    Je besser die Rewardfunktion gewählt ist, desto besser und schneller lernt der Agent das gewünschte Verhalten.
    Grundsätzlich gibt es hierbei zwei Ansätze:
    \begin{itemize}
        \item Reward beim erreichen eines Ziel (z.B. Gewinn eines Schachspiels)
        \item Reward für die Verbesserung des Zustandes (z.B. Auto näher an Parklücke)
    \end{itemize}

    \section{Policy $\pi$ (Taktik)}
    \label{rl: policy}
        \begin{wrapfigure}{b}{.4\textwidth}
            \vspace{-10mm}
            \includegraphics[width = .4\textwidth]{reinforcement_learning_taktik.png}
        \end{wrapfigure}
        Beim Lernen wird eine Taktik $\pi$ entwickelt,die das Verhalten des Agenten vollständig definiert,
        indem sie den einzelnen Zuständen Aktionen zuweist.
        Die entwickelte Taktik $\pi$ ist meist stationär (zeit-unabhängig).

    \section{Return $G_t$}
    \label{rl: return}
        Der Return $G_t$ ist die verminderte Summe der Rewards einer Episode ab Zeitpunkt $t$:
        $$G_t = R_t + \gamma R_{t+1} + \gamma^2R_{t+2}+\dots = \sum^\infty_{k=0}\gamma^k R_{t+k}$$
        Hierbei ist $\gamma$ der Verminderungsfaktor (Discount Factor), der abhängig von der Anwendung ausgewählt wird:
        \begin{itemize}
            \item $\gamma=0:$ für ausschließlich kurzfristige Gewinne
            \item $\gamma=1:$ für additive Gewinne
            \item $\gamma=0,9\dots0,99:$ meist in kontinuierlichen Umgebungen sinnvoll
        \end{itemize}
        Wichtig ist zu beachten, dass $\gamma$ über das Konvergenzverhalten von $\pi$ entscheidet

    \section{Value $V$}
    \label{rl: value}
        \begin{wrapfigure}{H}{.4\textwidth}
            \vspace{-5mm}
            \includegraphics[width = .4\textwidth]{reinforcement_learning_value.png}
        \end{wrapfigure}
        Die Value eines Status gibt einen Erwartungswert für die Summe des Rewards bis zum Ende der Episode.

        \paragraph{State-Value Function}
            Der erwartete Return, wenn mit einer Policy $\pi$ im Zustand $s$ gestartet wird:
            $$V_\pi(s)=\mathbb{E}_\pi\left[R_{t+1}+\gamma R_{t+2}+\gamma^2 R_{t+3}+\dots\mid S_t=s\right]$$

        \paragraph{Action-Value Function}
            Der erwartet Return in Zustand $s$ Aktion $a$ anzuwenden und dann der Policy $\pi$ zu folgen.
            $$q_\pi(a,s)=E_\pi\left[G_t\mid S_t=s, A_t=a\right]$$

        \paragraph{Bellman-Gleichung}
            Die Value-Funktion für eine Aktion kann auch mit der Bellmann-Gleichung ausgedrückt werden:
            \begin{align*}
                V(s)&=\mathbb{E}\left[G_t\mid S_t=s\right]\\
                &\vdots\\
                &=\mathbb{E}\left[R_{t+1}+\gamma V(S_{t+1}\mid S_t=s)\right]
            \end{align*}

    \section{\acf{MDP}}
    \label{mdp}
        Ein \ac{MDP} ist definiert als $<S,A,P,R,\gamma>$
        \begin{itemize}
            \item $S:$ eine endliche Menge von Zuständen
            \item $A:$ eine endliche Menge von Aktionen
            \item $P:$ state transition matrix (eine Matrix von State-Übergängen mit Wahrscheinlichkeiten)
                $$ \mathcal{P}^a_{ss'}=\mathbb{P}\left[S_{t+1}=s'\mid S_t=s, A_t=a\right] $$
            \item $R:$ die Reward-Funktion
                $$\mathcal{R}^a_s=\mathbb{E}\left[R_{t+1}\mid S_t=s,A_t=a\right]$$
            \item $\gamma:$ der Discount-Faktor 
                $$\gamma\in[0,1]$$
        \end{itemize}
        \acp{MDP} beschreiben vollständig beobachtbare Umgebungen.
        Fast alle \ac{RL}-Probleme werden als \acp{MDP} formalisiert.
        Meist ist $P$ oder $R$ gesucht.
        

    \section{Einordnung in Maschinelles Lernen}
    \label{rl: einordnung}
        Das /ac{RL} ist ein Teil des \acf{ML}.\\
        \includegraphics[width = .6\textwidth]{reinforcement_learning_einordnung.png}
        Es hat viele Schnittstellen zu den verschiedensten Wissenschaften.\\
        \includegraphics[width = .8\textwidth]{reinforcement_learning_schnittstellen.png}

    \section{Active Reinforcement Learning}
    \label{active reinforcement learning}
        \subsection{\acf{TD} Learning}
        \label{td learning}
            Beim \ac{TD} Learning lernt der Agent bereits aus unvollständigen Episoden.
            Man sagt: \say{learning a guess from a guess}

        \section{Q-Learning}
        \label{q-learning}
            Wenn man die Bellman-Funktion für Action-Value-Funktionen (\ref{rl: value}) einsetzt erhält man:
            $$Q(s,a)=\mathbb{E}\left[R_{t+1}+\gamma Q(S_{t+1},A_{t+1})\mid S_t=s, A_t=a\right]$$
            Hieraus ergibt sich die Aktualisierungsregel für das Q-Learning
            $$Q(s_t,a_t)\gets \underbrace{s_t,a_t}_{\text{old value}} + \underbrace{a}_{\text{learning rate}} \cdot \left(\overbrace{\underbrace{r_{t+1}}_{\text{reward}} + \underbrace{\gamma}_{\text{discount facotr}}\cdot\underbrace{\max_aQ(s_{t+1},a)}_{\text{estimate of optimal future value}}}^{\text{learned value}}-\underbrace{Q(s_t,a_t)_{\text{old value}}}\right)$$
            \includegraphics[width =.8\textwidth]{q-learning.png} \\
            Für die Auswahl des Pfades wird häufig der $\epsilon$-greedy (\ref{epsilon-greedy}) Algorithmus verwendet.\\
            \begin{tabular}{|p{.465\textwidth}|p{.465\textwidth}|}
                \hline
                \textbf{Vorteile} & \textbf{Herausforderungen}\\
                \hline
                \begin{itemize}
                    \item lernt nach jedem Schritt
                    \item lernt ohne Erreichen eines Zielzustands
                    \item benötigt kein Modell für die Aktionsauswahl
                \end{itemize} &
                \begin{itemize}
                    \item Funktioniert es auch ohne Simulation?
                        (bisher ist das Reinforcement Learning vor allem in simulierten Umgebungen angewendet worden (z.B. Spiele))
                    \item Wie geht man mit großen Zustandsräumen um?
                \end{itemize}\\
                \hline
            \end{tabular}

        \subsection{Exploration vs Exploitation}
        \label{exploration vs exploitation}
            Nach zufälliger Durchsuchung gelangt der Agent irgendwann durch Zufall zu einem positiven Ergenis.
            Nun steht er allerdings vor einem Dilemma.
            Soll er den Weg mit bekannt hohem Nutzen (\ref{rl: value}) gehen (Exploitation) oder noch nicht ausprobierte Aktionen versuchen (Exploration)?
            Der Vorteil der Exploration ist, dass ein besserer Weg als der bereits bekannte gefunden werden kann,
            wohingegen die Exploitation den Vorteil eines sicheren Rewards (\ref{rl}) hat.

            \subsubsection{$\epsilon$-greedy}
            \label{epsilon-greedy}
                \begin{wrapfigure}{h}{.5\textwidth}
                    \vspace{-15mm}
                    \includegraphics[width = .5\textwidth]{epsilon-greedy.png}
                \end{wrapfigure}
                Ein Algorithmus, der einen Mittelweg zwischen beiden Lösungen darstellt ist der $\epsilon$-greedy-Algorithmus.
                Hierbei wird mit einer von $\epsilon$ abhängigen Wahrscheinlichkeiten ein zufälliger Weg anstatt des besten bekannten Weges gewählt.\\