Les 2 - AI en Machine Learning

Python intro
Programming basics-II
Les 3 / Week 7a
Introductie tot AI en Machine Learning
FUT: Future Tech
Les 2
1 / 54
volgende
Slide 1: Tekstslide
Applicatie- en mediaontwikkelaarMBOStudiejaar 1

In deze les zitten 54 slides, met interactieve quizzen en tekstslides.

Onderdelen in deze les

Python intro
Programming basics-II
Les 3 / Week 7a
Introductie tot AI en Machine Learning
FUT: Future Tech
Les 2

Slide 1 - Tekstslide

Les 2 AI en Machine learning
Tips
Het is misschien interessant om volgende week in lessonup een aantal vragen te stellen als check, met een aantal voorbeelden van A/I, machine learning & deep learning, waarbij ze moeten aangeven waarvan het een voorbeeld is (1 van de drie).
Het stuk over analogie is heel duidelijk, goed voorbeeld ook van die Engelse woordjes.
Kun je een voorbeeld geven van hoe zo'n model getraind wordt? In de context van de Engelse woorden?
Sheet 14 en 15: dit zou van mij wat duidelijker mogen:
"Bij machine learning stellen we verbindingssterkte (weights) tussen de neuronen in het neural network bij."
Bij deze en de volgende twee sheets zou het mij enorm helpen als je het voorbeeld van de Engelse woordjes even echt concreet mee pakt: Ik leer bijvoorbeeld deze en deze woordjes. En dit woordje past bij dit Nederlandse woord, maar waarom is de weight dan hoger of lager. Wat bepaalt dat?
Die weights is mij niet helemaal duidelijk, hoe je dat cijfer bepaalt. Dit blijft wat abstract.
Vanaf sheet 28. Ik snap het idee, maar ik snap het niet.
Is het mogelijk om een voorbeeld te koppelen in de sheets aan de input layer, de hidden layers en de output layer?
Vooral de hidden layer blijft voor mij wat vaag in de uitleg. Want hoe heb ik het model nou getraind? Welke instructies heb ik hem uitgelegd waardoor mijn hidden layers kloppend worden en de weights een bepaald cijfer (waarvan ik ook niet begrijp hoe dat bepaald wordt)
Misschien een iets praktischer voorbeeld met wat de input is (een text? Of een plaatje? of een vraag?), wat gebeurt er dan? bepalen we zelf hidden layers?
Het inference stuk snap ik niet. Is dat een bepaald textformat waarin het opgeslagen wordt?
Sheet 40 t/m 46: zijn dit bronnen waar je zelf mee kan werken? Of waarvoor geburiken we dit? Wat leveren ze? Wat doe je zelf? Hoe passen we het toe?
Deze les
Na deze theoretische les weet/ken je:
  • Hoe een AI wordt getraind
  • De belangrijkste definities & begrippen
  • De bekendste Machine Learning frameworks en tools

Slide 2 - Tekstslide

Deze slide heeft geen instructies

Slide 3 - Tekstslide

Deze slide heeft geen instructies

Welke AI-tools ken je?
Bijv.: ChatGPT

Slide 4 - Woordweb

Deze slide heeft geen instructies

Definities & Begrippen
Definitie van: AI: artificiële intelligentie (of kunstmatige intelligentie)
AI is de mogelijkheid van een machine om mensachtige vaardigheden te vertonen - zoals redeneren, leren, plannen en creativiteit.


Slide 5 - Tekstslide

Deze slide heeft geen instructies

Definities & Begrippen
Definitie van: ML: Machine Learning
Machine learning (ML) is een vorm van kunstmatige intelligentie (AI) die gericht is op het bouwen van systemen die van de verwerkte data kunnen leren of data gebruiken om beter te presteren.


Slide 6 - Tekstslide

Deze slide heeft geen instructies

Kan de 'AI' in Games ook zelf leren?
(Links Unity, rechts Unreal Engine)









Niet op dezelfde manier als dat we
in deze lessen gaan behandelen. 
Dit soort AI is nog steeds handmatig
vooraf geprogrammeerde logica.

Slide 7 - Tekstslide

Vrijwel alle 'AI' in games zijn 'intelligent' dankzij voorgeprogrammeerde logica.
Maar momenteel bij Unity in closed beta: Gebruik tekst om code, animaties, textures en materialen te genereren.

