Not logged inCSS-Forum
Forum CSS-Online Help Search Login
CSS-Shop Impressum Datenschutz
Up Topic Hauptforen / Schachprogrammierung / Netztraining und Generierung Lc0 NN, NNUE
- - By Lothar Jung Date 2021-07-09 12:55 Edited 2021-07-09 13:08 Upvotes 1
AlphaZero Veröffentlichung:

Assessing Game Balance with AlphaZero: Exploring Alternative Rule Sets in Chess

https://arxiv.org/pdf/2009.04374.pdf

Beitrag zu NNUE auf „Chessprogramming.org“:

https://www.chessprogramming.org/Stockfish_NNUE

A general reinforcement learning algorithm that masters chess, shogi and Go through self-play:
<https://deepmind.com/documents/260/alphazero_preprint.pdf>
Mastering the game of Go with Deep Neural Networks & Tree Search:
<https://deepmind.com/research/publications/mastering-game-go-deep-neural-networks-tree-search/>
Mastering the game of Go without Human Knowledge:
<https://deepmind.com/research/publications/mastering-game-go-without-human-knowledge/>
Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm:
<https://arxiv.org/abs/1712.01815>
Efficient selectivity and backup operators in Monte-Carlo tree search:
<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.81.6817>
Bandit based Monte-Carlo Planning:
<http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.102.1296>
Train longer, generalize better: closing the generalization gap in large batch training of neural networks:
<https://arxiv.org/abs/1705.08741>
Squeeze-and-Excitation Networks:
<https://arxiv.org/abs/1709.01507>

https://www.chessjournal.com/alphazero/

YouTube Video zur AlphaZero Spielweise:

https://youtu.be/0g9SlVdv1PY

Veröffentlichung: Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm

https://arxiv.org/pdf/1712.01815.pdf

https://github.com/LeelaChessZero/lc0/wiki/Technical-Explanation-of-Leela-Chess-Zero

https://medium.com/applied-data-science/alphago-zero-explained-in-one-diagram-365f5abf67e0

Hier ist eine wichtige AlphaZero Veröffentlichung:

Assessing Game Balance with AlphaZero: Exploring Alternative Rule Sets in Chess

https://arxiv.org/pdf/2009.04374.pdf

Zusammenfassung bei Chess.com:

https://www.chess.com/news/view/new-alphazero-paper-explores-chess-variants
Parent - - By Peter Martan Date 2021-07-10 09:21 Upvotes 1
Du bist doch auch im Outskirts, oder?
Hast du dir diesen Thread dort schon mal angeschaut?

http://outskirts.altervista.org/forum/viewtopic.php?f=41&t=2009&hilit=gensfen
Parent - - By Lothar Jung Date 2021-07-10 09:37 Upvotes 1
Hallo Peter,

ja ich bin in Outskirts registriert.

Danke für den nützlichen Tipp!

Hier ist das NNUE-Toolkit zum runterladen:

http://outskirts.altervista.org/forum/viewtopic.php?f=41&hilit=gensfen&t=2009&sid=719817568f0e9eab0814f27ca96e2d35

https://mega.nz/folder/OtRRlSLZ#ZfmDUuDTI7NIRQcdqcX6SA

Lothar
Parent - - By Peter Martan Date 2021-07-10 09:50 Upvotes 1
Ich weiß, Lothar, dein direkter Link ist zum Tool Nr. 1 (nnue_eval), es gibt noch ein paar weitere (auf site 2 kommen z.B. Nr.2 und 3, nnue_extract und nnue_clean) und ich hab' sie alle damals runtergeladen. Meine Versuche damit sind aber nach ein bisschen Rumprobieren stecken geblieben und ich hab's dann wieder gelassen.
Wenn du selbst praktische Erfahrung mit den Tools sammeln willst und zu Ergebnissen kommst, lass davon bitte hier lesen, vielleicht schaff' ich's ja dann mit deiner Hilfe doch auch, es eilt in keiner Weise, weil ich mir das alles ohnehin erst weiter antun werden, wenn mein neuer Rechner ankommt. Und dann muss ich ihn erst noch einrichten, das dauert alles sicher noch ein paar Wochen.
Danke übrigens für die viele Lektüre, die du hier anbietest, grüßt
Parent - - By Lothar Jung Date 2021-07-10 11:26 Upvotes 1
Interessant wäre das Tool um ein Endspiel-NNUE aus einem Datensatz von Endspielpositionen zu generieren.
Läßt SF oder eine andere NNUE-Engine das Laden von zwei NNUEs zu?

