Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Lerneffekt auf Partieresultate höchst unklar!
- - By Michael Scheidl Date 2013-11-27 11:00
Leider! Noch nie habe ich so ungern ein Ergebnis verkündet, welches jeder Logik, meiner Erwartung und vor allem meinem Geschmack widerspricht. Aber im Sinne der Sachlichkeit hätte ich ja ein schlechtes Gewissen, würde ich folgendes verheimlichen:

Ich habe gemacht was sonst tabu ist: Identische Eröffnungsstellungen mehr als zweimal (1x Seitenwechsel) ausspielen lassen, und zwar je sieben Mal doppelt. Dies deswegen, weil die lernfähige Stockfishversion 4 PA_GTB-001 zum Einsatz kam, und ich sehen wollte ob und wie sie durch den Lerneffekt Resultate verbessern kann. Als min. Lerntiefe war 12 eingestellt, typische SF.-Rechentiefe war 14...16.

30s+0,5s, Intel i5-3210M 2,5...2,9 GHz
je 256 MB Hashtables, ponder off
vier kurze Vorgabevarianten
Arena 2.0.1, Windows 8 x64


   Engine           Score
1: Stockfish 4 PG-1 39,0/56
2: Komodo CCT       17,0/56

11=11=== 6,0/8
10001==1 -2,0
====11== -1,0
=11=111= +0,5
1==11111 +1,0
1=1=1=1= +/-0
1=111000 -1,5


Zweck besserer Übersicht habe ich die sieben Kurzmatches extra, und aus SF-Sicht dargestellt, und jeweils den Unterschied in Punkten zum ersten Match dargestellt. Dieses ist der relevante Vergleich, da ohne bzw. mit leerem Lernfile gestartet. Testgegner Komodo CCT hat kein permanentes Stellungslernen. Die Eröffnungen und Farben waren in jeder Ergebnisspalte dieselben, also z.B. Partie 3,11,19 usw.

Man erkennt eine "lebhafte Fluktuation" der Resultate. in beide Richtungen...

Einige Anmerkungen:

- Prinzipielles Problem: Eine Engine kann dank Lernen zu einem tatsächlich besseren (Eröffnungs-)Zug umschwenken, aber trotzdem ein schlechteres Resultat erreichen, etwa wenn sich die Partie im Endspiel dreht was dann meist in keinem ursächlichen Zusammenhang mit dem Lerneffekt stehen wird.

- Die Zeitkontrolle war bei der Basiszeit nur um ein Drittel geringer als in den LS-Tests, Zugbonus identisch.
- Unerwarteter Weise war K.CCT unter diesen Bedingungen (allerdings i5 statt i7) kein ebenbürtiger Gegner.
- Mindestens einmal ist leider auch Komodo als erster abgewichen, obwohl auf "deterministic" eingestellt. Nicht alles geprüft aber ich denke das war sehr selten der Fall.
- Bei Durchsicht einiger Partien und Abweichungen hat Stockfish die neuen Züge immer besser bewertet als den zuvor gewählten Zug, was nicht unbedingt logisch ist, da ein Ersetzen des alten Zuges infolge Lernens ja bedeutet daß die Bewertung falsch war. - Ich habe aber nicht sämtliche Abweichungen überprüft.
- Der Lerneffekt tritt - bei dieser Engine - bewertungsbezogen ein, nicht resultatbezogen. Gerne werden Gewinnpartien zu Remis oder Niederlagen verschlimmbessert (natürlich auch umgekehrt).
- Noch mehr Lernen ausgangs derselben Positionen bedeutet leider nicht bessere Resultate: Man vergleiche den fünften (+1,0) mit dem siebenten (-1,5) Durchgang.
- Die Abweichungen geschahen mitunter erst spät, weit jenseits der Eröffnung.
- Vermutlich werden wieder einmal statt nur 56 eher 5.600 Partien zu einer gründlichen Beurteilung benötigt.

