Simulation eines triebgesteuerten Agenten

Simulation eines triebgesteuerten Agenten von Halil Güveniş, Istanbul E-mail: [email protected] Abstract This paper develops step by step the si...
Author: Frank Huber
2 downloads 0 Views 151KB Size
Simulation eines triebgesteuerten Agenten von Halil Güveniş, Istanbul E-mail: [email protected] Abstract This paper develops step by step the simulation program for a drive controlled agent. We first present a 3-level-model which is the basis of our simulation program. Next we simulate the stereotyped agent corresponding to a twodimensional Braitenberg Vehicle. Subsequently we generate the drives through pain signals and let them step into competition in a "winner- take-all" network. Depending on whether pleasure generating or pain avoiding drives gain control we divide the procedures to be executed into appetitive or aversive behavior sequences which are indicated by pleasure and pain signals. We discuss the simulation results on the basis of the trajectory of the agent. Zusammenfassung In der vorliegenden Arbeit wird Schritt für Schritt das Simulationsprogramm für einen triebgesteuerten Agenten entwickelt. Wir stellen zunächst ein 3-EbenenModell vor, auf dem unser Simulationsprogramm basiert. Als Nächstes simulieren wir den stereotypen Agenten, der einem zweidimensionalen BraitenbergVehikel entspricht. Anschließend lassen wir die Triebe durch Schmerz-Signale entstehen und in einem “Winner-take-all”-Netzwerk in Konkurrenz zueinander treten. Je nachdem, ob Lustgewinnungs- oder Schmerzvermeidungstriebe die Oberhand gewinnen, unterteilen wir die auszuführenden Prozeduren in appetitive bzw. aversive Verhaltenssequenzen, die durch Lust- und Schmerz-Signale indiziert werden. Die Simulationsergebnisse diskutieren wir anhand der Bahnkurve des Agenten. 1 Einleitung Die vorliegende Arbeit beschäftigt sich mit der Simulation eines triebgesteuerten Agenten. Wir untersuchen dieses Problem im Rahmen der Verhaltenssteuerung auf verschiedenen Komplexitätsebenen (Mallot,1999). Die ersten beiden Ebenen der Komplexität sind durch das stereotype Verhalten gegeben. Wir möchten in dieser Arbeit eine dritte Ebene der Verhaltenssteuerung konzipieren, die die Aufgabe hat, angeborene Triebentscheidungen zu treffen. Auf der

1

Grundlage dieser Entscheidungen wird es möglich sein, appetitive und aversive Verhaltenssequenzen nach ethologischen Gesichtspunkten zu organisieren. Um unnötige Komplikationen zu vermeiden, schließen wir bei der Modellierung alle Kognitionsarten aus, die über Triebentscheidungen hinausgehen. Ferner grenzen wir uns gegen alle Lernvorgänge ab, die bei der Simulation des angeborenen Triebverhaltens störend wirken könnten. Wir konzentrieren uns hauptsächlich auf die Triebe Hunger und Schmerzvermeidung und vernachlässigen alle anderen Motivationsarten. Die Arbeit ist so aufgebaut, dass wir Schritt für Schritt das Simulationsprogramm für einen triebgesteuerten Agenten entwickeln. In Kapitel 2 stellen wir ein 3-Ebenen-Modell vor, das unserem Simulationsprogramm zugrunde liegt. In Kapitel 3 simulieren wir die ersten beiden Steuerungsebenen, die das stereotype Verhalten darstellen. In Kapitel 4 generieren wir die Triebe und lassen sie durch ein neuronales Entscheidungsnetz gehen. In Kapitel 5 betrachten wir die Erbkoordination der Lustgewinnungs- und Schmerzvermeidungstriebe. In Kapitel 6 diskutieren wir die Simulationsergebnisse für den triebgesteuerten Agenten. 2 Das 3-Ebenen-Modell Das Steuerungsmodell, das wir unserem Simulationsprogramm zugrunde legen möchten, ist in Abbildung 1 schematisch dargestellt. Es handelt sich hierbei um drei Steuerungsebenen, die zunehmende Komplexität aufweisen. Triebe