Lothar
Parent - - By Jörg Oster Date 2021-07-10 11:52 Upvotes 1
Stockfish nicht.
Parent - By Hauke Lutz Date 2021-07-10 12:39 Upvotes 1
Das klingt nach einem Fall für Eman Chimera GUI v1.10 um je nach Partiefortschritt ein anderes NNUE zu verwenden.
Parent - - By Peter Martan Date 2021-07-10 13:33 Edited 2021-07-10 14:01 Upvotes 1
Ich kenne noch keine A-B-Engine, die das kann, außer man nennt z.B. Nucleus eine eigene Engine. Um den Leelafish ist es auch wieder still geworden. Solche mehr GUI- artige Features haben mich auch noch nie wirklich vom Hocker gerissen, seit dem Shredder- 3Hirn hat sich da nicht mehr viel getan eigentlich, Chimera ist reichlicher automatisch einstellbar, aber eigentlich auch nur die eine GUI- Erweiterung.
Das einzige, was an echtem shared hash je angeboten wurde, ist für mich nach wie vor die Rybka- Spielart, wo mehr als ein Engine- Prozess mit verschiedenen Parametern in einen gemeinsamen Hash eingetragen hat.

Aber das Problem wäre sowieso, die Hierarchie bzw. den Zeitpunkt zu definieren, ab wann und wo auf welches Netzt zugegriffen werden sollte, wenn man's nicht manuell wechselte, was man ja jetzt auch schon kann.

Ja, Endspiel- Netze wären auch eine feine Sache, für LC0 gibt's ja die von Dietrich Kappe (Ender- Nets). SF braucht im Endspiel an und für sich weniger Hilfe als immer noch in der Eröffnung, mich würden Netze zu Partiesammlungen bestimmter Eröffnungen am meisten reizen.

Dietrich könnte uns mit dem Bau sowohl von LC0- Netzen als auch von NNsUE natürlich sicher alle Fragen beantworten, die wir hätten, es wäre aber halt gut, wir wüssten schon genau, wie wir was fragen sollten, anders ausgedrückt, wir wüssten wenigstens, was wir nicht wüssten (siehe Sokrates)

Auch wird er sich nicht mit irgendwelchen fertigen Tools Anderer herumärgern, wenn er seine eigenen Scripts dafür hat.

Das ist ein Lernproblem an und für sich, man bräuchte Lehrer, die sich auf einen bestimmten (Nicht)Wissensstand einer Gruppe von Schülern einließen, scheitert an derlei schon lange immer wieder,
Parent - - By Lothar Jung Date 2021-07-10 15:54 Upvotes 2
Parent - By Lothar Jung Date 2021-08-24 14:55 Upvotes 1
Hier ein Parser zum eigenen Lc0 Netztraining:

https://github.com/OfekShochat/lczero-training
Parent - - By Lothar Jung Date 2021-07-13 10:35 Upvotes 2
Der Blog erklärt die technischen Rahmenbedingungen von Lc0:

https://lczero.org/dev/wiki/technical-explanation-of-leela-chess-zero/
Parent - By Werner Schüle Date 2021-07-13 16:22 Upvotes 1
Ich habe Scorpio schon mal mit einem zusätzlichen Endspielnetz getestet: http://www.cegt.net/40_40%20Rating%20List/40_40%20SingleVersion/35.html.  Mit dem ens net und mit Medium Ender. Im NNUE Modus geht das allerdings auch nicht. Inzwischen ist das eigene Netz von Scorpio so stark, dass das ME nicht mehr hilft.
GCP findet die Verwendung von einem 2. Netz übrigens kontraproduktiv.
Parent - - By Lothar Jung Date 2021-07-26 18:23 Upvotes 1
Hier eine Zusammenstellung wichtiger Resourcen zur NNUE-Entwicklung:

With all new projects, a resource channel is highly recommended. **Please keep this channel chat-free.** This channel is meant to house useful resources for future reference and or newcomers.

Stockfish NNUE Wiki
https://www.qhapaq.org/shogi/shogiwiki/stockfish-nnue/

Original NNUE Talkchess thread
http://talkchess.com/forum3/viewtopic.php?t=74059****

