Peter Martan schrieb:
Merkt man eigentlich schon was an der Remishäufigkeit?
Ich würde ja logisch finden, dass ein Maschine, die sich das Schach nur selbst im Autoplay beibringt, noch mehr als im angepassten Entwickeln gegen verschiedene Gegner das Remis als ohnehin wahrscheinlichstes Ergebnis umso mehr auch im neuronalen Netz mit steigendem Niveau als "Muster" "erkennen" und (er)finden müsste, erst recht, wenn Taktik nicht ihre größte Stärke ist.
Es scheint eher das Gegenteil der Fall zu sein. Faszinierenderweise hat das neuronale Netz von Leela eine starke Abneigung gegen Remisen entwickelt. Die Bewertungen, die Leela als UCI-Engine auswirft, sind zwar nur Umrechnungen von Gewinnwahrscheinlichkeiten, die für die Züge errechnet werden, aber generell sind diese Bewertungen sehr optimistisch. Und zwar oft geradezu selbstmörderisch optimistisch. Es passiert durchaus nicht selten, daß Leela remisliche Stellungen gewaltsam aufbricht (und dann verliert), um Remis durch 3fach oder 50Zug zu vemeiden. Bei einer "normalen" Engine passiert so etwas nur, wenn man den Remisfaktor extrem hoch einstellt. Und ich rede hier nicht von +0.25 oder ähnlichem, sondern +1.00 oder so etwas in der Richtung.
Das liegt wahrscheinlich am Lernprozess selbst: In diesem ist Remis nämlich keinesfalls, wie von dir eigentlich richtig postuliert, das häufigste Ergebnis. Im Gegenteil. Bei den selfplay-Lern-Partien wird ja nur mit 800 rollouts pro Zug gespielt. Das ist extrem wenig. LC0 Cuda benötigt selbst auf meiner langsamen mobilen Grafikkarte GTX 950m nur 0.3 Sekunden für 800 Rollouts und auf einer GTX 1080 wohl nur ca. 0.04 Sekunden... Wir reden hier also von extrem flachen Berechnungen und demzufolge von extrem schwachem schachlichen Niveau. Und je niedriger das schachliche Niveau ist, desto mehr Fehler werden gemacht und desto seltener enden Partien remis. Was ja im Umkehrschluß auch die immer weiter steigenden Remsiqouten im Spitzen-Engineschach erklärt. Insofern ist Remis im Lernprozess von Leela der seltenste Partieausgang, nicht der häufigste. Selbst heute noch, nach über 20 Mio Lernpartien. Erst Recht zu Beginn des Lernprozesses.
Das erklärt übrigens meiner Meinung nach auch, warum Leela so lange gebraucht hat, bis sie halbwegs Endspiele konnte: Bei diesem schlechten schachlichen Niveau der Lernpartien kommt es einfach sehr selten überhaupt zu ausgeglichenen Endspielen, aus denen Leela dann etwas lernen kann. Die allermeisten Partien werden schon viel früher entschieden und es kommt, wenn überhaupt, nur zu klar gewonnenen/verlorerenen Endspielen. Insofern ist der Partienpool für halbwegs normale, praxisrelevante Endspiele einfach viel, viel kleiner, als der Gesamt-Partienpool. Es ist logisch, daß Leela in Endspielen viel schwächer agiert, als im Mittelspiel. Einfach weil es viel weniger Lernmaterial gibt.
Man kann nur hoffen, daß, wenn auch für das Lernen lc0 (mit CUDA-Unterstützung) benutzt werden wird (soll ja bald soweit sein), die Zahl der rollouts pro gespieltem Zug deutlich angehoben wird. Dann würden sich sicher die Endspielfähigkeiten von Leela verbessern und die Remisabneigung sollte dann auch spürbar abnehmen. Beides wäre der Elo-Spielstärke sicher sehr zuträglich. Es könnte allerdings sein, daß auch der spektakuläre Spielstil darunter leidet.
So oder so, das Leela-Projekt bleibt auf jeden Fall spannend!
PS: Hier noch der aktuelle Blog-Eintrag zur Frage, wann lc0 (mit CUDA) den Lernprozess übernehmen wird:
"What’s stopping us from rolling out lc0 to main net?
The network compression is possibly the single most important outstanding thing. There are attempts to reduce precision to fp16 (worked well), and int8 (didn’t work well so far, ~150 Elo drop on same nodes).
Merging both of @Cyanogenoid’s training PRs.
We’d like to see cpuct 1.7 or 1.8, and perhaps resign-playthru set to 20% instead of 10%.
Given the above changes, we’d like to see one more test run that’s really really short, to verify that the previous at least work correctly. It doesn’t even need to reach first LR drop, only a couple of days is necessary
Then promote!"