Hier beispielhaft die Entwicklung der Resultate mit Stockfish als Schwarzer in Königsindisch:




Der lernende Stockfish konnte zunächst, in zwei Etappen, das Remis zu einem Sieg ummünzen. Zum Schluß jedoch führten die Lerneffekte gar zu einer Niederlage!

Wasser auf die Mühlen der Lern-Skeptiker aber was solls, that's life. Vielleicht war ja mein Testaufbau falsch oder ich habe einen Logikfehler gemacht... ich fürchte nein.
Parent - - By Benno Hartwig Date 2013-11-27 12:54 Edited 2013-11-27 12:59

> Vielleicht war ja mein Testaufbau falsch oder ich habe einen Logikfehler gemacht... ich fürchte nein.


Du hast Spielstärken von wenigstens annähernd gleichstarken Engines mit jeweils 8 Partien ergründen wollen, oder verstand ich das falsch?
Ist das nicht doch ein so optimistischen Ansatz, dass man den eigentlich schon als Logikfehler betrachten sollte?

Oder hattest du mit 'Lernen'  etwas erwartet, was die Spielstärke drastisch zu steigern vermag, dass auch schon 8 Partien ein Bild zeichnen könnten?

Benno
Parent - - By Michael Scheidl Date 2013-11-27 14:09 Edited 2013-11-27 14:16
Zitat:
Du hast Spielstärken von wenigstens annähernd gleichstarken Engines mit jeweils 8 Partien ergründen wollen, oder verstand ich das falsch?

Ganz falsch, denn es ging ja keineswegs um die Spielstärken. Es ging darum wie sich Stellungslernen bei wiederholtem Vorkommen derselben (Eröffnungs-)Positionen auswirkt. Diese wurden einmal ohne Lerneffekt ausgespielt und dann sechsmal gegen einen nicht lernenden Gegner wiederholt.

Wie obige Resultate zeigen, war die Auswirkung sogar sehr drastisch - von Mal zu Mal - aber zum Schluß sehr unerwartet. Das Gesamtresultat beim siebenten Durchgang, "unterstützt" von massig Lerndaten, war schlecher als beim ersten.

Natürlich kann das mit zwei anderen Engines und/oder vier anderen Eröffnungsvorgaben wiederum umgekehrt aussehen, aber daß sowas überhaupt vorkommt, irritiert mich...
Parent - - By Benno Hartwig Date 2013-11-27 14:16

> Es ging darum wie sich Stellungslernen bei wiederholtem Vorkommen derselben (Eröffnungs-)Positionen auswirkt.


Aber dieses 'auswirken' hast du doch anhand von Niederlage, Remis und Sieg bewertet, oder?
Dann hast du doch nach wie vor den gesamten riesengroßen Blumenstrauß aus Zufälligkeiten, der bei 8 Partien von annähernd gleichstarken Engines so übermächtig vor dir stehen muss.
Benno
Parent - - By Michael Scheidl Date 2013-11-27 14:49
Bei perfekt deterministischen Engines, ohne Lernen, hätten die sechs Wiederholungen exakt identisch mit dem ersten Durchgang sein müssen.

In einer "Normalpraxis" eines Schachspielers wie ich gerne sage, wird es halt nicht so sein daß sich eine Stellung tausende Male wiederholt sodaß sich eine Lernfunktion statistisch relevant auswirken darf. Sondern sie wird höchstens ein paar Mal vorkommen, wie in meinem Test.

Ein zweifelsfreier Nutzen bleibt: Die Zeitersparnis in der Analyse. Eine lernende Engine erinnert sich sofort an Evals die von größeren Tiefen stammen, ohne immer wieder denselben Zeitaufwand zu erfordern, um dorthin zu gelangen. Für praktische Partien ist eine evtl. Vermeidung von Eröffnungsfallen in die man früher fiel, quasi trivial (von mir seinerzeit schon bei Genius 5 dokumentiert), aber sonst scheint das kaum etwas meßbares zu bringen.