Repository
https://github.com/nodchip/Stockfish

Stockfish NNUE Guide
http://yaneuraou.yaneu.com/2020/06/19/stockfish-nnue-the-complete-guide/

Stockfish NNUE Docker
https://github.com/jessegersensonchess/stockfish-nnue-docker/blob/master/Dockerfile

Translation of https://www.apply.computer-shogi.org/wcsc28/appeal/the_end_of_genesis_T.N.K.evolution_turbo_type_D/nnue.pdf, a paper about NNUE.
https://cdn.discordapp.com/attachments/724700045525647420/730263089311907880/Neural_network_type_shogi_evaluation_function_capable_of_high-speed_difference_calculation.html

FireFather SF-NNUE Repository
https://github.com/FireFather/sf-nnue/releases
Parent - By Peter Martan Date 2021-07-26 18:36 Upvotes 1
Lothar Jung schrieb:

FireFather SF-NNUE Repository
<a class='ura' href='https://github.com/FireFather/sf-nnue/releases'>https://github.com/FireFather/sf-nnue/releases</a>

https://github.com/FireFather/nnue-gui
Parent - By Lothar Jung Date 2021-07-28 20:47 Upvotes 1
Parent - By Lothar Jung Date 2022-03-04 21:42 Edited 2022-03-04 21:48 Upvotes 1
Hier ein YouTube Video zu “Embedding the Stockfish NNUU to any other Engine”:

https://youtu.be/59Fp4JVNob0
- - By Peter Martan Date 2021-07-13 14:40 Upvotes 1
War mir jetzt nicht sicher, ob das hierher oder doch ins Hauptforum gehört, aber hier gibt's schon mehr zu den speziell trainierten Netzen.
Dietrich Kappe hat eine neue Version seines Dark Horse NNUE veröffentlicht:

http://talkchess.com/forum3/viewtopic.php?p=899296#p899296

https://www.patreon.com/posts/53624852

Mit Crystal hat's einen neuen Rekord (92/114) in Vincent Lejeunes kleinem Subset von 114 Positionen der Hard Talkchess- Sammlung in meiner eigenen MultiPV- List gebracht, wie ich im Thread dort direkt unter dem vom Link gepostet habe.
Parent - By Lothar Jung Date 2021-07-13 16:08 Upvotes 1
Danke Peter,

natürlich gehört dieses neue NNUE hierhin.
Ein neues Netz mit hervorragenden Analyseergebnissen.

Grüße

Lothar
Parent - By Lothar Jung Date 2021-08-04 18:10 Edited 2021-08-04 18:32 Upvotes 2
- By Lothar Jung Date 2021-09-01 08:52 Upvotes 1
Hier ein minimalistisch Lc0-Trainingstool in Python:

https://github.com/Rocketknight1/minimal_lczero/blob/master/tf_data_pipeline.py
- By Lothar Jung Date 2021-10-06 08:53 Edited 2021-10-06 08:56 Upvotes 1
Hier Blogs über die Funktionsweise von NNUE und NN

https://saumikn.com/blog/a-brief-guide-to-stockfish-nnue/

https://saumikn.com/blog/a-brief-guide-to-neural-network-chess-engines/
- By Lothar Jung Date 2022-04-10 21:00 Edited 2022-04-10 21:06 Upvotes 1
Für die Generierung von NNUE Netzen wird NNUE-PyTorch eingesetzt.

https://github.com/glinscott/nnue-pytorch

Hier der umfassendste Artikel über Stockfish-NNUE:

https://www.chessprogramming.org/Stockfish_NNUE

Hier die FireFather NNUE-GUI:

https://github.com/FireFather/nnue-gui
- By Lothar Jung Date 2022-11-29 16:52 Upvotes 1
Hier die besten getesteten T78, T80 und T81 Netze:

https://web237.server28.eu/lc0/charts/
- By Lothar Jung Date 2022-11-30 16:26 Upvotes 1
Hier der aktuelle Lc0 Trainingscode auf GitHub:

https://github.com/Ergodice/lczero-training/blob/e89631675f9a8e582c65b374fa37460c28eb2452/tf/tfprocess.py
- By Lothar Jung Date 2023-02-04 22:14
Google Veröffentlichung: „cHOW TO TRAIN YOUR OWN LC0 NET“:

