• Announcements

    • Lars

      Allgemeine Forenregeln   03/13/2017

      Forenregeln Nimm dir bitte einen Moment um die nachfolgenden Regeln durchzulesen. Wenn du diese Regeln akzeptierst und die Registration fortsetzen willst, klick einfach auf den "Mit der Registrierung fortfahren"-Button. Um diese Registration abzubrechen, klick bitte einfach auf den "Zurück" Button deines Browsers. Wir garantieren nicht für die Richtigkeit, Vollständigkeit und Brauchbarkeit der Nachrichten und sind auch nicht dafür verantwortlich. Die Beiträge drücken die Meinung des Autors des Beitrags aus, nicht zwangsläufig das, wofür die Forensoftware steht. Jeder Nutzer, der denkt, dass ein veröffentlichter Beitrag unzulässig bzw. störend ist, ist aufgefordert uns unverzüglich per E-Mail zu kontaktieren. Wir haben das Recht störende Beiträge zu löschen und bemühen uns, das in einem realistischem Zeitraum zu erledigen (sofern wir beschlossen haben, dass die Löschung notwendig ist). Du akzeptierst, durchgehend während der Nutzung dieses Services, dass du dieses Forum nicht dazu missbrauchen wirst, Inhalte zu veröffentlichen, welche bewusst falsch und/oder verleumderisch, ungenau, beleidigend, vulgär, hasserfüllt, belästigend, obszön, sexuell belästigend, bedrohlich, die Privatsphäre einer Person verletzend oder in irgend einer Art und Weise das Gesetz verletzen. Des Weiteren akzeptierst du, dass du keine urheberrechtlich geschützte Inhalte ohne Erlaubnis des Besitzers in diesem Forum veröffentlichst. Mit dem Klick auf den "Mit der Registrierung fortfahren"-Button, akzeptierst du zudem unsere Datenschutzerklärung und stimmst der Speicherung deiner IP-Adresse und personenbezogenen Daten zu, die dafür benötigt werden, um dich im Falle einer rechtswidrigen Tat zurückverfolgen zu können bzw. permanent oder temporär aus dem Forum ausschließen zu können. Es besteht keine Pflicht zur Abgabe der Einwilligung, dies erfolgt alles auf freiwilliger Basis.   Zusatzinformationen Der Forenbetreiber hat das Recht, Nutzer ohne Angabe von Gründen permanent aus dem Forum auszuschließen. Des Weiteren hat er das Recht, Beiträge, Dateianhänge, Umfrage, Blogeinträge, Galleriebilder oder Signaturen ohne Angabe von Gründen zu entfernen. Mit der Registrierung verzichtest du auf alle Rechte an den von dir erstellten Inhalten, bzw. treten diese an das Unity-Insider.de und Unity-Community.de ab. Dies bedeutet im Klartext, dass das Unity-Insider.de und Unity-Community.de frei über deine Texte verfügen kann, sofern diese nicht wiederum die Rechte anderer verletzen. Es besteht weiterhin kein Anspruch von registrierten Nutzern bzw. ehemaligen registrierten Nutzern darauf, dass erstellte Inhalte und/oder die Mitgliedschaft (User) wieder gelöscht werden (Erhaltung der Konsistenz dieses Forums).   Einwilligungserklärung Wenn du mit der Speicherung deiner personenbezogenen Daten sowie den vorstehenden Regeln und Bestimmungen einverstanden bist, kannst du mit einem Klick auf den Mit der Registrierung fortfahren-Button unten fortfahren. Ansonsten drücke bitte Zurück. Stand: 07.03.2011
Sign in to follow this  
Followers 0
Kokujou

Optimiertes Erstellen eines großen Suchbaums

32 posts in this topic

aber bei einem Spiel ist das ja etwas komplexer. Tatsächlich benutze ich übrigens OpenCV aktuell für geometrische Szenenrekonstruktion. Das sit ein modul dass ich im Master studiere. Die pure hölle >.> Aber egal.

Bei einem Spiel weißt du ja nicht was richtig ist.Wie lernst du den Algorithmus dann an? Du hast ja praktisch nur 1 sicheres Ergebnis und das ist wenn du gewonnen bzw verloren hast. Oder falls es ein Patt gibt. Aber wir müssen ja die Zwischenzüge bewerten. Das hab ich nie so ganz verstanden.

Share this post


Link to post
Share on other sites

Dann nehmen wir als Beispiel ein Schachspiel. Da gibts nur gewonnen und verloren. wie kann man also sagen wenn man z.B. den Bauer in der 5. Runde 2 Felder vor setzt das das gut oder schlecht ist? das würde mich mal interessieren.

Share this post


Link to post
Share on other sites
vor 16 Minuten schrieb Kokujou:

Dann nehmen wir als Beispiel ein Schachspiel. Da gibts nur gewonnen und verloren. wie kann man also sagen wenn man z.B. den Bauer in der 5. Runde 2 Felder vor setzt das das gut oder schlecht ist? das würde mich mal interessieren.