Slide 8 - Tekstslide

Deze slide heeft geen instructies

Definities & Begrippen
Definitie van: Deep Learning
Deep learning is een subveld van machine learning. Deep learning wordt gebaseerd op kunstmatige neurale netwerken. Deep learning stelt computers in staat om nieuwe dingen te leren van grote hoeveelheden data. Voorbeelden zijn beeldherkenning, spraakherkenning, spelen van bordspel programma’s of vertalingen. Deep learning is slechts een term om bepaalde soorten neural netwerks en gerelateerde algoritmen te beschrijven die vaak onbewerkte invoergegevens verbruiken.


Slide 9 - Tekstslide

Deze slide heeft geen instructies

Slide 10 - Tekstslide

Deze slide heeft geen instructies

Hoe een AI wordt gebouwd
Met Machine Learning...

Slide 11 - Tekstslide

Deze slide heeft geen instructies

Analogie

Stel je voor dat machine learning een student is die wordt voorbereid op het begrijpen van de Engelse taal.

De student == machine learning-model
De Engelse taal begrijpen == de uiteindelijke taak die het model moet uitvoeren.

Slide 12 - Tekstslide

Deze slide heeft geen instructies

Analogie:
Stel je voor dat machine learning een student is die wordt voorbereid op het begrijpen van de Engelse taal.
1. Lesmateriaal: De docent heeft een groter berg aan Engelse woorden en vertalingen beschikbaar, om te gebruiken in het leerproces. Dit is vergelijkbaar met hoe een AI-model wordt getraind met behulp van training data. 
We geven de student daarbij niet meteen de vragen van de eindtoets. Bij de AI houden we ook een deel van de data achter voor validatie en testen.




1. Lesmateriaal ▶ 2. Leerproces ▶ 3. Feedback en evaluatie  ▶ 4. Optimalisatie  ▶ 5. Inferentie

Slide 13 - Tekstslide

Deze slide heeft geen instructies

Analogie:
Stel je voor dat machine learning een student is die wordt voorbereid op het begrijpen van de Engelse taal.
2. Leerproces: De docent vraagt een student om een Engels woord te vertalen. Als het goed is krijgt de student een beloning en neemt die de Engelse woorden op in de hersenen. Bij machine learning stellen we verbindingssterkte (weights) tussen de neuronen in het neural network bij als die gewenste antwoorden geeft.





1. Lesmateriaal ▶ 2. Leerproces ▶ 3. Feedback en evaluatie  ▶ 4. Optimalisatie  ▶ 5. Inferentie

Slide 14 - Tekstslide

Met gewichten bedoelen we de verbindingen (lijnen in afbeelding) tussen neuronen (bolletjes in afbeelding)
Analogie:
Stel je voor dat machine learning een student is die wordt voorbereid op het begrijpen van de Engelse taal.
3. Feedback en evaluatie: De student kan oefentoetsen maken om zijn vaardigheden te evalueren. Eventuele fouten worden geanalyseerd om de zwakke punten te identificeren en te verbeteren. Bij machine learning controleren we met een validatieset (achtergehouden gegevens): 'Wordt de AI beter?' Zo niet dan was de vorige bijstelling van weights (verbindingssterkte tussen neuronen) in het leerproces niet goed en proberen we andere weights.



1. Lesmateriaal ▶ 2. Leerproces ▶ 3. Feedback en evaluatie  ▶ 4. Optimalisatie  ▶ 5. Inferentie

Slide 15 - Tekstslide

Deze slide heeft geen instructies

Analogie:
Stel je voor dat machine learning een student is die wordt voorbereid op het begrijpen van de Engelse taal.
4. Optimalisatie: De student is klaar voor de eindtoets wanneer deze goede resultaten op de oefentoetsen laat zien. De AI is klaar wanneer deze voldoende juiste voorspellingen doet op basis van ingevoerde gegevens uit de validation data.
We blijven stappen 2 en 3 herhalen totdat we tevreden zijn over de resultaten. Bij een AI zou het mooi zijn als de AP (gemiddelde precieze) boven 70% is.
(AP = Average Precision)



1. Lesmateriaal ▶ 2. Leerproces ▶ 3. Feedback en evaluatie  ▶ 4. Optimalisatie  ▶ 5. Inferentie