https://docs.google.com/document/d/1pB2MtqVVgYC2BwJbIrVvP2xWe5KIFFVteEqZroMf20E/edit
- By Lothar Jung Date 2023-02-25 07:33
Hier ist ein Tool zur Aktualisierung von TensorFlow „TensorFlow 2.0 upgrader service“:

https://github.com/lc0/tf2up
- By Lothar Jung Date 2023-02-26 15:15
Hier ist die letzte TensorFlow Version 2.2 die Windows 10 unterstützt:

https://haroonshakeel.medium.com/installing-tensorflow-2-1-with-cuda-and-cudnn-on-windows-10-c90fa309536a
- By Lothar Jung Date 2023-06-25 18:47
Leela Chess Zero (LCZero oder Lc0) ist ein neuronales Netzwerk, das Schach spielt und auf den Prinzipien des AlphaGo-Zero-Algorithmus von DeepMind aufbaut. Es lernt nur aus den Partien, die es gegen sich selbst spielt, ohne auf Menschen gespielte Spiele oder Schachöffnungsbücher zu schauen.

Die Netzwerke in Lc0 werden in zwei Stufen trainiert: Self-Play und Deep Learning.

1. Self-Play: In dieser Phase spielt das Programm eine große Anzahl von Schachpartien gegen sich selbst. Jedes Spiel beginnt mit einer zufälligen Position (um eine Vielfalt von Positionen zu gewährleisten), und das Programm sucht und spielt Züge basierend auf dem aktuellen neuronalen Netzwerk.

2. Deep Learning: In dieser Phase werden die Daten aus dem Self-Play genommen und verwendet, um das neuronale Netzwerk zu trainieren. Das ist ein überwachter Lernprozess, bei dem das Netzwerk vorhersagen soll, welche Züge es in der Vergangenheit ausgewählt hat und wie diese Spiele ausgegangen sind.

Die genauen Parameter und Gewichtungen, die während des Trainings verwendet werden, können variieren und sind oft das Ergebnis umfangreicher Tests und Feinabstimmung. Hier sind einige wichtige Aspekte, die berücksichtigt werden:

- Lernrate: Dies ist ein Parameter, der bestimmt, wie stark die Gewichte und Bias-Werte des Netzes während des Gradientenabstiegs-Updates geändert werden. Eine zu hohe Lernrate kann zu einem unstabilen Training führen, während eine zu niedrige Lernrate zu einem sehr langsamen Training führt.

- Batch-Größe: Dies ist die Anzahl der Trainingsbeispiele, die gleichzeitig für ein Update der Netzwerkparameter verwendet werden. Größere Batches erfordern mehr Speicher, können aber zu stabileren und genaueren Updates führen.

- Anzahl der Trainingsepochen: Eine Epoche ist eine vollständige Vorwärts- und Rückwärtsdurchlaufen aller Trainingsexemplare. Die Anzahl der Epochen bestimmt, wie oft der gesamte Datensatz durchlaufen wird.

- Aktivierungsfunktionen: Diese bestimmen die Ausgabe eines Neurons basierend auf seinen Eingaben. Beliebte Aktivierungsfunktionen sind ReLU (Rectified Linear Unit), Sigmoid und Tanh.

- Regularisierung: Methoden wie Gewichtsverfall und Dropout können verwendet werden, um Overfitting zu verhindern und die Robustheit des Modells zu verbessern.

Es ist wichtig zu beachten, dass das Training eines Modells wie Lc0 viel Zeit und Rechenleistung erfordert, und es ist oft eine Kunst, die richtige Balance zwischen den verschiedenen Parametern zu finden.
- By Lothar Jung Date 2023-07-14 09:40
There is pr1682 ("Action replay" - <https://github.com/LeelaChessZero/lc0/pull/1682>) that does selfplay and generates training data from the pgn as if it was played by lc0. But it takes time.
- By Lothar Jung Date 2023-09-21 12:03
Information based explanation methods for deep learning agents – with applications on large open-source chess models

https://arxiv.org/pdf/2309.09702.pdf

Hier eine Demo der Trainingsmaske:

https://patrik-ha.github.io/ii-map/

Dort gibt man eine beliebige FEN Position ein.

https://github.com/patrik-ha/
Up Topic Hauptforen / Schachprogrammierung / Netztraining und Generierung Lc0 NN, NNUE

Powered by mwForum 2.29.3 © 1999-2014 Markus Wichitill