Ludwig Temmel Portfolio

Jupyter Notebook reinforcement learning

Ett reinforcement learning projekt där en Q-tabell tränas för att spela Tic-Tac-Toe på en nästintill perfekt nivå.

Projektöversikt

Detta projekt byggdes i Jupyter Notebook med en reinforcement learning algoritm för att träna en Q-tabell. Algoritmen lär sig spela Tic-Tac-Toe effektivt och närmar sig gradvis en optimal strategi. Inlärningsprocessen visualiserades över tid när modellen genomgick fler träningsiterationer och spelade mot en perfekt policy.

Teknologier

  • Jupyter Notebook - Användes som utvecklingsmiljö för att köra och testa modellen.
  • Python - Implementerade reinforcement learning algoritm.
  • Q-inlärning - Metoden som användes för att träna AI:n att spela Tic-Tac-Toe optimalt.
  • Matplotlib - Visualiserade inlärningsprocessen över tid.

Inlärning

    RandomPolicy vs trainedPolicy

    En graf som visar inlärningsprocessen

    Grafen visar hur vår Q-table lär sig spela mot en q-table fylld med tillfälliga värden. Prestandan är lika bra från början eftersom båda innehåller helt tillfälliga siffror, men det syns hur polycin som lär sig förbättras över tid.

    PerfectPolicy vs trainedPolicy

    En graf som visar inlärningsprocessen

    Ovan syns det hur trainedPolicy aldrig vinner mot PerfectPolicy. Däremot blir den med mer träningsiterationer bättre och bättre på att få oavgjort i matchen, eftersom dess handligar blir mer liknande perfectPolicys handlingar.

Utmaningar & Lösningar

Förståelse av Q-tabellen

En utmaning var att verkligen förstå hur policy tabellens struktur är uppbyggd och hur den lär sig spela bättre över tid. Detta löste jag genom att sätta in mig i datastrukturerna på en djup nivå och använda många debug funktioner för att se hur värdena ändras.

Balans i komplexitet

Att hitta balansen mellan passande komplexitet för projektet och bra prestada var något jag behövde tänka på. Jag valde därför en enklare reinforcement algoritm som inte använde sig av några maskininlärningsbibliotek. Genom detta var koden relativt enkel att förstå och prestandan bra. I framtida projekt, eller för storre projekt hade bibliotek som tensorflow varit väldigt intressanta.

Resultat & Lärdomar

Projektet gav djupare insikter i reinforcement learning och Q-tabeller. Jag utvecklade en bättre förståelse för hur mer komplicerade datastrukturer kan vara uppbyggda och användas för inlärningsalgoritmer och förbättrade min förmåga att felsöka och optimera modeller.