Kursöversikt

Välkommen till FYD600 2022

For Feb 16, please use this Zoom link:

https://gu-se.zoom.us/j/61876024315

Kursen ges på distans, i huvudsak onsdagar kl18-21 på Zoom:

https://chalmers.zoom.us/j/63216377095

Password: 318649

Första tillfälle onsdag 19/1. See schema i TimeEdit

Kursplaneringen finns här. Schema  

Slides från föreläsningen. (Bernhard Mehlig)

Undervisningen är i huvudsak i form av handledning under egenarbete med programmeringsprojekt. Ingen av undervisningstillfällena har obligatorisk närvaro, men man behöver infinna sig för examination (se nedan).  

Kursen består av följande moment:

  • Projekt 1: Introduktion till neurala nätverk, applicerat på enkelt problem. "Supervised learning, Backpropagation". Här kodar vi själva ett litet "fully connected" neuralt nätverk i Python och tillämpar det på ett litet klassificeringsproblem. Vi testar också

    Tensorflow Playground. Projekt 1, tillsammans med en Python tutorial, finns under Uppgifter. (Ladda upp/packa upp filerna i det bibliotek där du installerat Jupyter.)

    Innan första kurstillfället är det bra att titta på följande videos för en kort introduktion till neurala nätverk:

De två schemalagda föreläsningarna kommer ge en grundligare introduktion till neurala nätverk. 

Anteckningar om hur man konstruerar och tränar nätverk med ett gömt lager (ny version, fel i första)

  • Projekt 2: Övervakat lärande (supervised learning) med hjälp av Tensorflow. Här använder vi de inbyggda funktionerna i Tensorflow för att lösa ett större klassificeringsproblem. Vi använder också Facets för att visualisera datan.
  • Projekt 3: Förstärkningsinlärning (reinforcement learning, Q-learning). Här lär vi oss hur förstärkningsinlärning fungerar genom att applicera på ett enkelt problem där en agent lära sig att navigera i en hinderbana.   

      Introduktion till förstärkningsinlärning:

Anteckningar.

Video:
 

  • Projekt 4: Deep Q-learning, mha Q-network. Här tittar vi på ett större problem där vi använder ett NN. 

Det är rekommenderat att man använder sin egen laptop. Innan kursen, installera Python, Tensorflow, och Jupyter. Vi  kommer använda Jupyter Notebook. Gå till respektive hemsida för instruktioner (börja på Tensorflow). Använd t.ex. pip i Python eller använd Anaconda: https://docs.jupyter.org/en/latest/install/notebook-classic.html

Ett alternativ till att installera mjukvaran på egen dator är att använda Google Colab. Det är bara att ladda upp kursens Jupyter notebooks och köra igång. Att använda Colabs kan också vara ett bra alternativ om man saknar GPU stöd för Tensorflow på sin dator, som är bra att ha framförallt för uppgift 2.   

Det bör också bra att använda Chalmers (Linux) studentdatorer, på 7e våningen Forskarhuset. Här finns instruktioner för att komma igång på dessa. Brasklapp för att de har uppdaterat operativsystemet, vi har inte testkört Tensorflow med GPU sen dess.    

Lärare på kursen:

Mats Granath, mats.granath@gu.se, kursansvarig. telefon 0723087160

Basudha Srivastava , basudha.srivastava@physics.gu.se kursassistent. 

Bernhard Mehlig, föreläsning. 

 

Kurslitteratur.

Projektbeskrivningarna är formulerade för att ge en självkonsistent introduktion till det material som krävs för att lösa uppgiften. 

För fördjupning rekommederas följande böcker: 

Bernhard Mehlig Machine Learning with Neural Networks

Ian Goodfellow and Yoshua Bengio and Aaron Courville, Deep learning

Neural Networks and Deep Learning av Michael Nielsen 


Richard S. Sutton and Andrew G. Barto; Reinforcement Learning, An Introduction

Läsråd.

Material tom kapitel 9 i Deep learning tas upp i projekt 1 och 2 och är rekommenderad läsning.
Läs åtminstone introduktionen.

I Reinforcement learning, är rekommenderad läsning de första 3 kapitlen, plus kapitel 6 om TD-learning.
Kolla också på TD-Gammon, DQN och AlphaGo på slutet, kap. 16.

Examination

Examinationen sker genom att man demonstrerar sin fungerande kod och diskuterar de frågor som ställs i
uppgiftstexten. Detta sker individuellt tillsammans med en av lärarna under de schemalagda timmarna i
datorsalen. Man får gärna samarbeta, men man ska skriva sin egen kod. Examinationen sker kontinuerligt, normalt en eller två veckor efter att uppgiften introduceras.  Varje uppgift bedöms med U/G och för G på kursen krävs G på alla fyra projekt.

 

Kurssammanfattning:

Datum Information Sista inlämningsdatum