Es sei denn jemand überzeugt mich von meiner Meinung die ich zuvor hatte
Parent - - By Benno Hartwig Date 2013-11-27 15:41

> Bei perfekt deterministischen Engines...


Meine Erfahrung: bei mehr als einem Thread gibt es solch eine Determiniertheit nicht mal andeutungsweise!
Bei einem Thread: Ja? Mag annähernd sein, weiß nicht recht...

> Ein zweifelsfreier Nutzen bleibt: Die Zeitersparnis in der Analyse...


Da hast du recht.
Wenn denn tatsächlich eine bekannte Stellung auf das Brett kommt, dann wird die Zeit für einen Zug gespart. Und mit Glück stammt diese alte Analyse sogar aus einer längeren Denkzeit.
Wert des Nutzens? Vielleicht ungefähr so wie ein Zug mehr in einem Eröffnungsbuch. Wer groß mag solch ein Nutzen sein?

Benno
Parent - - By Christian Schmidt Date 2013-11-30 05:58
Das "Lernen" (ein zu schöner Ausdruck für diese Funktion) erfolgt unter dem Zeitdruck einer Partie. Deshalb ist ein durchdachter Zug im Eröffnungsbuch deutlich besser als ein "gelernter" Zug.
Parent - By Benno Hartwig Date 2013-11-30 11:00

> Das "Lernen" (ein zu schöner Ausdruck für diese Funktion) erfolgt unter dem Zeitdruck einer Partie. Deshalb ist ein durchdachter Zug im Eröffnungsbuch deutlich besser als ein "gelernter" Zug.


Stimmt schon.
Trotzdem, um mal eine Vorstellung zu gewinnen:
Welcher ELO-Vorteil könnte passen, wenn man ein Eröffnungsbuch überall um einen ply tiefer macht.
Sooo viel erwarte ich da irgendwie gar nicht.
Benno
Parent - - By Ches Player Date 2013-11-27 13:09
ich würde das etwas anders durchführen

bullet turniere jeweils 10.000 partien pro engine
dann sollten sich die lerneffekte zeigen
alle engines bis auf eine ohne lerning. d.h. einer lernt und muss sich eindeutig von turnier zu turnier steigern
Parent - By Tom Paul Date 2013-11-27 14:53
Mich würde ein Turnier mit lernfähige Stockfishversion 4 PA_GTB-001 gegen den neuesten Dev. Stockfish interessieren.

Z.B. die 500 Vorgabestellungen aus dem LS Testrun.
Oder andere Vorgabestellungen die mit maximal +0.50, besser noch weniger, bewertet werden.
10000 Partien
Bedenkzeit ergibt sich aus ->Dauer mindestens 2, 3 oder 4 Wochen.
Parent - - By Benno Hartwig Date 2013-11-27 14:54

> und ich sehen wollte ob und wie sie durch den Lerneffekt Resultate verbessern kann


Was erhofft man sich vom Lernen?

Vor allem doch, dass eine Engine sich nicht immer noch mal wieder auf dieselbe Weise reinlegen lässt.
Wenn die Gegner also gezielt darauf spielen würden, könnte unsere Engine sich dann besser behaupten, bewusst den Pfad verlassen.
Aber das versuchen die realen Gegner doch gar nicht, oder? Oder doch??

Und die Engine könnte versuchen, einen Gewinnpfad noch einmal zu spielen.
Aber besonders bei mehreren Threads kommt es doch immer mal wieder zu abweichenden Zügen in denselben Stellungen, und damit zu anderen Partien.
Dass solch ein "den Pfad noch mal spielen wollen" dann nur ein kurzes Stück weit führt, verwundert mich dann eigentlich nicht.

Außerdem:
"Dieser Zug war in einer anderen Partie schon mal gut, den mache ich noch mal!" ist vielleicht eine gute Idee, zumindest ist sie nicht schädlich.
aber
"Dieser Zug führte schon mal zu einer Niederlage. Dann nehme ich jetzt lieber einen anderen, obwohl der eigentlich schlechter bewertet ist!" könnte die Chancen eventuell sogar verschlechtern.

