Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Reinforcement Learning in der Schachprogrammierung Marco Block... n x x x o oo x xx x o x oo d4c4 a5a6 30%50% 40%20%

Ähnliche Präsentationen


Präsentation zum Thema: "Reinforcement Learning in der Schachprogrammierung Marco Block... n x x x o oo x xx x o x oo d4c4 a5a6 30%50% 40%20%"—  Präsentation transkript:

1 Reinforcement Learning in der Schachprogrammierung Marco Block... n x x x o oo x xx x o x oo d4c4 a5a6 30%50% 40%20%

2 Marco BlockJuni Einführung Schachprogrammierung (sehr kurz) - Struktur von Schachprogrammen verstehen - Problematik der Spielqualität (Koeffizientenwahl) Übersicht - FUSC# && RL == Kasparov ? 2.Reinforcement Learning (RL) - Konzept und Einordnung in KI 3.KnightCap - erstes RL-Schachprogramm (erstaunliche Erfolge) - Studienarbeit 4.FUSC# - Open Source Projekt

3 Marco BlockJuni 2004Marco BlockJuni 2004 Schachprogrammierung 1.Einführung Schachprogrammierung (sehr kurz) - Struktur von Schachprogrammen verstehen + Brettdarstellung + Evaluation + Zugwahl - Problematik der Spielqualität (Koeffizientenwahl)

4 Marco BlockJuni 2004Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Komponenten Brettrepräsentation Zuggenerator n Zugwahlalgorithmen... Stellungsbewertung Material Zentrierung der Figuren offene Linien offene Diagonalen Läuferpaar Vorposten Fianchettierung Rochade Entwicklung... Eröffnungs Datenbank

5 Marco BlockJuni 2004 Brettrepräsentation Schachprogrammierung Reinforcement Learning KnightCap FUSC#

6 Marco BlockJuni 2004 Brettrepräsentation Zuggenerator n x8-Brettdarstellung Brettmatrix durchlaufen Figur identifizieren mögliche Zugfelder betrachten und Regelsatz befolgen wenn Zug gültig in Zugliste speichern Schachprogrammierung Reinforcement Learning KnightCap FUSC#

7 Marco BlockJuni BitBoarddarstellung = 64 BIT-Wort + Zuggenerierung sehr schnell + Evaluationsfaktoren leicht in BitMuster giessbar (Königssicherheit) - keine offiziellen Standards BitBoards Schachprogrammierung Reinforcement Learning KnightCap FUSC#

8 Marco BlockJuni 2004 Evaluation Schachprogrammierung Reinforcement Learning KnightCap FUSC# Stellungsbewertung Material Zentrierung der Figuren offene Linien offene Diagonalen Läuferpaar Vorposten Fianchettierung Rochade Entwicklung...

9 Marco BlockJuni 2004 Evaluation 0-+ Stellungsbewertung w i * f i (S) 10 * Material(S) + 2 * Mobilität(S) +... Faktoren - Material - Mobilität - gute/schlechte Figuren - starke/schwache Felder - Raum - Königsstellung - offene Linien/Diagonalen - Läuferpaar - Vorposten - Rochade - Bauernstruktur - Läufer gegen Springer -... Schachprogrammierung Reinforcement Learning KnightCap FUSC#

10 Marco BlockJuni 2004 Material x1.0 WeissSchwarz p n l tr wq 2x3.0 2x4.5 1x x1.0 2x3.0 2x4.5 1x p n vv:ml tr wq k Material - Figurenbewertungen (weisse Figurensumme - schwarze) - verwendeten Daten von Kasparov vorgeschlagen Schachprogrammierung Reinforcement Learning KnightCap FUSC#

11 Marco BlockJuni 2004 Evaluation Faktoren - Material - Mobilität - gute/schlechte Figuren - starke/schwache Felder - Raum - Königsstellung - offene Linien/Diagonalen - Läuferpaar - Vorposten - Rochade - Bauernstruktur - Läufer gegen Springer -... Stellungsbewertung w i * f i (S) 10 * * Mobilität(S) Schachprogrammierung Reinforcement Learning KnightCap FUSC# konkrete Werterelativer Massstab

