Wie programmiert man Angst in ein neuronales Netzwerk?

8

Wenn Sie einmal von einer Spinne angegriffen wurden, werden Sie sich nie wieder einer Spinne nähern.

In einem neuronalen Netzwerkmodell verringert eine schlechte Erfahrung mit einer Spinne die Wahrscheinlichkeit, dass Sie sich einer Spinne nähern, je nach Lernrate geringfügig.

Das ist nicht gut. Wie können Sie Angst in ein neuronales Netzwerk programmieren, sodass Sie nicht Hunderte von Beispielen benötigen, die von einer Spinne gebissen wurden, um die Spinne zu ignorieren? Und auch, dass es nicht nur die Wahrscheinlichkeit senkt, dass Sie sich einer Spinne nähern?

Zooby
quelle
Angst ist eine verringerte Lernrate mit einer erweiterten stochastischen Komponente, aber ohne ein Sprachzentrum kann das System nicht sagen: "Ich fürchte."
FelicityC
WP-Artikel One-Shoot-Lernen en.wikipedia.org/wiki/One-shot_learning enthält einen Abschnitt zum Lernen mit einem Beispiel.
Jaume Oliver Lafont

Antworten:

5

Es gibt viele Ansätze, die Sie dafür wählen könnten. Es könnte möglich sein, ein realistisches künstliches Analogon für Angst zu erstellen, wie es bei Tieren biologisch implementiert ist, aber die Angstreaktion eines echten Tieres ist mit einer Menge verbunden, die in einfacheren KI-Bots, die derzeit verfügbar sind, nicht zutreffen würde. Zum Beispiel wird ein Tier, das in einen Zustand der Angst gerät, normalerweise Hormone verwenden, um Veränderungen in seinem Körper zu signalisieren, was den Ressourcenverbrauch und das Eingehen von Risiken begünstigt ("Kampf oder Flucht").

Beim grundlegenden Lernen der Verstärkung müsste das neuronale Netzwerk nicht direkt entscheiden, ob ein "Angstmodus" aktiviert werden soll. Stattdessen können Sie ein Design im Agenten und im Lernalgorithmus verwenden, um aus seltenen, aber signifikanten Ereignissen zu lernen. Hier einige Ideen:

  • Erleben Sie die Wiederholung. Möglicherweise tun Sie dies bereits im Pacman-Szenario, wenn Sie DQN oder ähnliches verwenden. Das Speichern des Zustandsübergangs und der Belohnung, die eine große positive oder negative Belohnung verursacht haben, und das wiederholte Lernen daraus sollten Ihre Besorgnis ausgleichen

  • Priorisiertes Kehren. Sie können größere Unterschiede zwischen vorhergesagter und tatsächlicher Belohnung verwenden, um die Abtastung aus Ihrem Wiedergabespeicher auf wichtige Ereignisse und solche, die eng damit verbunden sind, zu beschränken.

  • Planung. Mit einem Vorhersagemodell - möglicherweise basierend auf abgetasteten Übergängen (Sie können den Erfahrungswiedergabespeicher dafür wiederverwenden) oder einem trainierten Netzwerk zur Vorhersage von Zustandsübergängen - können Sie durch Simulation mehrere Schritte vorausschauen. Es gibt auch eine starke Beziehung zwischen RL und Vorausschau-Planung, sie sind sehr ähnliche Algorithmen. Der Unterschied besteht darin, welche Zustände und Aktionen berücksichtigt werden und ob sie simuliert oder erlebt werden. Erfahrungswiederholungen verwischen hier die Grenze - sie können als Lernen aus dem Gedächtnis oder als Verbesserung der Vorhersagen für die Planung bezeichnet werden. Planung hilft, indem Entscheidungen optimiert werden, ohne dass Erfahrungen wiederholt werden müssen - eine Kombination aus Planung und Lernen kann weitaus leistungsfähiger sein als isoliert.

  • Intelligentere Auswahl von Erkundungsaktionen. Epsilon-gierig, bei dem Sie entweder eine gierige Aktion ausführen oder eine völlig zufällige Aktion ausführen, ignoriert völlig, wie viel Sie möglicherweise bereits über alternative Aktionen und deren relativen Wert gelernt haben. Sie können so etwas wie Upper Confidence Bound mit einem wertbasierten Agenten verwenden.

  • Erhöhen Sie in einer deterministischen Welt die Stapelgröße für Lernen und Planen, da Sie darauf vertrauen können, dass Sie alles darüber wissen, wenn ein Übergang einmal gelernt wird.