Slide 16 - Tekstslide

In het geval dat een model achteruit blijft gaan of geen voortgang maakt kan een ander leer algoritme beter zijn.

Hyperparameters zijn zaken als: welke 'hidden layers' worden gebruikt. Welk leer algoritme. Hoe is de splitsing tussen training/validation en test data.
Analogie:
Stel je voor dat machine learning een student is die wordt voorbereid op het begrijpen van de Engelse taal.
5. Inferentie: De student laat op de eindtoets zien dat die alle geleerde Engelse woorden kent. De student is nu bekwaam in de getrainde Engelse woorden.
De AI is klaar wanneer deze, op basis van (nog nooit geziene) testdata, laat zien dat deze meer dan 70% accuraat is.

Op het AI-model kan nu 'inference' worden toegepast, om op basis van de getrainde 'weights' een voorspelling te doen.
(inferentie = Het vermogen om nieuwe kennis af te leiden uit bestaande kennis.)

1. Lesmateriaal ▶ 2. Leerproces ▶ 3. Feedback en evaluatie  ▶ 4. Optimalisatie  ▶ 5. Inferentie

Slide 17 - Tekstslide

Is het resultaat van de eindtoets (of de testdata bij aI) onvoldoende? Dan gooien we het model weg en gaan we terug naar stap 1 of 2.

Als we slechte resultaten blijven krijgen is de testdata misschien niet goed.
Welke risico's zie je in deze aanpak?
Doel: de student begrijpt de Engelse taal.

Manier van leren/toetsen:
  • De docent vraagt een student om een Engels woord te vertalen. Als het goed is krijgt de student een beloning en neemt die de Engelse woorden op in de hersenen
  • De student is klaar voor de eindtoets wanneer deze goede resultaten op de oefentoetsen laat zien
  • De student laat op de eindtoets zien dat die alle geleerde Engelse woorden kent. De student is nu bekwaam in de getrainde Engelse woorden.

Slide 18 - Tekstslide

Deze slide heeft geen instructies

Slide 19 - Tekstslide

In het voorbeeld van de student begint die met willekeurige voorkennis.

We geven de student lesstof om te leren en houden de oefentoets en toetsvragen achterwege.

We vragen de student oefentoetsvragen (validation data split). Is het resultaat hoog genoeg? Dan is die klaar voor de eindtoets (test data split). Zo niet? Laat ze dan hun kennis bijwerken (adjust weights) op basis van nieuwe training data.

Herhaal totdat het resultaat hoog genoeg is en test het uiteindelijke model/de student met de eindtoets (test data)
Definities & Begrippen
Definitie van:
Neural network
"Een neuraal netwerk is een statistisch leermodel dat is gebaseerd op biologische neurale netwerken. De individuele elementen van het neural network, de processoren, oftewel neuronen, zijn eenvoudig. Ze lezen input en verwerken deze, en genereren output. Een netwerk van veel verbonden neuronen kan echter ongelooflijk rijk en intelligent gedrag vertonen. Normaal gesproken worden neuronen in lagen georganiseerd. Data reist van de eerste (input) naar de laatste (output) laag, mogelijk na het meerdere keren doorlopen van de lagen." Bron: https://3bplus.nl/machine-learning/hoe-werkt-een-neuraal-netwerk-neurale-netwerken-uitgelegd/ 
Tussen neuronen is sprake van verbindingssterkte (weights).

Slide 20 - Tekstslide

Deze slide heeft geen instructies

Definities & Begrippen
Definitie van: AI-Model

Nadat een AI getraind is met machine learning hebben we een 'AI-model'. Dat model is een soort programma dat op basis van onze invoer een uitvoer geeft. Het model heeft een duidelijke functie en doel waarvoor het getraind is. Na het trainen liggen de 'weights' van de AI vast.
Wanneer we het model invoer geven (die niet in de training dataset aanwezig is) noemen we dat 'inference'. Het neural network wordt doorlopen om tot een uitvoer (prediction) te komen.

(inferentie = Het vermogen om nieuwe kennis af te leiden uit bestaande kennis.)

Slide 21 - Tekstslide

Deze slide heeft geen instructies

Hoe zou het trainen van een AI verkeerd kunnen gaan?