12 Marco BlockJuni 2004 Problem: Welche Konfiguration ist die richtige? Gibt es überhaupt eine richtig Konfiguration? => Falls JA, dann müsste schachliches Wissen als eine lineare Funktion darstellbar sein! (sehr unwahrscheinlich ;) ) Evaluation 10 * Material(S) + 2 * Mobilität(S) * Material(S) * Mobilität(S) +... ??? Lösung (bisher): Für professionelle Schachprogramme => Grossmeister engagiert, kritisiert Bewertung Lösung (KnightCap): Temporale Differenz auf Blattknoten Schachprogrammierung Reinforcement Learning KnightCap FUSC#

13 Marco BlockJuni 2004 TD & Brettspiele V TD()-Algorithmus dafür da, den Parametersatz w k zu lernen. Also den Vektor so zu approximieren, dass er gegen die optimale Strategie konvergiert. Schachprogrammierung Reinforcement Learning KnightCap FUSC#

14 Marco BlockJuni 2004 BishopPair Knight_Outpost Supported_Knight_Outpost Connected_Rooks Opposite_Bishops Opening_King_Advance King_Proximity Rook_Pos Pos_Queenside Bishop_Mobility Queen_Mobility Knight_SMobility Rook_SMobility King_SMobility Unsupported_Pawn Passed_Pawn_Control Doubled_Pawn Evaluation Stellungsbewertungsfaktoren BishopPair Knight_Outpost Supported_Knight_Outpost Connected_Rooks Opposite_Bishops Opening_King_Advance King_Proximity Blocked_Knight Draw_Value No_Material Bishop_XRay Rook_Pos Pos_Base Pos_Queenside Bishop_Mobility Queen_Mobility Knight_SMobility Rook_SMobility King_SMobility Threat Overloaded_Penalty Q_King_Attack_Opponent NoQ_King_attack_Opponent NoQueen_File_Safty Attack_Value Unsupported_Pawn Passed_Pawn_Control Doubled_Pawn Odd_Bishop_Pawn_Pos King_Passed_Pawn_Supported Passed_Pawn_Rook_Supported Blocked_EPawn Pawn_Advance King_Passed_Pawn_Defence Pawn_Defence Mega_Weak_Pawn Castle_Bonus Bishop_Outpost Supported_Bishop_Outpost Seventh_Rank_Rooks Early_Queen_Movement Mid_King_Advance Trapped_Step Useless_Piece Near_Draw_Value Mating_Positions Ending_King_Pos Knight_Pos Pos_Kingside Knight_Mobility Rook_Mobility King_Mobility Bishop_SMobility Queen_SMobility Piece_Values Opponents_Threat Q_King_Attack_Computer NoQ_King_Attack_Computer Queen_File_Safty Piece_Trade_Bonus Pawn_Trade_Bonus Adjacent_Pawn Unstoppable_Pawn Weak_Pawn Blocked_Pawn Passed_Pawn_Rook_Attack Blocked_DPawn Pawn_Advance Pawn_Advance2 Pawn_Pos Isolated_Pawn Weak_Pawn_Attack_Value... und viele viele mehr ! Evaluation sehr aufwendig und demnach teuer Schachprogrammierung Reinforcement Learning KnightCap FUSC#

15 Marco BlockJuni 2004 Algorithmen Schachprogrammierung Reinforcement Learning KnightCap FUSC# Zugwahlalgorithmen...

16 Marco BlockJuni 2004 Brute-Force-Methode Shannon-A-Strategie (Brute-Force) - Tiefensuche bis zu einer vorgegebenen festen Suchtiefe - Minimax-Idee: Weiß maximiert, Schwarz minimiert Nachfolger W am Zug S am Zug W am Zug Bewertungsroutine an den Blättern Schachprogrammierung Reinforcement Learning KnightCap FUSC#

17 Marco BlockJuni 2004 Brute-Force-Methode W am Zug S am Zug W am Zug Bewertungsroutine an den Blättern Shannon-A-Strategie (Brute-Force) - Tiefensuche bis zu einer vorgegebenen festen Suchtiefe - Minimax-Idee: Weiß maximiert, Schwarz minimiert Nachfolger Schachprogrammierung Reinforcement Learning KnightCap FUSC#

18 Marco BlockJuni 2004 Brute-Force-Methode W am Zug S am Zug W am Zug Bewertungsroutine an den Blättern Shannon-A-Strategie (Brute-Force) - Tiefensuche bis zu einer vorgegebenen festen Suchtiefe - Minimax-Idee: Weiß maximiert, Schwarz minimiert Nachfolger Schachprogrammierung Reinforcement Learning KnightCap FUSC#