Auslöser

Regler

Prozeduren

Umwelt Abbildung 1: Das Steuerungsmodell

Die erste Ebene der Verhaltenssteuerung ist gegeben, wenn zwischen Sensoren und Effektoren nur Regler existieren. Das resultierende Verhalten ist reflexartig und führt, wie Braitenberg (1984) gezeigt hat, zu mannigfaltigen Kombinationen. Die nächste Ebene der Komplexität ist erreicht, wenn zwischen Sensoren und Effektoren eine minimale Verarbeitung (Auslöser und Prozeduren) existiert. In diesem Fall können gerichtete Systemreaktionen erzeugt werden. Beliebtes Anwendungsgebiet dieser Komplexitätsebene ist die Navigation (Mallot, 1999).

2

Beide Ebenen zusammen ergeben das stereotype Verhalten und bringen eine recht komplizierte Verhaltensvielfalt hervor. Die Reaktionszeit beim stereotypen Verhalten ist äußerst gering und stellt die schnellste Antwortmöglichkeit des Systems dar. Für kompliziertere und längerfristige Zielsetzungen reicht allerdings das stereotype Verhalten nicht aus. Zu diesem Zweck benötigt man die dritte Ebene der Verhaltenssteuerung. Um Motive (Triebe) zu generieren, veranlassen wir die Regler bzw. Auslöser, auf interne und externe Stimuli mit charakteristischen Schmerz-Signalen zu reagieren. Anschließend erzeugen wir mit diesen Signalen auf der dritten Steuerungsebene die Triebmotivationen. Auf der Grundlage der Motivstärken entscheidet dann ein “Winner-take-all”-System (Blumberg, 1994), welcher Trieb demnächst befriedigt werden muss und überträgt die Kompetenz auf die zuständigen Auslöser-Instanzen. Trieb-Auslöser sind nach Kriterien der Schmerzvermeidung und der Lustgewinnung organisiert und in separaten Zentren untergebracht. Auslöser für Lustgewinnungstriebe koordinieren die Verhaltenssequenzen: Appetenz, Hinwenden und Endhandlung. Entsprechend sind die Schmerzvermeidungstriebe organisiert: Halten, Abwenden und Endhandlung. Durch Triebentscheidungen und anschließende Erbkoordination von appetitiven bzw. aversiven Verhaltenssequenzen können relativ komplizierte und langfristige Ziele organisiert werden. Verhaltenssequenzen sind durch Lust- und Schmerz-Zustände indiziert. Die Wahl einer Sequenz ruft das dazugehörige Verhaltensmodul auf. Ein Verhaltensmodul bleibt so lange im Einsatz, solange der auslösende Lust- bzw. Schmerz-Zustand nicht verändert ist. Beim Erreichen des Sequenzziels wird an die Regler das Signal übertragen, den für diese Sequenz charakteristischen LustZustand einzustellen und das Lust-Muster der nächsten Sequenz einzuschalten. Wird das allerletzte Sequenzziel erreicht, so besteht die Möglichkeit, durch Einschalten des Schmerz-Signals eines anderen Triebs eine neue Sequenzfolge zu initiieren. Damit sind dem Agenten alle Mittel zur Verfügung gestellt, seine Lebensaufgaben durch Wiederholung und Aneinanderreihung von angeborenen Verhaltenssequenzen optimal zu lösen und zu organisieren. 3 Stereotypes Verhalten Wir möchten nun das oben dargestellte Modell anhand eines autonomen Agenten testen. Der Agent wird in dieser Arbeit als eine Ansammlung von Kompetenzmodulen angesehen. Das Hauptmodul für das Simulationsprogramm ist nach Abbildung 1 gegeben durch: anfangswerte simulationsanordnung

3

…..Anfang der Simulationsschleife….. regler auslöser triebe prozeduren umwelt ….. Ende der Simulationsschleife….. Das Modul anfangswerte enthält alle angeborenen und anfänglichen Werte des Systems. simulationsanordnung beschreibt den graphischen Aufbau des Bildschirms. Simuliert wird ein autonomer Agent, der in einen rechteckigen Kasten

