Forløb

Forløb i kunstig intelligens i informatik

Introducer dine elever til AI, så de kan gå kritisk, refleksivt og konstruktiv til teknologien. Forløb på 8 moduler til Informatik B om teknikker og problematikker i maskinlæring.
 

Forløbets varighed: 8 moduler à 60 minutter målrettet Informatik B

Forløbet introducerer til maskinlæring, som er den mest udbredte teknik inden for kunstig intelligens brugt i bl.a. chatbots, billedgenkendelse eller fx automatisk oversættelse. 

Fokus er, at eleverne skal kende til grundlæggende overvejelser, så de i tråd med informatiks mål om digital myndiggørelse kan vurdere forslag om brug af konkrete datasæt til maskinlæring.

Forløbet berør primært de faglige mål om it-systemers og brugeres gensidige påvirkning samt om repræsentation og manipulation af data.

Eleverne arbejder konkret med at udvælge datasæt og features, træne model og anvende modellen i en app. De skal lære at vurdere brug af AI til prædiktion ud fra datasættets størrelse, varians og bias, samt om det er problematisk i forhold til manglende transparens og konsekvenser ved forkert prædiktion.

Det tager afsæt i code.org’s AI and Machine Learning samt deres ai-lab, hvor eleverne online kan bruge maskinlæring på et datasæt og få en model.
I forhold til code.org’s eget forløb bruger eleverne her mere tid på at udvikle en egen app, så det matcher informatikfagets projektorientering.  

 

Planlægning

Opret holdet på code.org og kobl holdet på forløbet AI an Machine Learning. Har eleverne ikke arbejdet med app-lab før, så kan man bruge et ekstra modul på Lesson 1: Intro to App Lab.

Lav og print et punktdiagram til alle elever med x-aksen ”let at spise” og y-aksen ”sødme” - begge vurderet fra 1-10. Indsæt under en liste med en blanding af frugt/grøntsager: agurk, jordbær, græskar, appelsin, kiwi, gulerod…     

 

Moduler


Spørg ind til, hvad eleverne forstår ved kunstig intelligens, og hvilke produkter de kender. Introducer til kunstig intelligens og maskinlæring og relater AI til de produkter eleverne har nævnt.

Sæt eleverne til at afprøve de to apps i Lesson 3: Types of Machine Learning, hvor de i første app skal finde mønster i data og i næste app gætte labels i en model. Forklar forskellen mellem superviseret og usuperviseret læring og få eleverne til at relatere begreberne til de to apps.

Uddel seddel med diagram og fødevarer og lad eleverne parvist placere fødevarerne i diagrammet. Gå imens rundt, lyt og skriv 3-4 fødevarer op på tavlen som parrene er mest uenige om – ofte kiwi, græskar og gulerod. Få parrene til at skrive deres værdier op på tavlen for de udvalgte fødevares grad af ”sødme” og ”let at spise”. Vis videoen Bias and Variance (AssemblyAI, Youtube) og overvej sammen, om der er fødevarer, som er særligt udfordrede af varians og/eller skæv fordeling.

Bed parrene om at skrive frugt i diagrammets hjørne med mest “let at spise”/“sød” og grøntsager i modsatte og markere frugt og grøntsager med hver sin farve. De skal herefter udføre følgende algoritme:

  1. Læg en blyant tilfældigt på skemaet
  2. For hver fødevare: hvis de ligger i forkert kategori (på forkert side af blyant), så flyt den ende af blyanten 0.5 cm i rigtig retning.
  3. Test af model: ligger flg. fødevare korrekt:  Kokos (0,4); Rødbede (2,7); Citron (4,0); 

Få hvert par til at give en kort vurdering af deres model og komme med bud på forbedringer. Herefter udvælger eleverne bedre features i Lesson 7.1: Fruit and veggie explorer på code.org. Når alle har en model, så vælg sammen et bud på features. Træn en model i plenum og diskuter mulige problemer med varians og skæv fordeling.


Opsummer fødevarecasen og repeter bias samt skæv fordeling. Introducer til forskel på numerisk,ordnet og uordnet kategorisk data med afsæt i casen samt de to apps fra første modul.