19 Marco BlockJuni 2004 Alpha-Beta-Algorithmus W am Zug S am Zug W am Zug Bewertungsroutine an den Blättern Alpha = - 8 [ MinWert, MaxWert ] Alpha-Beta-Algorithmus - Abschneiden von unwichtigen Ästen des Spielbaumes - Alpha-/Beta-Werte bilden Erwartungsfenster Schachprogrammierung Reinforcement Learning KnightCap FUSC#

20 Marco BlockJuni 2004 Alpha-Beta-Algorithmus W am Zug S am Zug W am Zug Bewertungsroutine an den Blättern Alpha = - 8 [ - 8, MaxWert ] Alpha-Beta-Algorithmus - Abschneiden von unwichtigen Ästen des Spielbaumes - Alpha-/Beta-Werte bilden Erwartungsfenster Schachprogrammierung Reinforcement Learning KnightCap FUSC#

21 Marco BlockJuni 2004 Alpha-Beta-Algorithmus W am Zug S am Zug W am Zug Bewertungsroutine an den Blättern Alpha = - 8 [ - 8, MaxWert ] < - 8 ! Alpha-Beta-Algorithmus - Abschneiden von unwichtigen Ästen des Spielbaumes - Alpha-/Beta-Werte bilden Erwartungsfenster Schachprogrammierung Reinforcement Learning KnightCap FUSC#

22 Marco BlockJuni 2004 Zugsortierung Schlechter Fall: Bester Fall: < - 4 ! Zugsortierung - iteratives Suchverfahren - Transpositions-, Killerzug- und Historytabellen Schachprogrammierung Reinforcement Learning KnightCap FUSC#

23 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# diverse Programmiertricks - selbstlernendes Eröffnungsbuch - Hashtables - heuristische Zugsortierungen - KillerMoves - parallele Suche - Ruhesuche - iterative Suche - NullMoves - weitere Heuristiken...

24 Marco BlockJuni 2004 Reinforcement Learning 2.Reinforcement Learning (RL) - Einordnung in die KI + Bestärkendes oder Halbüberwachtes Lernen + Dynamische Programmierung + Monte Carlo + Temporale Differenz - Beispiel: Tic-Tac-Toe

25 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Lernstrategie I 1. überwachtes Lernen 2. unüberwachtes Lernen - Ziel wird vom Lehrer vorgegeben - Neuronale Netze (BackPropagation) - System klassifiziert nach eigenem Ermessen - EM, LBG 3. Reinforcement Learning - System (Agent) findet durch Ausprobieren und Rückmeldung (Reinforcement-Signal) aus der Umwelt eine optimale Strategie, um Ziele innerhalb seiner Umgebung zu erreichen - halbüberwachtes Lernen [Zhang] - Dynamische Programmierung, Monte Carlo, Temporale Differenz

26 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Lernstrategie II Agenten, die immer oder niemals weiterforschen, werden stets scheitern.

27 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Beispiel: Tic Tac Toe o o-Zug x-Zug 1. Tabelle V(s) erzeugen mit (Zustand s Bewertung) Wahrscheinlichkeit zu gewinnen Gewinnstrategie 1 Sieg, 0 Niederlage, 0.5 Remis 2. Es werden viele Partien gespielt - meistens besten Zug wählen - gelegentlich aber experimentieren! (zufällige Auswahl) - während des Spiels wird Werte- funktion verändert (Belohnung) - vorheriger Zustand verschiebt sich etwas in Richtung des nachfolgenden... x ox xx x x x o o oo x x x x xx x o x oo x-SIEG... Belohnung

28 Marco BlockJuni KnightCap - erstes RL-Schachprogramm (Studienarbeitauszug) + Erfolg + Struktur KnightCap

29 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Historie Open Source Projekt von Jonathan Baxter, Andrew Tridgell und Lex Weaver Reinforcement Learning eingesetzt Evaluations-Koeffizienten getunt Motivation: Tesauros TD-Gammon schlägt Weltmeister Startrating von 1650 in 3 Tagen (308 Spiele) auf Eröffnungsbuch + weitere Programmierraffinessen KnightCap hat ein Niveau von über 2500 (max 2575) KnightCap unkommentiertes, kryptisches C

30 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Struktur Brettdarstellung: ToPiecesBoard Brettrepräsentation Zuggenerator BIT-Wort wDame wSpringer wLäufer wTurm Figur j greift Feld i an.

31 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Struktur Zugwahlalgorithmus: - MTD(f) = weiterentwickelter AlphaBeta-Algorithmus mit minimalem Fenster - einige Heuristiken (Killerheuristik,...) Zugwahlalgorithmen...