Du kannst die aktuelle Situation auf dem Spielfeld bewerten. Ich denke man kann für alle "Spielstände" eine allgemeine Bewertung ermitteln, die aussagt, wie gut deine eigene Stellung ist. Ob diese Bewertung "aussagekräftig" ist, daß steht dann auf einem anderem Blatt. Ich vermute man ermittelt dabei eine Bewertung für jede einzele Figur und erstellt dann eine Gesamtbewertung über alle Figuren. Wie man eine solche Stellungsbewertung für Schach erstellt, da bin ich übergfragt, aber da gibt es bestimmt Formeln... Ich denke eine solche Bewertung ist am Anfang des Spieles sehr ungenau und wird immer besser, je weiter das Spiel fortschreitet.

Share this post


Link to post
Share on other sites

Aber es muss doch eine grundsätzliche Vorgehenweise zum Trainieren eines neuronalen Netzes geben oder?
Sagen wir mal du gibst einen Zustand ein also ein Schachfeld mit den korrespondierenden Figuren und den Positionen etc...

Ich weiß noch aus dem Unterricht dass es wohl ein rekursiver Algorithmus ist. Man spielt ein Probespiel und wenn die KI gewinnt gibts Pluspunkte wenn nicht Minuspunkte und +-0 bei Patt. Und dann muss sich der Algorithmus von dieser Basis aus irgendwie selbst abwickeln. Aber wie trainiert man ein neuronales Netz? ich meine bei einer Gewichtsanpassung muss man ja nur gewisse Werte anpassen, aber ein neuronales Netz ist doch deutlich komplizierter oder? Ich würde gerne wissen wie sowas funktioniert. das könnte man sicherlich auch gut in einer Master Arbeit verwenden.

Kennt ihr vielleicht irgendein primitives Spiel das mittels neuronalem Netz gelernt wird? Irgendwas einfaches wie Tic Tac Toe oder so, an dem man die generelle Vorgehensweise sieht.

Share this post


Link to post
Share on other sites

Ich neuronale Netz im Studium (ist schon eine Weile her). Du brauchst halt immer ein Eingabemuster (wie oben z.b. diese binäre Speicherung einer Schachstellung) und ein Ausgabemuster. Das Problem bei einem Schachspiel ist das Ausgabemuster. Ein neuronales System ist gut bei Erkennen von Mustern, dabei speichert es eine Abbildung aller Eingabemuster zu den Ausgabemustern als Gewichte seiner Neuronen. Leider ist eine Bewertung der Stellung eines Schachspieles ja "eigentlich" kein Muster. Was man aber machen könnte wäre folgendes: Du nimmst einen Profischachspieler und sagst diesem er soll jede einzelne Stellung eines Spieles bewerten. Diese Bewertung übergibst du nun dem neuronalem Netz als Lernsatz (Ausgabemuster). Wenn das neuronale Netz sagen wir mal 1000 Spiele auf diese Weise trainiert hat, kann es einigermaßen vernünftige Bewertungen einer Stellung abgeben. Mit dieser Methode hättest du dann eine Mischung aus neuronalem Netz für die Bewertung einer Stellung und einem Algorithmus der das Spiel als Baum auflöst (was wir oben diskutiert hatten).

Zum Thema primitives Spiel, du brauchst halt ein Spiel dessen Stellung du selbst gut bewerten kannst. Beispielsweise "4 gewinnt" oder so.

Share this post


Link to post
Share on other sites

Naja wir müssen uns überlegen wie wir das Spiel dazu befähigen zu lernen. anders gesagt wir lernen ja indem wir erstmal Spielen. Wenn wir verloren haben heißt das das wir schlecht gespielt haben. Dann hat man die Möglichkeit sich zu überlegen an welcher Stelle wir einen fehler gemacht haben im Spiel. Das wäre aber mit strategischem Wissen verbunden.

Was wir suchen wäre eher sowas wie: wenn man gewinnt bewerte alle von dir getätigten Spielzüge mit +100 und alle vom ggner auf -100, baue daraus ein neuronales netz und lasse dann mit diesem neuronalen netz gegen einen gegner spielen, je besser desto... besser. und dann passt sich das netz auf diese weise selbst an. Aber das ist nur theoretisch

Das größte Problem beim trainieren solcher Bäume ist die Anzahl der Durchläufe. Schach hat fast unbegrenzt viele Züge allein zu bewerten wann ein Spiel schachmatt ist ist überaus komplex. und die Anzahl der Schachzüge geht gegen unendlich. Also wäre das kein gutes Beispiel. Aber vielleicht gibt es ja solche Algoirthmen für einfachere Spiele. 4Mich wrüde eben interessieren ob es Ideen zur Umsetzung von neuronalen Netzen bei Spielen gibt deren Zustände nicht ohne weiteres bewertet werden können.

Bei 4 gewinnt würdest du wohl einen zustand danach bewerten wie viele Teile in einer Reihe sind und würdest damit warscheinlich verlieren. Denn du musst ja gleichzeitig die Gegnersteine minimieren. und dann irgendeine strategie aufbauen sodass der Gegner deine Steine nicht verbauen kann. netc...

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0