Sie müssen in jeder Umgebung experimentieren. Sie können Lernagenten erstellen, die konservativer sind, wenn es darum geht, Gebiete mit geringer Belohnung zu erkunden. Wenn die Umgebung jedoch so ist, dass Risiken eingegangen werden müssen, um die besten Belohnungen zu erzielen (was bei Spielen häufig der Fall ist), ist es möglicherweise nicht optimal für die Lernzeit, einen "schüchternen" Agenten zu haben. Zum Beispiel in Ihrem Beispiel von Pacman sollten manchmal die Geister vermieden werden, manchmal sollten sie verfolgt werden. Wenn der Agent anfangs eine starke Abneigung erlernt hat, kann es lange dauern, diese zu überwinden und zu lernen, sie nach dem Essen eines Power-Ups zu verfolgen.

Für Ihr Beispiel der Spinne als Konstrukteur des Experiments wissen Sie dann, dass der Biss jedes Mal schlecht ist und dass der Agent ihn so weit wie möglich vermeiden muss. Für die meisten RL-Algorithmen gibt es kein solches Wissen, außer durch Erfahrung. Ein MDP-Weltmodell muss nicht dem gesunden Menschenverstand entsprechen. Es kann sein, dass ein Spinnenbiss in 90% der Fälle schlecht (-10 Belohnung) und in 10% der Fälle gut (+1000 Belohnung) ist. Der Agent kann dies nur feststellen, indem er mehrmals gebissen wird. . . RL beginnt normalerweise nicht mit einem System, um Annahmen über solche Dinge zu treffen, und es ist unmöglich, eine allgemeine Regel für alle möglichen MDPs zu erstellen. Stattdessen können Sie für ein einfaches RL-System in Betracht ziehen, Hyperparameter zu ändern oder sich auf wichtige Ereignisse zu konzentrieren, wie oben vorgeschlagen. Außerhalb eines grundlegenden RL-Systems kann es sinnvoll sein, andere Dinge zu replizieren.

Neil Slater
quelle
1
Es wird ein ziemlich komplexer Prozess sein, etwas wie Angst zu modellieren ... unterschiedliche Lernraten für verschiedene Objekte (aber vielleicht wird es durch das zunehmende Risiko = steigende Lernrate berücksichtigt), dann haben manche Menschen irrationale Angst vor Fehlern ... Dann gibt es eine Theorie, dass unser Geist logarithmisch arbeitet, dh Sie haben Angst vor einem Tiger, Sie haben immer noch mehr Angst vor zwei Tigern ... Sie haben Angst vor 100 Tigern, aber Ihre Angst nimmt bei 101 Tigern nicht so stark zu wie in das Beispiel von 1 -> 2 Tiger Fall ..... können alle diese modelliert werden?
DuttaA
1
@DuttaA: Ich stimme zu, weshalb ich ein paar Sachen vorschlage, die nicht "echte Angst (tm)" sind. Ich denke, eine sehr grundlegende "instinktive Angst" bei der Verwendung von RL würde darin bestehen, der Wertfunktion ohne tatsächliche Erfahrung programmatisch einen vorherigen niedrigen Wert hinzuzufügen.
Neil Slater
2

Ich denke, es gibt zwei Möglichkeiten, um dies zu erreichen: 1) Programmieren Sie Angst explizit als Einschränkung oder Parameter in einem logischen Ausdruck oder 2) Verwenden Sie einen großen Satz von Trainingsdaten, um Angst zu lehren.

