Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Wie Leela Chess Zero die Evals errechnet?
- - By Michael Scheidl Date 2018-09-20 22:21
... ist mir unklar, denn folgendes verstehe ich nicht:

Unter https://github.com/LeelaChessZero/lc0/wiki/FAQ findet man folgende Information:

Zitat:
How does Lc0 calculate the cp eval?
Lc0 uses an average expected score Q in the range [-1,1]. This expected score is converted to a traditional centi-pawn (cp) eval using this formula: cp = 290.680623072 * tan(1.548090806 * _Q_).

(Q+1)/2  cp
0.50  0.00
0.55  0.45
0.60  0.93
0.65  1.46
0.70  2.07
0.75  2.84
0.80  3.89
0.85  5.49
0.90  8.42
0.95  16.20
1.00  128

Erstmal glaube ich, daß eine Formel zur Umrechnung von Enginespekulationen keine so langen Dezimalzahlen braucht    aber das nur am Rande. Aber ich komme rechnerisch nicht hin. Kann mich ein mathematisch Begabter aufklären, oder ist obiges schlicht falsch?! Ich kann Tangens. Wie wäre zum Beispiel die Berechnung für eine Gewinnwahrscheinlichkeit von 43%?

P.S. Daß die Tabelle statt einfach Q (Q+1)/2 auflistet, trägt zur Klarheit nicht bei.
Parent - - By Ernest Bonnem Date 2018-09-21 03:41 Edited 2018-09-21 03:57
Hallo Michael,

Doch, die Formel geht, nur kalkuliert man die tan (tangent) für radians, und man kriegt die cp eval in centipawns.

Zum Beispiel :

Für (B+1)/2=0.8 also B=0.6 ist die tangent(radians)= 1.34 und cp eval= 389 (also 3.89).

Natürlich sind so viele Dezimalen in der Formel lächerlich...

P.S. ...und für Deine 43%  (B+1)/2=0.43  so B=-0.14  tan=-0.22 und cp eval=-64 (also -0.64)
Parent - By Michael Scheidl Date 2018-09-21 08:00
Danke! Auf das mit radians (Radiant, RAD) wäre ich selber nie gekommen...
- - By Guenter Stertenbrink Date 2018-09-21 08:32
ich halbiere die Lc0-evals , um auf Stockfish-Niveau zu kommen

und im Endspiel am besten nur die eval des Gegners betrachten

und bei mangelndem Fortschritt wiederum halbieren oder so
Parent - - By Peter Martan Date 2018-09-22 08:57 Edited 2018-09-22 09:13
Guenter Stertenbrink schrieb:

und im Endspiel am besten nur die eval des Gegners betrachten

