Dieser Abschnitt zeigt anhand des ersten mir bekannten Experiments zum R-Lernen in einer Nicht-Markov-Umgebung (einem `Flip-Flop-Experiment'), daß die Antwort auf die einführende Frage `ja' lautet []. Programmierung und Tests wurden von Josef Hochreiter im Rahmen eines Fortgeschrittenenpraktikums durchgeführt [15].
Das Steuernetzwerk
sollte lernen, sich analog zu
einem Flip-Flop zu verhalten.
's Aufgabe bestand dabei darin, auf einem kontinuierlichen Strom
von Eingabeereignissen in folgender Weise zu reagieren: Wann immer
das Ereignis `B' zum ersten Mal nach dem Ereignis `A' stattfand, sollte
die Aktion `Eins' ausgegeben werden, in allen anderen Fällen die
Aktion `Null'. Ein ähnliches Experiment wurde von Williams und Zipser
im Kontext des überwachten Lernens
zur Demostration der Fähigkeiten des IID-Algorithmus verwendet
[80].
Eine Schwierigkeit bestand darin, daß die Ereignisse in der Umgebung
auf zufällige Weise generiert wurden und beliebig lange
Verzögerungen zwischen relevanten Ereignissen auftreten konnten.
(Da haben wir gerade die Nicht-Markov-Eigenschaft.)
mußte also lernen, sich das Eintreten des Ereignis `A' über
einen im Prinzip beliebig langen Zeitraum zu merken, nachfolgende
unter Umständen irrelevante Ereignisse zu ignorieren und beim Eintreten
von `B' in korrekter Weise zu reagieren sowie die `Speicherung' von
`A' rückgängig zu machen.
Eine weitere Schwierigkeit für das lernende System bestand darin, daß es keine Trainingsintervallsgrenzen gab. Auf diese Weise konnten durch frühere Ereignisse verursachte Aktivationsspuren einen störenden Einfluß auf Aktivationszustände während späterer `Versuche' nehmen.
Die Hauptschwierigkeit bestand natürlich (wie stets beim R-Lernen, hier
liegt der wesentliche Unterschied zu Williams und Zipsers Experiment)
in der Abwesenheit eines informativen Lehrers.
wurde
seine gewünschte Ausgabe
niemals von externer Seite mitgeteilt, vielmehr mußte
in einer
Vielfalt raum-zeitlicher Kontexte alternative Aktionen ausprobieren
und sich ein dynamisches Modell der entsprechenden unter Umständen
`schmerzhaften' Konsequenzen verschaffen. Die einzige Zielinformation
für
bestand zu einem gegebenen Zeitpunkt
nämlich in der Aktivation eines
Schmerzeingabeknotens proportional zum Unterschied zwischen
's jeweils letzter (reellwertigen) Aktion aus dem Intervall
und der von der
Flip-Flop-Umgebung erwünschten Aktion. (Der Proportionalitätsfaktor
betrug 0.5.)
In Abbildung 5.2 ist die Topologie der interagierenden rekurrenten
Netze für diese Aufgabe dargestellt.
besaß 5 Eingabeknoten,
darunter 3 `normale' Eingabeknoten für 3 mögliche lokal
repräsentierte Ereignisse `A', `B', `D'. Das Eintreten eines
dieser Ereignisse
wurde dadurch repräsentiert,
daß der entsprchende Knoten mit einem
Wert von 1.0 aktiviert wurde und die anderen Eingabeknoten ausgeschaltet
wurden. Weiter gab es einen stets mit
dem Wert 1.0
aktivierten `wahren' Eingabeknoten (für modifizierbare `Schwellwerte')
sowie einen Schmerzknoten.
's Ausgabeknoten war probabilistisch
und bestand seinerseits
aus 3 Subknoten, 2 davon zur Mittelwert- und Varianzgenerierung.
Der Beitrag des Varianzknotens
bestand in seiner gegenwärtigen Aktivation multipliziert mit
Es wurden Testläufe sowohl für die parallele Version als auch für
die sequentielle Version von A2 veranstaltet. In beiden Fällen
führte
stets eine Neuberechnung seiner Aktivationen
pro Umgebungszeitschritt aus.
, dessen Aufgabe in gewissem Sinne
komplizierter war als
's Aufgabe (es mußte ja auch die
Konsequenzen von
's Fehlern modellieren), wurden zwei
Iterationen
pro Umgebungszeitschritt gestattet (Schritt 3 des Algorithmus).
Bei der sequentiellen Version wurde zunächst
für 150.000
Zeitschritte mit Hilfe von zufällig gewählten gleichverteilten
Steuernetzwerkausgaben trainiert.
Nach dem anschließenden
Einfrieren von
's Gewichten wurden weitere 50.000
Zeitschritte auf das Training von
verwendet.
Sowohl
als auch
betrugen 1.0.
In 10 Versuchen
fand der Lernalgorithmus stets eine brauchbare rekurrente
Gewichtskonfiguration für das Steuernetzwerk. (Um zu entscheiden,
ob eine Gewichtskonfiguration `brauchbar' war oder nicht,
wurde
's Gewichtsmatrix nach der Lernphase `manuell' inspiziert
und ihre Arbeitsweise nachvollzogen.)
Wie zu erwarten war, benötigte A2 wesentlich mehr Zeit für die Lösung des Flip-Flop-Problems als der überwachte IID-algorithmus: Gibt man nämlich den Ausgabeknoten die Lösung vor, so ist die entsprechende überwachte Lernaufgabe innerhalb weniger 1000 Zeitschritte zu lösen [80]. Der Grund dafür liegt natürlich darin, daß der gesuchte Steuergradient beim R-Lernen nicht vorgegeben ist, sondern vom Lernsystem erst `entdeckt' werden muß.
Auch mit der parallelen Version konnte das Problem gelöst
werden. Es erwiesen sich allerdings
längere Lernzeiten als erforderlich.
Mit
und
führten
von 30 Testläufen
nur 20 innerhalb von 1.000.000 Zeitschritten zum Erfolg.
Die Experimente zeigen, daß zumindest bei relativ kleinen Problemen die sequentielle Version gegenüber der parallelen Version vorteilhaft abschneiden kann. Andererseits liefern sie erstmalig den Nachweis, daß durch die Einführung der probabilistischen Ausgabeknoten sowie durch die entsprechende Modifikation des Lernverfahrens tatsächlich parallel gelernt werden kann, was keineswegs von vornherein klar war. Auch im Kapitel 7 wird die Einführung probabilistischer Ausgabeknoten das parallele Lernen eines Steuer- und eines Modellnetzes ermöglichen. Allerdings ist auch dort die Anwendungsdomäne nicht komplex genug, um die hypothetisch zu erwartenden Effizienzvorteile parallelen Lernens experimentell zu verfizieren. Effizienzgewinn sollte man ja vor allem dann erwarten, wenn es im Rahmen einer gestellten Aufgabe auch viel Irrelevantes zu lernen gibt.
Um sich mehr Klarheit über Vor- und
Nachteile beider Versionen zu verschaffen5.1, wären
Experimente mit komplizierteren und vielschichtigeren Problemen
sowie den dazugehörigen größeren Netzen notwendig. Allerdings
stießen wir bereits mit dem obigen relativ einfachen Experiment
an die Grenzen des auf unserer Maschine
noch erträglichen Berechnungsaufwands. Die
sequentielle Simulation spielte sich auf einer SUN SPARC Station
ab, ein einziges Flip-Flop-Experiment verbrauchte dabei ca. einen Tag
Rechenzeit. Mit einer entsprechenden voll parallelen Simulation
(ein Prozessor für jede
-Variable) ließe sich der
Zeitaufwand allerdings um mehrere Größenordnungen drücken,
und zwar sogar um eine mit der Größe der Netzwerke
wachsende Zahl von Größenordnungen.
Modifizierte man A2 so, daß
's Fehler nicht durch den Unterschied zwischen
's
gewünschter Eingabe (null Schmerz) und
's tatsächlicher
Eingabe gegeben war, sondern
durch den Unterschied zwischen
's gewünschter Eingabe und
's
entsprechender Vorhersage, so war keine signifikante
Performanzverbesserung möglich. Das lag daran, daß sich
niemals
zu einem wirklich perfekten Propheten entwickelte. Oft sagte
nämlich ungerechtfertigterweise zwar schwache, aber doch langfristig
schädliche Konsequenzen zur Folge habende Schmerzaktivationen voraus.
Es ist wichtig für A2, sich an
den realen (statt an den vorhergesagten)
Fehler zu halten.