Benno
Parent - By Joe Nettelbeck Date 2013-11-27 19:47
Richtig. Solange ein bestimmter Zug nicht die Reaktion auf einen Fehler oder wenigstens auf eine positionelle Ungenauigkeit ist, wird es immer Gegenzüge geben, die ihn entkräften, denn schließlich ist Schach remis. Das heißt, dass ein Zug, der zu einer Gewinnposition führt, nur solange gut ist, bis es dem Gegner gelingt, ihn auszuhebeln. Außer eben, der Zug ergab sich aus einem Fehler des Gegners und ist demnach nicht zu widerlegen. Schach und eben auch Lernfunktionen sind somit nichts weiter als eine Art Rüstungswettlauf. Das gilt solange, bis einer patzt.
Parent - - By Matthias Gemuh Date 2013-11-27 15:10
Hallo Michael,
ich glaube du hast bewiesen, daß entweder die Lernfunktion von SF nicht fehlerfrei implementiert ist, oder länger (nach Anzahl der Partien) gelernt werden muß.
Wer von Spiel zu Spiel dazulernt, sollte dieselben Partien nach hinreichendem Lernen nicht mehr schlecht spielen.
Falls die Lernfunktion mehr als 10 Partien pro Stellung braucht, um einen klaren Unterschied zu machen, taugt sie meiner Meinung nach nichts.
Gruß,
Matthias.
Parent - - By chess player Date 2013-11-27 19:45
kannst du mal bitte eine beispielengine angeben in der das lernen funktioniert?
Parent - - By Matthias Gemuh Date 2013-11-27 23:04
Einige spezielle Versionen von RomiChess hatten eine sehr gute Lernfunktion.
Parent - - By Michael Scheidl Date 2013-11-28 01:06
Im Prinzip zweifle ich auch nicht am Stellungslernen von bewährten Engines wie Hiarcs oder Shredder, welche das Feature ja schon seit Urzeiten haben. Lediglich die Auswirkung auf Partieergebnisse ist mir nun weniger klar als zuvor, als meine Meinung noch nicht durch Fakten getrübt war
Parent - - By Tom Paul Date 2013-11-28 11:02
Eine Möglichkeit warum Stockfish die oben genannte Partie zuerst Remis spielt, dann wegen learning gewinnt und dann bei noch mehr learning verliert, ist das Problem mit Twofold Repetition.

Stockfish bewertet Twofold Repetition mit 0.00 und das ist falsch, somit wird der beste Zug nicht mehr gespielt, weil davor eine 0.00 Bewertung vorgekommen ist.
Stattdessen wird ein anderer Zug gespielt der entweder nur zum Remis oder zur Niederlage führt.
Parent - - By Benno Hartwig Date 2013-11-29 15:35

> Stockfish bewertet Twofold Repetition mit 0.00 und das ist falsch, somit wird der beste Zug nicht mehr gespielt, weil davor eine 0.00 Bewertung vorgekommen ist.


Ja, diese Bewertung kann nachteilig sein.
Z.B. wenn diese Schlinge durchlaufen wurde und anfangs immer mit z.B. +1,00 bewertet wurde, bis einem dann irgendwann nichts mehr einfiel.
Es könnte da ja durchaus in dieser Phase Alternativzüge mit +0,90-Bewertungen gegeben haben, die beim ersten Durchlauf als subobtimal  verworfen wurden, die in einem zweiten Durchlauf aber interessante Alternativen bieten würden.

Andererseits haben wir hier eine Stellung in der "Mir und dem Gegner beim ersten Versuch nichts Gescheites eingefallen ist!".
Das ist schließlich auch eine echte und wichtige Erkenntnis.

