Zitat:
Ich würde das Eröffnungsbuch mal ins Endspiel verlängern.
Tatsächlich ist das Buch erstellt worden indem von allen menschlichen Schachpartien (seit 2019) eine große Teilmenge (zufällig) ausgewählt worden ist.
Im nächsten Schritt wurde jede Partie auf eine zufällige Länge gekürzt. Mit dieser Länge werden wir sicher noch experimentieren.
Hier ein paar Statistiken (etwas ältere Version von dem Buch, aber sollte ein Gefühl geben):
Code:
Move ECO Frequency
1: e4 B00a 197522: 48.5%
2: d4 A40a 134796: 33.1%
3: Nf3 A04 36729: 9.0%
4: c4 A10 28570: 7.0%
5: b3 A01 2621: 0.6%
6: g3 A00t 2162: 0.5%
7: f4 A02 2101: 0.5%
8: Nc3 A00l 815: 0.2%
9: b4 A00p 684: 0.1%
10: e3 A00k 413: 0.1%
11: a3 A00f 207: 0.0%
12: d3 A00j 198: 0.0%
13: g4 A00n 135: 0.0%
14: c3 A00i 122: 0.0%
15: Nh3 A00g 31: 0.0%
16: h4 A00c 26: 0.0%
17: a4 A00e 19: 0.0%
18: h3 A00d 17: 0.0%
19: f3 A00b 14: 0.0%
20: Na3 A00h 4: 0.0%
_______________________________________________________________
TOTAL: 407186:100.0%
Zitat:
Im Ernst, ich find's zwar eh gut, aber was das noch mit Zero zu tun?
Ich bin ja seit dem Anfang des Projektes mit dabei, von daher habe ich sämtliche Diskussionen um den "Zero" Begriff mitbekommen. Dem DeepMind Team ging es damals lediglich darum, zu demonstrieren, dass es möglich ist nur durch "Self-Play" - ohne Vorwissen - eine kompetente Schach-KI anzulernen. Schließlich ist das Ziel die Herangehensweise auch auf andere Domänen übertragen zu können. Daher wäre es hinderlich, wenn man Schach-spezifische Strategien/Heuristiken verwendet, oder zuvor auf Partien von menschlichen Spielern antrainiert hat.
Zu Beginn von Leela Chess Zero lag der Fokus ganz klar auf der Replikation von AlphaZero. Das ist dadurch erschwert worden, dass damals nur das Preprint Paper vorlag, welches nicht alle notwendigen Details enthielt. Damit lässt sich zum Beispiel erklären, warum erst spät Unterstützung für Tablebases dazukam.
Nun ist es nicht mehr unser Ziel zu demonstrieren, dass die Methodologie vom DeepMind Team funktioniert, das ist mittlerweile klar. Jetzt hat sich der Fokus verschoben in Richtung Spielstärke und Nützlichkeit als Analysetool. Was dabei aber für uns immer wichtig ist (sozusagen die neue Auslegung des Zero-Begriffs), ist dass die Konvergenz zum Ideal des "perfekten Schachs" nicht durch Heuristiken beeinträchtigt wird. Ein Beispiel für die erste große "Non-Zero"-Änderung ist der Moves-Left-Head. Zusätzlich zu der Gewichtung aller Züge und zur Ausgabe der Gewinnwahrscheinlichkeit, fordern wir vom Netzwerk die Vorhersage der noch verbleibenden Züge. Diese Änderung beeinträchtigt nicht die Fähigkeit des Netzwerkes in einer Position die besten Züge/die angemessene Bewertung zu lernen; behebt allerdings einen der größten Kritikpunkte den wir von menschlichen Spielern erhalten: Lc0 versuchte bisher irgendwie zu gewinnen, aber nicht so schnell wie möglich. Menschliche Spieler tun dies, auch wenn dies nicht das reine Ziel des Spiels ist.
Nun hätte man auch versuchen können Heuristiken im Code zu programmieren, die Lc0 dazu bringen schneller zu gewinnen (Vermeidung von Repetitions, Favorisierung von Bauernzügen etc). Allerdings ist ja die Prämisse des Projektes, dass vermeintlich "clevere" Heuristiken viel besser durch Daten gelernt werden können.
Lange Rede kurzer Sinn: Das Eröffnungsbuch erlaubt es uns zu forcieren, dass Lc0 in allen Eröffnungen, die wir Menschen für wichtig erachten, Trainingsspiele generiert. Dies ist "non-zero", da wir Domänenspezifisches Wissen einfließen lassen, aber beeinträchtigt nicht (verbessert diese eher) die Fähigkeit des Netzwerks auf andere Positionen zu verallgemeinern (wenn das Buch breit genug ist). Auf eine gewisse Art und Weise decken wir damit mehr vom gesamten Schachraum ab, da sich Lc0 zuvor von selbst auf einige Eröffnungen fokussiert hat und einige Eröffungen daher selten besucht hat, aber auch dieser Mechanismus (Temperatur + Noise) war schon eine Heuristik.