Laden...

KI: optimale Lernmethode für TicTacToe, Schach, ...

Erstellt von stes vor 12 Jahren Letzter Beitrag vor 12 Jahren 5.979 Views
stes Themenstarter:in
64 Beiträge seit 2010
vor 12 Jahren
KI: optimale Lernmethode für TicTacToe, Schach, ...

Hallo zusammen,

ich habe mir für mein nächstes Projekt einen einigermaßen guten Schachcomputer als Ziel gesetzt, der auf künstlichen neuronalen Netzwerken basieren soll.

Um es nicht zu übertreiben (was KI anbelangt bin ich Anfänger) möchte ich zunächst eine Stufe kleiner, genauer gesagt mit Tic Tac Toe beginnen.

Ich bin mittlerweile so weit, dass ich eine TicTacToe-KI (wenn man es den "Intellienz" nennen kann) geschrieben habe, die mit einem Brute-Force-ähnlichen Algorithmus arbeitet und durchaus brauchbar spielt (man gewinnt jedenfalls nicht mehr ^^).

Nun möchte ich das ganze mit einem KNN realisieren. Ich habe bereits diverse Foren, Ebooks etc. durchstöbert und mir ein grobes Grundlagenwissen angeeignet. Nach jetzigem Stand halte ich ein feedforward-Netz mit einer Eingabe-, einer verdeckten, und einer Ausgabeschicht für angebracht. Dabei soll die Eingabeschicht sowohl direkt mit der Ausgabeschicht vernetzt werden (hemmende Wirkung, da ein Feld nicht zweimal belegt werden kann) als auch mit dem Hidden Layer.

Soweit, so gut (oder nicht?). Nun zur Lernmethode: Meiner Meinung nach wäre das Bestärkende Lernen (reinforcement learning) am ehesten geeignet. Wie auch in bestärkendes Lernen nachzulesen ist, lernt das Netz quasi selbstständig nur aufgrund der Sanktionen, die es von der "Außenwelt" erhält (also Sieg, Remis oder Niederlage; später beim Schach dann zusätzlich Figurenverlust etc.).

Wie ich in anderen Beiträgen aus diesem Forum bereits erfahren habe (Stichwort: "Künstliche Intelligenz"), treiben sich hier einige Leute rum die sich umfassend mit dem Thema beschäftigt haben und beschäftigen.

Was haltet ihr von meinem Konzept bis hier hin (Bitte auch auf sachliche Fehler hinweisen ^^) ?

Gruß
stes

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo stes,

für die Art von Aufgaben halte ich Feedforward-Netzwerke od. Multi-Layer-Perceptrone für ungeeignet. Diese Netze stellen einen Funktionsapproximator der Art Rn -> Rm dar und dazu passt Tic-Tac-Toe od. Schach erstmals garnicht. Durch Aufwand kann die Aufgabe so umgebogen werden dass die diesem Schema folgt, aber dann bleibt die Frage des Trainings bzw. beim Generieren der Trainings-Daten. Wenn es für Tic-Tac-Toe 255168 verschiedene Spielverläufe und 5478 verschiedene Spielsituationen gibt (Quelle: Tic Tac Toe) dann wollen die Trainignsdaten wohl gut gewählt/generiert werden. Gleichzeitig drängt sich dann die Frage auf warum nicht gleich einen Algorithmus verwenden der sich dies direkter zu nutzen macht, wie z.B. der Minimax-Algorithmus und alle verwandten.

Ich hab zwar mal Tic-Tac-Toe programmiert, mit Minimax, aber für Schach hab ich es nie probiert. Da spiele ich lieber selbst 😉
Jedenfalls wurde das Thema in der Literatur ausgiebig behandelt und auch spezielle Algorithmen für die Bewertungsfunktionen, etc. entwickelt und an denen würde ich mich orientieren. Ob darin überhaupt MLPs verwendet werden bezweifle ich, viel eher werden Zugdatenbanken mit ausgefeilten (Baum-) Suchfunktionene verwendet.

BTW: mit Googlesuche nach KI: optimale Lernmethode für TicTacToe findet sich auch sehr viel 😃

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

49.485 Beiträge seit 2005
vor 12 Jahren

Hallo stes,

auch meine Einschätzung ist - noch etwas allgemeiner als bei gfoidl formuliert -, dass Neuronale Netze für TicTacToe und erst recht für Schach vollkommen ungeeignet sind. Die Frage nach der optimalen Lernmethode stellt sich also gar nicht. So wie ich das sehe, ist das Min-Max-Prinzip genau der richtige Ansatz. Selbst für die Stellungsbewertung halte ich Neuronale Netze für vollkommen ungeeignet.

herbivore

4.942 Beiträge seit 2008
vor 12 Jahren

Bzw. als Verbesserung des Min-Max Algorithmus der Alpha-Beta-Pruning (weiter unten stehen auch noch einige andere Techniken, die bei einer Schach-KI eingesetzt werden)

stes Themenstarter:in
64 Beiträge seit 2010
vor 12 Jahren

Hallo,

danke für eure Antworten, wenngleich ich etwas überrascht bin, dass mein Konzept mit KNNs spontan über den Haufen geschmissen wurde 😄

Ich hatte eigentlich vor, das Problem mit den nahezu endlos vielen Möglichkeiten beim Schach (und im kleineren Rahmen bei TicTacToe) mit einem KNN zu umgehen (wie gut das Netz letztendlich spielt bleibt dann abzuwarten, allerdings will ich ja auch keinen Weltmeister damit schlagen ^^).

Aber danke für die Tipps, die ja nun zu Beginn des Projekts noch früh genug kommen, ich glaube ich muss da an einigen Stellen nochmal kräftig umdenken 😉

Gruß
stes