Kann Ihnen eine Schachengine sagen, warum ein Zug schlecht oder gut ist? Angenommen, eine Schachengine sagt, dass die Punktzahl gegen meinen Gegner derzeit +2 zu meinen Gunsten beträgt. Ich mache dann einen Zug und meine Punktzahl sinkt auf 1,4. Kann mir irgendein Motor sagen, was ich falsch gemacht habe, so dass meine Punktzahl von 2 auf 1,4 gesunken ist (vorausgesetzt, ich habe kein Stück oder Bauern usw. aufgehängt)?
Es scheint mir, dass es sinnlos ist, wenn Schachprogrammierer ihre Programme noch stärker machen, und es wäre für den durchschnittlichen Schachspieler viel vorteilhafter, wenn sie uns von ihren Programmen anweisen lassen könnten, warum ein Zug schlecht (oder gut) ist, vorausgesetzt, sie können dies derzeit nicht mach das.
Antworten:
Irgendwie (aber nicht wirklich) - und es wird für Motoren tatsächlich schwieriger , dies für Sie zu tun. Um zu verstehen, warum, müssen Sie verstehen, wie die Bewertung verläuft. Motoren können in der Regel Schnellauswertungen an einer bestimmten Position vornehmen und ihr einen Rohpunktwert geben. Unabhängig von der Position spielen sie dann vorwärts und versuchen, die Linie nach vorne zu finden, die diese Punktzahl für beide Seiten optimiert.
Es ist wichtig zu verstehen, dass die Punktzahl '2.0' oder '1.4' nicht die Bewertung / Punktzahl für die aktuelle Position ist. Stattdessen bewegt sich die Bewertung N auf der ganzen Linie, wobei jede Seite den besten Zug spielt, den die Engine gefunden hat. Aus diesem Grund springt der "Aktuelle Bewertungswert" herum, während der Computer nachdenkt. Es ist nicht so, dass sich die 'Punktzahl' für eine Position geändert hat - es ist nur so, dass eine andere Linie gefunden wurde, die sich vorwärts bewegte und an einer anderen Position endete (die eine andere Punktzahl hatte).
In der Vergangenheit saugten Motoren. Nicht nur wegen suboptimaler Algorithmen, sondern auch wegen sehr langsamer Hardware - wenn Sie Zinseszinsen für mächtig halten, ist dies nichts im Vergleich zu Moores Gesetz . Computer blickten damals also nur ein paar Schritte in die Zukunft. Das machte es für einen Menschen relativ einfach, der Logik zu folgen - Ihre Punktzahl ging zurück, weil Sie in der nächsten Runde Ihren Ritter verlieren.
Aber jetzt? Wenn Ihre Punktzahl von '2.0' auf '-0.3' gestiegen ist, ist es möglich, dass Sie aufgrund einiger unvermeidbarer Taktiken in den nächsten 7 Zügen den Austausch aufgeben müssen, um zu vermeiden, dass Sie Ihre Königin verlieren oder schachmatt werden . Aber es ist schwer, den Sprung von "Hier ist die Position jetzt" und "Nun, ich habe in Zukunft 20 Milliarden Positionen bewertet und vertraue mir, wenn ich sage, dass Sie den Turm für ihren Bischof geopfert haben, war das Beste, auf das Sie hoffen konnten."
quelle
@D_M erwähnte Chessmaster, berichtet jedoch nur über sehr einfache statische Funktionen wie:
Weißt du warum Chessmaster das getan hat? Das liegt daran, dass die Implementierung einfach war.
NEIN . Chesmaster kann das nicht. Das kann keine Software. Wir haben nicht die Technologie, um das zu tun. Herkömmliche Motorprogrammiertechniken können das nicht.
Um das zu tun, was Sie beschreiben, benötigen wir fortgeschrittene Modelle für Mathematik / maschinelles Lernen. Mir ist so etwas nicht bekannt.
quelle
Zusätzlich zu anderen Antworten bewerten Motoren Positionen wie Menschen nicht, sodass sie keine gute Erklärung dafür liefern können, warum sie Ihren Schritt für minderwertig halten (Betonung auf sie denken, nicht unbedingt).
Sie können jedoch mithilfe von Motorvorschlägen den Seitenlinien folgen und verstehen, warum diese minderwertig waren. Zumindest mache ich das so.
Könnte es einen Motor geben, der das kann? Ich denke ja, aber aus geschäftlicher Sicht ist wahrscheinlich ein undurchführbar großer Aufwand notwendig.
quelle
Ich denke, die Schachengine kann es Ihnen "sagen", aber auf indirekte Weise.
Ich würde mehrere verschiedene Züge von derselben Position aus spielen. Die Schach-Engine gibt Ihnen (vermutlich) für jede eine andere Punktzahl.
Auf diese Weise können Sie die verschiedenen Züge "ordnen". Vielleicht entsteht ein Muster. Wenn nicht, möchten Sie vielleicht einen (stärkeren) menschlichen Spieler dazu bringen, Ihnen die Rangliste der Schachmaschine zu erklären.
quelle
Ja, ich habe Programme gesehen, die versuchen zu erklären, warum ein Zug in der Sprache gut oder schlecht ist. Chessmaster 9000 würde dies tun.
Viele Motoren zeigen Ihnen die beste Linie für jede Bewegung. Es kann Ihnen also sagen, dass wenn Sie g6 spielen, erwartet wird, dass das Spiel f5 gxf5 Sxf5 wird, während wenn Sie b6 spielen, erwartet wird, dass das Spiel a5 bxa5 Bxa5 geht. Oft kann man von dort aus sehen, warum der Umzug gut oder schlecht war. Aber manchmal ist es immer noch sehr subtil.
Hier gibt es ein Tool , mit dem Sie eine Position eingeben können und das Ihnen genau sagt, warum Stockfish die Position so bewertet, wie sie es tut. Es funktioniert nur für eine statische Position (es schaut überhaupt nicht nach vorne), aber es ist immer noch interessant.
quelle
Nein. Obwohl der von allen erwähnte Schachmeister Ihnen einige grundlegende Dinge sagen kann, z. B. ob die folgende Zeile zu einem Tauschopfer führt oder Sie einen Bauern verlieren und so weiter.
Sie können dies aber auch selbst analysieren, indem Sie die Zeilen herunterspielen. Es gibt keine Schach-Engines und ich sehe in naher Zukunft keine, die erklären können, warum der Zug gut / schlecht ist, es sei denn, er kostet Sie einen wesentlichen Unterschied. Da ein Motor möglicherweise einen Zug gespielt hat, um seine Position in der Zukunft zu verbessern, etwa nach 50 Zügen. Es kann Ihnen auf keinen Fall erklären, warum dieser Zug nach 50 Zügen zu einer besseren Position führt.
Auch große Schach-Engines auf dem Markt wie Stockfish usw. machen sich nicht einmal die Mühe, solche Funktionen aufzunehmen, bei denen die Level-Schach-Engines völlig anders sind und sehr schwer zu analysieren sind, selbst wenn wir eine Erklärung für jeden Zug erhalten.
quelle
Die Motorbewertung ("2" / "1,4") ist in der Tat sehr ähnlich der Bewertung eines Menschen durch einen Menschen. Es handelt sich im Grunde genommen um eine Summe verschiedener Faktoren wie Material , Königssicherheit , Stückaktivität usw., die nicht für die aktuelle Position, sondern für die Position bewertet werden, die ungefähr 20 Schritte voraus ist. vorausgesetzt, perfektes Spiel von beiden Seiten.
Im Prinzip könnte man versuchen, die Änderung all dieser Faktoren separat zu überwachen (anstatt nur deren Summe wie bei Motoren). Wenn beispielsweise ein Zug später zu einem niedrigeren Wert für "Königssicherheit" führt als der beste Zug, könnte man versucht sein, dem Lernenden etwas zu sagen wie: Ihr letzter Zug hat Ihren König anfälliger gemacht
Ich bezweifle jedoch, dass dies in tatsächlichen Spielen funktionieren würde, weil:
Aus diesem Grund bezweifle ich, dass Computer Ihnen zumindest mit der aktuellen Technologie das positionelle oder intuitive Spielen (basierend auf Prinzipien) beibringen können. Verwenden Sie lieber klassische Methoden wie andere Menschen, lesen / sehen / hören Sie kommentierte Spiele usw.
quelle