mit einer Trennwand in der Mitte eingeschlossen ist (Abb. 2). Als reine Reflexmodule (regler) sind diesem Agenten beigegeben: 1. Ein Todesreflex, der sofort eintritt, wenn sein Körper die Wände berührt, 2. ein Hungerreflex, der dafür sorgt, dass der Agent stirbt, wenn die Biomasse auf Null sinkt. Zum Überleben braucht daher unser Agent zwei Ziele: 1. Er muss mit Hilfe seiner Fühler den Wänden ausweichen können, 2. er muss mit Hilfe seines Geruchssinns die im Kasten verstreuten Futterquellen finden und seine Biomasse wiederherstellen. Als sensorische Information stehen ihm dabei die Bildschirmkoordinaten (X,Y) und der Drehwinkel DW zur Verfügung. Da in den Modulen auslöser und triebe diese Variablen die Veränderung (dX,dY) und dDW erfahren, sieht das Modul prozeduren ganz einfach aus:

4

X = X + dX Y = Y + dY DW = DW + dDW Das Modul umwelt registriert diese Variablenveränderungen und zeichnet auf der Grundlage der neuen Werte erneut die Simulationsanordnung. Geben wir dem Agenten eine Anfangsgeschwindigkeit und lassen ihn in eine bestimmte Richtung losmarschieren, ohne dass wir in die Module auslöser und triebe bestimmte Verarbeitungsschritte eingebaut haben, so wird ziemlich schnell bei Wandberührung der Tod eintreten oder der Agent wird eher sterben, wenn unterwegs die Biomasse auf Null sinkt. Um dem Hunger- bzw. Wandtod zu entgehen, müssen daher die Module auslöser und triebe entsprechende Verarbeitungsschritte enthalten. Wir vernachlässigen zunächst die Triebe und versehen das Modul auslöser mit zwei stereotypen Verhaltenssequenzen: 1. ausweichen, 2.kopfdrehen. Berühren die Fühler die Wände, so wird für jeden Fühler je nach der Nähe zur Wand ein linear steigender Schmerz-Zustand generiert. Alle Bewertungen werden auf der Skala 0-1 gemessen; 0 gibt den schmerzfreien Zustand an, 1 den maximal möglichen Schmerz. Je nachdem, welcher Fühler betroffen ist, wird in die entgegengesetzte Richtung beschleunigt, so dass insgesamt das Bild vom Ausweichen entsteht (Abb. 2). Beim Modul kopfdrehen handelt es sich um eine neuronal gesteuerte Reaktion, die dafür sorgt, dass sich der Kopf des Agenten stets in die Bewegungsrichtung dreht. In MATLAB-Konvention lautet der Befehl zum Drehen: P = [dX;dY;(X0-X)/R;(Y0-Y)/R]; A = simuff(P,W11,B11,'tansig',W21,B21,'tansig'); dDW = A*180/pi; Das ist ein Netzwerk bestehend aus 5 tangens-sigmoiden Neuronen, die mit Backpropagation-Algorithmus trainiert wurden. Das Netz liefert je nach Geschwindigkeit und Kopflage P einen Drehbetrag A (-0,2-0,2), der den Agenten zwingt, den Kopf in charakteristischer Weise in die Bewegungsrichtung zu drehen (Abb. 2). Zusammengenommen ergeben die Module ausweichen und kopfdrehen einen stereotypen Agenten, der einem zweidimensionalen Braitenberg-Vehikel entspricht. Braitenberg hat in seinem Buch Vehicles (1984) Inhibitions- und Abdrehungsmechanismen angegeben, die ähnlich strukturiert sind wie unsere Module ausweichen und kopfdrehen. Von daher ist der hier beschriebene stereotype Agent nur eine neue Version der altbekannten Braitenberg-Vehikel.

5