Slide 22 - Open vraag

Deze slide heeft geen instructies

Hoe het trainen van een AI verkeerd kan gaan
Enkele mogelijke problemen bij trainen AI:
  • Overfitting: De AI heeft zich te sterk aanpast aan de training gegevens en presteert daardoor slecht op nieuwe (nooit geziene) gegevens.
  • Onvoldoende trainingsgegevens
  • Onvoldoende validatie en testgegevens
  • Onvoldoende kwaliteit trainingsgegevens: Als er weinig variatie in de training data is, of deze vooroordelen bevat, zal de AI die overnemen.

Slide 23 - Tekstslide

Overfitting: als ik alle vragen van de tussentoets geef én die van de eindtoets kun je die prima halen. Maar snap je de stof dan ook?

Slide 24 - Tekstslide

Deze slide heeft geen instructies

Een voorbeeld van een écht AI-model
Een object herkenning AI gebouwd op de YOLOv3 architectuur

Slide 25 - Tekstslide

Deze slide heeft geen instructies

Voorbeeld AI architectuur: 
YOLO v3 real-time object herkenning
YOLO: 'You Only Look Once'
Om object herkenning te trainen kan de YOLO v3 architectuur worden gebruikt. 

AI onderzoekers hebben dit machine learning algoritme bedacht:

Slide 26 - Tekstslide

De onderzoekers van YOLOv3 hebben het machine learning algoritme uitgevonden. Ze hebben gezocht naar een perfecte balans van algoritmes en neural networks die geschikt is voor een object herkennings AI-model.

YOLOv3 Paper






Bron: https://arxiv.org/abs/1804.02767

Slide 27 - Tekstslide

AI onderzoekers publiceren hun machine learning algortimes en bevindingen vaak in papers. Daarin beargumenteren ze waarom hun algortimes beter/sneller/iets zijn.
Rechts een tabel waarin bestaande algoritmes worden vergeleken. AP staat voor Average Precision, hoger is beter.
Ookal is YOLOv3 niet het meest accuraat, het is het snelst. Daarom wordt het veel gebruikt.
Voorbeeld AI-model: 
YOLO v3 real-time object herkenning getraind op COCO
Op basis van de COCO dataset is met de YOLO v3 architectuur een object herkenning AI-model getraind.
https://cocodataset.org/#explore





Slide 28 - Tekstslide

Laat op https://cocodataset.org/#explore zien hoe de foto's zijn gelabeld. Ook wel 'annotaties' genoemd.
Hoe de COCO dataset is gebruikt om een AI-model te trainen via de YOLOv3 architectuur...

(erg versimpelde weergave)

Slide 29 - Tekstslide

Deze slide heeft geen instructies

Tussen de neuronen geven 'weights' (gewichten) de sterkte aan tussen verbindingen. Je kunt je voorstellen dat een AI begint met alle weights op '0' en vervolgens langzaam probeert uit te vinden wat de beste weg is naar de gewenste output.
Training op COCO dataset
De input layer bevat bijv. de kleuren van iedere pixel, of herkenbare vormen.
De output layer bevat alle mogelijke labels (alle categorieën die herkent kunnen worden)

Slide 30 - Tekstslide

Deze uitleg is niet geheel correct, maar kan helpen om een conceptueel begrip te vormen.
weight: 1
weight: 1
weight: 1
Hond (fout!)
Training op COCO dataset
Label: Kat
Kat
Mens
Auto
De input layer bevat bijv. de kleuren van iedere pixel, of herkenbare vormen.
De output layer bevat alle mogelijke labels (alle categorieën die herkent kunnen worden)

Slide 31 - Tekstslide

Deze uitleg is niet geheel correct, maar kan helpen om een conceptueel begrip te vormen.

Het Machine Learning algortime checkt het label en kijkt of de AI een goede voorspelling heeft gedaan.
weight: 1
weight: 1
weight: 1
Hond (fout!)
Training op COCO dataset
Iteratie #1
Label: Kat
Kat
Mens
Auto
De input layer bevat bijv. de kleuren van iedere pixel, of herkenbare vormen.
De output layer bevat alle mogelijke labels (alle categorieën die herkent kunnen worden)

Slide 32 - Tekstslide

Deze uitleg is niet geheel correct, maar kan helpen om een conceptueel begrip te vormen.

Het Machine Learning algortime checkt het label en kijkt of de AI een goede voorspelling heeft gedaan.
weight: 1
weight: 0,4
weight: 0,4
Hond (fout!)
Training op COCO dataset
Iteratie #2
Label: Kat
Kat
Mens
Auto
weight: 0,6
weight: 1

Slide 33 - Tekstslide

Deze uitleg is niet geheel correct, maar kan helpen om een conceptueel begrip te vormen.
weight: 0,2
weight: 0,4
weight: 0,3
Hond
Training op COCO dataset
Iteratie #2,123,151
Label: Kat
Kat (Juist!)
Mens
Auto
weight: 0,6
weight: 0,1
weight: 0,2
weight: 0,4
weight: 0,1
weight: 0,6
weight: 0,9

Slide 34 - Tekstslide

Deze uitleg is niet geheel correct, maar kan helpen om een conceptueel begrip te vormen.
Na het trainen eerst testen...
Eerst de 'Eindtoets' voor de AI door nog nooit eerder geziene gegevens te geven aan het model. We meten: 
Wat is de Average Precision, ofwel: hoe accuraat is de AI?

Slide 35 - Tekstslide

Bron: https://pjreddie.com/darknet/yolo/
Na het trainen en testen: inference
Na het trainen hebben we een AI-model waarop we inference kunnen uitvoeren. Enkele formaten waarin een AI-model kan worden opgeslagen:
TF

Slide 36 - Tekstslide

Deze slide heeft geen instructies

Na het trainen en testen: inference
Inference (ook wel predictions genoemd) uitvoeren op het opgeslagen model, bijv. met TensorFlow (TF).

De invoer aan het model dient hetzelfde formaat te 
hebben als de gegevens die tijdens het trainen aan
het AI model zijn gegeven.

Voor YOLOv3-608 is dat formaat een afbeelding in
kleur van 608x608 pixels.

Slide 37 - Tekstslide

Bron: https://saturncloud.io/blog/tensorflow-how-to-predict-from-a-savedmodel/
Hoe wordt een AI-model hopelijk beter tijdens het machine learning proces?
A
Door evaluatie en het aanpassen van de weights (verbindingssterkte tussen neuronen)
B
Door de data veel op te slaan in een soort database.
C
Door het maken van oefentoetsen
D
Door het uitvoeren van inference

Slide 38 - Quizvraag

Deze slide heeft geen instructies

Wat wordt bedoeld met het uitvoeren van 'inference' op een AI-model?
A
Het verbeteren van zwakke punten
B
Het analyseren van fouten
C
Het doen van voorspellingen op basis van getrainde weights
D
Het trainen van het model

Slide 39 - Quizvraag

Deze slide heeft geen instructies

Bekende AI Tools en Frameworks
Tools die gebruikt worden om:
AI te trainen
AI-modellen te benutten in applicaties

Slide 40 - Tekstslide

Deze slide heeft geen instructies

open-source machine learning framework
  • Programmeertalen: Python, Mojo
  • Ontwikkeld door Google
  • Deep learning models trainen
  • Neurale netwerken voor taken zoals beeldclassificatie, natuurlijke taalverwerking en versterkend leren

Slide 41 - Tekstslide

Deze slide heeft geen instructies

open-source deep learning framework
  • Programmeertalen: Python, Mojo
  • Ontwikkeld door Facebook's AI Research lab (FAIR)
  • Bekend om zijn dynamische berekeningsgrafiek, waardoor het gemakkelijker wordt voor onderzoekers en ontwikkelaars om te experimenteren met en fouten op te sporen in deep learning models.

Slide 42 - Tekstslide

Deze slide heeft geen instructies

high-level neural networks API
  • Programmeertalen: Python, Mojo
  • Draait bovenop andere deep learning frameworks, waaronder TensorFlow en Theano.
  • Vereenvoudigt het proces van het bouwen en trainen van neural networks.

Slide 43 - Tekstslide

Deze slide heeft geen instructies

open-source machine learning framework
  • Programmeertalen: C#, F#
  • Ontwikkeld door Microsoft, voor .NET ontwikkelaars
  • Ondersteunt transfer learning en kan worden ingezet op apparaten en in de cloud
  • Biedt interoperabiliteit met populaire machine learning bibliotheken zoals TensorFlow en ONNX.