32 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Struktur Stellungsbewertungsfaktoren: BishopPair Knight_Outpost Supported_Knight_Outpost Connected_Rooks Opposite_Bishops Opening_King_Advance King_Proximity Blocked_Knight Draw_Value No_Material Bishop_XRay Rook_Pos Pos_Base Pos_Queenside Bishop_Mobility Queen_Mobility Knight_SMobility Rook_SMobility King_SMobility Threat Overloaded_Penalty Q_King_Attack_Opponent NoQ_King_attack_Opponent NoQueen_File_Safty Attack_Value Unsupported_Pawn Passed_Pawn_Control Doubled_Pawn Odd_Bishop_Pawn_Pos Stellungsbewertung Material Zentrierung der Figuren offene Linien offene Diagonalen Läuferpaar Vorposten Fianchettierung Rochade Entwicklung... King_Passed_Pawn_Supported Passed_Pawn_Rook_Supported Blocked_EPawn Pawn_Advance King_Passed_Pawn_Defence Pawn_Defence Mega_Weak_Pawn Castle_Bonus Bishop_Outpost Supported_Bishop_Outpost Seventh_Rank_Rooks Early_Queen_Movement Mid_King_Advance Trapped_Step Useless_Piece Near_Draw_Value Mating_Positions Ending_King_Pos Knight_Pos Pos_Kingside Knight_Mobility Rook_Mobility King_Mobility Bishop_SMobility Queen_SMobility Piece_Values Opponents_Threat Q_King_Attack_Computer NoQ_King_Attack_Computer Queen_File_Safty Piece_Trade_Bonus Pawn_Trade_Bonus Adjacent_Pawn Unstoppable_Pawn Weak_Pawn Blocked_Pawn Passed_Pawn_Rook_Attack Blocked_DPawn Pawn_Advance Pawn_Advance2 Pawn_Pos Isolated_Pawn Weak_Pawn_Attack_Value BishopPair Knight_Outpost Supported_Knight_Outpost Connected_Rooks Opposite_Bishops Opening_King_Advance King_Proximity Rook_Pos Pos_Queenside Bishop_Mobility Queen_Mobility Knight_SMobility Rook_SMobility King_SMobility Unsupported_Pawn Passed_Pawn_Control Doubled_Pawn Blocked_EPawn Pawn_Advance Castle_Bonus Bishop_Outpost Supported_Bishop_Outpost Seventh_Rank_Rooks Early_Queen_Movement Knight_Pos Pos_Kingside Knight_Mobility Rook_Mobility King_Mobility Bishop_SMobility Queen_SMobility Piece_Values Unstoppable_Pawn Weak_Pawn Blocked_Pawn Blocked_DPawn Pawn_Pos Isolated_Pawn Stand: August KnightCap - FUSC# V1.09

33 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Struktur Besonderheiten: - Nullmoves - Hashtables - Asymetrien - kann auf Parallelrechner betrieben werden - 4 Stellungstypen: Eröffnung, Mittelspiel, Endspiel, Mattstellungen - evolutionäres Eröffnungsbuch

34 Marco BlockJuni FUSC# - RL goes to Fusc# + Einbettung von RL (KnightCap) + KnightCap-Experimente + Fusc#-Experimente - Diplomarbeit + Erweiterung: Stellungsklassifikator FUSC#-Projekt

35 Marco BlockJuni 2004 Wiederholung - Problematik: Evaluierung einer Stellung - Reinforcement Learning +... durch Ausprobieren und Rückmeldung der Umwelt - Backgammon sehr gut für TD() geeignet + kleine Stellungsänderung kleine Bewertungsveränderung + komplexe Evaluationsfunktion möglich - Schach eigentlich nicht für TD() geeignet + kleine Stellungsänderung grosse Bewertungsveränderung + schnelle, lineare Bewertungsfunktion nötig (MinMax) + TD-Leaf() scheint eine Lösung zu sein (Baxter, Tridgell, Weaver -> KnightCap) - Ziel: Evaluationsvektor w lernen Schachprogrammierung Reinforcement Learning KnightCap FUSC#