Wie würdest du denn diese zum zweiten mal erreichte Stellung bewerten?
"Einfach nur mit normalem Bewertungsbaum" fänd ich nicht passend, weil dann ja dieses nun ja erkannte und ggf. überaus hilfreiche "Mir und dem Gegner fiel dazu rein gar nix ein!!" schlicht ignoriert wird.
Wenn die Engine schlecht steht und die Chance sieht, in solch eine Stellung zu kommen, dann sollte sie dies im Regelfall doch auch anstreben, oder?

Benno
Parent - - By Tom Paul Date 2013-11-29 16:52
Benno Hartwig schrieb:


Andererseits haben wir hier eine Stellung in der "Mir und dem Gegner beim ersten Versuch nichts Gescheites eingefallen ist!".
Das ist schließlich auch eine echte und wichtige Erkenntnis.

Wie würdest du denn diese zum zweiten mal erreichte Stellung bewerten?
"Einfach nur mit normalem Bewertungsbaum" fänd ich nicht passend, weil dann ja dieses nun ja erkannte und ggf. überaus hilfreiche "Mir und dem Gegner fiel dazu rein gar nix ein!!" schlicht ignoriert wird.
Wenn die Engine schlecht steht und die Chance sieht, in solch eine Stellung zu kommen, dann sollte sie dies im Regelfall doch auch anstreben, oder?

Benno


Wenn der Gegner mich durch Threefold Repetition zum Remis zwingen kann, dann ist 0.00 korrekt, dass wird aber immer richtig mit 0.00 angegeben.
Wenn ich aber Twofold Repetition mit Absicht spiele aus mehreren Gründen, bevor ich dann den besten Zug auspacke, dann ist die Stellung immer noch genauso gut wie vorhin.
Also sollte sich auch an der Bewertung nichts ändern.
Parent - - By Benno Hartwig Date 2013-11-30 07:06 Edited 2013-11-30 07:36

> Also sollte sich auch an der Bewertung nichts ändern.


Und die tatsächliche Erkenntnis, dass weder ich noch mein Gegner damit was anfangen konnten, ignorierst du komplett?

Wenn die normale Bewertung +2,0 für dich ist, aus der du schon mal nichts machen konntest, dann würdest du auch jetzt eine+1.99-Alternative mit andere Entwicklungsmöglichkeiten nicht vorziehen??
Und schlimmer noch: wenn die normale Bewertung -2,00 ist, dann würdest willig in eine -1,99-Alternative mit anderen Abspielen abwickeln, mit der recht großen Gefahr, da dann zu verlieren???

Also, ich würde ganz bestimmt nicht wollen, dass 'meine' Engine das macht!
Benno
Parent - - By Tom Paul Date 2013-11-30 08:04 Edited 2013-11-30 08:09
Benno Hartwig schrieb:

1.Und die tatsächliche Erkenntnis, dass weder ich noch mein Gegner damit was anfangen konnten, ignorierst du komplett?

2.Wenn die normale Bewertung +2,0 für dich ist, aus der du schon mal nichts machen konntest, dann würdest du auch jetzt eine+1.99-Alternative mit andere Entwicklungsmöglichkeiten nicht vorziehen??
3.Und schlimmer noch: wenn die normale Bewertung -2,00 ist, dann würdest willig in eine -1,99-Alternative mit anderen Abspielen abwickeln, mit der recht großen Gefahr, da dann zu verlieren???

Also, ich würde ganz bestimmt nicht wollen, dass 'meine' Engine das macht!
Benno


1.Diese tatsächliche Erkenntnis von der du immer sprichst findet nur bei einigen Amateuren statt.
Oder denkst du im ernst das ein Profi ohne einen Plan zu haben die Züge wiederholt?
2.Dann wäre erstens die Bewertung falsch und zweitens kann so ein Problem durch Twofold Repetition nicht vorkommen, weil die Engine spätestens nach der Twofold Repetition die Threefold Repetition vermeiden und +1.99 spielen würde.
3.Dann wäre erstens die Bewertung falsch und zweitens wenn eine Engine -2.00 schlechter steht, dann spielt sie immer Threefold Repetition= Remis, wieso sollte sie in -1.99 Alternative übergehen? und was hat das mit Twofold Repetition zu tun?