Denken Sie an ein einfaches Pacman-Spiel - ob Pacman die Geister fürchtet oder nicht, ist schwer zu sagen, aber sie SIND Geister und Pacman vermeidet sie, daher denke ich, dass es sicher ist, dass wir dies als grundlegendes Beispiel für "Angst" verwenden können. Da in diesem Spiel Angst = Vermeidung ist, können Sie die Vermeidung logischerweise so programmieren, dass sie eine Art Distanz darstellt. Ich habe dies mit Pacman-Verstärkungslernen versucht. Ich habe versucht, einen Abstand von 5 Feldern zu den Geistern festzulegen, und jedes Mal, wenn Pacman einen Geist innerhalb von 5 Feldern sehen konnte, bewegte er sich in eine andere Richtung. Was ich gefunden habe ist, dass Pacman zwar versucht, Geistern auszuweichen, aber keine Strategie kennt (oder keine Intelligenz hat). Pacman entfernte sich einfach von Geistern, bis er eingepfercht wurde.

Mein Punkt ist, dass Sie Ihr Netzwerk so programmieren können, dass Spinnen nicht gebissen werden, aber ohne Training erstellen Sie nur einen grundlegenden Parameter, der Probleme verursachen kann, wenn 100 superaggressive Spinnen auf Sie zukommen! Der bessere Weg ist, eine Basislogik zu verwenden, um Spinnen zu vermeiden, aber dann das Netzwerk so zu trainieren, dass es belohnt wird, je besser Spinnen vermieden werden.

Nun, es gibt viele Situationen der Angst, so dass dieses eine Beispiel mit Pacman nicht unbedingt für alle gilt ... Ich versuche nur, einen Einblick in meine Erfahrungen mit dem Lehren von Angst mit verstärktem Lernen in Pacman zu geben.

CaptainPlanet
quelle
1
Ich denke, dass es für einige Dinge wie Feuer ein Instinkt sein muss. Denn wenn Sie ein paar "Trainingsbeispiele" haben, sind Sie ziemlich verbrannt. Aber mit anderen Dingen sollten Sie nur ein Beispiel brauchen, wie von einem Hamster gebissen zu werden. Sie sollten lernen, dass Hamster scharfe Zähne haben, also stecken Sie Ihre Hand nicht in den Mund. Für einige Dinge sollten Instinkte Sie nur daran hindern, Dinge wie das Einsetzen Ihrer Hand in ein Feuer zu tun. Oder lass dich zurückspringen. Aber sollten Sie auch Angst haben, sich dem Feuer zu nähern, wenn Sie erfahren, dass Sie von einem Funken getroffen werden könnten?
Zooby
2
@zooby Nach meiner Erfahrung lernen kleine Kinder nicht wirklich, den heißen Herd oder das Feuer zu fürchten, bis sie sich verbrennen. (Warum müssen Sie sie so genau beobachten?) Ich würde sagen, wenn der Algorithmus Vermeidung durch eine Technik wie Verstärkungslernen lernt, ist er "Lernen, was zu fürchten ist", wohingegen, wenn dies der Fall ist der Vermeidungsmechanismus vorprogrammiert, das wäre "Instinkt".
DukeZhou
2

Angst dieser Art ist eine irrationale Reaktion (großer negativer Anreiz als Reaktion auf ein kleines Risiko). Das Modellieren von Angst müsste einen "Grobheits" -Faktor modellieren, der beispielsweise mit Spinnen assoziiert ist, damit die normalerweise unproportionale Reaktion auftritt. Der "Grobheits" -Faktor könnte sich in vielen anderen Formen manifestieren, um eine Reaktion auf eine zuvor unangenehme, wenn auch nicht besonders gefährliche Erfahrung zu verstärken. Diese Angst kann auch durch Hörensagen ausgelöst werden (denken Sie an Hysterie, die durch eine sensationelle Nachricht verursacht wird). Ein NN würde normalerweise nur minimal auf ein minimales Risiko reagieren.

SchroedingersCat
quelle
1

Ich würde vorschlagen, dass der Agent sein Lernen aus einem bestimmten Ereignis anhand der Schwere der Konsequenzen für dieses Ereignis gewichtet. Z.B. Lassen Sie es ein Bedrohungsmodell entwickeln, wie es normalerweise im Bereich Informationssicherheit erstellt wird. Ein hohes Risiko, aber eine geringe Wahrscheinlichkeit kann berücksichtigt und beurteilt werden.

Der Versuch, die menschliche Angst direkt nachzuahmen, wäre dumm. Wenn Sie zu erfolgreich wären, würden Sie wahrscheinlich AIs mit Phobien haben.

Christopher Griffith
quelle