Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

RmbRT

Treue Seele

  • »RmbRT« ist der Autor dieses Themas

Beiträge: 169

Wohnort: Darmstadt

Beruf: Student

  • Private Nachricht senden

21

24.08.2014, 15:39

ungefähr so:

C-/C++-Quelltext

1
2
float factor = Random(0.f,1.f);
newWeight=weight1*factor+weight2*(1.f-factor);


MfG,
RmbRT
"Dumm ist, wer dummes tut."

22

07.09.2014, 10:09

Hey,

ich habe mal sowas in der Art gemacht un in letzter Zeit reizt mich das wieder zunehmend.


Die Räuber lauern, die Beute läuft rum und Frisst den Boden leer.



Verschiedene Fressmuster eines setzt sich durch.


Natürliche Selektion funktioniert prima.
Konkurrenz und Artbildung, Räuber- Beute- Verhalten, das das kann man alles beobachten in der alten Simulation die ich mal gemacht hab.




Ein paar Anmerkungen:
Bei neuralen Netzwerken ist sehr viel Rechenaufwand erforderlich.
Ein einfaches Strickmuster für Neurone ist angesagt.
Ich brauchte mindestens Multithreading damit es einigermaßen läuft.

Wenn ich mich nochmal ransetzen würde , dann mit Datenorientierung und SIMD bzw. GPU-Computing.
Ich habe gerade gestern mit Spiele Programmierer darüber diskutiert.
Ein KNN pro CUDA-Core oder so wäre ein interessanter Ansatz. Der lokale Memory ist jedoch begrenzt, wenn man alles nicht sehr schlank designed.




Was ich bei deinem Vorhaben sehr unklar finde ist die "Lebenswelt" der Agenten.
Was sollen sie tun?

Ich fände es cool wenn sie ihre Umwelt gestalten und sich bekriegen können.
Wenn sie eine Zivilisation aufbauen ist das bestimmt schön anzusehen.
Also bisschen mehr als das bloße Räuber, Beute...
Wenn so ein Konzept steht bin ich sofort dabei :)


Wie funktioniert das Lernen bei deinem Ansatz?
Ein Durchschnitts-KNN durch Kreuzungen zu erzeugen hat damit nicht viel zu tun.
Das kann leider mit Sicherheit prinzipbedingt nicht zu einer richtigen Intelligenzentwicklung führen.

MFG
Bilder zu meinem Projekt: ParSim

Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von »Horus« (07.09.2014, 10:26)


RmbRT

Treue Seele

  • »RmbRT« ist der Autor dieses Themas

Beiträge: 169

Wohnort: Darmstadt

Beruf: Student

  • Private Nachricht senden

23

07.09.2014, 14:54

@Horus:
Ich habe eigentlich noch keine Methode zum wirklichen lernen implementiert, da mir bisher keine gefallen hat. Deshalb habe ich die weniger schicke Kreuzungsmethode genommen.

Ich weis halt nicht genau, wie ich den KNNs die Umwelt am besten vermittle.
Mein ultimatives Ziel wäre es, mit 3D-Rendering eine Projektion der Umwelt an ein KNN zu geben, damit sie sich komplexer entscheiden können (ist natürlich noch weit entfernt ;) )
Am coolsten wäre eine Voxel-Umgebung, die von den KNNs beeinflusst werden kann.

MfG,
RmbRT
"Dumm ist, wer dummes tut."

24

07.09.2014, 15:20

Hi,

Lernen kann bedeuten dass sich der Agent die Umgebung merkt und den weg zurück findet.
Das funktioniert indem man Neuronen die Möglichkeit lässt eine Information lange zu behalten.

Lernen kann auch bedeuten dass sich durch Evolution das KNN struktural verbessert.
Dieses Lernen geht nur mit "Tod" und "Geburt".
Erst dadurch kann sich ein Gedächtnis bilden.
(In einem meiner Videos sieht man wie eine Räuber ganz verrück wird und einige Zeit bleibt nachdem er Beute gesehen hat. Er hat die Tatsache, dass beute in der Nähe ist im Gedächtnis behalten.)

Die Implementierung des Lernens erfolgt immer nach dem selben Prinzip.
Das KNN wird mit leichten zufälligen Mutationen vielfach kopiert und an einer Aufgabe getestet.
Die Erfolgreichsten KNNs werden als Vorlagen für den nächsten Test-Schritt genommen Usw.

Die genaue Implementierung kann variieren.

Zitat

Ich weis halt nicht genau, wie ich den KNNs die Umwelt am besten vermittle.
Mein ultimatives Ziel wäre es, mit 3D-Rendering eine Projektion der Umwelt an ein KNN zu geben, damit sie sich komplexer entscheiden können (ist natürlich noch weit entfernt ;) )



Man kann den Input entweder direkt an die Neurone geben oder irgendwie Vorverarbeitet.
Mit 3D Rendering als Input kannste vergessen, man hat niemals genug Neurone um das zu verarbeiten.


Zitat

Am coolsten wäre eine Voxel-Umgebung, die von den KNNs beeinflusst werden kann.

Meinst du nicht 2D reicht? Eine Timelmap oder so. Kann man ja auch hübsch 3D Darstellen.
Könnte für den Input der KNNs günstiger sein. Nicht dass man so viele Inputneurone haben muss.

Hast du eigentlich schon KNNs jetzt die laufen?
Bilder zu meinem Projekt: ParSim

RmbRT

Treue Seele

  • »RmbRT« ist der Autor dieses Themas

Beiträge: 169

Wohnort: Darmstadt

Beruf: Student

  • Private Nachricht senden

25

07.09.2014, 16:06

@Horus:
Mit laufen meinst du wahrscheinlich "wie erwartet" laufen. In diesem Fall nicht. Meine KNNs verarbeiten den Input und geben Output, machen aber alle Blödsinn. Aktuell liegt das Projekt brach, ich bin momentan daran beschäftigt, ein OS und einen eigenen BASIC-Dialekt zu schreiben :D

MfG,
RmbRT
"Dumm ist, wer dummes tut."

26

07.09.2014, 16:11

Achso,

ich dachte schon du hast vor das mit den KNNs zu implementieren.
Dann hätte man zusammenarbeiten können, zumal ich irgendwie lust auf ein Remake meiner KNN-Räuber-Beute Simulation habe.
Bilder zu meinem Projekt: ParSim

RmbRT

Treue Seele

  • »RmbRT« ist der Autor dieses Themas

Beiträge: 169

Wohnort: Darmstadt

Beruf: Student

  • Private Nachricht senden

27

07.09.2014, 16:57

Nun, ich bin der Idee nicht abgeneigt, nur habe ich die Motivation verloren, da ich nicht mehr weiter kam, bzw. keine neuen Herangehensweisen mehr fand.

MfG,
RmbRT
"Dumm ist, wer dummes tut."

Werbeanzeige