Das scheint mir essentiell, z.B. so bei der Partie, die gerade im CCCC läuft, Leela langweilt das Publikum mit einem Remis- 5Steiner, hat einen Mehrbauern im sonst reinen Damenendspiel und will sich mit Gewalt alle 50 Züge zeigen lassen. Dabei schwärmt sie mit ihrer -13.x-Eval vor sich hin, ah, jetzt, ein Einsehen, die 50- Züge sind erreicht (120 sind's eh nur ingesamt geworden), Eval endlich 0.0.

Es handelte sich um die Partie Nr.160 gegen Ethereal.
Immer wieder verstehe ich das im Zusammenhang mit "MCTS" nicht, selbst wenn's da im NN oder in irgendwelchen rudimentär vielleicht doch verwendeten tbs einfach nix Vergleichbares zu finden gibt, muss doch irgendein "Rollout", bei nur mehr 5 Steinen am Brett, mal der Maschine sagen, das ist schon aus, Layla- Maus, nein?


Event:
Ort:
Datum:

Weiss:
Schwarz:

Ergebnis
Board


Die Evals, weil mit den Output- Lines verbunden, haben leider nicht in die Nachrichtenlänge gepasst.
Parent - - By Reinhold Stibi Date 2018-09-22 09:27
Was willst du erwarten nach nicht einmal 1 Jahr Entwicklungsarbeit.
Andere Programme haben schon 20 Jahre und mehr hinter sich.

Stockfish passiert so etwas nicht und dürfte inzwischen fast perfekt sein.

Er verliert keine Partien mehr (oder fast). Mit einem dementsprechenden Buch würde
Stockfish  wahrscheinlich von 100 Partien keine verlieren.

Alles ist ausgereift von der Eröffnung bis zum Endspiel.
Parent - By Peter Martan Date 2018-09-22 10:30
Reinhold Stibi schrieb:

Was willst du erwarten nach nicht einmal 1 Jahr Entwicklungsarbeit.
Andere Programme haben schon 20 Jahre und mehr hinter sich.

Damit hast du natürlich völlig recht.
Parent - By Tom Paul Date 2018-09-22 13:44
Reinhold Stibi schrieb:

Was willst du erwarten nach nicht einmal 1 Jahr Entwicklungsarbeit.
Andere Programme haben schon 20 Jahre und mehr hinter sich.

Stockfish passiert so etwas nicht und dürfte inzwischen fast perfekt sein.

Er verliert keine Partien mehr (oder fast). Mit einem dementsprechenden Buch würde
Stockfish  wahrscheinlich von 100 Partien keine verlieren.

Alles ist ausgereift von der Eröffnung bis zum Endspiel.


Aber Stockfish ohne TB ist mit seinen Bewertungen im Endspiel oft einfach nur    
Parent - - By Achim Müller Date 2018-09-22 09:41 Edited 2018-09-22 09:52
Peter Martan schrieb:

Immer wieder verstehe ich das im Zusammenhang mit "MCTS" nicht, selbst wenn's da im NN oder in irgendwelchen rudimentär vielleicht doch verwendeten tbs einfach nix Vergleichbares zu finden gibt, muss doch irgendein "Rollout", bei nur mehr 5 Steinen am Brett, mal der Maschine sagen, das ist schon aus, Layla- Maus, nein?


Möglicherweise hängt es damit zusammen, dass Du, wie schon vor etwa zwei Wochen, immer noch ignorierst, dass Dein »Layla-Maus« (edit: in der beim cccc verwendeten Version) weder klassisches MCTS benutzt, noch ein irgendwie geartetes TB-Wissen hat. Und wer sich - zu recht oder nicht - darüber ärgert, dass diese Partien langweilig sind, ärgert sich auch über Harald Lesch, der in einem ein RTL-Wissensquiz ohne Hilfsmittel gegen jemanden antritt, der in Echtzeit Zugriff auf alle Bibliotheken der Welt hat.

Ciao

Achim
Parent - - By Peter Martan Date 2018-09-22 09:54 Edited 2018-09-22 10:31
Ja, jetzt bist du wieder böse, weil ich sie ihn es Layla- Maus nenne.

Und alles gut und schön, Achim, aber wir reden schon noch von 5 Steinen, von denen nur einer ein Bauer ist, ja?
Nimm irgendeine Uralt- Engine auf single core ohne alle tbs und lass sie mal kurz den 6STeiner, der nach dem 42. Zug aufs Brett kommt, anrechnen.

Ich kann ja auch nichts dafür, und insbesondere Layla- Maus ist nicht böse gemeint, das ist ja nur wegen des Eric Clapton- Songs.
Mein Gott, man muss doch auch als Fan nicht gar so empfindlich sein.
Parent - - By Achim Müller Date 2018-09-22 10:33
Peter Martan schrieb:

Ja, jetzt bist du wieder böse, weil ich sie ihn es Layla- Maus nenne.

Und alles gut und schön, Achim, aber wir reden schon noch von 5 Steinen, von denen nur einer ein Bauer ist, ja?
Nimm irgendeine Uralt- Engine auf single core ohne alle tbs und lass sie mal kurz den 6STeiner, der nach dem 42. Zug aufs Brett kommt, anrechnen.

Ich kann ja auch nichts dafür, und insbesondere Layla- Maus ist nicht böse gemeint, das ist ja nur wegen der Eric Clapton- Songs.
Mein Gott, man muss doch auch als Fan nicht gar so empfindlich sein.

Ich bin weder böse noch Fan von Lc0. Ich bin an der Entwicklung eines völlig neuen Ansatzes interessiert.

Aber ich gebe zu, ich verstehe nicht, wie man von sechs Monaten NN-Training (from Scratch, nur Schachregeln, keine Supervision, kein Schachwissen) das gleiche oder ein besseres Ergebnis erwarten kann, wie von Engines mit zwanzigjähriger Programmiererfahrung inklusive in die Binarys hardgecodetem (Endspiel)Wissen. Oder wie man sich trotz Kenntnis der hinter Lc0 stehenden Programmiertechnik und -philosophie immer noch öffentlich so über ein bereits diskutiertes und erklärtes, vermeintliches »Anfängerschach« echauffieren und immer wieder gleiche oder ähnliche Beispiele dafür zitieren kann. Das bzw. die dahinterstehenden Motive erschließt sich mir nicht.

Die bei cccc benutze Engine ist die gleiche wie noch vor zwei/drei Wochen, das Weights-file ein leicht verbessertes gegenüber tcec (etwa einen Monat her). Die Tatsache, dass Updates und Änderungen in der Config während des Turniers für keine der Engine erlaubt sind, mal großzügig ignorierend, was glaubst Du, soll sich dort (beim cccc) in der Zwischenzeit revolutionäres geändert haben?

Ciao

Achim
Parent - - By Peter Martan Date 2018-09-22 11:43 Edited 2018-09-22 11:46
Achim Müller schrieb:

Oder wie man sich trotz Kenntnis der hinter Lc0 stehenden Programmiertechnik und -philosophie immer noch öffentlich so über ein bereits diskutiertes und erklärtes, vermeintliches »Anfängerschach« echauffieren und immer wieder gleiche oder ähnliche Beispiele dafür zitieren kann. Das bzw. die dahinterstehenden Motive erschließt sich mir nicht.

Versteh' ich auch nicht, mach ich aber auch nicht. Andere zeigen immer wiederkehrend schöne Beispiele (ich übrigens auch) ich zeig halt auch weniger schöne, und gerade weil da manche Schwächen beispielhaft wiederkehren, das spricht nämlich dann dafür, dass es keine Ausreißer sind, sondern echte Bugs.
Wie würdest du an denen arbeiten oder arbeiten lassen? Indem du sie ignorierst, ok, kann auch helfen, wäre aber dann Zufall.

Und was ich an grundsätzlichem Unterschied in unser beider Sichtweisen in allererster Linie sehe, weil du "echauffieren" schreibst, du praktizierst in der Diskussion mit mir einfach deutlich mehr Außenprojektion als ich.
Auch mir scheint es, du echauffiertest dich, vielleicht sogar mehr als ich, in Wirklichkeit echauffieren wir uns wahrscheinlich beide nicht wirklich, aber dann ist's ja somit auch einfach wieder gut.
Parent - - By Achim Müller Date 2018-09-22 12:53
Dass Lc0 weder TB benutzt, noch in das Binary »einprogrammiertes« 3-5-Steiner-Wissen hat, war Dir heute Morgen also nicht bekannt. Tut mir leid, das wusste ich nicht.

Aber, um zukünftigen Mißverständnissen vorzubeugen, werde ich Dich ab sofort nicht mehr mit Fakten oder technischen Details zu Lc0 langweilen.

Ciao

Achim
Parent - - By Peter Martan Date 2018-09-22 13:46 Edited 2018-09-22 13:54
Achim Müller schrieb:

Aber, um zukünftigen Mißverständnissen vorzubeugen, werde ich Dich ab sofort nicht mehr mit Fakten oder technischen Details zu Lc0 langweilen.

Ach nein, Achim, jetzt strafst du mich zu hart, langweile mich doch bitte weiter.

Nein, im Ernst, der Informationswert deiner Postings ist immer wieder wertvoll für mich.

Aber was die Nutzung von tbs angeht, und sei's nur wdl, geisterten da halt, auch was das CCCC angeht und -ging, schon auch immer wieder widersprüchliche Meldungen durch die Foren.
Z.B.:

http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=115293#pid115293

Und du selbst schriebst erst hier:

http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=115310#pid115310

Gut, offenbar nicht im Stage2 des Rapid Rumble, hab's eh vermutet.

Würdest du mein Posting, an dem du dich offenbar immer noch in erster Linie erhitzt (echauffierst ) aber nicht nur in Hinblick darauf, wo du Informationslücken aufspüren würdest können, sondern auch in Hinblick auf die wesentliche Aussage gelesen haben, hättest du erkannt, dass es mir eben genau darum ging, dass eine vernünftige Suche, wie auch immer sie hieße, einen klaren Remis- 5Steiner wie den in Rede stehenden auch ohne tbs als solche erkennen müsste.

Und jetzt kommt dann wieder das Argument vielleicht, ja, die Engines, die das können (und die Menschen, die das wissen), die haben das ja eigens von anderen Menschen beigebracht bekommen, ja und, so what?

Warum muss man einer Engine, die sich alles (bis auf das, was eben schon an vorgehenden Entwicklungen an Schachengines, AI an und für sich, Go- AI und NN-nutzender A-B-Engine von Matthew Lai und Google- Projekten bekannt war) selbst beigebracht hat, schachlich Sachen nachsehen, die schachlich schwach sind?

Weil sie erst ein Jahr lang entwickelt wird.

Dazu sollte man dann aber eben schon auch im Auge behalten, dass da die Jahrzehnte Schachengine- Entwicklung sehr wohl stattgefunden hatten, sehr wohl zumindest zur Kenntnis genommen hätten werden können und teilweise sicher auch wurden, und dass die AI- Schach- Entwicklung schon eine Weile vorher mit Go vorbereitet wurde, und Google in das eine und das andere auch ganz schön viel investiert hatte.

Ein Jahr scheint kurz, aber ein Jahr mit nix anderem als Schachpartien auf in Summe schon auch wirklich beachtlichen Hardwareeinsätzen und nicht zu vernachlässigendem Stromverbrauch ist in Zeiten wie diesen auch schon nicht mehr soo zu verachten, finde ich.

Jetzt mal ganz davon abgesehen, dass da außer ein paar hochgebildeten Spezialisten auf ihrem Gebiet doch auch einiges Hirnschmalz und Manpower investiert haben, gab's zusätzlich zu denen auch noch ganz schön Zeit von einigen Testern an Aufwand, und dass an Parametern, Neustarts und neuerlichen Neustarts mit neuen Parametern soo wenig Programmiererleistung auch schon nicht mehr ganz den Ausdruck Zeroprinzip verdient, das alles sollte man ruhig auch mal so sehen dürfen.

Abgesehen von alledem ist Schwachschach aber einfach schachlich schwach, egal unter was für besonders günstigen oder widrigen Umständen es die Engine so zu spielen gelernt hat.

Tut mir leid, ich kann es zum Unterschied von dir sichtlich nicht lassen, dich mit derlei hinlänglich bekannten Erkenntnissen wieder und wieder zu langweilen, aber ich kann es deshalb immer wieder nicht und nicht lassen, weil, wenn man mir sagt, das, was da einfach offensichtlich so ist, wie es ist, sei nicht so, weil es verdiene eigentlich ganz andere Bezeichnungen, Informationen und Voraussetzungen der Beurteilung, dann reizt das meinen Widerspruchsgeist.

Dass ein halbleeres Glas auch als halbvoll betrachtet werden kann, muss ich einfach immer wieder bei solchen Ablenkungsversuchen mit dieser Art von Populärpsychologie, auf den Kern der immer zuerst zu klärenden Frage reduzieren dürfen:
Ist es jetzt halb oder ganz?
Und was für eine Rolle spielt für die Antwort auf diese Frage, ob halb oder ganz, die andere, ob man es als halbleer oder halbvoll sehen will, wenn man sich darüber einig ist, welchen Inhalt man betrachtet, ist halb einfach halb und ganz einfach ganz.

In diesem Fall war die Frage ein ganz bestimmter Remis- 5Steiner.
Ist der jetzt ganz Remis oder halb oder wie oder was?

Und wenn er jetzt ganz Remis ist, wieso bewertet ihn LC0 dann als ganz gewonnen, bis ihr endlich die 50-Züge Regel sagt, nein, doch nur ein halber Punkt?
Parent - By Tom Paul Date 2018-09-22 14:13
Peter Martan schrieb:

Achim Müller schrieb:

Aber, um zukünftigen Mißverständnissen vorzubeugen, werde ich Dich ab sofort nicht mehr mit Fakten oder technischen Details zu Lc0 langweilen.

Ach nein, Achim, jetzt strafst du mich zu hart, langweile mich doch bitte weiter.

Nein, im Ernst, der Informationswert deiner Postings ist immer wieder wertvoll für mich.

Aber was die Nutzung von tbs angeht, und sei's nur wdl, geisterten da halt, auch was das CCCC angeht und -ging, schon auch immer wieder widersprüchliche Meldungen durch die Foren.
Z.B.:

<a class='ura' href='http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=115293#pid115293'>http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=115293#pid115293</a>

Und du selbst schriebst erst hier:

<a class='ura' href='http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=115310#pid115310'>http://forum.computerschach.de/cgi-bin/mwf/topic_show.pl?pid=115310#pid115310</a>

Gut, offenbar nicht im Stage2 des Rapid Rumble, hab's eh vermutet.

Würdest du mein Posting, an dem du dich offenbar immer noch in erster Linie erhitzt (echauffierst ) aber nicht nur in Hinblick darauf, wo du Informationslücken aufspüren würdest können, sondern auch in Hinblick auf die wesentliche Aussage gelesen haben, hättest du erkannt, dass es mir eben genau darum ging, dass eine vernünftige Suche, wie auch immer sie hieße, einen klaren Remis- 5Steiner wie den in Rede stehenden auch ohne tbs als solche erkennen müsste.

Und jetzt kommt dann wieder das Argument vielleicht, ja, die Engines, die das können (und die Menschen, die das wissen), die haben das ja eigens von anderen Menschen beigebracht bekommen, ja und, so what?

Warum muss man einer Engine, die sich alles (bis auf das, was eben schon an vorgehenden Entwicklungen an Schachengines, AI an und für sich, Go- AI und NN-nutzender A-B-Engine von Matthew Lai und Google- Projekten bekannt war) selbst beigebracht hat, schachlich Sachen nachsehen, die schachlich schwach sind?

Weil sie erst ein Jahr lang entwickelt wird.

Dazu sollte man dann aber eben schon auch im Auge behalten, dass da die Jahrzehnte Schachengine- Entwicklung sehr wohl stattgefunden hatten, sehr wohl zumindest zur Kenntnis genommen hätten werden können und teilweise sicher auch wurden, und dass die AI- Schach- Entwicklung schon eine Weile vorher mit Go vorbereitet wurde, und Google in das eine und das andere auch ganz schön viel investiert hatte.

Ein Jahr scheint kurz, aber ein Jahr mit nix anderem als Schachpartien auf in Summe schon auch wirklich beachtlichen Hardwareeinsätzen und nicht zu vernachlässigendem Stromverbrauch ist in Zeiten wie diesen auch schon nicht mehr soo zu verachten, finde ich.

Jetzt mal ganz davon abgesehen, dass da außer ein paar hochgebildeten Spezialisten auf ihrem Gebiet doch auch einiges Hirnschmalz und Manpower investiert haben, gab's zusätzlich zu denen auch noch ganz schön Zeit von einigen Testern an Aufwand, und dass an Parametern, Neustarts und neuerlichen Neustarts mit neuen Parametern soo wenig Programmiererleistung auch schon nicht mehr ganz den Ausdruck Zeroprinzip verdient, das alles sollte man ruhig auch mal so sehen dürfen.

Abgesehen von alledem ist Schwachschach aber einfach schachlich schwach, egal unter was für besonders günstigen oder widrigen Umständen es die Engine so zu spielen gelernt hat.

Tut mir leid, ich kann es zum Unterschied von dir sichtlich nicht lassen, dich mit derlei hinlänglich bekannten Erkenntnissen wieder und wieder zu langweilen, aber ich kann es deshalb immer wieder nicht und nicht lassen, weil, wenn man mir sagt, das, was da einfach offensichtlich so ist, wie es ist, sei nicht so, weil es verdiene eigentlich ganz andere Bezeichnungen, Informationen und Voraussetzungen der Beurteilung, dann reizt das meinen Widerspruchsgeist.

Dass ein halbleeres Glas auch als halbvoll betrachtet werden kann, muss ich einfach immer wieder bei solchen Ablenkungsversuchen mit dieser Art von Populärpsychologie, auf den Kern der immer zuerst zu klärenden Frage reduzieren dürfen:
Ist es jetzt halb oder ganz?
Und was für eine Rolle spielt für die Antwort auf diese Frage, ob halb oder ganz, die andere, ob man es als halbleer oder halbvoll sehen will, wenn man sich darüber einig ist, welchen Inhalt man betrachtet, ist halb einfach halb und ganz einfach ganz.

In diesem Fall war die Frage ein ganz bestimmter Remis- 5Steiner.
Ist der jetzt ganz Remis oder halb oder wie oder was?

Und wenn er jetzt ganz Remis ist, wieso bewertet ihn LC0 dann als ganz gewonnen, bis ihr endlich die 50-Züge Regel sagt, nein, doch nur ein halber Punkt?


LC0s Bewertung sagt doch nur das in der aktuellen Stellung bzw. in den daraus entstehenden Stellungen, Stellung X die besten Gewinnwahrscheinlichkeiten bietet auch wenn diese bei bestem Spiel beiderseits komplett remis.
Und das trifft auch zu, denn man kann ganz viele solcher Stellungen im Blitzmodus oder Bulletmodus gegen unterschiedliche Engines ausspielen lassen und sieht dann eben das es nicht immer als ein Unentschieden endet.
Auch die Top GMs machen das so. Wer also darüber meckert das LC0 alles ausspielt, weil die Engine nun mal besser steht, der beschwert sich auch ständig über die Top GMs, weil er es selbst besser weiß als diese.
LC0 ist da im Durchschnitt wesentlich besser als viele Engines die nur dank TBs Endspiele spielen können.
Und selbst Stockfish der beim TCEC vom ersten Zug auf die TBs zugreift und schon überall das ausgeglichene Endspiel sieht, wundert sich dann immer ganz stark, wenn er im Endspiel X total auf Verlust steht. , denn auch wenn er in einem ausgeglichenen Endspiel 30 verschiedene Züge ziehen kann, hat ein Zug eine 1% Chance auf Verlust und ein anderer eine 50% Chance auf Verlust und so sammelt er die schlechten Chancen bis seine Stellung so kompliziert ist das er fehlgreift und verliert.
Parent - By Tom Paul Date 2018-09-22 13:50
Peter Martan schrieb:

Ja, jetzt bist du wieder böse, weil ich sie ihn es Layla- Maus nenne.

Und alles gut und schön, Achim, aber wir reden schon noch von 5 Steinen, von denen nur einer ein Bauer ist, ja?
Nimm irgendeine Uralt- Engine auf single core ohne alle tbs und lass sie mal kurz den 6STeiner, der nach dem 42. Zug aufs Brett kommt, anrechnen.

Ich kann ja auch nichts dafür, und insbesondere Layla- Maus ist nicht böse gemeint, das ist ja nur wegen des Eric Clapton- Songs.
Mein Gott, man muss doch auch als Fan nicht gar so empfindlich sein.


Und wie viele Top GMs würden dieses Endspiel immer Remis halten können?
Parent - - By Guenter Stertenbrink Date 2018-09-22 09:42
die Tiefe ist bei MCTS sehr gering , die 50 Zuege total ausser Reichweite.

ersetze 50Zug Regel durch 15Zug und 3fold durch 2fold
oder/und bau irgendeinen Fortschritt-Erkenner ein

trainiere Lc0 mit den SF-evals als zusaetzlichen Parameter

warum gibt's immer nur noch ein Lc0 und nix vergleichbares
Parent - - By Achim Müller Date 2018-09-22 09:51
Guenter Stertenbrink schrieb:

die Tiefe ist bei MCTS sehr gering , die 50 Zuege total ausser Reichweite.

weil es eben kein MCTS ist .

Aus der neuen f.a.q. von Lc0 (stand so ähnlich aber auch schon in der alten):

»This is the same search specified by the AGZ paper, PUCT (Predictor + Upper Confidence Bound tree search). Many people call this MCTS (Monte-Carlo Tree Search), because it is very similar to the search algorithm the Go programs started using in 2006. But the PUCT used in AGZ and Lc0 does not do game rollouts (sampling playouts to a terminal game state).«

Ciao

Achim
Parent - - By Jörg Oster Date 2018-09-23 11:46
Achim Müller schrieb:

Guenter Stertenbrink schrieb:

die Tiefe ist bei MCTS sehr gering , die 50 Zuege total ausser Reichweite.

weil es eben kein MCTS ist .

Aus der neuen f.a.q. von Lc0 (stand so ähnlich aber auch schon in der alten):

»This is the same search specified by the AGZ paper, PUCT (Predictor + Upper Confidence Bound tree search). Many people call this MCTS (Monte-Carlo Tree Search), because it is very similar to the search algorithm the Go programs started using in 2006. But the PUCT used in AGZ and Lc0 does not do game rollouts (sampling playouts to a terminal game state).«

Ciao

Achim


Die Suche hat dennoch alle Eigenschaften einer MCTS.

Man könnte auch so argumentieren, dass die Rollouts virtuell im NN stattfinden,
weil die zurückgelieferte Bewertung (value head) für diesen Knoten ja ein Rollout widergeben soll.

Der Einfachheit halber bleibe ich bei MCTS. 

P.S.: Inwieweit dies Sinn macht, speziell bei Schach und insbesondere in mattnahen Stellungen, komplett auf Rollouts zu verzichten, wer weiß ...
        Ich habe so meine Zweifel!
Parent - - By Peter Martan Date 2018-09-23 12:43 Edited 2018-09-23 12:52 Upvotes 1
Jörg Oster schrieb:

P.S.: Inwieweit dies Sinn macht, speziell bei Schach und insbesondere in mattnahen Stellungen, komplett auf Rollouts zu verzichten, wer weiß ...
        Ich habe so meine Zweifel!

Ich auch, genau diese Zweifel hatte ich ja auch angemeldet, dass die Suche, wie auch immer sie korrekt hieße, mal von der numerischen Eval noch ganz abgesehen, gerade im Endspiel, wo sie es eigentlich leichtert haben sollte als mit mehr Figuren am Brett, immer wieder mal sichtlich Sch...wach wäre.

Und selbst wenn mir das gleich wieder Rügen eintragen wird, dass ich halt zuwenig davon verstehe, rein schachlich betrachtet, ist für mich mittlerweile ein Verdacht, woher die offenkundige Endspielschwäche von LC0 ganz einfach logisch kommen könnte, am naheliegendsten:

Er sie es lernt das Endspiel nicht leichter und besser, obwohl weniger Figuren leichtere Durchrechnung, vor allem aber auch bessere "Mustererkennung" ermöglichen sollten, sondern später, schwerer, langsamer, weil die Spiele, die sie gegen sich selbst spielt, zumindest lange Zeit, so lange sie von perfekt noch weit entfernt sind, in der weit überwiegenden Zahl enden werden, bevor es zu längeren, komplexeren, schwierigeren Endspielen überhaupt kommt.

Mit einer gewissen Taktikschwäche im Mittelspiel gepaart (uups, das wird mir auch wieder angekreidet werden, ich bin schon wieder so negativ ), gehen die meisten Selfplay- Games vermutlich schon gleich mal dort verloren oder gewonnen aus, wo die ersten taktischen Fehler in der Eröffnung und im Mittelspiel vorkommen.

Man sagt menschlichen Anfängern, sie sollen mit dem Endspiel beginnen zu lernen, weil dort die Prinzipien des Spiels schneller und leichter klar werden, das hat schon seine Gründe.

Wenn immer wieder von vorn im Selfplay angefangen werden muss, damit überhaupt was gelernt wird, kommt das Endspiel natürlich auch immer als letztes dran, aus dem vorhandenen Material besseres Spiel zu lernen.
Just my two Cents.
Parent - - By Jörg Oster Date 2018-09-23 13:01
Volle Zustimmung meinerseits.

Naheliegend wäre das Training von vielen verschiedenen Startpositionen
aus Eröffnung, Mittel- und Endspiel heraus zu ermöglichen.
Ganz so wie beim Texel-/Gaviota-Tuning für herkömmliche Evals,
wo ja Millionen von Stellungen genommen werden.

Das ganze hätte nur einen gravierenden Nachteil:
die Zeit zum Trainieren des NN würde sich sehr wahrscheinlich vervielfachen.
Parent - - By Peter Martan Date 2018-09-23 13:09
Jörg Oster schrieb:

Das ganze hätte nur einen gravierenden Nachteil:
die Zeit zum Trainieren des NN würde sich sehr wahrscheinlich vervielfachen.

Verstehe ich nicht, Jörg, wenn wir gemeinsam davon ausgehen, dass der Lernerfolg über die verschiedenen Spielphasen hinweg dadurch effektiver würde, käme man doch mit weniger Spielen insgesamt aus, um mehr relevante "Muster" früher im NN zu haben, nein?
Parent - - By Jörg Oster Date 2018-09-23 13:31
Peter Martan schrieb:

Jörg Oster schrieb:

Das ganze hätte nur einen gravierenden Nachteil:
die Zeit zum Trainieren des NN würde sich sehr wahrscheinlich vervielfachen.

Verstehe ich nicht, Jörg, wenn wir gemeinsam davon ausgehen, dass der Lernerfolg über die verschiedenen Spielphasen hinweg dadurch effektiver würde, käme man doch mit weniger Spielen insgesamt aus, um mehr relevante "Muster" früher im NN zu haben, nein?


Nun, bei den späten Mittel- und Endspielstellungen könnte es ja nichts lernen,
was die Eröffnungsbehandlung und das frühe Mittelspiel betrifft.
Um die derzeitige gleiche Stärke in diesen Partiephasen zu erzielen, wären meiner Meinung nach
daher insgesamt mehr Trainingspartien vonnöten. Oder?
Parent - - By Peter Martan Date 2018-09-23 13:42 Edited 2018-09-23 13:59
Warum?
Mehr Partien insgesamt vielleicht, aber wenn neben den Eröffnungsstellungen auch Mittel- und Endspielstellungen als Startstellungen verwendet werden, werden die Partien ja um das kürzer, nein?

Außerdem könnten natürlich mehr Partien gleichzeitig gespielt werden, wenn nicht immer alle wieder ganz von vorn angefangen werden müssten, oder?

Wie auch immer, ich glaube dass der Zero- Ansatz (der ja ohnehin schon durch tbs- Verwendung und ständiges manuelles Herumschrauben an Parametern vor den Neustarts und währenddessen verwässert genug wird und wurde) ein Zwang ist, den nur Google vorgelegt hat, Gott und Google allein weiß, wie sehr und konsequent Deep Mind den wirklich durchgezogen hat, Giraffe ist immerhin auch erwähnt in der Historie in dem "Papier", interessanter wäre für mich nach wie vor, was alles nicht erwähnt wurde. Und man ist ursprünglich (ja auch bei Leela- Zero) von Go ausgegangen, was ja doch ein wesentlich anderes Spiel ist.

Und wenn die NNs ja ohnehin nicht schützbar sind, was spricht dagegen, jetzt dann mal parallel zu LC0 mit einem nicht ganz so Zero- zwanghaften Projekt daneben anzufangen?
Aufbauen auf dem, was man schon hat, kann man ja auch an beliebiger Stelle, das Ganze ist sowieso Public Domain, oder?

(Auch hier bitte ich wieder unverzeihliche Unkenntnis im Detail zu entschuldigen, aber ich gehe einfach immer davon aus, dass sich ohnehin schnell jemand findet, der mich korrigiert, wenn ich mich irre )
Parent - By Jörg Oster Date 2018-09-23 14:16 Upvotes 1
Wahrscheinlich hast du Recht und zeitmäßig wird das weniger ausmachen,
als von mir ursprünglich angenommen. Wie auch immer ...

Ich werde mich jetzt erst mal etwas näher mit Daniel Shawul's Scorpio MCTS Version beschäftigen.
Parent - - By Peter Martan Date 2018-09-22 10:14
Guenter Stertenbrink schrieb:

ersetze 50Zug Regel durch 15Zug und 3fold durch 2fold
oder/und bau irgendeinen Fortschritt-Erkenner ein

trainiere Lc0 mit den SF-evals als zusaetzlichen Parameter

Warum ich? Ich kann das nicht.

Ich weiß ja noch nicht einmal, dass es PUCT heißen sollte und nicht MCTS, na gut, das weiß ich jetzt dann schön langsam dem Namen nach doch auch, Achim hat's schon hin und wieder erklärt, aber es fällt mir Shakespear ein:
Was wir Rose nennen, wie es auch hieße, würde duften.
Dementsprechend, was wir Sch...tinkig nennen, wie es auch hieße, würde stinken.
SCNR.

Analog dazu das Thema des Threads, "Evals":
Soll die PUCT- Engine doch ihre Gewinnwahrscheinlichkeiten, die sie dann mathematisch hochkompliziert in Bauerneinheiten umrechnet, gleich direkt als Wahrscheinlichkeiten in Prozent auswerfen, wieviele Prozent wären denn dann 13 Bauern?
Und es geht mir nicht um die eine oder andere unnötig lange Partie, immerhin hat's LC0 ja nicht versemmelt, sondern den halben Punkt eingespielt, es geht mir darum, dass da an der Suche, wie auch immer sie korrekt heißt, etwas im A...rgen zu liegen scheint.
Und nein, natürlich nicht immer, sonst wäre die Engine nicht mittlerweile unter den 4 besten, aber immer wieder.
Wie weit wäre sie denn wohl schon, wenn sie solche Bugs, und anders kann man das eigentlich nicht wirklich nennen, PUCT- Bugs vielleicht, aber Bugs, vielleicht doch noch ausmerzen könnte?
Parent - - By Michael Scheidl Date 2018-09-22 12:15 Upvotes 1
Zitat:
Ich weiß ja noch nicht einmal, dass es PUCT heißen sollte

Es ist schrecklich oder? Kaum glaubt man etwas ansatzweise verstanden zu haben, bekommt man gesagt, nein das ist gar kein Monte Carlo und keine Rollouts... seufz. Dazu kommt noch daß mein seit 40 Jahren angesammeltes Halbwissen über klassische Alpha-Beta-Engines droht, zu etwas marginalem hinuntergestuft zu werden. Ich geh in Pension.

P.S. Ich wollte eine Formel machen mit der man die Leela-Evals auf die -1...+1 Erfolgserwartungen zurückbumsen kann, aber ich schaff's nicht von einem Tangens(RAD) auf den Ursprungswert zu kommen. Wie dreht man das um?
Parent - - By Achim Müller Date 2018-09-22 13:48
Wenn mich mein Gedächtnis nicht täuscht:

tan(x) = a; arctan(a) = x

Durch Einsetzen und Umstellen erhälst Du dann das gewünschte Resultat.

Was die NN angeht, ich habe das in diversen Turnierchats und auch Foren beobachtet: Einige neigen dazu, ob nun wissentlich oder nicht, sei dahingestellt, Äpfel mit Birnensaft zu vergleichen. Manche trollen wahrscheinlich auch einfach nur als Gegengewicht zu den Lc0-Fanboys . Der A0-Ansatz ist relativ neu, und das Lc0-Experiment, bei dem es ursprünglich ja eher darum geht, das Google-Experiment nachzuvollziehen, orientiert sich nicht oder nur kaum an klassischen Engines oder einer 40jährigen Computerschachhistorie.

Ein Querlesen des Forums, des Wikis, der F.A.Q. und des Blogs oder ein Besuch des Discordservers hilt da bestimmt weiter. Auch wenn ich zugeben muss, dass selbst ich es manchmal mühsam finde, an bestimmte Informationen zu gelangen.

Ciao

Achim
Parent - - By Michael Scheidl Date 2018-09-22 15:34
Danke vielmals.
Zitat:
tan(x) = a; arctan(a) = x

Jetzt ist mir alles klar 

P.S. Eine komplette Formel wär halt schön, ist aber nicht wichtig. Strengt Euch nicht an, dringender ist die Scheisse vom Baby abzuwischen.
Parent - - By Guenter Stertenbrink Date 2018-09-22 17:26
cp=290.680623072*tan(1.54809086*(p*2-1))/100
p=(atn(cp*100/290.680623072)/1.54809086+1)/2
Parent - - By Michael Scheidl Date 2018-09-24 16:17
Ich danke Dir und Frank für die Infos. - Inzwischen bin ich jedoch auf den Gedanken gekommen, das Beste wäre wenn Leela den erwarteten Durchschnittsscore direkt in % ausgibt. Also eine Bewertung von -100,00...+100,00 und daß es keine Centipawns sind, muß man dann halt wissen. Könnte man ja in eine Readme schreiben.
Parent - By Achim Müller Date 2018-09-24 17:37 Edited 2018-09-24 17:51
Michael Scheidl schrieb:

Ich danke Dir und Frank für die Infos. - Inzwischen bin ich jedoch auf den Gedanken gekommen, das Beste wäre wenn Leela den erwarteten Durchschnittsscore direkt in % ausgibt. Also eine Bewertung von -100,00...+100,00 und daß es keine Centipawns sind, muß man dann halt wissen. Könnte man ja in eine Readme schreiben.


Gerne. Übrigens, die Ausgabe der Bewertung ist seit mindestens Juni oder sogar eher im Wiki/F.A.Q. erläutert (iirc damals noch in der leicht geänderten Form, die der »Vorgänger« leela-chess benutzte), allerdings natürlich noch nicht aktiv an alle Interessierten verteilt worden .

Ciao

Achim

(edit: mit der Prozentangabe ist das so eine Sache. Ich weiß erstens nicht, ob das uci-Protokoll und die GUIs das hergeben. Und zweitens, wenn möglich, wird bei einer Prozentangabe dann wieder die andere Hälfte fragen: wo sind meine Bauerneinheiten?)
Parent - By Frank Brenner Date 2018-09-23 15:32 Upvotes 1
Zitat:
.S. Ich wollte eine Formel machen mit der man die Leela-Evals auf die -1...+1 Erfolgserwartungen zurückbumsen kann, aber ich schaff's nicht von einem Tangens(RAD) auf den Ursprungswert zu kommen. Wie dreht man das um?


Der tangens bildet das Intervall (-Pi/2 , +Pi/2)  auf das Intervall (-unendlich, +unendlich)   streng monoton steigend ab, also ohne Wellen und stets ansteigend.

Um also die Leela-Evals von -1 ... +1 in einen Elo Wert  umzuwandeln (ELO Zahlen haben einen Wertebereich von -unendlich bis +unendlich)   nimmt man die Eval mit Pi/2 mal (ca 1.57079...)   um [-1,+1] auf [-Pi/2 , +Pi/2] abzubilden  und berechnet dann den Tan. Das Ergebnis liegt im Bereich -unendlich ... + unendlich .  Man könnte  diesen Wert als  Elo Wert (Differenz) interpretieren der erforderlich ist um die Partie noch Remis zu halten - oder alternativ als ein in ELO Zahlen ausgedrückter Stellungsvorteil.

Mit der bekannten Elo Formel   1 / (1+ 10 hoch Elodifferenz/400) kann man dann die Gewinnwahrscheinlichkeit berechnen.

Da aber Leela die Werte +1 und -1  recht häufig tatsächlich ausgibt selbst bei lediglich großem Vorteil und nicht erst bei unendlicher Überlegenheit,  wird das Intervall von [-1,+1] nicht ganz auf [-Pi/2 , +Pi/2]  abgebildet sondern auf ein etwas engeres, also in der art [-Pi/2 + epsilon , +Pi/2 - epsilon]

Das epsilon ist nun eine kleine positive Zahl die man durch viele Tests ermitteln kann.

Im Beispiel wird statt Pi/2 = 1.57079 ... der Wert 1.548090806 genommen. Epsilon ist also  +0,0227

Wenn man statt der Gewinnwahrscheinlichkeit lieber einen Score haben möchte, so wie bei fast allen Schachprogrammen üblich wird dann einfach der Elowert nach dem Tan einfach nur  skaliert indem es mit einem Gewicht malgenommen wird. Das Gewicht selbst muß auch erst durch Tests ermittelt werden.
Up Topic Hauptforen / CSS-Forum / Wie Leela Chess Zero die Evals errechnet?

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill