Wie verwenden neuronale Netze genetische Algorithmen und Backpropagation, um Spiele zu spielen?

8

Ich stieß auf diesem interessanten Video auf YouTube zu genetischen Algorithmen .

Wie Sie im Video sehen können, lernen die Bots zu kämpfen.
Jetzt habe ich eine Weile neuronale Netze studiert und wollte anfangen, genetische Algorithmen zu lernen. Das kombiniert beides irgendwie.

Wie kombinieren Sie dazu genetische Algorithmen und neuronale Netze?
Und wie weiß man den Fehler in diesem Fall, mit dem du deine Gewichte zurückpropagierst und aktualisierst und das Netz trainierst? Und wie, denkst du, hat das Programm im Video seine Fitness-Funktion berechnet? Ich denke, Mutation passiert definitiv im Programm im Video, aber was ist mit Crossover?

Danke!

    
SSR 01.01.2016, 02:59
quelle

3 Antworten

2

Nun, dies ist ein Verstärkungsproblem, bei dem die Ausgaben des neuronalen Netzwerks die Tasten auf der Tastatur sind, die gedrückt werden sollen, um eine Punktzahl zu maximieren, die durch die Fitnessfunktion gegeben ist. Unter Verwendung genetischer Algorithmen (GAs) und ausgehend von einer anfänglichen neuronalen Netzwerkarchitektur tendiert die GA dazu, eine bessere Architektur zu finden, die iterativ eine Fitnessfunktion maximiert. Der GA generiert verschiedene Architekturen, indem er eine Population von ihnen züchtet und sie dann für die Aufgabe verwendet (das Spiel spielt), wählt die eine, die eine höhere Punktzahl ergibt (unter Verwendung der Fitness-Funktion). Beim nächsten Mal verwendet die GA die besten Architekturkandidaten (Eltern in der GA-Terminologie), um sie für die Zucht zu verwenden, und wiederholt den Prozess der Generierung neuer Populationen (Architekturen). Natürlich beinhaltet die Zucht auch Mutationen.

Dieser Prozess wird fortgesetzt, bis ein Abbruchkriterium erfüllt ist (ein spezifischer Wert für die Fitnessfunktion oder die Erzeugung einer Anzahl von Populationen). Sie werden vielleicht bemerken, dass genetische Algorithmen sehr rechenintensiv sind und daher für große Probleme aufgegeben werden. Wenn eine Architektur erzeugt wird, wird sie natürlich durch Backpropagation oder eine andere anwendbare Optimierungstechnik einschließlich GAs trainiert.

Zum Beispiel zeigt dieses Video , wie genetische Algorithmen helfen, das " beste auszuwählen "Architektur Mario zu spielen, und es tut es sehr gut! Beachten Sie jedoch, dass, wenn GA eine Architektur auswählt, um Mario auf einer Ebene sehr gut zu spielen, diese Architektur in den nächsten Ebenen nicht unbedingt gut sein wird, wie in ein anderes Video . Meiner Meinung nach liegt dies daran, dass sowohl genetische Algorithmen als auch Backpropagation dazu neigen, ein lokales Minimum zu finden. Es ist also noch ein weiter Weg ...

Quellen

  
    
Amir 01.01.2016, 17:45
quelle
0

Sie können generische Algorithmen als weitere Möglichkeit zur Optimierung des neuronalen Netzwerks verwenden. Anstatt die Rückpropagation zu verwenden, die der Standardalgorithmus ist und die am häufigsten verwendet wird, können Sie die Gewichtungen mithilfe eines genetischen Algorithmus optimieren.

Bitte schauen Sie sich dieses Papier an. Dort haben wir einen Algorithmus namens neuronale Evolution vorgeschlagen, bei dem es sich um eine Kombination neuronaler Netzwerke mit einem genetischen Algorithmus namens Differential Evolution handelt. Es wird verwendet, um einen humanoiden Roboter dazu zu bringen, menschliche Emotionen zu erkennen und entsprechend zu interagieren. Es gibt auch einen umfassenden Stand der Technik in dieser Angelegenheit. Hoffe es hilft.

    
Miguel Gonzalez-Fierro 01.01.2016 18:16
quelle
0
  

Wie kombinieren Sie genetische Algorithmen und neuronale Netzwerke, um dies zu tun?

Neuronale Netzwerke können mit einer Kombination aus genetischen und Backpropagation-Algorithmen trainiert werden oder Sie können einen Stapel von Netzwerken mit Backpropagation-Algorithmus trainieren und den einen Form-Batch auswählen, den Sie am vielversprechendsten mit einem genetischen Algorithmus finden.

  

Und wie weiß man den Fehler in diesem Fall, den Sie gewohnt sind?   zurück-propagieren und aktualisieren Sie Ihre Gewichte und trainieren Sie das Netz?

Die Fehlerberechnung kann je nach Algorithmus variieren, aber im Allgemeinen müssen Sie, wenn Sie überwachte Lernmethoden anwenden, Ihre Fehlerberechnung als eine Entfernung von dem gewünschten Lernziel festlegen.

Ich schlage vor, einen der fortgeschrittensten (derzeit) genetischen Algorithmen NEAT zu betrachten.

    
Mikhailov Valentine 01.01.2016 10:38
quelle