1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. d3 d6 * +0.30
In dieser Stellung habe ich eine 61,8% Chance auf einen Sieg.

1. e4 e5 2. Nf3 Nc6 3. Bc4 Bc5 4. d3 d6 5. Ng5 Nh6 6. Nf3 Ng8 * +0.30
In dieser Stellung habe ich eine 61,8% Chance auf einen Sieg.
Und warum sollte ich die Chance das mein Gegner in der Wiederholung patzt nicht nutzen???
Da kann ich schnell mal mit 70%+ dastehen.
Und wenn es nicht klappt, dann habe ich immer noch meine 61,8%.
Sogar sehr starke Engines patzen in Wiederholungen. Da springen viele ELOs für eine Engine heraus.
Parent - By Benno Hartwig Date 2013-11-30 10:47 Edited 2013-11-30 11:13
Ich sprach davon, wie man Engines programmieren sollte. Schach-Profis wollte ich keine Ratschläge geben.
Mir ist einigermaßen unverständlich, warum ich dich nicht überzeugen konnte. Ich fand mich überzeugend.
Aber wir werden trotzdem beide mit unsere Meinung gut weiterleben können.
Benno

Korrektur:
Doch dein Vorgehen ist ggf. nicht schädlich wenn du gut stehst.
Gegen Engines aber vermutlich auch nicht nützlich.
Schädlich ist es, wenn du schlecht stehst, weil du ggf. diese Chance auf remis verpasst, wenn du stattdessen in eine nur wenig bessere Variante mit anderen Möglichkeiten für den Gegner einspielst.
Parent - - By Chess Player Date 2013-11-29 13:13
So stelle ich mir das Lernen vor. Auf der x-Achse ist die Anzahl der Turniere abgebildet. Y-Achse(Elo) bleibt.

Etwas zeckentfremdet das Diagramm:

Parent - By Tom Paul Date 2013-11-29 14:56
Also ich tippe mal auf einen Sieg für Stockfish 4 mit Lernen gegen den neuesten Stockfish Dev.!!!!!
Das ist doch mal eine Ansage bei dem ELO Unterschied.
Parent - - By Benno Hartwig Date 2013-11-29 15:24

> So stelle ich mir das Lernen vor.


Du stellst dir vor, dass Lernen gigantische 200 ELO bringen könnte???
Wieviel Petabyte an Erfahrung soll denn da angehäufelt werden?
Benno
Parent - - By Tom Paul Date 2013-11-29 16:44
Ja und dafür ist gar nicht so viel Speicherplatz von Nöten.

Idee:
Es werden hauptsächlich nur die Eröffnungszüge gelernt.
Daraus ergibt sich aus der Grundstellung heraus:
~45% Remis
~45% Siege durch lernen der verschiedenen Eröffnungsvarianten.
~10% Niederlagen, da wird uns keine (Petabyte) ansammeln wollen/können.
Parent - By Benno Hartwig Date 2013-11-29 16:50
Tom Paul schrieb:
Es werden hauptsächlich nur die Eröffnungszüge gelernt.
Daraus ergibt sich aus der Grundstellung heraus:
~45% Remis
~45% Siege durch lernen der verschiedenen Eröffnungsvarianten.
~10% Niederlagen, da wird uns keine (Petabyte) ansammeln wollen/können.
Wo sind sie, ich finde sie nicht, aber sie müssen hier doch irgendwo sein, die Zwinkersmilys!
Oder habe ich dich missverstanden?
Benno
Parent - By Chess Player Date 2013-11-29 22:57
Eine Engine die wirklich lernt, wird unbesiegbar werden! Sie lernt ja einfach immer wieder dazu!

Wer keine Fehler macht, kann dem zufolge auch nicht verlieren.
Up Topic Hauptforen / CSS-Forum / Lerneffekt auf Partieresultate höchst unklar!

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill