729G83 Kognitiv teknologi och artificiell intelligens
Kursinformation
Kursinnehåll
Kursen ger en introduktion till två typer av artificiella neurala nätverk, dels biologiskt plausibla, där man försöker efterlikna mänskliga hjärnan, dels rent AI-inriktade, där fokus ligger på att åstadkomma önskad funktion (på vilket sätt som helst).
Kursupplägg
Kursen är uppdelad i tre moduler, motsvarande 3 hp var:
- Biologiskt plausibla nät. Aktiveringsdynamik (settling) i dubbelriktat kopplade nätverk, mönsterigenkänning, Hebbiansk inlärning, dvs. inlärning utan facit (labels), övervakad inlärning (med labels), samt en kombination av oövervakad och övervakad inlärning.
- AI (feedforward) nät. Enkelriktat, dvs. framåtkopplade nätverk, med övervakad inlärning. De två vanligaste nätverken: Convolutional Neural Networks (CNN), Long-Short Term memory networks (LSTM).
- Projekt. Här kan ni välja ett av ovanstående två paradigm, och konstruera ett eget nätverk. Det mest lämpliga är att utgå ifrån ett existerande nät och anpassa detta till att kunna hantera nya data.
Arbetsgång i kursen:
Kursen kommer i år (2020) att ges helt och hållet på distans. Vi kommer att använda Teams, för all typ av samarbete, både för seminarier, labbar, och projektarbete. Kursen förutsätter mycket eget driv, och är relativt utvecklingsfokuserad. T.ex. går projektarbetet går ut på att utveckla ett eget neuralt nätverk. Kursen förutsätter viss händighet med programmeringsspråket Python.
- Seminarier (obligatoriska). Varje vecka inleds med ett seminarium, dvs. diskussion i mindre grupper, där det är obligatorisk närvaro. På dessa seminarier går vi igenom teoretiska begrepp som hjälper till att förstå hur en viss typ av neuralt nät fungerar. Man ska komma till seminariet väl förberedd, genom att man har arbetat igenom det anvisade materialet, samt andra källor som man själv har hittat, och att man har skickat in (obligatoriskt) minst två frågor som man tycker skulle vara intressant att diskutera tillsammans på seminariet. Seminarierna kommer att sammanfattas i helklass, där läraren tar upp begrepp som är centrala och/eller komplexa.
- Labbar. Varje teori-seminarium följa av en laboration, som kompletterar seminarierna genom att ge praktisk erfarenhet av de artificiella neurala nät som i vi går igenom i kursen. Varje laboration bör förberedas genom att man läser igenom labb-instruktionerna, och i förekommande fall försöker installera programvara, etc. som kräva för att kunna genomföra labben. Efter genomförd laboration, bör man lägga tid på efterarbete, där man läser igenom laborationsanvisningarna, går igenom de lösningar och svar man har kommit fram till, och relaterar dessa till de teoretiska begrepp vi har gått igenom på seminariet. Målet är att få en djupförståelse av vad som händer i dessa neurala nät.
- Projektarbete. De sista tre veckorna i kursen fokuseras på kreativt grupparbete, där t.ex. ett existerande neuralt nät anpassas till nya data (det går naturligtvis att bygga ett helt eget nät, men detta kan bli för arbetsamt och för stort för den här kursen). Projektarbetet är tänkt att genomföras i samma arbetsgrupper som vi har på seminarierna. Under dessa tre projekt-veckor i slutet av kursen kommer seminarie-timmarna att fungera som handledningstillfällen, som därmed inte är obligatoriska att närvara på. Det går naturligtvis även att kontakta lärare på andra tider, om man behöver råd och vägledning med sitt projekt.
Litteratur
Kurslitteraturen består av online material. Sök gärna även efter egna källor; vad som uppfattas som lättfattlig och bra förklaring kan ju variera utifrån egna preferenser.
- Bio nät
- Elektronisk wiki-bok som beskriver emergent och de neurovetenskapliga rön som verktyget bygger på. Boken går att exportera till pdf-format, om man föredrar det.
- AI nät
- Everything you need to know about backpropagation
- Vanishing gradient
- Computational graphs
- Keras: text classification example
- Dealing with biases in data
- Introduction to Keras
- Google Playground (för att snabbt testa runt med olika nätverk)
- The effect of batch size on neural net training
- Intro till Colab och Jupyter Notebooks (notebook = olika delar av koden kan köras direkt, så datainladdning, etc. behöver bara göras en gång, sedan kan man markera och köra andra delar av koden gång på gång, för att se hur en förändring av koden slår igenom. Man kan skriva python-kod i Jupyter notebooks.)
- Introduction to convolutional neural networks (En Youtube serie från Stanford University)
- Tensorflow and deep learning without a PhD
Verktyg
- Det verktyg vi kommer att använda för biologiskt plausible nät heter emergent. Namnet 'emergent' syftar på de emergenta beräkningssätt som uppstår när många hjärnceller samarbetar. (Emergent = någonting som är mer än summan av delarna; t.ex. den ytspänning i en såpbubbla som uppstår när molekylerna binds samman, som alltså inte kan förklaras som summan av de enskilda molekylernas kemiska och fysikaliska egenskaper.)
- Det populäraste verktyget för utveckling av AI nät är Google's Tensorflow, där man oftast använder Keras (python) som wrapper/front. Keras har förberedda definitioner, som underlättar konstruktion och träning av näten. Vi kommer att arbeta med Tensorflow Colab som är en online-version av Jupyter notebooks. (Notera att vi kör Tensorflow 2.x i kursen, då denna är avsevärt förbättrad från föregående version.)
Sidansvarig: Rita Kovordanyi
Senast uppdaterad: 2023-08-28