Ein zweites wichtiges Modul ist das statische
Evaluatornetzwerk .
's Eingabe besteht aus der
Repräsentation eines
Startzustandes und
der Repräsentation eines gewünschten
Zielzustandes.
's Ausgabe soll anzeigen, ob
ein vom
Startzustand zum Zielzustand (oder nahe
an den Zielzustand heran-) führendes Programm kennt.
Eine Ausgabe von 1 bedeutet, daß ein adäquates Unterprogramm
existiert.
Eine Ausgabe von 0 bedeutet, daß kein adäquates Unterprogramm
existiert.
Eine Ausgabe zwischen 0 und 1 bedeutet, daß es ein Unterprogramm
gibt, das vom Startzustand in einen Zustand führt, welcher
dem Zielzustand in einem gewissen Sinne nahe ist.
Das Maß der Nähe muß durch einen evaluativen Prozeß
gegeben sein, welcher adaptiv sein kann oder aber auch nicht, und
der in diesem Unterabschnitt nicht detailliert spezifiziert
zu werden braucht.
repräsentiert ein Modell der dem
System eigenen Fähigkeiten.
Wir nehmen im folgenden an, daß schon
für jede Start-Ziel Kombination
die Güte des entsprechenden Unterprogramms angeben kann.
kann in einer explorativen Phase trainiert werden, während
der vorhandene Unterprogramme bzw. Start-Ziel Kombinationen
getestet werden. (Natürlich ergibt sich langfristig
gesehen eine interessantere Situation, wenn
parallel zu den
anderen Systemkomponenten lernt.)
Schließlich enthält das System ein als Subzielgenerator
dienendes weiteres statisches Netzwerk .
' Eingabe
besteht aus
's Starteingabe sowie aus der am Ende der
auszuführenden Aktionssequenz für
gewünschten Eingabe.
Die Ausgabe des Subzielgenerators ist natürlich ein
Subziel. Geradeso wie das Ziel ist auch das Subziel ein
die gewünschte Eingabe am Ende eines auszuführenden Unterprogramms
beschreibendes Aktivationsmuster, welches gleichzeitig die
Starteingabe für ein weiteres Unterprogramm darstellt.
Wir konzentrieren uns auf den einfachsten Fall: Wir nehmen an,
daß Lösungen für gegebene Aufgaben durch die Generierung
eines einzigen Subziels gefunden werden können (Generalisierungen
zu ganzen Subzielsequenzen sind allerdings trivial).
sollte
ein Subziel mit der Eigenschaft generieren, daß sowohl ein
vom Startzustand zum Subziel als auch ein vom Subziel zum
gewünschten Endzustand führendes Unterprogramm existiert.
Wie lernt der Subzielgenerator, der zunächst eine tabula rasa
ist, der Problemstellung angemessene Subziele zu generieren?
Wir nehmen 2 Kopien des Evaluatornetzes und verbinden sie mit
wie in Abbildung 7.9 dargestellt. Die gewünschte
Ausgabe beider Kopien ist 1. Ist eine der beiden tatsächlichen
Ausgaben niedriger als 1, so wird der entsprechende Fehler
durch
's Kopien und durch
hindurchpropagiert. Von der im Anschluß stattfindenden
Gewichtsänderung bleiben die Gewichte der Kopien von
sowie
's Gewichte selbst unberührt. Nur
' Gewichte ändern sich.
Für ein gegebenes Problem wird die Prozedur iteriert, bis
der Gesamtfehler an den Ausgaben von
's Kopien gleich
Null ist (dann wurde eine durch die Komposition der
beiden entsprechenden Unterprogramme zu erhaltende Lösung gefunden),
oder bis ein lokales Minimum erreicht wurde (keine Lösung).
Die Gradientenabstiegsprozedur dient also einer informierten
Suche im Raum aller Subziele.
In Kapitel 5 wurde gesehen, wie man nicht nur Programmausgaben, sondern auch Programmeingaben in Bezug auf Programme differenzierbar machen kann. (Die Gewichtsmatrix eines Netzwerkes mit fixer Topologie wurde dabei als sein Programm angesehen.) Da man eine Kombination von Repräsentationen bestimmter Start und Zielzustände als einen Programmnamen ansehen kann, geht der in diesem Abschnitt vorgestellte Ansatz noch einen Schritt weiter: Er macht Eingaben differenzierbar in Bezug auf Programmnamen.