Slide 44 - Tekstslide

Deze slide heeft geen instructies

(CUDA: Compute Unified Device Architecture)
parallel computing platform and API
  • Het stelt ontwikkelaars in staat om de kracht van NVIDIA GPU's te benutten voor parallelle verwerking.
  • Toolkit met bibliotheken en hulpmiddelen voor GPU-programmering.
  • Breidt C/C++ uit met GPU-specifieke functies en wordt veel gebruikt in high-performance computing en AI-toepassingen dankzij uniform geheugenbeheer.

Slide 45 - Tekstslide

Deze slide heeft geen instructies

cloud-based platform for developing, training, and deploying machine learning models
  • Platform van Microsoft
  • Voor het ontwikkelen, trainen en in productie brengen van deploying machine learning models
  • Heeft tools and diensten voor data scientists en software developers
  • Mogelijkheden tot automatische machine learning

Slide 46 - Tekstslide

Het trainen van een AI kost veel computerkracht. CUDA van Nvidia kan helpen het proces te versnellen, maar helemaal krachtig zijn computers die specifiek gebouwd zijn voor machine learning. In de cloud bestaan veel oplossingen.
Andere cloud-based platforms voor AI naast Microsoft Azure

Slide 47 - Tekstslide

Deze slide heeft geen instructies

🔭 Volgende week
Start van de Workshop AI trainen en gebruiken met

Slide 48 - Tekstslide

Deze slide heeft geen instructies

ML vs. Traditioneel Programmeren
Hoe Machine Learning verschilt van traditioneel programmeren

Slide 49 - Tekstslide

Deze slide heeft geen instructies

Traditioneel Programmeren

  • De ontwikkelaar schrijft expliciete instructies in de vorm van regels en algoritmen.
  • Instructies gebaseerd op vooraf gedefinieerde logica.
  • Voorspelbaar en gebaseerd op logische beslissingen die zijn vastgelegd door de ontwikkelaar.
Machine Learning

  • Een algoritme leert van gegevens in plaats van dat het expliciete instructies krijgt.
  • Het algoritme past zich aan en verbetert zijn prestaties naarmate het meer gegevens verwerkt en leert van patronen en trends.
  • Adaptief en in staat om complexe taken uit te voeren, zoals patroonherkenning en voorspellingen, zonder dat de ontwikkelaar expliciete regels hoeft te schrijven.

Slide 50 - Tekstslide

Deze slide heeft geen instructies

ML of Traditioneel Programmeren?
Gaan we traditioneel programmeren, of maken we een AI?

Casus: Voor eenvoudige rekenkundige bewerkingen, zoals het optellen, aftrekken, vermenigvuldigen en delen van getallen, is traditioneel programmeren veel geschikter.
Het schrijven van expliciete instructies voor deze taken is efficiënter, sneller en betrouwbaarder dan het trainen van een ML-model om dezelfde basisberekeningen uit te voeren.

Slide 51 - Tekstslide

Deze slide heeft geen instructies

ML of Traditioneel Programmeren?
Gaan we traditioneel programmeren, of maken we een AI?

Casus: Een app die gesproken tekst automatisch transcribeert (naar geschreven tekst omzet). 
Machine Learning is buitengewoon geschikt voor complexe taken zoals spraakherkenning en beeldherkenning. Het trainen van AI-modellen om menselijke spraak of objecten in beelden te begrijpen, vereist enorme datasets en complexe patronen die moeilijk handmatig kunnen worden gecodeerd.

Slide 52 - Tekstslide

Deze slide heeft geen instructies

ML of Traditioneel Programmeren?
Gaan we traditioneel programmeren, of maken we een AI?

Casus: Bij het bouwen van websites, waar de inhoud niet verandert op basis van gebruikersgedrag of gegevensanalyse, is traditioneel programmeren de standaardbenadering. 
Webontwikkelaars schrijven HTML, CSS en JavaScript om de structuur en vormgeving van de site te definiëren, zonder de noodzaak voor ML.

Slide 53 - Tekstslide

Deze slide heeft geen instructies

ML of Traditioneel Programmeren?
Gaan we traditioneel programmeren, of maken we een AI?

Slide 54 - Tekstslide

Deze slide heeft geen instructies