36 Marco BlockJuni 2004 Daten vorbereiten Stellungsfolge+HauptVarianten :... X1X1 X2X2 XNXN für Evaluation nur eigene Stellungen Alpha-Beta als Zugwahlalgorithmus, Hauptvariante wird gespeichert Partie: Fusch–Internetgegner P1P1 P2P2 P3P3 P4P4 P 2N (Evaluationsvektor w wird benutzt) beste, forcierte Stellung Schachprogrammierung Reinforcement Learning KnightCap FUSC#

37 Marco BlockJuni 2004 E[x] = Stellungsbewertung der Stellung x mit Evaluationsvektor w bestehend aus n Stellungsfaktoren lineare Funktion: w1f1(x) + w2f2(x) + w3f3(x) wnfn(x) Arbeitsweise von TD-Leaf() Reward {-400, 0, 400} 4 Bauern im Vorteil als Sieg KnightCap {-1,0,1} Stellungsfolge+HauptVarianten(HV) :... X1X1 X2X2 XNXN E1E1 E2E2 ENEN Evaluationswerte auch gespeichert E[N] := -400 for i:=1 to N-1 do td[i] := E[i+1] - E[i] go in HV[i] compute pd[i] go out HV[i] end i vectorUpdate Lernalgorithmus: w1f1(xi) + 0*f2(xi) + 0*f3(xi) *fn(xi) 0*f1(xi) + w2f2(xi) + 0*f3(xi) *fn(xi) 0*f1(xi) + 0*f2(xi) + w3f3(xi) *fn(xi)... 0*f1(xi) + 0*f2(xi) + 0*f3(xi) wnfn(xi) pd[i] = Evaluationsvektor w auf diesen Berechnungen basierend erneuern und anschliessend normalisieren (auf Bauernwert 100) Schachprogrammierung Reinforcement Learning KnightCap FUSC#

38 Marco BlockJuni 2004 Temporale Differenz x 1,..., x N-1, x N eigene Stellungen unserer Partie. x1x1 x2x2 x N-1 xNxN J ~ (x 1, w) J ~ (x 2, w) J ~ (x N-1, w) J ~ (x N, w) := r(x N ) td[1] td[N-1] ich stehe besser, ergo erwarte ich einen Sieg... Modifizierung : positive td[i] - auf 0 setzen, es sei denn KnightCap sagt den richtigen Zug des Gegners voraus negative td[i] - bleiben unverändert (eigene Fehler) Schachprogrammierung Reinforcement Learning KnightCap FUSC#

39 Marco BlockJuni 2004 VectorUpdate bei TD() Aktualisierung des Evaluationsvectors w : Lernrate Gradientgewichtete Summe der Differenzen im Rest der Partie Schachprogrammierung Reinforcement Learning KnightCap FUSC#

40 Marco BlockJuni 2004 LeafNodes A 4 C 4 F 4 L 4 Tiefe d xtlxtl xtxt MinMax + TD() = TD-Leaf() Schachprogrammierung Reinforcement Learning KnightCap FUSC#

41 Marco BlockJuni 2004 VectorUpdate bei TD-Leaf() Aktualisierung des Evaluationsvectors w : Schachprogrammierung Reinforcement Learning KnightCap FUSC#

42 Marco BlockJuni 2004 Welches wählen? x1x1 xNxN =1: xtxt x1x1 xNxN 0<<1: xtxt Gewichtung der Differenzen im Rest der Partie x1x1 xNxN =0: xtxt heuristisch: =0.7 (bis Fehler einen Effekt hervorruft) td[t] Schachprogrammierung Reinforcement Learning KnightCap FUSC#

43 Marco BlockJuni 2004 VectorUpdate t > 0: Stellung x t wurde vermutlich unterbewertet w = w + pos. Vielfaches des Gradienten J ~ (x t, w) > J ~ (x t, w) t < 0: Stellung x t wurde vermutlich überbewertet w = w + neg. Vielfaches des Gradienten J ~ (x t, w) < J ~ (x t, w) kurz: t Aktualisierung des Evaluationsvectors w : was muss ich ändern um wieviel Schachprogrammierung Reinforcement Learning KnightCap FUSC#

44 Marco BlockJuni 2004 Fazit: TD() -> TD-Leaf() TDLeaf(): TD(): Schachprogrammierung Reinforcement Learning KnightCap FUSC#