Stil eleverne op efter højde på en række. Bed eleverne om at træde et skridt frem for hvert nummer, deres sko er større end 40, eller et skridt tilbage hvert nummer undrer 40. Diskuter, om der nu kan trækkes en streg, hvad stregen i givet fald skiller, samt om der kan være udfordringer med varians og/eller skæv fordeling. Overvej også, om det er et numerisk eller (u)ordnet kategorisk datasæt, samt om det er superviseret eller usuperviseret læring. 

Vis Introduction to the Perceptron (Artificial Intelligence - All in One, Youtube) og bed eleverne om at relatere Perceptron til eksempler med fødevare og højde/skostørrelse. De skal også udpege input/features og output/labels. Sæt herefter eleverne til parvist at karakterisere og vurdere risiko for problemer med varians og bias for flg. datasæt: [måKøreBil, indtagneGenstande, tid],  [bilforsikringspris, postnummer, køn, alder, jobtype].

Vis videoen Understanding Deep Learing with Tensorflow (Artificial Intelligence - All in One, Youtube) og lav en kort opsamling med fokus på input/features, lag, neuroner og vægte. Åbn sammen playground.tensorflow.org og vis en perceptronopsætning med to inputs og én neuron på datasættet Gaussian. Introducer opdeling i trænings og testdata, samt hvordan man justerer datamængde (batch size) og varians (noice). Sæt eleverne til at opstille netværk med færrest neuroner og lag til datasættene circle og spiral på tensorflow.org. Få elevernes bud på opsætning og kør én sammen. Fremhæv, hvordan samme opsætning ender ud i forskellige modeller pga. tilfældigt setup af vægte samt valg af data til træning og test.

Afslut med, at eleverne byder ind på, hvad de 3 datasæt kunne repræsentere - kom evt. omkring sciencedirect.com: Digitized spiral drawing classification for Parkinson's disease diagnosis. Introducer begrebet black box models med spiralegenkenderen som eksempel. Giv eksempler på populære modellers størrelse herunder ChatGpt 3’s 96 lag og 175 milliarder vægte. Bed eleverne overveje: hvad der giver problemer med transparens i neurale netværk? hvorfor netværkene er svære at justere? hvornår den manglende. transparens er et problem?


Vis Introduction to AI-lab (code.org, youtube) og få eleverne til at udpege features og labels i eksemplerne med grøntsag/frugt, højde+skostørrelse samt spiral. Start sammen op på lektion 7.3 og vis, at bacon er et godt ”hot spot”. Relater hot spot til varians og bed eleverne overveje, om der ved netop bacon kan være bias/skæv fordeling. De arbejder herefter med at vælge features og træne en model over gode kombinationer af ingredienser til en pizza.

Når alle har en model, så få bud på features og træn modellen sammen. Fremhæv, hvordan procentsatsen i test varierer alt efter, hvilke data der udvælges til træning og test. Bed om en mærkelig kombination af ingredienser og tjek modellens bud. Klik herefter på ”Details” og se om kombinationen findes i datasættet. Overvej sammen, hvordan modellen kan give bud på kombinationer, der ikke er i datasættet, samt om det er problematisk eller smart. Kom evt. kort ind på de mange dimensioners forbandelse (Jf. Johansen & Sørensen 2018).

(Gen)-introducer layout og designguidelines som AIDA og gestaltlove. Sæt eleverne i gang med at lave Lektion 10 og Lektion 11, hvor de træner en model til at klassificere dyr og udvikler et intuitivt design og layout til brug af modellen.


Præsenter forskel på klassifikations og regressionsproblemer ved at vise videoen Logistic Regression (StatQuest, Youtube). Kobl regressionsproblem til numeriske labels og redegør evt. kort for princippet bag beregning af test-lost med mindste kvadraters metode.

Vis Numerical Data in AI Lab (code.org, youtube) og sæt så eleverne i gang med Lesson 13, hvor de skal generere en model over antal løver man ser på en safari - alt efter vejr, sæson og omgivelser. Bed dem om at tilpasse forsiden, så den følger AIDA, og sørge for at valg af parametre opfylder Donald Normans designprincipper.

