Genetischer Algorithmus mit stochastischer Fitnessfunktion?

Neue Frage »

eey Auf diesen Beitrag antworten »
Genetischer Algorithmus mit stochastischer Fitnessfunktion?
Hallo zusammen,

ich versuche momentan mit Hilfe eines Genetischen Algorithmus' eine von mir erstellte Fitnessfunktion zu minimieren.

Leider ist diese Fitnessfunktion vom Zufall abhängig, es existiert allerdings ein globales Minimum. Bei diesem Minimum ist die Funktion dann nicht mehr vom Zufall abhängig sondern konstant 0.

Leider erreicht mein GA dieses Minimum nicht wirklich, sondern kommt nur in dessen Nähe. Kann man eine stochastische Funktion überhaupt mit einem GA minimieren oder ist das dafür ungeeignet?

Freue mich auf Antworten smile

Schöne Grüße,
eey
Abakus Auf diesen Beitrag antworten »
RE: Genetischer Algorithmus mit stochastischer Fitnessfunktion?
Hallo,

was genau machst du: eine stoch. Funktion mit einem GA zu minimieren oder hast du einen GA mit Fitnessfunktion, die stochastisch ist?

So wie ich es kenne, ist die Fitnessfunktion ja nicht stochastisch. Die Individuen werden ja schon stochastisch erzeugt.

Abakus smile
eey Auf diesen Beitrag antworten »

Hallo,

danke schonmal für die Rückmeldung smile

Also es ist so dass ich einen ganz normalen GA habe, allerdings ist der Rückgabewert der Fitnessfunktion teilweise vom Zufall abhängig. Die Fitnessfunktion SELBST ist also stochastisch.

Das Problem ist: Das globale Minimum ist 0. Es gibt ein Argument für welches dieses erreicht wird und zwar immer. Wenn man also das gesuchte Argument in die Fitnessfunktion einsetzt kommt immer 0 raus, kein Zufall vorhanden.

Allerdings gibt es auch eine sehr große Anzahl an "guten" Argumenten welche für einen bestimmten Funktionswert zufällig auch 0 als Funktionswert liefern.

Mein GA findet relativ schnell ein solches Argument, aber dieses ist dann leider nicht das gesuchte globale Minimum - wenn ich den gleichen Funktionswert einsetze kommt dann eben nicht mehr 0 raus.

Gibt es für solche Fälle eine Vorgehensweise? Im Internet konnte ich für "stochastische Fitnessfunktion" nichts finden was meinem Problem entspricht... unglücklich

Schöne Grüße,
eey
Abakus Auf diesen Beitrag antworten »

Dann ist die Fitness eines Individuums also vom Zufall abhängig. Ich bin nicht wirklich überzeugt, dass das so Sinn macht: wie soll so etwas konvergieren?

Vielleicht einfach den stochastischen Teil der Fitnessfunktion weglassen. Wenn es dann konvergiert, ist ja alles bestens.

Abakus smile
eey Auf diesen Beitrag antworten »

Hm ok... Also wahrscheinlich habe ich die Fitnessfunktion auch falsch angesetzt, ich kenn mich damit noch nicht so gut aus.

Also eigentlich will ich ein Neuronales Netz trainieren, ein Brettspiel zu spielen. Das Training soll durch einen GA realisiert werden, der die Gewichte des NN solange anpasst, bis dieses gut spielt.

Ich mache das momentan so, dass jedes Individuum 20 Spiele gegen eine recht starke KI (basierend auf Baumsuche) spielt. Jedes gewonnene Spiel erhöht (also verschlechtert) die Fitness, jedes verlorene veringert (also verbessert) die Fitness. Unentschieden gibt 0 Punkte. Gegen die KI ist maximal ein Unentschieden drinn, das heißt das globale Minimum liegt (nach 20 Spielen) bei 0.

Problem ist jetzt: Ein Individuum ist nach ca. 200 Generationen stark genug, um 20 Spiele gegen die KI in Folge unentschieden zu spielen. Die KI hat aber einen Zufallsfaktor bei ungefährlichen Zügen eingebaut, sodass es nicht möglich ist alle Züge zu simulieren. Daher kann ein Individuum, welches in einem Spiel alle Spiele unentschieden spielt, in einem anderen Spiel 10 Spiele verlieren. Das ist leider vom Zufall abhängig, je nachdem wie die KI spielt.

Ich suche jetzt eine Möglichkeit, das Ganze so zu gestalten dass das beste Individuum immer unentschieden spielt. Ich weiß dass das mit der von mir gewählten Topologie des NN möglich ist, es muss also am Training liegen. Weißt du vielleicht wie man dafür vorgehen könnte?

Schöne Grüße,
eey
Abakus Auf diesen Beitrag antworten »

Zitat:
Original von eey
Hm ok... Also wahrscheinlich habe ich die Fitnessfunktion auch falsch angesetzt, ich kenn mich damit noch nicht so gut aus.


Wenn du damit was Sinnvolles machen kannst, ist es ja vielleicht etwas Neues. Teste es ruhig gegen eine gut funktionierende Lösung.

Zitat:
Problem ist jetzt: Ein Individuum ist nach ca. 200 Generationen stark genug, um 20 Spiele gegen die KI in Folge unentschieden zu spielen. Die KI hat aber einen Zufallsfaktor bei ungefährlichen Zügen eingebaut, sodass es nicht möglich ist alle Züge zu simulieren. Daher kann ein Individuum, welches in einem Spiel alle Spiele unentschieden spielt, in einem anderen Spiel 10 Spiele verlieren. Das ist leider vom Zufall abhängig, je nachdem wie die KI spielt.


Eigentlich sollte das NN ja immer akzeptabel spielen, dh. gegen sämtliche Strategien gut sein. Ist sie das nicht, klingt das nach Overfitting.

Hängt natürlich erstmal von deinen Netzeingaben, -ausgaben, und -architektur ab.

Zitat:
Ich suche jetzt eine Möglichkeit, das Ganze so zu gestalten dass das beste Individuum immer unentschieden spielt. Ich weiß dass das mit der von mir gewählten Topologie des NN möglich ist, es muss also am Training liegen. Weißt du vielleicht wie man dafür vorgehen könnte?


Bei NN mit mehreren Schichten etwa Backpropagation oder Gradientenabstieg als alternative Trainingsmethoden.

Jedenfalls musst du durch geeignete Maßnahmen dein Overfitting beseitigen (wenn es denn daran liegt), etwa dadurch dass zu große Netzparameter bestraft werden, dh. durch Regularisierung.

Abakus smile
 
 
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »