Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / CSS-Forum / Wollt ihr Stockfish mit Position Learning oder ohne?
Poll Wollt ihr Stockfish mit Position Learning oder ohne?
Mit 16 84%
Ohne 3 16%
- - By Tom Paul Date 2013-11-17 13:41
Mit
Ohne
Parent - - By Dirk Triebel Date 2013-11-17 21:35
Macht wohl nur Sinn, wenn das der Gegner auch kann. Aber wenns Komodo werden sollte ist mir nicht bekannt, das Komodo sowas kann. Außerdem denke ich, es schwächt die engine eher noch im Ergebnis, je nachdem wie es funktioniert. Aber denke es nicht ausreichend getestet.

Gruß,
Dirk
Parent - - By Michael Scheidl Date 2013-11-18 06:21 Edited 2013-11-18 06:24
Dieses Stellungslernen gibt es seit sehr vielen, ich glaube fast 20 Jahren, und ich denke es hat sich bewährt. Genius (5?) war eines der ersten Programme die es hatten. Shredder oder Hiarcs haben es auch schon sehr lange und es ist per Default eingeschaltet.

Von der Logik her sehe ich keinen Grund warum das jemals eine Engine schwächen sollte. Hierbei nehme ich an, daß natürlich nur Lernwerte benutzt werden die von derselben oder einer größeren Rechentiefe stammen. Warum sollte eine Engine in ein- und derselben Stellung quasi das Rad immer wieder neu erfinden müssen?

Die einzige mir bekannte Ausnahme - wobei ich nicht weiß wieviel sie ausmacht - wäre wenn man mit Critter zusammen mit dem Lernen auch "Resolve Score Drops" einschaltet. Soviel ich verstanden habe, entsteht dann mehr Rechenbedarf um Fail-Lows aufzulösen. Aber das ist eine Extraoption, die man vielleicht nicht unbedingt einschalten müßte... obwohl es IIRC fürs Lernen empfohlen wird. Habe jetzt gerade keine Readme nachgelesen.

P.S. Selbst Engines wie Pharon oder Crafty können es; bei einigen wie Fritz (min. bis 13) u.a. wundert es mich daß es immer noch fehlt.
Parent - - By Andreas Wutzke Date 2013-11-18 06:25
selbst M-Chess hatte das schon Mitte der 90'ziger......
Parent - - By Roland Riener Date 2013-11-18 14:09
Michael Scheidl schreibt:

Zitat:
Dieses Stellungslernen gibt es seit sehr vielen, ich glaube fast 20 Jahren, und ich denke es hat sich bewährt


Bisher habe ich an diesem Rädchen nicht gedreht - wie an vielen anderen, mir unverständlichen Engine-Parametern auch nicht.

Tatsächlich finde ich nun aber nur an sehr wenigen meiner Engines eine Einstellmöglichkeit, nämlich bei H2 und H3 "Learning". Bei den Naums 2.0 und 4.0 gibt es "Enable BOOK learning", das ist wohl nicht das Gleiche. Beim angesprochenen Critter finde ich nichts, oder es nennt sich anders, und bei Shredder 11 (SE) kommt man nicht in Engine Parameter hinein.

Machen vielleicht manche Engines das Stellungslernen stillschweigend ohne Abstellmöglichkeit?

Roland
Parent - - By Michael Scheidl Date 2013-11-18 20:43
Zitat:
Machen vielleicht manche Engines das Stellungslernen stillschweigend ohne Abstellmöglichkeit?

Das wäre mir neu... Shredder SE zeigt die Option (Checkbox) nur wegen der SE-Einschränkungen nicht an. Die Vollversion oder auch die Classic-Engine zeigen sie an.

Falls irgendeine Engine stillschweigend lernt, habe ich es nicht bemerkt. Doch dann müßte irgendwo ein mysteriöses, evtl. anwachsendes Lernfile herumliegen.

Bei Critter nennt sich die Option "Session file", es werden aber offesichtlich nicht die ganzen Hashtables gespeichert. Die Dateigröße ist per Default 32 MB. Ich habe sie auf 128 MB erhöht und die Nutzung bzw. Auslastung, die Critter beim Enginestart ausgibt, beträgt gerade einmal 0,4%. Allerdings läuft Critter bei mir nicht sehr oft. Hier ein Vorschlag für m.E. sinnvolle Änderungen der Critter-Grundeinstellungen:



Z.B. lasse ich statt Default: 8 Plies erst ab Tiefe 16 lernen, und selbst das wird ja rechnerisch in Nullkommanichts erreicht und überboten. Diese Werte sind für (m)ein Untere-Mittelklasse-Notebook ausgelegt. Übrigens wichtig wenn man Gaviota-Tables hat: Tablebase Usage: Everywhere einstellen, um den sonst üblichen Zugriff während der Suche zu aktivieren.
Parent - By Roland Riener Date 2013-11-18 21:56
Michael,

Danke für die Infos. Werde mal mit den Houdinis und Critter probieren, was sich mit Einschalten des Positionslernen tut.

Auf die Vermutung mit dem stillschweigenden Lernen bin ich gekommen, weil das Feature alt und weit verbreitet sein soll, aber bei den meisten meiner aktuellen Engines fehlt.

Roland
Parent - - By Dirk Triebel Date 2013-11-18 13:32
Servus,

Danke für die Infos.

Aber gibt es da schon irgendwo Tests die eine Spielstärkensteigerung mit Zahlen belegen? Ich dachte eigentlich, dass die engine Stellungen indem sie oft verliert hier nimmt um die Fehler/ Stellungen in Zukunft zu vermeiden. (Ich stell mir das so ähnlich wie bei einem Navi vor, wo die Strasse gesperrt ist und eine Umleitung zu fahren ist - Es wäre immer ein ungünstigerer Weg als in der Programmierung vorgesehen.) Wenn sie das tut, wird sie automatisch andere Stellungen nehmen, die ihr möglicherweise nicht so liegen (also die Umleitung) und somit wäre sie geschwächt, wenn diese Stellung dann öfter auftreten würde. So waren meine Gedanken.

Wenn es aber so ist wie du sagst:

"Hierbei nehme ich an, daß natürlich nur Lernwerte benutzt werden die von derselben oder einer größeren Rechentiefe stammen. Warum sollte eine Engine in ein- und derselben Stellung quasi das Rad immer wieder neu erfinden müssen?"

Dann hast natürlich recht und sollte es sollte ne Steigerung geben. Aber ehrlich gesagt weiß ich nicht so genau wie das position learning funktionert, und nach deiner Theorie müssten ja Unmengen an Daten abgespeichert werden. Aber wäre mal eine Idee ein und die selbe engine mit und ohne zu testen um zu sehen was es bringt;-). Es müsste ja ein file geben wo das position learing dann abgespeichert wird.

Gruß,
Dirk
Parent - By Michael Scheidl Date 2013-11-18 21:25
Ich glaube es gibt bei dem Stellungslernen das ich meine, zwei (ähnliche) grundsätzliche Konzepte:

1. Speichere Stellung und Bewertung, falls ein großer Bewertungssprung eingetreten ist.

2. Speichere jede Partiestellung samt Bewertung.

Die Logik ist: Wenn eine gelernte Position im Suchbaum (!) auftritt, kennt die Engine bereits eine besser fundierte Bewertung, die von einem früheren Rechenvorgang stammt, als die Stellung schon am Brett war. Beispielsweise könnte dort ein Fehlzug zu spät erkannt worden sein, und nun kann die Engine dieser Fortsetzung ausweichen. Aber logischerweise nicht zu etwas noch schlechter bewertetem, deswegen meine ich ja daß keine Schwächung zu befürchten ist.

Natürlich oft mit Verfeinerungen wie z.B. aber welcher Rechentiefe wird überhaupt gelernt u.a. Soweit ich verstanden habe, geschieht die Nutzung wie mit Hashtables... aber zu solchen Einzelheiten müßte man einen Programmierer fragen. Jedenfals glaube ich, ein Lernfile sollte von der Größe her dann jeweils noch ins RAM passen, zusätzlich zu den Hashtables. Daher wäre ich gegenüber sehr großen Lernfiles skeptisch (bei mehreren Engines ist das sowieso nicht einstellbar und die managen sich das selber).

Zur Datenmenge: Wie gesagt beträgt beispielsweise die Auslastung eines 128 MB-Lernfiles von Critter bei mir 0,4%. Das ist aber nur weil Critter als eine Engine von vielen sozusagen bei mir nicht sehr oft läuft. Aber man kann ableiten: Selbst wenn ich Critter 100 Mal so oft benutzt hätte, wäre die Auslastung erst 40%. D.h. bei dieser Art der Speicherung hält sich der Platzbedarf in Grenzen.

Die alte Freewareengine Pharaon hat IIRC die gelernten Positionen mit FEN in ASCII-Klartext gespeichert. Das benötigt pro Position natürlich "Unmengen" an Bytes, aber diese Engine hat sicher nicht jede Hinz-Kunz-Position reingespeichert. Vermutlich nur sehr große Bewertungssprünge.

Da sich diese quasi "mechanische" Form des Lernens nur Auswirken kann, wenn exakt dieselbe Stellung wieder irgendwie auftritt, ist es fast nur die Partiephase kurz nach Buch bzw. nach Eröffnungsvorgabe, wo in der Partiepraxis die Wirkung eintreten kann. Dort können gelernte Stellungen wieder auftauchen, nach der ersten Neuerung nicht mehr (es sei denn durch Zugumstellung) - Der Nutzen für die wiederholte Analyse irgendwelcher Stellungen hingegen kann überall eintreten.
Parent - - By chess player Date 2013-11-18 14:31
Zitat:
Dieses Stellungslernen gibt es seit sehr vielen, ich glaube fast 20 Jahren, und ich denke es hat sich bewährt.


Woran machst Du das fest? Ich kenne keinerlei Untersuchungen dazu. Erst recht keine aussagekräftige!
Parent - By Michael Scheidl Date 2013-11-18 21:34
Hauptsächlich daran, daß - soweit mir bekannt - noch nie ein Programmierer der eine Lernfunktion in seine Engine einbaute (darunter Shredder, Hiarcs, Crafty) diese wieder ausgebaut hat.

Und außerdem durch Logik, denn wie soll denn eine Engine die lernt, dadurch schwächer werden als eine identische die jedoch nichts lernt, also dazu verdammt ist denselben schlechten Zug immer wieder zu machen? Da nimmt man doch schon a priori das Gegenteil an.

Somit liegt die Beweislast bei den Skeptikern.
Parent - - By Frank Brenner Date 2013-11-18 00:28
Ich kann leider nicht abstimmen, da ich nicht registriert bin.

Aber ich stimme mit all meinen 12 Stimmen dagegen!
Parent - By Benno Hartwig Date 2013-11-19 06:20
[quote="Frank Brenner"]Ich kann leider nicht abstimmen, da ich nicht registriert bin.[/quote]Warum bittudennich registriert? 
Up Topic Hauptforen / CSS-Forum / Wollt ihr Stockfish mit Position Learning oder ohne?

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill