Göm menyn

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:

  1. 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.
  2. 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).
  3. 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.

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