In einigen (historischen) Veröffentlichungen wurde Schach als Drosophila der künstlichen Intelligenz bezeichnet. Während ich denke, dass in der gegenwärtigen Forschung die bloße Anwendung eines Suchalgorithmus bestenfalls fortgeschrittene Informatik ist , glaube ich, dass es immer noch Bereiche gibt, in denen AI-Techniken angewendet (und praktiziert) werden können.
Ein einfaches Beispiel wäre das Öffnen eines Lernbuchs, in dem dem Programm beigebracht werden kann , ob bestimmte Züge in der Eröffnung verwendet werden sollen oder nicht, da das Programm für bestimmte Positionstypen ungeeignet ist. Wir können eine Form des Re-Inforcement-Lernens verwenden und dies automatisieren: Ich nehme an, ich könnte das Programm gegen sich selbst spielen und die Wahrscheinlichkeit von Gewinnlinien erhöhen und die Wahrscheinlichkeit von Verlustlinien verringern.
Das komplexeres Beispiel ist eine Lern verwenden Auswertungsfunktion (beispielsweise könnte man die Werte von zwicken stück quadratischen Tabellen ). Ich denke jedoch:
- angesichts des Rauschens aufgrund der enormen Anzahl realistischer Positionen (im Gegensatz zur Anzahl realistischer Eröffnungslinien)
- und mit den Kosten (Dauer) eines Computerschachspiels und der Notwendigkeit, Lasten zu spielen.
Wie kann man das effektiv machen? (Oder sollte ich mir andere Techniken ansehen, zum Beispiel neuronale Netze?)
Antworten:
Der gesamte staatliche Raum für Schach ist enorm - er kann ungefähr auf 10 43 geschätzt werden (Shannon-Nummer (Shannon, 1950) , ( Wikipedia )).
Die Idee, die Sie hier präsentieren - Agenten, die das Reinforcement-Lernen miteinander spielen, um das Spiel zu lernen - wurde erfolgreich auf Backgammon - TD-Gammon (Tesauro, 1995) angewendet ( Kapitel in Reinforcement Learning von Sutton & Barto ). Es verwendete auch neuronale Netze, um die Wertfunktion des Spiels zu schätzen. Dieses Problem ist jedoch viel einfacher, da die Anzahl der Zustände im Backgammon erheblich geringer ist als im Schach, nämlich: 18.528.584.051.601.162.496 ( Backgammon Forum Archive Thread ).
Wenn Sie jedoch das Spiel nach wenigen Anfangszügen beenden und nur "gute Eröffnungen" lernen möchten, könnten Sie mit einem analogen Ansatz Erfolg haben. Das Hauptproblem wäre, das Spiel nach dem Eröffnungsspiel zu bewerten, was schwierig erscheint. Nur ein Ähnlichkeitsmaß zu den festgelegten Positionen nach bekannten Eröffnungen reicht nicht aus, da die Position weit von ihnen entfernt sein kann, wenn der Gegner einen dummen Zug machen würde (also nicht aufgrund eines Fehlers des Lernagenten, also der Position, auch wenn "falsch" "sollte als gutes Ergebnis gewertet werden).
Verweise:
SHANNON, Claude E. "Programmieren eines Computers zum Schachspielen." In Philosophical Magazine, 7. Reihe, 41, Nr. 314 (März 1950): 256 & ndash; 75.
Gerald Tesauro. 1995. Zeitunterschiedslernen und TD-Gammon. Kommun. ACM 38, 3 (März 1995), 58-68
quelle
Ich bin mir ziemlich sicher, dass jede mögliche (oder seltsame) Methode von KI oder ML in Lehrbüchern ausprobiert wurde und im Vergleich zu einfacher Brute Force so gut wie gescheitert ist.
Meine persönliche Sichtweise ist, dass Schach per se für die moderne KI nicht mehr von Interesse ist ... Ganz einfach, weil es gelöst wird : indem man nur einen modernen Computer und rohe Gewalt einsetzt. Ich glaube nicht, dass es notwendig ist, ein "intelligentes" System zu schaffen, um es effizienter zu lösen (funktioniert in meinem Handy einwandfrei), und ich glaube, dass es nicht einmal die Notwendigkeit für etwas Unbekanntes und mehr gibt "intelligenter" Ansatz zu existieren.
quelle
Ich denke, es ist erwähnenswert, dass Sie ein AI-Problem definieren müssen, um zu bestimmen, wie es angegangen werden soll. Ob es vollständig beobachtbar oder teilweise beobachtbar ist und ob es deterministisch oder stochastisch / zufällig ist.
Schach ist vollständig beobachtbar (im Gegensatz zu Backgammon, Monopoly oder Poker zum Beispiel). Es ist auch deterministisch (wie Checkers und Go zum Beispiel). Schließlich gibt es Gegner, und aus diesem Grund ist es nützlich, bei der Bestimmung des nächstbesten Zuges den Adversarial Search- Typ von zu verwenden Algorithmen wie MiniMax. Das Klassifizieren eines Problems kann uns dabei helfen, festzustellen, welche Art von Suchalgorithmus wir anwenden möchten. Und im Falle von Schach wäre Adversarial Search geeignet.
Insbesondere Minimax hat a
Im Fall von Schach wäre b also 35 und m wäre 100. Es gibt Möglichkeiten, dies zu umgehen, oder Strategien, um es effizienter zu machen, wie z. B. Alpha-Beta-Cutoff.
quelle