2016-04-19 21 views
0

Ich habe vor kurzem über künstliche neuronale Netze gelernt und ihre Nützlichkeit fasziniert mich. Also habe ich versucht, ein Spiel zu machen, das ein einfaches Spiel spielen würde (2048, viele Male zuvor, also schien es ein guter Start zu sein.) Ich habe jedoch zwei Probleme auf dem Weg gefunden.Ersatz für Neuronale Netze

Die erste ist, dass die Art, wie ich es programmiere, gibt es keine Trainingsdatensatz. Dies scheint in der Lage zu sein, herumzuarbeiten, aber ich habe keinen Weg gefunden, es zu tun.

Die zweite ist, dass neuronale Netze scheinen nur in der Lage zu sein, einen Fehler zu minimieren, und mit diesem Spiel versuchen Sie, eine Punktzahl zu maximieren. Zu jedem gegebenen Zeitpunkt gibt es kein optimales Setup für das neurale Netz, gegen das geprüft werden kann.

Ich mag die Fähigkeit, eine KI zu erstellen und sie die besten Strategien lernen zu lassen, ohne dass ich sie direkt lehre, weshalb ich mich entschieden habe, dieses Format überhaupt auszuprobieren. Meine Frage ist dann, gibt es eine Art von NN, die diese kurzen Fälle überwinden kann, oder eine Möglichkeit, eine ohne diese Probleme zu programmieren, oder muss ich nur zu einem anderen Algorithmus/Programm wechseln. Wenn ich umstellen muss, geben Sie bitte eine Empfehlung, worauf Sie umsteigen sollten.

Vielen Dank für jede Eingabe

Auch wenn diese in Stapelaustausch an einem anderen Ort gehört bitte sagen, wo

+0

1) Sie können Ihre eigenen Daten-Set einfach erstellen, indem Sie das Spiel zu spielen und die Spielzustände zu speichern. Ich empfehle Ihnen, einen Minimax-/Expectimax-Agenten zu implementieren und den Fortschritt ihres Spiels aufzuzeichnen.2) Ein neuronales Netzwerk ist ein Regressor/Klassifikator und nicht etwas, das streng minimiert werden muss. Bonus) Ich habe das vor mir selbst implementiert. Expectimax hat jedoch mit Abstand die beste Performance. – jorgenkg

+0

Danke, ich habe noch nie von expectimax gehört, ich muss es mir anschauen. – Drickken

Antwort

1

Zuerst eine kurze Antwort auf Ihre direkten Fragen. Aber lesen Sie danach für meine Empfehlung :)

Die erste ist, dass die Art, wie ich es programmiere, gibt es keine Trainingsdatensatz. Dies scheint in der Lage zu sein, herumzuarbeiten, aber ich habe keinen Weg gefunden, es zu tun.

Ich glaube nicht, dass ein Trainingsdatensatz zu Beginn nicht Ihre Fähigkeit behindert, ein Trainingssatz zu haben. Ich denke du könntest dein eigenes Training mit einem anderen Programm erstellen, das das Spiel ohne dein NN spielt. Dies ist jedoch möglicherweise nicht das, wonach Sie suchen.

Die zweite ist, dass neuronale Netze nur scheinen, um einen Fehler zu minimieren, und mit diesem Spiel versuchen Sie, eine Punktzahl zu maximieren. Zu jedem gegebenen Zeitpunkt gibt es kein optimales Setup für das neurale Netz, gegen das geprüft werden kann.

Dies ist auch kein Problem, weil Sie define your cost function im Grunde eine höhere Punktzahl haben können weniger Fehler haben. Vielleicht können Sie die theoretische Höchstpunktzahl als "0 Fehler" und die Punktzahl von 0 als einen Fehler von etwa 100 festlegen und dann eine Kostenfunktion erstellen, die zu diesem Modell passt.

Was gibt es noch?

"Reinforcement learning" scheint meiner Meinung nach am engsten mit 2048 zu passen, aber wie alle Dinge, die ich kenne, wirst du es nicht wissen, bis du versuchst und Beweise dafür hast! Schau es dir an und schau, ob es das ist, wonach du suchst. Ein kurzes Zitat von dem Link ist unten.

Verstärkung Lernen von Standard überwachtes Lernen unterscheidet sich darin, dass die korrekte Eingabe/Ausgabe-Paare werden nie vorgestellt ...

Verwandte Themen