Ψ Die Informatikseite

Menü

Associative Search Element (ASE) - Adaptive Critic Element (ACE)

Das von Barto, Sutton und Anderson22 vorgeschlagene System zur Steuerung der Bang-Bang-Kontrolle eines Pole-Balancers, besteht aus vier Elementen:

  1. Den Pole-Balancer selbst als Enviroment. Er exisitiert nicht real, sondern wird durch ein weiteres Programm simuliert.
  2. Dem Decoder. Für die Eingabe in den Decoder werden die einzelnen Zustände des Pole-Bancers quantisiert. Der Decoder unterteilt sich in Boxen. Jede Box enthält einen möglichen Zustand des Systems. Die Aufgabe des Decoders ist es nun, jedem Zustand einer Box zuzuteilen. Dabei wird ,,winner-takes-all'' angewendet. Eine Box wird aktiviert, alle anderen Boxen sind inaktiv.
  3. Dem ASE.
  4. und dem ACE (optional).
\includegraphics[scale=0.5]{ase-ace.eps}
Der ACE ist grau hinterlegt, weil er optional ist. Ohne ACE ist das Reinforcmentsignal direkt.

Beschreibung von ASE und ACE:
  • ASE (Associative Search Element(Verbindendes Such Element)) Jede Box $x_{i}$ des Decoders hat eine Verbindung zum ASE über ein Gewicht $w_{i}$. Weiterhin erhält das ASE das Reinforcement-Signal. Dies ist entweder positiv, wenn der Stab steht, oder negativ, wenn der Stab gefallen ist.
    Der Output $y$ zum Zeitpunkt $t$ wird nun bestimmt durch

    \begin{displaymath}y(t)=f\left(\sum_{i=1}^{n}w_{i}(t)x_{i}(t)+noise(t)\right)\end{displaymath}

    Dabei ist $f$ eine Schwellfunktion, eine sigmoide Funktion oder die Identität. $noise$ ist eine Zufallsvariable, normalverteilt um $0$ mit der Varianz $\sigma^{2}$. Die Dichte dieser Normalverteilung hat die Formel ($\mu=0$)

    \begin{displaymath}f_{normal}(x)=\displaystyle\frac{1}{\sqrt{2\pi\sigma^{2}}}e^{\displaystyle\frac{-(x-\mu)^{2}}{2\sigma^{2}}}\end{displaymath}

    Die $noise-$Funktion verursacht, dass mit einer gewissen Wahrscheinlichkeit doch der andere Output, als durch die Gewichte bestimmt, gewählt wird. Dabei ist die Wahrscheinlichkeit, dass der andere Output gewählt wird, umso niedriger, je größer der Betrag des jeweiligen Gewichtes ist. Selbst wenn der Pole-Balancer gar nicht läuft und kein Eingabevektor anliegt, erzeugt das ASE so einen Output.
    Gelernt werden die Gewichte mit folgender Lernregel:

    \begin{displaymath}\begin {array}{cc} w_{i}(t+1)=w_{i}(t)+&\underbrace{\alpha r(t)e_{i}(t)}\\
&\Delta w_{i}(t)\end {array}\end{displaymath}

    Dabei ist
    • $\alpha$ eine Konstante, die bestimmt, wie wechselwillig das Gewicht ist.
    • $r(t)$ das Reinforcementsignal.
    • $e_{i}$ ein Wert der angibt, wie stark am jeweiligen Gewicht gedreht werden soll. Dieser Wert wird auf $1$ gesetzt, wenn eine Aktion für den Pole-Balancer durch dieses Gewicht zum Zeitpunkt $t$ stattgefunden hat. Dann sinkt dieser Wert gegen $0$ mit der Zeit. Er zeigt an, wie weit in der Vergangenheit diese Verbindung aktiviert wurde, so dass die richtige Verbindung ,,bestraft'' werden kann.

  • ACE (Adaptive Critic Element (Anpassbares kritisierendes Element)) Das ACE bekommt die Ausgabe des Decoders und erzeugt das Reinforcement-Signal für das ASE. Das ACE sagt vorraus, wie ,,gut'' der momentane Zustand des Poles ist und gibt dies an das ASE weiter. Das ACE lernt auch, wenn der Pole nicht umfällt. Diese Vorhersage wird bestimmt durch

    \begin{displaymath}p(t)=\sum_{u=1}^{n}v_{i}(t)x_{i}(t).\end{displaymath}

    Das Update der Gewichte $v_{i}$ (eine Value Function) geschieht folgerndermaßen

    \begin{displaymath}v_{i}(t+1)=v_{i}(t)+\beta[r(t)-\gamma p(t)+p(t-1)]\overline{x}_{i}(t)\end{displaymath}

    Dabei ist
    • $\beta$ eine Konstante, die bestimmt, wie wechselwillig das Gewicht ist.
    • $r(t)$ das Reinforcementsignal.
    • $\overline{x}_{i}(t)$ der ,,Trace'' eines der Signale aus dem Decoder, ähnlich zu $e_{i}$.
    • $\gamma$ eine Rate, in welcher das externe Reinforcement genutzt werden soll.

Das Verfahren mit ASE und ACE ist gegenüber dem Box-Verfahren erheblich besser. Wo das Box-Verfahren nicht gut lernt, lernt das ASE/ACE-Verfahren schnell, so dass der Stab lange oben bleibt.