4 Das Entscheidungsnetzwerk Wir geben nun unsere einschränkende Bedingung auf und lassen auch das Modul triebe zu. Der Agent soll instand gesetzt werden, seinem Hungertrieb nachzugehen, wobei besondere Schmerz-Auslöser vermieden werden sollen. Überkreuzen sich diese zwei Ziele, so soll der Agent nach Dringlichkeit handeln, d. h. er soll beide Ziele gegeneinander abwägen und das zum Überleben Wichtigere wählen. Zwei Problemkreise interessieren uns in diesem Zusammenhang: 1. Generierung der Triebe, 2. Triebentscheidungen. Der Hungertrieb wird generiert, indem das Modul regler die Abnahme der Biomasse misst und bei Unterschreitung von 1000 Einheiten das Signal ‘Hungerzunahme’ erzeugt. Fehlt dieses Signal, so wird der HUNGER kontinuierlich abgebaut. Der Schmerzvermeidungstrieb wird generiert, indem ins Modul auslöser die (MATLAB)-Befehlsfolge PT(1) = [X/300]; PT(2) = [Y/240]; PT(3) = [rem(DW/360,1)]; PT1 = satlin(normr(W13(1,:))*normc(PT(1:1:3)')); if PT1 < 0.9997, PT1 = 0; end S = (S2+S4)*0.6+PT1; als schmerz-Modul hineingeschrieben wird. Die ersten drei Zeilen dieser Befehlsfolge vergleichen die aktuellen Lagekoordinaten des Agenten mit besonderen Aversionspunkten in der Simulationsanordnung und geben ein Signal ab, wenn hohe Übereinstimmung (PT1 ≈ 1) festgestellt wird. Die vierte Zeile verwandelt dieses Signal und den um den Koeffizienten 0,6 reduzierten Schmerzzustand in den Fühlern in eine Schmerz-Meldung S, die den Schmerzvermeidungstrieb anzeigt. Nach diesen Generierungsmaßnahmen fließen die Signal-Werte im Modul triebe in ein neuronales Entscheidungsnetz ein: P=[S;HUNGER]; A = simuff(P,W12,B12,'tansig',W22,B22,'tansig',W32,B32,'tansig'); if A(1) > 0.1, schmerzvermeidungstrieb; end if A(2) > 0.1, hungertrieb; end if A(3) > 0.1, übersprungshandlung; end if (A(1) < 0.1) & (A(2) < 0.1) & (A(3) < 0.1), lustgewinnungstrieb; end Das Netz unterscheidet sich in zwei Punkten von einem Standard “Winner-takeall”-Netzwerk. Zum einen besteht es aus zwei Input- und zwei Output-Neuronen für die beiden Triebe und aus einem dritten Output-Neuron für den Konfliktfall (übersprungshandlung). Zum zweiten ist es im Wertebereich S < 0,1 und HUNGER < 0,1 derart trainiert, dass es unabhängig von Eingangswerten immer Null ergibt. Darum wird in der letzten Zeile abgefragt, ob das Netz-Output

6

unter 0,1 bleibt. Und wenn das der Fall ist, dann wird die Kompetenz dem lustgewinnungstrieb übertragen, der beim Netzeingang gar nicht vorhanden war. In diesen Netzeigenschaften kommt das ethologische Wissen über Lustgewinnungs- und Schmerzvermeidungsverhalten der Tiere zur Geltung. Wenn der Schmerz zu schwach ist, dann befindet sich das System im LustgewinnungsModus. Wenn der Schmerz (Triebdrang) zunimmt, dann dominiert der stärkste Trieb. Kommen zwischen zwei Trieben Patt-Situationen vor, so wird eine Übersprungshandlung eingeleitet. 5 Lustgewinnungs- und Schmerzvermeidungstriebe Hat das Netz eine Entscheidung getroffen, welchem Trieb demnächst nachgegangen werden soll, so wird die Kompetenz auf die zuständige Auslöser-Instanz übertragen. Trieb-Auslöser sind grundsätzlich in separaten Modulen organisiert, um sicherzustellen, dass sie nur bei Triebbereitschaft aktiviert werden. Zwei große Klassen von Trieben sind zu unterscheiden: Lustgewinnungs- und Schmerzvermeidungstriebe, die nun getrennt simuliert werden sollen. Lustgewinnungstriebe unterteilen wir in drei Verhaltensabschnitte: Appetenz, Hinwenden und Endhandlung. Diese drei Abschnitte sind durch Erbkoordination miteinander verbunden. Für den hungertrieb sieht das folgendermaßen aus: if (LUST0 >= 0) & (LUST0 < 0.11), appetenz; if (LUST0 < 0.09), LUSTS0 = 0.05; end end if (K > 0) & (LUST0 > 0.09) & (LUST0 < 0.21), kriechen; if (LUST0 < 0.19), LUSTS0 = 0.05; end end if (L 0) & (LUST0 > 0.19) & (LUST0 < 0.36), fressen; if (LUST0 < 0.29), LUSTS0 = 0.1; end end Die Module appetenz, zum Futter kriechen und fressen werden aufgerufen, wenn der Lust-Zustand LUST0 und die Sequenzziele (Schlüsselreize) K, L und NM bestimmte Werte einnehmen. Damit die Ausführung der Sequenz nicht unterbrochen wird, bekommt der lust-Auslöser ständig Signale (LUSTS0), den Lust-Zustand aufrechtzuerhalten. Wird das jeweilige Sequenzziel erreicht, so übernimmt die nächste Sequenz die Kompetenz und erzeugt den ihr eigenen Lust-Zustands-Index. Da der Lust-Zustand im Modul umwelt ständig abgebaut wird, kehrt das System beim Fehlen der Sequenzziele und damit des LustSignals LUSTS0 zum Appetenzverhalten zurück. Wenn wir zum Schmerzvermeidungstrieb übergehen, so unterteilt sich auch dieser Trieb in drei Verhaltensabschnitte: Halten, Abwenden und Endhandlung. Das entsprechende Modul sieht folgendermaßen aus: if (S > 0.11) & (S < 0.51), halten; end if (S >= 0.51), abwenden; end if (S > 0.51), fliehen; end

7

Ein großer Unterschied zum hungertrieb besteht darin, dass die Module halten, abwenden und fliehen aufgerufen werden, ohne dass bestimmte Sequenzziele (Schlüsselreize) und Schmerz-Signale existieren. Der Grund dafür liegt in der besonderen Natur der Schmerz-Zustände. Da sie definitionsgemäß schlagartig auf- und abgebaut werden, benötigt man keine Schmerz-Signale, um einen Schmerz-Zustand aufrechtzuerhalten. Ferner benötigt man keine Sequenzziele, weil diese in der Definition des Schmerz-Zustandes S enthalten sind. Entdeckt das Modul schmerz in den aktuellen Lagekoordinaten einen besonderen Aversionspunkt oder wird der Schmerz in den Fühlern dominant stark, so erfolgt eine Meldung, die Schmerzvermeidungsverhalten auslöst. Die Verhaltenssequenzen werden in diesem Fall je nach Triebstärke ausgewählt. Die Module lustgewinnungstrieb und übersprungshandlung sehen im Prinzip wie hungertrieb bzw. schmerzvermeidungstrieb aus. Um die Simulation nicht unnötig zu erschweren, haben wir diese Module nicht voll ausgebaut. Wir beschränken uns auf die ersten Verhaltensabschnitte appetenz bzw. halten und führen die Simulation unter diesen Voraussetzungen durch. 6 Simulationsergebnisse Wir haben das oben dargestellte Simulationsprogramm für verschiedene Szenarien zum Laufen gebracht. Die erhaltenen Simulationsergebnisse sind weitgehend befriedigend (Abb. 2 und 3). Wegen der neuronalen Steuerung der Verhaltensmodule ist die Kinesis und Taxis des Agenten zufrieden stellend realisiert. Triebabhängige Netzwerte sorgen dafür, dass der Agent beim Lösen seiner Lebensaufgaben eine Stetigkeit und Feinheit entwickelt, die mit natürlichen Vorbildern durchaus vergleichbar sind. Besonders beim Lösen von Teilaufgaben werden keine abrupten Übergänge beobachtet.

8

In Abbildung 3 ist eine charakteristische Bahnkurve dargestellt, die alle bisher besprochenen Triebarten und Verhaltenssequenzen enthält. Um das Zusammenspiel der Module besser überblicken zu können, möchten wir diese Kurve näher erläutern: Der Agent startet im Punkt (250,130) unter einem Winkel von 184° und bewegt sich im Lustgewinnungs-Modus auf die Spitze der Trennwand zu. Da die Wandspitze ein angeborener Aversionspunkt ist, springt die Triebentscheidung kurz davor auf Schmerzvermeidung um. Daraufhin läuft der Agent schnurstracks in die Ecke (300,240) hinein. Nach einigen Rechts- und Linksausweichungen setzen die Sequenzen ‘Abwenden’ und ‘Fliehen’ ein und der Agent schert links heraus. In der Zwischenzeit hat der Hunger den kritischen Wert 0,1 überschritten. Das Entscheidungsnetz geht in Hungertrieb über und lässt den Agenten im Punkt (210,230) die Futterquelle entdecken. Das Hinkriechen wird zu einem mühsamen Spiel, weil das Futter zu dicht an der Wand aufgestellt ist. Durch konzertierte Aktion der gesamten Palette der Verhaltensmodule wird schließlich das Futter aufgefressen. Der Agent eilt zur nächsten Futterquelle in die Ecke (10,230). Da inzwischen der Hunger stärker geworden ist, erhöht sich die Risikobereitschaft, und der Agent nimmt auch solche Aktionen vor, die für ihn schmerzhaft sind. Die Sequenzen ‘Abwenden’ und ‘Fliehen’ werden diesmal nicht aktiv, weil die Schmerzvermeidung den Hungertrieb nicht dominieren kann. Insgesamt lässt sich feststellen, dass unser Simulationsmodell mit den angenommenen Umweltbedingungen ausgezeichnet fertig wird. Das ist allerdings keine große Leistung, weil wir konstante Umweltbedingungen und nur zwei Triebmotivationen angenommen haben. Hätten wir mehrere Triebe und viele zeitlich veränderliche Umweltbedingungen, so sähe die Simulation beträchtlich komplizierter aus (Maes, 1994). Was die Anzahl der Triebe betrifft, so haben wir uns in dieser Arbeit bewusst auf zwei Triebmotivationen beschränkt, um die Simulation nicht unnötig zu erschweren. Die Prinzipien, die wir aufgezeigt haben, sind allerdings auch für komplexe Triebstrukturen gültig. Gelingt es die Lebensziele eines Agenten durch mehrere Triebe auszudrücken, so wird es stets möglich sein, ein neuronales Netzwerk zu finden, das darüber entscheidet, welches Motiv und welche Verhaltenssequenz im gegebenen Moment angeboren richtig sind. Was die Umweltbedingungen betrifft, so haben wir sie in dieser Arbeit bewusst als konstant angenommen, um das angeborene Triebverhalten ungestört simulieren zu können. In der realen Welt wird aber ein statischer, nicht lernfähiger autonomer Agent kaum überlebensfähig sein. Von daher muss noch gezeigt werden, dass unser Simulationsmodell durch Konditionierung der Auslöser und Prozeduren auch zeitlich veränderliche Umweltbedingungen steuern kann.

9

Literatur

Blumberg, B. (1994) Action-Selection in Hamsterdam: Lessons from Ethology. In: D. Cliff & P. Husbands & J. A. Meyer & S. W. Wilson (eds.). From Animals to Animats 3: Proceedings of the Third International Conference on Simulation of Adaptive Behavior (pp. 108-117). Cambridge, MA: The MIT Press. Braitenberg, V. (1984) Vehicles. Experiments in Synthetic Psychology. Cambridge, MA: The MIT Press. Maes, P. (1994) Modeling Adaptive Autonomous Agents. Artificial Life Journal 1, 135-162. Mallot, H. A. (1999) Spatial cognition: Behavioral competences, neural mechanisms, and evolutionary scaling. Kognitionswissenschaft 8, 40-48.

10