Underviser: Henrik Sterner (datalog og matematiker, hst@nextkbh.dk)
Denne side kan tilgås via https://henriksterner.github.io/IntelligenteSystemer/.
Har du undret dig over hvordan ChatGPT fungerer og hvordan generativ AI/kunstig intelligens kan generere alt fra tekst, billeder, lyd og video? I dette fag få du en dyb forståelse af kunstig intelligens og hvordan det kan bruges i alle mulige sammenhænge.
Kunstig intelligens i form af machine learning (maskinlæring) og deep learning (dyb læring) på neurale netværk transformerer alle aspekter af vores samfund i disse år – ikke mindst vores forståelse af verdenen og af os selv.
Det er et ekstremt spændende felt, hvor grænserne næsten dagligt rykkes for hvad vi troede var muligt for blot få år siden. Denne udvikling tager kun til i de kommende år i takt med, at stadig større datamængder bliver tilgængelige og at microchips/computere bliver stadig mindre, hurtigere og mere allestedsnærværende.
Nærværende side beskriver et undervisningsforløb der har til formål at give jer en praktisk introduktion til algoritmerne, metoderne og værktøjerne bag machine learning og deep learning med henblik på at gøre jer i stand til at designe og udvikle systemer/prototyper, der tager selvstændige data-drevne beslutninger på baggrund af modeller, som vi har trænet. Dvs. ved at få computeren til at lære fra data skabes systemer, der er i stand til at imitere menneskelig intelligens.
Herunder nogle bud på systemer, som vi kan udvikle prototyper af. Listen er langt fra udtømmende og kan udvides/tones efter ønske/det andet valgtema:
For at kunne forstå, implementere og anvende algoritmer indenfor maskinelæring forudsættes en god forståelse for emner både indenfor datalogi og matematik. Fundamentet for ML består af:
Vi bruger uddrag af følgende to gratis og opensource bøger:
Bøgerne er gratis, og rummer en række kapitler i jupyter-formatet, som gør det muligt at kombinere tekst og kode. Derudover vil der være uddrag fra andre bøger og materialer fra nettet. (PY) og (PD) er primær litteratur mens resterende er sekundær litteratur. (ML) og (ML2) er supplerende litteratur til dem som gerne vil have en bedre forståelse af matematikken bag.
Mine slides er tilgængelige her (kryperet - password udleveres ved start).
Man kan vælge at køre online uden at skulle installere noget og dokumenter kan nemt deles:
Alternativt kan man bruge
Begge løsninger giver mulighed for at skrive Python (i jupyter-format) og tilhørende biblioteker numpy, scikit, matplotlib, streamlit etc.
Derudover kommer vi til at bruge Python til Processing, da det ofte er særdeles nemt at visualisere algoritmer i to dimensioner:
Planen er tentativ og kan ændres. Den indleder med et crash course i Python. Lineær algebra og sandsynlighedsregning, som er centrale forudsætninger for at forstå maskinelæring, vil også blive introduceret undervejs.
Modul Nr | Kapitel | Indhold | Øvelser | |
---|---|---|---|---|
1 | PY:1-6 | Python I: Variabler, sekvens og selektion | ØP2: alle øvelser, ØP:1-6 | |
2 | PY:7-11 | Python II: Iterationer, funktioner, fejl og lister | ØP2: 1-13,ØP:7-14,18-26,33,37 | |
3 | PY:16,PD:2 | Python III: Beregninger med Numpy | NP:1-20, NPe: frivillig | |
4 | PY:16,PD:4 | Python IV: Grafik med Matplotlib | MP2, ØP: 43-48(eksl. 47), evt. de 10 fra (MP) | |
5-6 | PD:5(kNN) | KNN-algoritmen (jupyter) | Lego Projet // KNN Projekt | |
7.1 | slides | Datavisualisering i Python | SP: 1-20 | |
7.2 | slides | Webscraping i Python | ||
8 | PD:5(kmeans),slides | K-means algoritmen | Projekt | |
9.1 | slides | Lineær algebra | ||
9.2 | slides | Deskriptiv statistik | ||
9.3 | slides | Sandsynlighedsregning | ||
10.1 | PD:5(Linear regression..) | Lineær regression | Projekt | |
10.2 | PD:5(Linear regression..) | Polynomiel regression | Projekt | |
11 | PD:5(Decision Trees..) | Beslutningstræer og Randomiseret skove | ||
12 | PD:5(Naive Bayes..) | Naiv Bayes-algoritmen | Projekt | |
13-14 | ML2:10 | Logistisk regression | Projekt | |
15 | Perceptroner | |||
16 | Lineært Neurale netværk | |||
17 | Multilinære Neurale netværk | |||
18 | Neurale netværk | |||
19 | Dyb læring | |||
20 | Convolutional neurale netværk |