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.