Ψ Die Informatikseite

Menü
Unterabschnitte

Idee bzw. Aufgabe des Reinforcement Learnings (Bestärkendes Lernen)

Agent in Environment

Reinforcement Learning wird auf einen Agenten angewendet, der auf ein dynamisches Environment (System) Einfluss ausübt und in diesem Enviroment bestimmte Aufgaben ausführen muss. Der Agent bildet also die momentane Situation $s\in S$ des Enviroments auf eine Aktion $a\in A$ ab. Für jede Aktion bekommt der Agent einen Reward $r\in \mathbb{R}$, der seine Aktion bewertet, aber nicht sagt, was er falsch gemacht hat oder was er gut gemacht hat. Beim Reinforcement Learning ist es das Ziel einen möglichst hohen Reward über eine lange Zeit zu erwirtschaften21.
\includegraphics[scale=0.5]{rl-aufbau.eps}

Dabei kann es für ein und dieselbe Aktion in dem gleichen Zustand mehrere unterschiedliche Rewards geben. In dem Environment ist der Zufall mit enthalten.

Die Kette von Situation/Aktion kann wie folgt dargestellt werden

\includegraphics[scale=0.5]{rl-situation-aktion.eps}

Agent lernt eine Policy $\pi$

Beim Reinforcement Learning lernt der Agent eine Policy $\pi$, die ihm sagt, auf welche Art und Weise er auf die jeweils aktuelle Situation reagieren soll, um an sein Ziel zu kommen.

Es gibt zwei verschiedene Arten von Policys
  • open loop policy, plan, Steuerung: Wir machen uns zu Beginn einen Plan und führen diesen bis zum Ende aus.
  • closed loop policy, reactive plan, Kontrolle: Die Umgebung übt während des Ausführen des Planes Einfluss auf den Plan aus.

Unterschied Zustand - Situation

  • Ein Zustand eines Systems ist die Abspeicherung aller Variablen, die das System hat. Aus diesen Variablen läßt sich der Zustand komplett rekonstruieren. Ist es möglich Zustände eines Systems in jedem Schritt zu bekommen, so können wir die Policy mit Marcow Decision Problems (MDPs) komplett berechnen (im Prinzip).
  • Bei den meisten Systemen kommen wir jedoch an alle Variablen gar nicht dran, weshalb die unvollständige Variablemenge nur eine Situation ist.

Reward und Return

Für eine Aktion zum Zeitpunkt $t$ bekommt der Agent einen Reward $r_{t}$. Die Summe der zukünftigen Rewards ist der Return $R_{T}$

\begin{displaymath}R_{t}=r_{t+1}+r_{t+2}+\ldots+r_{T}\end{displaymath}

Den exakten Return können wir jedoch nicht berechnen. Wir können nur einen Erwartungswert berechnen. Dies können wir auf zwei verschiedene Art und Weise
  • Wir können die Aktionen zeitlich unterteilen in Trials, Episodes. Wir können den Erwartungswert des Returns einer Episode ermitteln.

    \begin{displaymath}R_{t}=r_{t+1}+r_{t+2}+\ldots+r_{T}\end{displaymath}

    Wenn die Episode unendlich lang ist, dann hat dies keinen Sinn, da der Return unendlich wird.
  • Wir können ein discounting einführen, um mit delayed rewards, zu denen wir nicht wissen, wann diese genau auftauchen, umzugehen. Wir gewichten in ferner Zukunft liegende Rewards weniger, als Rewards, die wir schnell erhalten. Wir wählen ein $0\leq\gamma<1$ und $T=\infty$ und berechnen diesen Reward wie folgt

    \begin{displaymath}R_{t}=\sum_{k=0}^{\infty}\gamma^{k}r_{t+1+k}=r_{t+1}+\gamma^{1} r_{t+1+1}+\gamma^{2} r_{t+1+2}+\ldots\end{displaymath}

Sonderfälle des Rewards

  • Pure delayed reward: Ganz lange Zeit bleibt der Reward $0$. Erst am Ziel wird ein positiver oder negativer Reward gegeben. Kann zum Beispiel ein Spiel sein, wo erst am Ende dann feststeht, wer gewonnen hat.
  • Jede Aktion kostet: Jedes Mal, wenn der Agent eine Aktion macht, wird er bestraft: $r_{t}=-1$. Erst wenn der Agent am Ziel ankommt, wird er belohnt. Wenn nun zusätzlich in jedem Zeitschritt eine Aktion erzwungen wird, wird der Agent versuchen mit möglichst wenig Schritten am Ziel anzukommen.
  • Pure negative reward: Es wird immer ein Reward $0$ gegeben. Nur wenn der Agent etwas schlechtes macht, bzw. in einer schlechten Situation ist, gibt es einen negativen Reward.

Beispiele

  • TD-Gammon: Reinforcementlearning zum Spielen von Backgammon. Anwendung von Pure delayed reward.
  • Auto in Senke: Ein Auto befindet sich in einer Senke. Unser Ziel ist es, dass es aus der Senke herauskommt. Das Auto hat zu wenig Motorleistung um mit einem Anlauf aus der Senke herauszufahren. Wir bestrafen aber das Auto immer, wenn es sich in der Senke befindet. Erst am Ziel setzen wir den Reward auf $0$: $r_{z}=0$. (2.Sonderfall) Dieses System wird sich langsam hochschaukeln.
  • Pole Balancer:
    \includegraphics[scale=0.75]{polebalancer.eps}
    Der Polebalancer besteht aus
    • einem Wagen, der nach links und rechts per Bang-Bang-Control beschleunigt werden kann. Dabei muss er immer in eine Richtung beschleunigt werden. Er kann nicht einfach stehen gelassen werden.
    • Der Wagen hat eine Position $x$ auf der Schiene mit einer Geschwindigkeit $\dot x$.
    • An den Seiten der Schiene, auf der der Wagen steht, befinden sich Begrenzungen.
    • Auf dem Wagen befindet sich ein Pole an einem Gelenk. Dieser hat einen Winkel $\alpha$ zur Senkrechten und eine Geschwindigkeit $\dot \alpha$.
    Ziel das Pole Balancers ist es, den Stab gerade zu halten. Wir können dies mit Reinforcmentlearning mit einem pure negativ reward tun. Wir brauchen, um den Pole-Balancer zu steuern exakt ein Neuron. Um ihn zu trainieren, ein weiteres.