45 Marco BlockJuni 2004 KnightCap Experimente I - alle Koeffizienten auf 0, Material auf Standard 1=Bauer, 4=Springer und Läufer, 6=Turm und 12=Dame - nach 25 Spielen besitzt KnightCap ein rating von 1650 (+-50) - TD-Leaf nun on mit =0.7 heuristisch gewählt und =1.0 grosse Sprünge - 3 Veränderungen wurden vorgenommen: + J(x i l,w) wurde konvertiert zu einem Wert zwischen –1 und 1 mit v i l =tanh[ J(x i l,w)] + d t =v t+1 l - v t l wurde modifiziert, negative Werte von d t wurden nicht verändert, alle positiven temporalen Differenzen wurden auf 0 gesetzt + der Bauernwert wird mit 1 als Basiswert fixiert - nach 300 Spielen (in 3 Tagen) hatte KnightCap ein rating von 2150 Experiment 1 Schachprogrammierung Reinforcement Learning KnightCap FUSC#

46 Marco BlockJuni 2004 KnightCap Experimente - Experiment wurde wiederholt aber in Abhängigkeit der Wurzelknoten - nach 300 Spielen hatte KnightCap ein rating von 1850 (signifikant kleinerer peak und langsame Konvergenz) Experiment 2 - alle Koeffizienten auf Bauernwert=1 - startrating=1250 nach 1000 Spielen rating= KnightCap vs. KnightCap - 11% Punkte für KnightCap(selfplay) nach 600 Spielen gegen KnightCap(humanplay) nach 300 Spielen Experiment 3 Experiment 4 Schachprogrammierung Reinforcement Learning KnightCap FUSC#

47 Marco BlockJuni 2004 FUSC# Experimente - Fusc# (damalige Version) konnte im Experiment keine Partie gewinnen - Temporale Differenz schlug fehl Grund: keine Siege => Fusch zweifelt an allem; keine positiven Updates => neue Engine musste her + Darkfusch im Januar 2004 geboren + heute Knoten pro Sekunde! (Ruffian Knoten pro Sekunde) - 1.Versuch mit RL: SAL von Michael Gherrity spielte gegen GNUChess => RL für Schach nicht geeignet - Deep Blue verwendete RL (Match gegen Kasparov)! Experimente Schachprogrammierung Reinforcement Learning KnightCap FUSC# Le4!!

48 Marco BlockJuni 2004 Kommunikation Schachprogrammierung Reinforcement Learning KnightCap FUSC# UCI- Kommunikation Fritz, Arena Konsole UCI-Protokoll (Universal Chess Interface)

49 Marco BlockJuni Pseudonym :) Schachprogrammierung Reinforcement Learning KnightCap FUSC#

50 Marco BlockJuni 2004 Diplomarbeit - In welcher Korrelation liegen Spielstärke und erlernbare Faktorenanzahl? - Was geschieht, wenn man die Sache auf die Spitze treibt und z.B verschiedene Stellungstypen einführt? Jeder hat ca Stellungsfaktoren => zu erlernende Bewertungskriterien!!! - Kann Fusch in annehmbarer Zeit die Koeffizienten mit guten Werten füllen? - Algorithmuserweiterung behebt Problem. - Ist =0.7 wirklich der richtige Parameter? - Wie muss sinnvoll konvergieren? - Startkoeffizienten sinnvoll? Fragen, Experimente: Zusätzlich: - Guide, um dieses Lernverfahren in jeden Schachmotor zu bringen Schachprogrammierung Reinforcement Learning KnightCap FUSC#

51 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# Stellungsklassifikator x x x x x o o o o o Stellungsmuster identifizieren - Vektor bauen EM-Algorithmus => Pool Stellungen aus GM-DB - Vektoren aufspannen eine Evaluation für jede Stellungsklasse Vorteil: Stellungen können viel besser evaluiert werden (Eröffnung, Mittel- und Endspiel zu grobe Einteilung) Nachteil: Für jedes Stellungsmuster neue Klassifizierung

52 Marco BlockJuni 2004 Schachprogrammierung Reinforcement Learning KnightCap FUSC# RL feiner nutzen n KnightCapFUSC# 4x1468 = 5872 (74 angegeben...) 1000x1500 =

53 Marco BlockJuni 2004 Visual Eval 1.0 Reinforcement Learning Anpassung des Evaluationsvektors Schachprogrammierung Reinforcement Learning KnightCap FUSC#

54 Marco BlockJuni 2004 vielen Dank fürs zuhören... das wars Fusc# Schachserver


Herunterladen ppt "Reinforcement Learning in der Schachprogrammierung Marco Block... n x x x o oo x xx x o x oo d4c4 a5a6 30%50% 40%20%"

Ähnliche Präsentationen


Google-Anzeigen