Cybercalmar Neuroevolution

Sich entwickelndes neuronales Netzwerk


Künstliche neuronale Netze ahmen reale biologische Nervensysteme nach. Sie enthalten Neuronen und Verbindungen zwischen ihnen und ermöglichen die Umwandlung eingehender Signale in ein signifikantes Ausgabeergebnis. Im Bereich des maschinellen Lernens werden diese Netzwerke häufig mit zufälligen Verbindungen zwischen Neuronen initialisiert. Danach lernt das Netzwerk , bis es sich richtig verhält. Dieser Ansatz ist durchaus anwendbar, Tiere haben jedoch viele einfache Nervensysteme, die sofort funktionieren: Niemand bringt Fischen das Schwimmen oder Schmetterlingen das Fliegen bei, obwohl ihr Verhalten durch Netzwerke von Neuronen erzeugt wird. Ihr Nervensystem ist nicht das Ergebnis einer zufälligen Initialisierung und anschließenden Trainings, sondern der Evolution. Nach vielen Generationen hat die Natur ein Muster von Zellen und Verbindungen geschaffen, das ein komplexes und erfolgreiches Verhalten ermöglicht.

Um neuronale Netze zu erstellen, die Verhalten ohne Lernen bereitstellen, können Sie die Neuroevolution verwenden . Evolutionäre Algorithmen (wie der, mit dem ich die Pflanzenevolution durchgeführt habe ) unterziehen den genetischen Code über einen langen Zeitraum der Evolution. Der genetische Code (das Modell für DNA) und der Organismus, den er darstellt, sind anfangs sehr einfach, aber seit Generationen erhöhen kleine Mutationen die günstige Komplexität und fügen Funktionen hinzu, die die weitere Verbreitung dieser Eigenschaften stimulieren.

Digitaler Tintenfisch


Um den Effekt der Neuroevolution zu demonstrieren, möchte ich die Entwicklung des digitalen Tintenfischs aufzeigen. Tintenfische haben folgende Eigenschaften:


Abbildung 1: Schwimmender Tintenfisch.

  • Sie können beliebig viele Tentakel unterschiedlicher Länge haben.
  • Jede Hand wird von einem Ausgangsneuron gesteuert und in eine Richtung mit einem niedrigen Ausgangssignal und in die andere mit einem hohen Ausgangssignal gepumpt.
  • Tintenfische haben einen Kopf ; Die Größe des Kopfes bestimmt die maximal mögliche Anzahl von Neuronen.
  • Die Tintenfischmasse wird durch die Größe des Kopfes und die Anzahl der Tentakelsegmente bestimmt.
  • Tintenfische schwimmen in einer simulierten Flüssigkeit, die mit Punkten gefüllt ist, die Nahrung bezeichnen. Wenn der Tintenfisch diese Punkte berührt, „frisst“ er sie und die Tintenfischbewertung wird als Anzahl der verzehrten Punkte geteilt durch seine Masse berechnet.

Diese Eigenschaften sollten dank der Evolution Tintenfische erzeugen, die effektiv in der Umwelt schwimmen und so viel Nahrung wie möglich zu sich nehmen. Da sie auch Masse haben, müssen Tintenfischkörper effektiv sein: Schwere Körper und große Tentakel benötigen mehr Nahrung, um einen Grund für ihre evolutionäre Schöpfung zu haben.

Da Tintenfische unterschiedliche Eigenschaften haben können (z. B. Kopfgröße und Tentakelkonfiguration), entwickeln sich auch diese Eigenschaften. Die Tintenfisch- DNA enthält nicht nur eine „Zeichnung“ seines Gehirns, sondern auch einen Plan des Körpers.