Opsamling: Hvilke features er gode? Hvordan laves et godt layout til valg af features? Hvordan kommunikeres svarets usikkerhed bedst? Introducer til sidst induktionsproblemet samt tilfældige korrelationer og bed eleverne vurdere, om der i casen kan opstå problemer med eks. manglende aktualitet - det er oplagt at komme omkring klimaforandringer. 


Opsummer med eleverne, hvad man kan/skal overveje, før man bruger et datasæt til maskinlæring. Skriv en fælles guideline op på tavlen, der kommer omkring: datamængde, fordeling, varians, transparens, aktualitet. Bed dem også komme med cases, hvor man må inddrage konsekvenser ved forkerte prædiktioner.

Eleverne skal nu udvikle en app, der bruger en maskinlæringsmodel. Vis dem tilgængelige datasæt i lektion 16. Præsenter også muligheden for at importere datasæt fra eks. kaggle.com eller opendata.dk - datasæt skal være kommaseparerede filer (.csv) og have færre end 20.000 poster.

Bed eleverne om parvist at kigge datasæt igennem og komme med en idé til brug i en app. De skal dele link til datasæt i en delt logbog, begrunde ideen og vurdere datasættets mængde, fordeling/varians samt mulige bias. De skal også beskrive mulige problemer med transparens, aktualitet samt konsekvens i forhold til den foreslåede brug.

Parrene skal så afprøve features og løbende gemme screendumps af testresultater i logbogen, som de skal bruge i en begrundelse for det endelige valg. Når de har fundet det endelige sæt features, skal de træne på samme sæt flere gange i træk og igen tage et screendump til brug i en dokumentation og vurdering af modellens varians.

Idet alle har en model, så vis Machine Learning Fundamentals: Bias and Variance (StatQuest, Youtube). Kobl bias til den opnåede procentsats ved test samt varians til variation i procentsatser ved gentagne test med samme features. Afslut med, at eleverne skriver en vurdering af deres model i logbogen.


Parrene udvikler en app, der bruger deres model. De dokumenterer undervejs overvejelser omkring design og layout - eksempelvis brug af AIDA-modellen på forsiden, intuitivt valg af parametre ud fra Normans designprincipper samt god/forsvarlig visning af resultater. 


Vis Algorithmic Bias and Fairness (Crash Course, youtube) og lav en opsamling med fokus på bias, korrelation og positivt feedback loop. Bed parrene om at overveje og notere, hvordan og i hvilken grad, det kan være et problem i deres app. 

Præsenter herefter Floridi & Cowls (2019) bud på en ai-etik, der består af flg 5 principper :

  • Godhed: brugeres forhold og/eller muligheder skal forbedres
  • Uskadelighed: brugere må ikke have uforholdsmæssig risiko/ulempe
  • Selvbestemmelse: brugere skal være i kontrol
  • Retfærdighed: brugere skal have ens vilkår uanset baggrund 
  • Transparens: brugere skal finde output forståeligt og kunne efterprøve det

Sæt eleverne til at gennemføre tænke-højt-test med de 5 principper som fokuspunkt. Én fra hvert par går ud og tester hos de andre par, mens den anden bliver tilbage og afholder test og noterer i logbog. Parrene bytter roller internt efter 3-4 test. 

Bed herefter om eksempler på, at elevernes bud på systemer bryder med de etiske principper. Vurder sammen, hvilken grad hvert brud har, samt hvordan det kan imødegås. Til sidst sammenskriver parrene deres logbog til en beskrivelse af processen samt etiske overvejelser og bud på forbedringer.  


I samarbejde med:

Materialet er udarbejdet af Centre for Undervisningsmidler (CFU) - en del af af Danmarks Professionshøjskoler.

Siden er opdateret af emu-redaktionen
Rettigheder:

Tekstindholdet på denne side må bruges under følgende Creative Commons-licens - CC/BY/NC/SA Kreditering/Ikke kommerciel/Deling på samme vilkår. Creative Commons-licensen gælder kun for denne side, ikke for sider, der måtte henvises til fra denne side.
Billeder, videoer, podcasts og andre medier og filer på siden er underlagt almindelig ophavsret og kan ikke anvendes under samme Creative Commons-licens som sidens tekstindhold.