www.wikidata.de-de.nina.az
NNUE revertiertes Akronym fur englisch Efficiently Updatable Neural Network ursprunglich gespiegelt IIUƎ geschrieben 1 deutsch Effizient aktualisierbares neuronales Netz ist eine spezielle Architektur eines neuronalen Netzwerks das anders als ublich nicht auf Grafikprozessoren GPU angewiesen ist sondern bereits auf dem Zentralprozessor CPU eines Computers effizient lauft Wichtige Anwendung ist der Ersatz der klassischen Bewertungsfunktion in Computerbrettspielen insbesondere beim Computerschach wodurch eine erhebliche Steigerung der Spielstarke erreicht wird Inhaltsverzeichnis 1 Namensgebung 2 Geschichte 3 Prinzip 4 Struktur 5 Literatur 6 Weblinks 7 EinzelnachweiseNamensgebung Bearbeiten nbsp Nue ist ein Mischwesen aus der japanischen Mythologie mit dem Kopf eines Affen dem Korper eines Marderhunds den Beinen eines Tigers und einer Schlange als Schwanz Als Namenspaten wahlte der Entwickler das japanische Fabelwesen Nue aus 2 und bildete dazu aus den Anfangsbuchstaben von Efficiently Updatable Neural Network also EUNN das Inverse IIUƎ 3 Lautmalerisch ergibt sich so daruber hinaus die Assoziation zu englisch New also Neu Geschichte BearbeitenNNUE wurde von dem japanischen Softwareentwickler Yu Nasu fur das Computer Shōgi einer japanischen Variante des Computerschachs entwickelt und in seiner zur 28 Computer Shōgi Weltmeisterschaft veroffentlichten Publikation im April 2018 vorgestellt siehe Literatur Grundidee ist die durch menschliche Experten oft uber viele Jahre hinweg muhsam heuristisch optimierte Bewertungsfunktion durch eine maschinell erzeugte zu ersetzen Hierzu wird vorab ein neuronales Netzwerk bestehend aus nur vier Schichten anhand von vielen Millionen Schachstellungen automatisch trainiert und das so optimierte Netzwerk anschliessend als neuer Teil des Schachprogramms zur Stellungsbewertung genutzt Die neue Methode wurde zunachst offentlich wenig wahrgenommen und vermutlich von einigen vollig unterschatzt bis die Meinung umschlug und sie als Revolution bezeichnet wurde 4 Der niederlandische Computerschach Pionier Ed Schroder Programmierer des legendaren Schachprogramms Rebel das 1992 die Computerschachweltmeisterschaft WCCC gewann schrieb im Sommer 2020 zu NNUE 5 A new revolution in computer chess is taking place in my opinion it will once again change computer chess dramatically the coming years looking at the first results Eine neue Revolution im Computerschach findet statt meiner Meinung nach wird sie noch einmal das Computerschach in den kommenden Jahren dramatisch verandern wenn man die ersten Ergebnisse betrachtet Ed Schroder Dies geschah kurz nachdem es im Mai 2020 einen ersten Proof of Concept fur NNUE zusammen mit einer Schach Engine nicht Shōgi gegeben hatte Probeweise wurde es in eine Entwicklungsversion des freien Schachprogramms Stockfish implementiert 6 Nachdem dies erfolgreich gelungen war wurde ab August 2020 NNUE regularer Bestandteil der auf Stockfish 11 basierenden neuen Entwicklungsversionen Am 2 September 2020 schliesslich wurde die Version Stockfish 12 mit dem folgenden Kommentar veroffentlicht 7 This version of Stockfish plays significantly stronger than any of its predecessors In a match against Stockfish 11 Stockfish 12 will typically win at least ten times more game pairs than it loses Diese Version von Stockfish spielt deutlich starker als alle ihre Vorganger In einem Match gegen Stockfish 11 gewinnt Stockfish 12 normalerweise mindestens zehnmal mehr Spielpaare als es verliert stockfishchess org NNUE ersetzt bei Stockfish 12 optional Parameter Use NNUE die herkommliche Bewertungsfunktion 8 Bereits nach weniger als einem Monat zeigte sich der neue Stockfish NNUE gegenuber dem bisherigen ohne NNUE um mehr als hundert Elo Punkte verbessert Eine Spielstarkesteigerung um solch einen Wert benotigt in der Regel etwa zwei Jahre traditioneller Entwicklungsarbeit und beweist das Potenzial der neuen Methode 9 Danach folgten weitere Schach Engines wie RubiChess Version 1 8 NNUE 10 Minic Version 2 48 NNUE Orion Version 0 7 nnue 11 und Igel Version 2 70 NNUE 12 die mithilfe von NNUE ihre Spielstarke teilweise um mehr als zweihundert Elo Punkte steigern konnten 13 Auch Programme wie Zeus Version 9 3 NNUE Cfish Version 180820 NNUE AI Version 13 3 NNUE ShashChess Version 13 NNUE BrainLearn Version 10 NNUE und CorChess Version NNUE 170820 setzten NNUE mit Erfolg ein und erreichten damit obere Platze bei Computerschachturnieren 14 Prinzip Bearbeiten nbsp Alpha Beta SucheZur Ermittlung der optimalen Spielstrategie fur endliche Zwei Personen Nullsummenspiele mit perfekter Information wird grundsatzlich der Minimax Algorithmus benutzt Zu diesen Spielen gehoren Brettspiele bei denen beide Spieler den kompletten Spielverlauf der Partie sowie die aktuelle Position kennen Beispiele sind Schach Go Othello Dame Muhle und Vier gewinnt Eine optimierte Variante dieses Algorithmus ist die Alpha Beta Suche Bild Ein wichtiger und zeitkritischer Bestandteil des Algorithmus ist die Berechnung der Bewertungsfunktion am Ende jeder Verzweigung des Suchbaums am unteren Rand im Bild Je besser die Brettstellung fur den zu betrachtenden Spieler ist desto grosser ist der Wert dieser Funktion Ist die Stellung ausgeglichen dann ist der Wert null Gesucht wird der nachste Zug der bei angenommenem nach Moglichkeit optimalem Gegenspiel den hochsten Wert ergibt und damit die Gewinnwahrscheinlichkeit maximiert Da dazu oft Millionen von unterschiedlichen Positionen betrachtet und bewertet werden mussen ist zeitliche Effizienz bei der Berechnung der Bewertung von entscheidender Bedeutung Falls der Algorithmus sowie der Rest des Spieleprogramms komplett auf GPUs lauft ist es zweckmassig auch die Bewertungsfunktion mit deren Hilfe berechnen zu lassen Allerdings ist meist die Programmierung von GPUs insbesondere fur Computerspiele Software deutlich aufwendiger komplizierter und fehlertrachtiger als mithilfe von CPUs Auch sind viele leistungsfahige Spieleprogramme aus historischen Grunden da damals noch keine GPUs zur Verfugung standen auf CPUs entstanden und optimiert worden Eine Portierung des Programm Codes ist daher nicht sinnvoll und ware sehr aufwendig Daruber hinaus sollen fur Spieleprogramme allgemein keine leistungsfahigen GPUs fur die Lauffahigkeit des Programms vorausgesetzt werden mussen Daher laufen sie in der Regel auf CPUs Wenn man allerdings fur die Bewertungsfunktion neuronale Netzwerke einsetzen will und sie wie es fast immer gemacht wird auf GPUs implementiert ergibt sich ein Flaschenhals bei der laufenden Datenubertragung zwischen CPU und GPU der die Effizienz des Spieleprogramms konterkariert Ein innovativer Aspekt von NNUE fusst auf der Idee den Flaschenhals dadurch zu vermeiden dass auch das neuronale Netz anders als ublich auf der CPU lauft und so die Kommunikation mit dem Rest des Programms ohne jeden Zeitverzug direkt moglich ist 15 Struktur Bearbeiten nbsp Vierlagiges neuronales Netzwerk hier als vereinfachtes Beispiel und anders als bei NNUE mit nur 8 Eingangen oben Wie schon erwahnt besteht das neuronale Netzwerk aus vier Schichten Dabei ist die erste Schicht stark uberparametrisiert Anders als im Bild hat sie nicht 8 sondern 82 048 Eingange Durch sie wird die interne Brettdarstellung fur alle Positionen des weissen und schwarzen Konigs eingespeist Gearbeitet wird hier mit der sogenannten HalfKP Struktur Sie besteht aus zwei Halften englisch Half die jeweils die Eingangsschicht und die erste verborgene Schicht umfassen Der Buchstabe K steht fur den Konig Ausser den Konigen gibt es fur jede Seite noch funf andere Spielsteine englisch pauschal Pieces genannt in Summe zehn Nicht Konig Steine bezeichnet mit P Jede der beiden Halften der HalfKP Struktur ist einem der beiden Konige zugeordnet Der Konig K kann auf einem von 64 Feldern stehen Dies gilt ebenso fur jeden der zehn unterschiedlichen Nicht Konig Steine P Dass auf jedem Feld nur hochstens ein Stein stehen kann ist selbstverstandlich wird aber aus Vereinfachungsgrunden KISS Prinzip hier nicht berucksichtigt Insgesamt gibt es somit 64 Positionen fur K mal 64 Positionen fur P mal 10 unterschiedliche P Als Produkt ergibt sich 64 64 10 40 960 Aufgrund eines hier unwichtigen Relikts aus den Ursprungen der Shōgi Programmierung erhoht sich diese Zahl auf 64 64 10 1 41 024 Dies ist die Anzahl der Eingange jeder Halfte der HalfKP Struktur des neuronalen Netzwerks Fur beide Halften zusammen sind es folglich 82 048 Eingange Die Eingangswerte fur jede Halfte werden mit einer 16 Bit Ganzzahl Gewichtung fur 256 Ausgange pro Halfte multipliziert Insgesamt gibt es hier pro Halfte 41 024 256 10 502 144 Gewichte Die 2 256 Ausgangswerte der ersten Schicht werden durch die zweite Schicht mithilfe von 2 256 32 Gewichtungswerten auf 32 Ausgangswerte reduziert Dadurch werden auch die zuvor getrennten beiden Halften zusammengefasst Die nun 32 Ausgange werden in der dritten Schicht alle miteinander verknupft Es gibt somit weitere 32 32 Gewichtungswerte Diese werden schliesslich mithilfe von 32 letzten Gewichtungswerten in der vierten Schicht zum finalen Ergebnis verknupft der Bewertung der Schachstellung Die Effizienz von NNUE basiert ganz wesentlich auch darauf dass aufgrund der beschriebenen Architektur bei jedem Zug vorausgesetzt es ist kein Konigszug nur ein kleiner Bruchteil aller Neuronen der ersten Schicht aktualisiert werden muss Man spricht hier von einer inkrementellen Aktualisierung Im Gegensatz zur extrem effizient arbeitenden ersten Schicht sind die ubrigen drei Schichten zwar rechenintensiver aber in Summe erweist sich dieses ursprunglich fur Shōgi entwickelte Konzept auch beim Schach als sehr erfolgreich Literatur BearbeitenYu Nasu IIUƎ Efficiently Updatable Neural Network based Evaluation Functions for Computer Shogi Publikation zur 28 Computer Shogi Weltmeisterschaft vom 28 April 2018 PDF 250 kB japanisch und teilweise englisch Weblinks BearbeitenStockfish schluckt NNUE und verbessert seine Leistung um 100 Elo Punkte bei Chess com NNUE im Chess Programming Wiki englisch Stockfish NNUE im Chess Programming Wiki englisch Partie von Leela Chess Zero gegen Stockfish NNUE kommentiertes YouTube Video englisch Logo von Stockfish NNUE Einzelnachweise Bearbeiten Yu Nasu IIUƎ Efficiently Updatable Neural Network based Evaluation Functions for Computer Shogi Publikation zur 28 Computer Shogi Weltmeisterschaft 28 April 2018 Evolution of a Chess Fish What is NNUE anyway What does NNUE stand for NNUE stands for Efficiently Updateable Neural Network It s NNUE instead of EUNN because the technique was adopted from a shogi engine and NNUE is wordplay in Japanese englisch mit Link zum Artikel Nue in der englischsprachigen Wikipedia abgerufen am 31 Dezember 2020 Yu Nasu IIUƎ Efficiently Updatable Neural Network based Evaluation Functions for Computer Shogi Publikation zur 28 Computer Shogi Weltmeisterschaft 28 April 2018 S 1 Stockfish goes NN englisch A new revolution in computer chess is taking place Abgerufen am 22 September 2020 Much stronger Stockfish NNUE now as option in Stockfish development builds englisch abgerufen am 2 Oktober 2020 stockfish nnue 2020 05 30 englisch abgerufen am 2 Oktober 2020 Stockfish 12 englisch abgerufen am 2 Oktober 2020 Introducing NNUE Evaluation im Stockfish Blog abgerufen am 29 August 2020 Stockfish schluckt NNUE und verbessert seine Leistung um 100 Elo Punkte abgerufen am 29 August 2020 Evolution of a Chess Fish What is NNUE anyway And since its release there has been a wave of projects implementing NNUE Dragon Igel Minic RubiChess and others All reported huge strength improvements upon switching englisch abgerufen am 31 Dezember 2020 Orion 0 7 NNUE experiment englisch abgerufen am 26 September 2020 Igel and NNUE englisch abgerufen am 24 September 2020 Speedy Ratings englisch abgerufen am 22 September 2020 Zeus 9 3 NNUE wins JCER Fritz Tournament englisch abgerufen am 22 September 2020 Conrad Schormann Stockfish 12 das Beste aus zwei Welten in Perlen vom Bodensee das Schachmagazin vom 5 September 2020 abgerufen am 17 September 2020 Abgerufen von https de wikipedia org w index php title NNUE amp oldid 217303030