Abbildung 1 zeigt einen simulierten Tintenfisch mit zwei Händen. Die oszillierende Bewegung der Hände wird durch Hinzufügen einer Federkraft zu den Armsegmenten sichergestellt. Wenn die Muskeln aufhören, die Arme zu bewegen, richten sich die Segmente allmählich aus, bis sich die Arme in gerade Linien verwandeln. Um die Größe der Beschleunigung zu berechnen, werden alle seitlichen Bewegungen summiert. Alle in der Abbildung gezeigten seitlichen Bewegungen werden zu dieser Zahl addiert. Der Tintenfisch schwingt Tentakel hinter den Körper und sorgt für Vorwärtsbewegung.

Spike neuronale Netze


Die Auswahl des richtigen neuronalen Netzwerks für unser Projekt ist keine leichte Aufgabe. Es gibt viele verschiedene Arten von neuronalen Netzen. In diesem Artikel finden Sie einen einfachen Überblick über einige von ihnen. Die Aufgabe des Tintenfischmanagements unterscheidet sich in bestimmten Aspekten von der Arbeit bekannter Netzwerke:

  • «-». , . - , .
  • . «-», .
  • , . , .

Diese Anforderungen werden von einem Spike-Neuronennetz (Puls) erfüllt . Solche Netzwerke arbeiten in Echtzeit und wurden entwickelt, um Wildtiere genauer zu simulieren. Wie echte Neuronen akkumulieren Zellen in einem neuronalen Spike-Netzwerk Potential, das allmählich aus allen Eingangssignalen gesammelt wird, und kehren in Abwesenheit von Eingangssignalen allmählich in ihren „neutralen“ Zustand zurück. Spike-Neuronale Netze müssen sich nicht an einen strengen Schaltplan halten. Sie bestehen aus einer Schicht von Eingangsneuronen, einer Schicht von Ausgangsneuronen (in unserem Fall zur Steuerung von Tentakeln) und mehreren Neuronen zwischen ihnen, die als verborgene Schicht bezeichnet werden. Die Neuronen in der verborgenen Schicht können mit den Eingangs- und Ausgangsneuronen verbunden werden, aber die Neuronen können auch getrennt werden. In unserer Aufgabe können Neuronen der verborgenen Schicht miteinander verbunden werden.


Abbildung 2: Logistikfunktion.

Alle Neuronen des Nervensystems haben eine Aktivierungsfunktion . Diese Funktion bestimmt den Ausgabewert eines Neurons basierend auf der Summe seiner Eingangssignale. Neuronen sind durch Axone verbunden, die die Quell- und Zielneuronen verbinden. Das Axon addiert zur Aktivierung des Zielneurons den Ausgabewert des ursprünglichen Neurons multipliziert mit dem Gewicht des Axons (das eine positive oder negative Zahl sein kann). Dann bestimmt die Aktivierungsfunktion den Ausgabewert des Neurons basierend auf seiner Aktivierung. Für diese Simulation haben wir die Logistikfunktion als Aktivierungsfunktion ausgewählt :

11+ea


In dieser Gleichung aist die Aktivierung eines Neurons. Abbildung 2 zeigt eine grafische Darstellung der Funktion. Beima=0 Ausgabewert ist0.5 ; In unserer Simulation ist dies nützlich, da das Netzwerk in der Lage sein muss, auch ohne Eingabewert Verhalten bereitzustellen. Wenn der Standardausgabewert ungleich Null ist, fließen ständig einige Signale durch das System. Theoretisch bedeutsama kann sehr klein oder sehr groß sein, aber die Asymptoten der Logistikfunktion garantieren, dass der Ausgabewert immer im Bereich liegt[0,1] . Aus diesem Grund werden extreme Systemausgangswerte nicht weitergegeben.

Simulation der Evolution


Die Simulationsumgebung besteht aus folgenden Komponenten:

  • Beliebig viele Tintenfische mit unterschiedlichen Körperstrukturen und spitzen neuronalen Netzen, um ihre Gliedmaßen zu kontrollieren.
  • Lebensmittel in der Umgebung verstreut.

