Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Lc0 0.26.1 veröffentlicht
- - By Lothar Jung Date 2020-07-17 07:17
Hier:

https://github.com/LeelaChessZero/lc0/releases

Die Änderungen beziehen sich auf Eröffnungsbücher.

Lothar
Parent - - By Karlson Pfannschmidt Date 2020-07-17 16:42
Zur Erläuterung:
Der neue Testrun T72 untersucht den Einfluss eines breiten Eröffnungsbuches während des Trainings auf die Spielstärke und Konvergenzgeschwindigkeit. Mit diesem Patch kann das Eröffnungsbuch jetzt auch komprimiert an die Teilnehmer verteilt werden. Außerdem wird regelmäßig die Checksumme überprüft, um die Integrität des Buches zu gewährleisten und ggfs eine neue Version des Buches zu laden.
Parent - - By Peter Martan Date 2020-07-17 17:30
Ich würde das Eröffnungsbuch mal ins Endspiel verlängern.

Im Ernst, ich find's zwar eh gut, aber was das noch mit Zero zu tun?
Parent - - By Lothar Jung Date 2020-07-17 18:02
Soviel wie TBs.
Parent - By Peter Martan Date 2020-07-17 18:44
Bei denen würde ich halt, wenn ich sie schon nutze, auch gleich noch eigens zu trainieren anfangen, am anderen Ende der Partien also, das wollte ich mit den ins Endspiel verlängerten Büchern (- Smiley-) sagen.
Gezieltes Training find' ich sowieso besser als "Zero".
Zero erinnert mich immer irgendwie an "Wissen ist Macht, ich weiß nichts, macht auch nichts."
Parent - - By Karlson Pfannschmidt Date 2020-07-17 18:23 Edited 2020-07-17 18:30
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.
Parent - - By Peter Martan Date 2020-07-17 18:34 Edited 2020-07-17 18:47
Danke für die ausführliche Erläuterung!
Das mit der Verlängerung der Bücher ins Endspiel sollte nur darauf hinweisen, dass ich Endspieltraining abgesehen vom Eröffnungstraining auch für gut hielte. Wird es (das Endspiel) sonst nicht weiterhin automatisch immer erst am Ende von vorher schon durch Zufall und Irrtum entschiedenen Partien drankommen bei den Lerneffekten?
Einem menschlichen Spieler bringt man's ja auch zuerst bei, und das hat schon seine Gründe.
Kann man Netze wie die von Dietrich Kappe (Ender- Nets) eigentlich nicht "einfach" integrieren in größere andere?
Sorry für meine Ahnungslosigkeit, die bereits, so lange wie das Projekt jetzt läuft, schon an Ignoranz grenzt, aber man durfte sich ja bisher ohnehin nicht einmischen, weil sonst nix-Zero.
Parent - By Karlson Pfannschmidt Date 2020-07-17 18:58 Upvotes 1
Ja, durch Temperatur + Noise werden viele Endspiele schon abgedeckt. Allerdings ist der Mechanismus auch problematisch, da notwendigerweise auch suboptimale Züge ausprobiert werden müssen. Dies führt dann aber zum bekannten "Optimismus" in eigentlich unentschiedenen Positionen.
Im Allgemeinen ist es ein schwieriges Problem den Mix an Positionen zu bestimmen von denen das Netzwerk lernt. Wenn man mehr Endspielpositionen hinzufügt, kann es sein, dass es andere Positionen nicht häufig genug sieht (gibt immer nur ein begrenztes Budget).

Verschiedene Netze lassen sich nicht direkt integrieren.

Einmischen ist erlaubt und erwünscht (Die Diskussion findet aber ausschließlich in unserem Discord statt). Mit der Zeit gewinnt man auch ein Gefühl dafür, welche Dinge sich im Code implementieren lassen, welche man das Netzwerk selber lernen lassen kann und was vielleicht eher eine schlechte Idee ist. Da es sich natürlich immer noch um ein Freiwilligen-Projekt handelt, muss man für seine Ideen entweder genügend Personen begeistern können, oder diese selbst implementieren, sauber testen etc.
Up Topic Hauptforen / CSS-Forum / Lc0 0.26.1 veröffentlicht

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill