HenrikSterner / IntelligenteSystemer

Introduktion til maskinelæring og datascience i Python
5 stars 1 forks source link

Kunstig Intelligente Systemer: En introduktion til maskinelæring i Python

Underviser: Henrik Sterner (datalog og matematiker, hst@nextkbh.dk)

Denne side kan tilgås via https://henriksterner.github.io/IntelligenteSystemer/.

Introduktion

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:

Forudsætninger

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:

Grundbog og øvelser

Vi bruger uddrag af følgende to gratis og opensource bøger:

  1. (PY) A Whirlwind Tour of Python af Jake VanderPlas.
  2. (PD) Python Data Science Handbook af Jake VanderPlas.
  3. (DI) Dive into Deep Learning af Aston Zhang et al.
  4. (ØP) Øvelser for øvede af Henrik Sterner.
  5. (ØP2) Nybegynder øvelser af Henrik Sterner.
  6. (ML) Mathematics for machine learning af Deisenroth et al.
  7. (ML2) Probabilistic Machine Learning: An Introduction
  8. (NP) Numpy øvelser for begyndere
  9. (NPe) Numpy øvelser med svar
  10. (MP) Matplotlib øvelser med indlejrede svar.
  11. (MP2) Matplotlib øvelser for begyndere
  12. (SP) Streamlit øvelser

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.

Slides

Mine slides er tilgængelige her (kryperet - password udleveres ved start).

Software

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:

Undervisningsplan

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