Um die Evolution zu simulieren, wird im System eine feste Lebensdauer jeder Generation simuliert. In meinen Simulationen habe ich Segmente von 20 bis 30 Sekunden ausgewählt. Nach dieser Zeit wird der produktivste Tintenfisch ausgewählt, der mehrmals dupliziert wird, um eine neue Generation von Tintenfischen zu erstellen. Vor der nächsten Simulation unterliegen alle Tintenfische einer leichten Mutation. Die folgenden Eigenschaften können mutieren:

  • Der Radius des Körpers und damit die maximal zulässige Anzahl von Neuronen im Tintenfischhirn.
  • Anzahl und Lage der Tentakeln.
  • Die Länge der Tentakeln.
  • Die Anzahl der Neuronen im Gehirn.
  • Axonverbindungen zwischen Neuronen (Verbindungen können erscheinen oder verschwinden, die Gewichte von Bindungen können sich ebenfalls ändern).

Im Moment enthält das Tintenfischhirn keine Eingangsneuronen. Die Anzahl der Ausgangsneuronen entspricht immer der Anzahl der Tentakel, und jedem Tentakel ist ein Ausgangsneuron zugeordnet. Wenn das Tentakel während der Mutation verschwindet, wird auch das ihm entsprechende Ausgangsneuron entfernt. Wenn während der Mutation ein neues Tentakel erscheint, empfängt es ein neues Ausgangsneuron mit zufälligen Verbindungen.

Der Quellcode für die Simulation wird auf GitHub hochgeladen und die Simulation erfolgt im Browser .

Ergebnisse



Abbildung 3: Das Nervensystem erzeugt endlose Impulse.

Bei der Durchführung einer Simulation werden bewegte Tintenfische normalerweise in mehreren hundert Generationen erhalten. Wenn eine funktionierende Schwimmstrategie evolutionär entsteht, entwickelt sie sich normalerweise im Laufe der Zeit zur optimalsten Version.

Das Nervensystem kann sichtbar gemacht werden. Abbildung 3 zeigt ein einfaches Tintenfischnervensystem mit zwei Armen. Das Netzwerk enthält fünf Neuronen, die durch orangefarbene Kreise gekennzeichnet sind, und zwei Ausgangsneuronen, die durch blaue Kreise gekennzeichnet sind. Wenn das Ausgangssignal eines Neurons zunimmt, werden die Neuronen heller. Wenn das Ausgangssignal abnimmt, werden die Kreise transparent. Axone werden durch gestrichelte Linien dargestellt, die die entsprechenden Neuronen verbinden. Wenn das Axon ein Signal sendet (und das Zielneuron beeinflusst), wird die gestrichelte Linie sichtbarer und die gestrichelte Linie bewegt sich in Richtung des Signals.


Abbildung 4: Entwickelte schwimmende Tintenfische. Beachten Sie, dass nicht alle Wirkstoffe besonders wirksam sind. Einige enthalten nutzlose Mutationen.

Abbildung 4 zeigt mehrere Tintenfische, die in einer Simulationsumgebung schweben. Diese Tintenfische verwenden zwei gleichzeitig schwankende Tentakel. Bei den Wirkstoffen ist eine Variabilität erkennbar:

  • Es gibt verschiedene Längen von Tentakeln, aber ihre Bewegungsmuster sind ungefähr gleich.
  • Die beiden Agenten am unteren Rand des Bildes haben evolutionär zusätzliche Tentakel erhalten, die noch nicht besonders nützlich sind. Sie erhöhen die Masse des Tintenfischs und verringern so seine Punktzahl.

Fazit


Die Simulation im aktuellen Zustand zeigt die Wirksamkeit der Neuroevolution und bildet die Grundlage für die weitere Entwicklung des Systems:

  • . , .
  • . , .
  • , , .
  • . . , . , .

Diese Ergänzungen erfordern keine Änderungen des grundlegenden Mechanismus der Neuroevolution, sondern ermöglichen lediglich das Auftreten unterschiedlicher Strategien. Die Universalität und Anpassungsfähigkeit des gezeigten Rahmens der Neuroevolution machen es zu einem interessanten Werkzeug für viele andere Bereiche, insbesondere für Studien des künstlichen Lebens .

All Articles