Subido por Jesper van Gils

Onderzoeksrapport Machine Learning v1.1

Anuncio
Onderzoeksrapport
Afstudeeropdracht Machine Learning
Projectnummer Gain:
P210177
Documentnummer:
Status:
Onderzoeksrapport Machine Learning v1.1
Definitief
Uitgebracht aan:
Gain Projects B.V.
Kleine Landtong 29
4201 HL Gorinchem
0183 820 300
hierna te noemen Gain
Uitgebracht door:
Jesper van Gils
2128128
Avans Hogeschool Breda, Mechatronica
Datum:
14-09-2021
Gain Projects B.V.
[GainAddress]
4201 HL Gorinchem
Contactgegevens
Student:
Naam:
Studentnummer:
Opleiding:
Adres:
Telefoonnummer:
E-mailadres:
Jesper van Gils
2128128
Mechatronica jaar 4
Korenbloem 27, 4761 WB Zevenbergen
+31 6 81 95 48 81
[email protected]
Bedrijfsgegevens:
Naam bedrijf:
Adres:
Telefoonnummer:
E-mailadres:
Gain Projects b.v.
Kleine Landtong 29, 4201 HL Gorinchem
+31 183 820 300
[email protected]
Bedrijfsbegeleider:
Naam:
Functie:
Telefoonnummer:
E-mailadres:
Marco Conrads
Technical manager bij Gain Projects
+31 6 34 82 53 74
[email protected]
Onderwijsinstelling:
Naam instelling:
Adres:
Telefoonnummer:
E-mailadres:
Avans Hogeschool Breda
Lovensdijkstraat 61-63, 4818 AJ Breda
+31 88 525 7500
[email protected]
Stagecoördinator:
Naam:
Telefoonnummer:
E-mailadres:
Peter Klijn
+31 88 525 8549
[email protected]
Docentbegeleider:
Naam:
Telefoonnummer:
E-mailadres:
Onno Eerenberg
+31 88 525 9066
[email protected]
Onderzoeksrapport Machine Learning
2/77
Inhoudsopgave
CONTACTGEGEVENS......................................................................................................................... 2
1.
VERSIEBEHEER ....................................................................................................................... 8
2.
MACHINE LEARNING ALGEMEEN ................................................................................................ 9
2.1.
2.2.
2.3.
2.4.
2.5.
2.6.
2.7.
3.
3.1.
3.2.
3.3.
3.4.
3.5.
4.
WAT IS MACHINE LEARNING ...................................................................................................... 9
2.1.1.
Wat is een model in machine learning ............................................................................ 9
METHODES MACHINE LEARNING ............................................................................................... 9
2.2.1.
Supervised Learning ..................................................................................................... 10
2.2.2.
Unsupervised Learning ................................................................................................. 11
2.2.3.
Semi-supervised Learning ............................................................................................. 13
2.2.4.
Reinforcement Learning................................................................................................ 14
2.2.5.
Algoritmes in Machine Learning .................................................................................. 15
DEEP LEARNING EN NEURALE NETWERKEN .............................................................................. 19
2.3.1.
Weegfactoren ................................................................................................................ 20
2.3.2.
Activation functions....................................................................................................... 21
2.3.3.
Forward en backward propagation .............................................................................. 24
2.3.4.
Convolution Neural networks (CNN) ............................................................................ 24
TRANSFER LEARNING ............................................................................................................... 27
NAUWKEURIGHEID MODEL ....................................................................................................... 29
2.5.1.
Classificatie................................................................................................................... 29
2.5.2.
Regression ..................................................................................................................... 31
OVERFITTING EN UNDERFITTING............................................................................................... 32
CONCLUSIE ................................................................................................................................ 33
TOEPASSINGEN IN MACHINE LEARNING ....................................................................... 34
TOEPASSINGSGEBIEDEN ALGEMEEN ......................................................................................... 34
3.1.1.
Transport/automotive .................................................................................................... 34
3.1.2.
Financiële sector ........................................................................................................... 34
3.1.3.
Zorgsector ..................................................................................................................... 35
3.1.4.
Agrarische sector .......................................................................................................... 35
3.1.5.
Industriële sector........................................................................................................... 35
TOEPASSINGEN VOOR KLANTEN VAN GAIN .............................................................................. 36
3.2.1.
Machine vision .............................................................................................................. 36
3.2.2.
Predictive maintenance ................................................................................................. 38
3.2.3.
Prescriptive maintenance .............................................................................................. 40
3.2.4.
Collaborative and context-aware robotics.................................................................... 40
3.2.5.
Digital Twin/simulaties met AI ..................................................................................... 41
3.2.6.
Predictive quality/waste reduction................................................................................ 43
3.2.7.
Machine optimization.................................................................................................... 44
3.2.8.
AI in product design ...................................................................................................... 45
WANNEER GEBRUIK MAKEN VAN MACHINE LEARNING ........................................................... 47
STAPPENPLAN TOEPASSEN MACHINE LEARNING ....................................................................... 47
3.4.1.
Data verzamelen ........................................................................................................... 48
3.4.2.
Pre-processen van data................................................................................................. 48
3.4.3.
Keuze methodes/algoritmes Machine learning ............................................................. 48
3.4.4.
Trainen/testen model ..................................................................................................... 51
3.4.5.
Implementatie model ..................................................................................................... 52
3.4.6.
Voorbeeld stappenplan ................................................................................................. 52
CONCLUSIE ................................................................................................................................ 53
MACHINE LEARNING PLATFORMEN EN TOOLS ........................................................... 54
Onderzoeksrapport Machine Learning
3/77
4.1.
TWINCAT MACHINE LEARNING OMGEVING ............................................................................ 54
4.1.1.
Data verzamelen ........................................................................................................... 55
4.1.2.
Model trainen ................................................................................................................ 56
4.1.3.
Model implementatie ..................................................................................................... 63
4.2. TIA-PORTALS MACHINE LEARNING OMGEVING ...................................................................... 64
4.2.1.
S7-1500 TM NPU module ............................................................................................. 65
4.2.2.
Proces Machine Learning in TIA-portal ....................................................................... 66
4.3. CONCLUSIE ................................................................................................................................ 67
5.
ONDERZOEKSRAPPORT MINI-DELTA ROBOT ............................................................... 69
5.1.
5.2.
5.3.
5.4.
DELTA ROBOT ........................................................................................................................... 69
BESTURINGSKAST ..................................................................................................................... 69
BESTURING AAN DELTA ROBOT ................................................................................................ 70
CONCLUSIE ................................................................................................................................ 71
6.
BRONVERMELDING ............................................................................................................. 72
Onderzoeksrapport Machine Learning
4/77
Lijst met tabellen
TABEL 1: VERSIEBEHEER ............................................................................................................................... 8
TABEL 2: CONFUSION MATRIX VOORBEELD ALGEMEEN ..................................................................................... 30
TABEL 3: CONFUSION MATRIX VOORBEELD TERRORISTEN ................................................................................. 31
Onderzoeksrapport Machine Learning
5/77
Lijst met figuren
FIGUUR 1: SUPERVISED LEARNING IN ML ...................................................................................................... 10
FIGUUR 2: CLASSIFICATIE VS REGRESSION ...................................................................................................... 11
FIGUUR 3: UNSUPERVISED LEARNING IN ML .................................................................................................. 12
FIGUUR 4: CLUSTERING VS ASSOCIATION ....................................................................................................... 12
FIGUUR 5: CLUSTERING IN COMBINATIE MET LABELEN ..................................................................................... 13
FIGUUR 6: REINFORCEMENT LEARNING IN ML ............................................................................................... 14
FIGUUR 7: LINEAR REGRESSION VS LOGISTIC REGRESSION ................................................................................ 16
FIGUUR 8: VOORBEELD DECISION TREE ......................................................................................................... 16
FIGUUR 9: VOORBEELD K_NEAREST_NEIGHBOURS ......................................................................................... 17
FIGUUR 10: VOORBEELD HYPERPLANE SVM .................................................................................................. 18
FIGUUR 11: VOORBEELD MARGIN SVM ........................................................................................................ 18
FIGUUR 12: VOORBEELD NAIVE BAYES.......................................................................................................... 19
FIGUUR 13: VOORBEELD DEEP NEURAL NETWORK ......................................................................................... 19
FIGUUR 14: VOORBEELD WEEGFACTOREN MET NEURON .................................................................................. 20
FIGUUR 15: VOORBEELD BIAS EN WEEGFACTOREN .......................................................................................... 21
FIGUUR 16: VOORBEELD BINARY STEP EN LINEAR ACTIVATION FUNCTION .......................................................... 21
FIGUUR 17: VOORBEELDEN NON-LINEAIRE FUNCTIES ....................................................................................... 22
FIGUUR 18: RELU VS LEAKY RELU FUNCTIE ................................................................................................... 23
FIGUUR 19: RELU VS TANH VS SIGMOID FUNCTIE .......................................................................................... 23
FIGUUR 20: VOORBEELD FORWARD EN BACKWARD PROPAGATION ................................................................... 24
FIGUUR 21: VOORBEELD FILTER/KERNEL ....................................................................................................... 25
FIGUUR 22: VOORBEELDEN VAN VERSCHILLENDE FILTERS/KERNELS .................................................................... 26
FIGUUR 23: VOORBEELD MAX POOLING ....................................................................................................... 27
FIGUUR 24: PROCES CNN .......................................................................................................................... 27
FIGUUR 25: TRADITIONELE MACHINE LEARNING VS TRANSFER LEARNING ........................................................... 28
FIGUUR 26: VOORBEELD GEBRUIKEN SOURCE MODEL VOOR TARGET MODEL ....................................................... 29
FIGUUR 27: UNDERFITTING VS OVERFITTING .................................................................................................. 32
FIGUUR 28: VOORBEELD AI-SYSTEEM SCHADE AUTO ....................................................................................... 34
FIGUUR 29: HOE WERKT MACHINE VISION ..................................................................................................... 36
FIGUUR 30: VISION IN EEN PICK EN PLACE SYSTEEM ......................................................................................... 37
FIGUUR 31: VOORBEELD WARMTEBEELD MOTOREN ........................................................................................ 38
FIGUUR 32: VOORBEELD VAN WERKING PREDICTIVE MAINTENANCE ................................................................... 40
FIGUUR 33: DIGITAL TWIN EN SIMULATIEMODELLEN SIEMENS .......................................................................... 43
FIGUUR 34: VOORBEELD PREDICTIVE QUALITY ................................................................................................ 44
FIGUUR 35: VOORBEELD MACHINE OPTIMIZATION .......................................................................................... 45
FIGUUR 36: VOORBEELD GENERATIVE DESIGN ................................................................................................ 46
FIGUUR 37: STAPPENPLAN MACHINE LEARNING PROJECT ................................................................................ 47
FIGUUR 38: KEUZE MACHINE LEARNING METHODES ........................................................................................ 49
FIGUUR 39: KEUZE MACHINE LEARNING ALGORITMES ...................................................................................... 50
FIGUUR 40: SPLITTEN VAN DATASET ............................................................................................................. 51
FIGUUR 41: CYCLUS MACHINE LEARNING BECKHOFF....................................................................................... 55
FIGUUR 42: MOGELIJKHEDEN DATA VERZAMELEN TWINCAT ............................................................................ 56
FIGUUR 43: MODEL TRAINEN BECKHOFF ....................................................................................................... 57
FIGUUR 44: ONDERSTEUNDE FRAMEWORKS BECKHOFF ................................................................................... 58
FIGUUR 45: TENSORFLOW/KERAS ............................................................................................................... 59
FIGUUR 46: PYTORCH ................................................................................................................................ 60
FIGUUR 47: PYTORCH VS TENSORFLOW ........................................................................................................ 60
FIGUUR 48: SCIKIT LEARN ........................................................................................................................... 61
Onderzoeksrapport Machine Learning
6/77
FIGUUR 49: VOORBEELD AUTOML............................................................................................................... 62
FIGUUR 50: ONDERSTEUNDE ACTIVATION FUNCTIES BECKHOFF......................................................................... 63
FIGUUR 51: MODEL IMPLEMENTEREN BECKHOFF ........................................................................................... 64
FIGUUR 52: MACHINE LEARNING IN COMBINATIE MET SIEMENS........................................................................ 65
FIGUUR 53: DE SIMATIC S7-1500 TM NPU MODULE .................................................................................. 66
FIGUUR 54: VOORBEELD DEVICE-VIEW MET TM NPU MODULE ........................................................................ 67
FIGUUR 55: RDG DELTA ROBOT KOSSEL XL PRINTER ...................................................................................... 69
FIGUUR 56: ELEKTRISCHE TEKENINGEN BESTURINGSKAST ................................................................................. 70
FIGUUR 57: ELEKTRISCHE TEKENINGEN BESTURING AAN DELTA ROBOT ............................................................... 71
Onderzoeksrapport Machine Learning
7/77
1.
Versiebeheer
Versie
0.1
0.2
0.3
0.4
0.5
1.0
Datum
02-09-2021
08-09-2021
14-09-2021
17-09-2021
30-09-2021
4-10-2021
1.1
8-10-2021
Opmerking
Machine Learning algemeen/methodes
Deep Learning
Toepassingen
Machine Learning frameworks en tools
Delta robot
Transfer Learning, prescriptive maintenance, product
design AI, digital twin toegevoegd
Samenvatting, stappenplan ML
Tabel 1: Versiebeheer
Onderzoeksrapport Machine Learning
8/77
2.
Machine Learning algemeen
In dit hoofdstuk wordt antwoord gegeven op de deelvraag: Wat is machine learning
en welke methodes worden gebruikt bij machine learning? Om antwoord te geven
op deze vraag zijn er verschillende onderzoeken gedaan naar machine learning in
het algemeen. Zo wordt eerst de definitie van machine learning en modellen in
machine learning besproken. Vervolgens worden verschillende methodes in
machine learning toegelicht. Ook wordt er verder ingegaan op deep learning. Daarna
zal besproken worden hoe machine learning modellen getraind en gevalideerd
kunnen worden. Tot slot wordt in de conclusie antwoord gegeven op de deelvraag.
2.1.
Wat is Machine Learning
Machine learning is een onderdeel van kunstmatige intelligentie, oftewel AI, en
computertechnologie, oftewel computer science. Het wordt vaak gebruikt voor
meer geavanceerde taken, waar het uitdagend kan zijn voor een persoon om
handmatig bepaalde algoritmes te programmeren. Machine Learning maakt gebruik
van data en algoritmes om de manier waarop mensen leren, te imiteren, waardoor
het trapsgewijs steeds nauwkeuriger wordt. Machine Learning algoritmes bouwen
een model aan de hand van data, ook wel bekend als training data, om zo
voorspellingen of beslissingen te maken zonder specifiek geprogrammeerd te zijn
deze acties uit te voeren.
2.1.1.
Wat is een model in machine learning
Een machine learning model is in feite een representatie van wat een machine
Learning systeem heeft geleerd. Met behulp van verschillende algoritmes leert een
model patronen uit training data, die aan het model gegeven wordt, te herkennen.
Wanneer het model getraind is, worden deze patronen gebruikt om voorspellingen
te maken over de data die aangeboden wordt aan dit getrainde model. Een model
representeert, afhankelijk van het gebruikte algoritme, vaak bepaalde regels, cijfer
of een ander datastructuur specifiek voor dat algoritme. Zo resulteert een linearregression algoritme vaak in een model bestaande uit vector met coëfficiënten met
specifieke waardes. Een decision-tree algoritme resulteert juist in een model
bestaande uit een if-then statement met specifieke waardes. De verschillende
algoritmes zullen later in dit hoofdstuk verder worden toegelicht. Het is dus
belangrijk te weten dat een algoritme in machine learning gebruik wordt om met
behulp van data een model te maken. Een model in machine learning is resultaat
van een machine learning algoritme getraind met data. Het representeert wat het
algoritme geleerd heeft van de data en bevat een specifieke datastructuur die
gebruikt wordt voor het maken van voorspellingen met nieuwe data.
2.2.
Methodes Machine Learning
Bij machine learning kunnen vier belangrijke methodes/benaderingen van elkaar
onderscheiden worden. Deze methodes zijn: Supervised Learning, Unsupervised
Learning, Semi-supervised Learning en Reinforcement Learning. Deze vier methodes
zijn op deze wijze gecategoriseerd op basis van het feedbackmechanisme dat bij
deze methode van leren hoort. Bij de meeste machine learning problemen wordt
gebruik gemaakt van één van deze vier methodes, echter blijven er bepaalde
machine learning oplossingen die niet bij een van deze methodes passen. Deze vier
methodes zijn essentieel omdat het kan helpen snel de oorzaak van het probleem te
ontdekken en hiervoor een oplossing te verzinnen. Deze vier belangrijke methodes
worden hieronder verder toegelicht.
Onderzoeksrapport Machine Learning
9/77
2.2.1.
Supervised Learning
Supervised learning is een machine learning methode waarin gewerkt wordt met
gelabelde data waarmee je voorspellingen wilt doen. Gelabelde data betekent in dit
geval dat de dataset die gebruikt wordt om het model te trainen zowel de
eigenschappen, als de uitkomst van hetgeen dat voorspeld moet worden bevat. Een
voorbeeld is een gelabelde dataset met miljoenen afbeeldingen van objecten waar
voor elk object wordt gezegd welk object het daadwerkelijk is. Supervising betekent
hier dan ook het helpen van het model de juiste dingen te laten voorspellen. Het
wordt dan ook supervised learning genoemd omdat het proces waar het algoritme
leert van de training data ook doet denken aan een leraar die toezicht houdt op het
leerproces. Doordat de data verborgen patronen bevat die de algoritmes kunnen
herkennen, leert het model deze patronen ook te herkennen en kan dit model
proberen deze kennis te gebruiken bij nieuwe, ongeziene data. Vaak wordt de
originele dataset opgedeeld in twee delen: traindata en testdata. Hier is de traindata
vaak 80% van de totale dataset en de testdata de resterende 20%. De testdata
wordt gebruikt om de voorspellingskwaliteit van je getrainde model te valideren.
Supervised learning algoritmes zijn vaak relatief simpel en daardoor makkelijk toe te
passen. Deze simpliciteit heeft echter ook een keerzijde. De nauwkeurigheden van
een supervised learning zijn vaak lager dan van bijvoorbeeld een Neural Network of
een Ensemble Method. Dit is overigens niet altijd erg bijvoorbeeld wanneer de
gewenste nauwkeurigheid niet hoog hoeft te zijn. In Figuur 1 is een vereenvoudigde,
visuele weergave te zien van supervised learning in machine learning.
Figuur 1: Supervised Learning in ML
Binnen supervised learning bestaan twee subgroepen namelijk: regressie en
classificatie algoritmes. Het grote verschil tussen regressie en classificatie algoritmes
is dat regressie algoritmes gebruikt worden om een continue waarde te voorspellen
zoals een prijs, salaris of een leeftijd. Stel een bedrijf wil de huizenprijzen
voorspellen en is in bezit van een dataset met gegevens van verkochte huizen en de
bijbehorende prijzen. Deze data gebruikt het bedrijf om een model te trainen,
waardoor je op basis van gegevens van andere huizen kan voorspellen wat de
verkoopprijzen hiervan zijn. Bij een regressiemodel is er dus altijd een dataset met
de werkelijke waarde en de voorspelde waarde. Door deze werkelijke en voorspelde
waarde te vergelijken kan bepaald worden hoe betrouwbaar het model is.
Onderzoeksrapport Machine Learning
10/77
Een classificatie algoritme wordt juist gebruikt om een categorie of groep te
voorspellen/classificeren bijvoorbeeld man of vrouw, true of false etc. Stel een
bedrijf wil verschillende soorten fruit van elkaar onderscheiden met behulp van een
camera en heeft een dataset met verschillende foto’s van soorten fruit waarbij
aangegeven is wat voor soort fruit op de foto aanwezig is. Deze dataset wordt
gebruikt om een model te trainen, waardoor op basis van een foto te bepalen is
welk soort fruit zichtbaar is. Bij een classificatiemodel is er dus altijd een dataset met
werkelijke gegevens over een bepaalde categorie of groep en een voorspelling
waarbij aangegeven wordt welke categorie of groep het model denkt te herkennen
en met welke zekerheid. Hier kunnen, net zoals bij de regressie algoritmes,
vergeleken worden wat het verschil is tussen de werkelijke gegevens en de
voorspelde gegevens om de betrouwbaarheid van het model te bepalen. Een visuele
weergave van het verschil tussen classificatie en regressie is te zien in Figuur 2.
Figuur 2: Classificatie vs Regression
2.2.2.
Unsupervised Learning
Unsupervised learning is zoals de naam al suggereert het tegenovergestelde van
supervised learning. Waar bij supervised learning gebruik werd gemaakt van
datasets met gelabelde data wordt bij unsupervised learning gebruik gemaakt van
datasets die niet gelabeld of geclassificeerd zijn. Bij deze methode van machine
learning dienen de algoritmes dus zelf patronen en clusters te ontdekken in de
datasets. Zie ook Figuur 3. Deze methode van machine learning is het best geschikt
bij een probleem met grote aantallen niet-gelabelde data waarbinnen je toch
waardevolle patronen wil ontdekken. Een voorbeeld van unsupervised learning
wordt vaak toegepast bij bijvoorbeeld webshops. Deze webshops verzamelen
gegevens van klanten om gepersonaliseerde suggesties te kunnen maken. Hierbij
gaan ze uit van zoekresultaten van meerdere personen. Wanneer een aantal van
deze zoekresultaten overeen komen worden deze personen in hetzelfde cluster
geplaatst en wordt aan deze personen gepersonaliseerde suggesties gedaan.
Onderzoeksrapport Machine Learning
11/77
Figuur 3: Unsupervised Learning in ML
Unsupervised learning valt onder te delen in twee sub-methodes: Clustering en
Association. Clustering is een unsupervised learning methode dat automatisch data
verdeeld in clusters, oftewel groepen met overeenkomende eigenschappen. Dit
wordt gedaan zonder te weten hoe deze groepen eruit zouden moeten zien. Omdat
vaak niet bekend is waar in deze gevallen naar gezocht wordt, wordt clustering vaak
meer gebruikt voor het vergaren van kennis dan voor voorspellingen. Het zorgt voor
een inzicht over groepen die zich in de data bevinden die mensen vaak niet zien. Nu
is de vraag, hoe kan een computer, zonder hier enige kennis over te hebben, weten
waar de ene groep eindigt en de andere begint? Clustering werkt volgens een
principe waar de data binnen een groep veel op elkaar moet lijken, maar juist veel
moet verschillen van andere groepen.
Association is een andere methode in unsupervised learning die verschillende regels
gebruikt om verbanden te vinden tussen gegeven variabelen in data. Deze methode
is net als clustering vaak niet bedoeld voor voorspellingen maar om interessante
relaties verstopt in een dataset te ontdekken. Een voorbeeld van een toepassing bij
deze methode is wanneer je een product online koopt. Wanneer je dit product
koopt, is er vaak een gedeelte dat zegt: “Mensen die dit product kopen, kopen ook
dit product”. Een voorbeeld van Clustering en Association is te zien in Figuur 4.
Figuur 4: Clustering vs Association
Het grote verschil tussen supervised en unsupervised learning is dus het feit dat
supervised learning beschikt over een dataset terwijl unsupervised learning dit niet
heeft. Ondanks dat hierdoor supervised learning vaak nauwkeurigere resultaten
oplevert, kan het soms gunstiger te zijn voor unsupervised learning. Het kiezen
tussen supervised en unsupervised learning voor de juiste aanpak hangt af van
onder andere de structuur van de data, het volume van de data en waarvoor het
model gebruikt dient te worden. Wanneer de data gelabeld is, is supervised learning
Onderzoeksrapport Machine Learning
12/77
vaak de beste aanpak. Als er alleen niet-gelabelde data aanwezig is, dient er een
afweging gemaakt te worden aan de hand van de grootte en complexiteit van de
dataset. Bij een grote of complexe dataset is unsupervised learning de beste optie,
echter bij een kleine of minder grote dataset kan de afweging worden gemaakt de
data handmatig te labelen en gebruik te maken van supervised learning. Ook het
doel van het model is van belang. Zoals eerder al beschreven is supervised learning
het best geschikt voor het maken van voorspellingen op basis van nieuwe data.
Unsupervised learning kan juist heel bruikbaar zijn bij het krijgen van inzicht en het
ontdekken van patronen in grote volumes aan data. Supervised learning methodes
zijn dus vaak minder complex, accurater en betrouwbaarder dan unsupervised
learning. Echter, unsupervised learning is in staat grote volumes aan data te
verwerken en hierin patronen te herkennen. Een kantelpunt hieraan is dat het
onoverzichtelijk kan zijn hoe de data geclusterd is en is er een hoger risico op minder
accurate resultaten. Dit is waar semi-supervised learning om de hoek komt kijken.
2.2.3.
Semi-supervised Learning
Semi-supervised learning zit, zoals de naam al suggereert, tussen supervised en
unsupervised learning in. Deze methode gebruikt een relatief klein gedeelte
gelabelde data met een relatief groot gedeelte niet-gelabelde data. Deze combinatie
van gelabelde met niet-gelabelde data kan een aanzienlijk verschil maken in de
nauwkeurigheid van een model. Een veel gebruikte methode bij semi-supervised
learning is het combineren van clustering en classificatie algoritmes. Het clustering
algoritme verdeeld de data in groepen met overeenkomende eigenschappen.
Wanneer per groep een aantal objecten worden gelabeld kan met behulp van
supervised learning elke groep geclassificeerd worden. Een voorbeeld hiervoor is het
herkennen van handgeschreven cijfers. Stel je hebt een grote dataset van
afbeeldingen met één handgeschreven cijfer erin. Met clustering worden de
afbeeldingen met dezelfde overeenkomsten, en dus ook cijfers, gegroepeerd.
Vanwege het feit dat hier met cijfers gewerkt wordt, kan gedacht worden dat het
hier om 10 clusters gaat. Echter, er moet rekening gehouden worden met het feit
dat de cijfers handgeschreven zijn en er dus anders uit kunnen zien. Stel dat er in dit
geval dus 50 clusters zijn ontstaan uit het clustering algoritme. Uit elk van deze
clusters heeft een middelpunt, die de gemiddelde waarde van dat cluster
vertegenwoordigd. Vanuit dit middelpunt wordt voor elk cluster een representatieve
afbeelding uit de dataset gekozen, door een afbeelding te kiezen die het dichtste bij
dit punt ligt. Zie als voorbeeld Figuur 5. Vervolgens kunnen deze 50 afbeeldingen
worden gelabeld en worden gebruikt om het tweede deel van het model te trainen,
met behulp van een supervised learning algoritme. Door deze methode stel je het
model in staat duizenden afbeeldingen te trainen op basis van maar 50 voorbeelden.
Figuur 5: Clustering in combinatie met labelen
Onderzoeksrapport Machine Learning
13/77
Hoewel supervised learning heel nuttig kan zijn, is dit niet in elk geval zo. Zoals in het
geval van het voorbeeld hierboven, zouden de cijfers eenvoudig geclassificeerd
moeten worden met behulp van de clustering algoritmes. Echter wanneer het
probleem wat gecompliceerder is en de gelabelde data niet geheel representatief is
voor de gehele dataset, zal semi-supervised learning niet altijd helpen. Bijvoorbeeld,
in een dataset zijn afbeeldingen aanwezig van objecten die onder verschillende
hoeken staan en er dus anders uit zien. Wanneer deze objecten geclassificeerd
moeten worden, is er een relatief groot gedeelte aan gelabelde data nodig. En
wanneer een groot gedeelte van de data al gelabeld is of moet zijn, waarom dan
semi-supervised learning gebruiken in plaats van supervised learning.
2.2.4.
Reinforcement Learning
Reinforcement learning is een methode in machine learning waarin een machine
leert aan de hand van trial en error. Tijdens het trainen wordt het model
geoptimaliseerd doormiddel van feedback op eerdere acties. Meestal wordt deze
feedback gegeven in vorm van beloningen of straffen/penalty’s. Het doel is
vervolgens om de totale som van beloningen en/of straffen te maximaliseren zodat
de machine gaat doen wat de gebruiker wil. Een goed voorbeeld van hoe
reinforcement learning wordt toegepast, is een computer die heeft geleerd Super
Mario te spelen. Het model heeft geleerd hoe verder het personage komt in het
spel, hoe hoger score dit personage haalt. Dit is de beloning. Met deze informatie
start de computer het spel en telkens als deze ‘doodgaat’ weet de computer dat er
op dat punt iets mis is gegaan. Dit wordt ook wel de straf of penalty genoemd. Met
deze informatie start de computer het spel opnieuw en probeert iets anders op dit
punt. Wanneer de score hoger wordt, en de beloning dus ook, weet de computer
dat het op de goede weg is.
Figuur 6: Reinforcement Learning in ML
Veel voorkomende termen in reinforcement learning zijn: Agent, Environment, State
en Action. De agents zijn hier in feite degene die leren. De agents bevinden zich in
een environment en aan de hand van de acties die ze uitvoeren krijgen ze een
reward of juist niet. Elke keer als de agent een actie uitvoert, krijgt de agent een
reward en gaat deze naar een andere state. Om het voorbeeld van Super Mario te
gebruiken, de agent is dus het personage en het environment is het level waar het
personage zich in bevind. De state is de positie van het personage op een bepaalde
Onderzoeksrapport Machine Learning
14/77
tijd en de action is de actie die het personage uitvoert, dus naar voren, achter of
springen.
De grootste uitdaging in reinforcement learning bestaat uit het prepareren van de
simulatieomgeving. Deze omgeving hangt grotendeels af van de complexiteit van de
taak die het moet uitvoeren. Stel een model moet leren schaken, zal het minder
complex zijn een virtuele omgeving te bouwen dan wanneer een model capabel
moet zijn autonoom auto te rijden. Het model moet bijvoorbeeld leren hoe te
remmen of een botsing te vermijden op een veilige manier. Wanneer het training
model wordt verplaatst naar de echte wereld, kan dit complicaties opleveren. Een
ander probleem dat zich voor kan doen met reinforcement learning is wanneer het
model een lokaal optimum bereikt. Dit betekent dat de agents de taak voltooid die
deze hoort te doen maar niet op de optimale of benodigde manier. Tot slot bestaan
er ook mogelijkheden waar agents een manier vinden de rewards te maximaliseren
zonder daadwerkelijk de taak die het hoort te voldoen te voltooien. Hier zal gekeken
moet worden naar het beloningssysteem om de agent alsnog de taak te leren.
2.2.5.
Algoritmes in Machine Learning
In machine learning worden vele verschillende algoritmes gebruikt. In dit hoofdstuk
worden een aantal bekende machine learning algoritmes besproken namelijk: Linear
Regression & Logistic Regression, Decision Tree & Random forests, k-Nearest
Neighbors, SVM en Naive Bayes. Een ander bekend algoritme is een neuraal
netwerk, echter omdat deze nauw samenhangt met deep learning zal deze in een
later hoofdstuk verder worden toegelicht.
2.2.5.1.
Linear Regression & Logistic Regression
Het linear regression algoritme is een va de meest gebruikte machine learning
algoritmes. Het gebruikt één of meer input variabelen (x) om de output variabele (y)
te bepalen. De relatie tussen deze input en output variabelen wordt uitgedrukt als
een formule met de vorm y = ax + b. Met behulp van gradient descent wordt
vervolgens de a en b bepaald, zodanig dat deze het best de relatie tussen de input
en output beschrijven. De methode gradient descent werkt door willekeurige
waardes in te vullen voor a en b. Vervolgens wordt de som van alle fouten in het
kwadraat berekend voor elk paar input en output variabelen. De coëfficiënten a en b
worden met behulp van deze fout in de goede richting gewijzigd waardoor de fout
wordt geminimaliseerd. Wanneer de fout minimaal is, en de coëfficiënten zijn
bepaald, is de lijn bekend en kunnen er voorspellingen worde gedaan. Dit algoritme
kan bijvoorbeeld gebruikt worden bij het onderzoeken van de relatie tussen iemands
gewicht en lengte of ervaring en salaris. Vervolgens is er nog logistic regression.
Tegenovergesteld aan het linear regression algoritme is dit een classificatie
algoritme in plaats van een regression algoritme. Het geeft dus een voorspelling
over een bepaalde categorie, waarbij de 1 succes betekent en de 0 mislukking met
daartussen de kans dat de voorspelling correct is. Zie het verschil in Figuur 7.
Onderzoeksrapport Machine Learning
15/77
Figuur 7: Linear Regression vs Logistic Regression
2.2.5.2.
Decision Tree & Random forests
Een decision tree is een supervised machine learning algoritme dat gebruikt kan
worden voor zowel classificatie als regression problemen. Een decision tree is een
eenvoudige serie van een aantal opvolgende beslissingen die gemaakt worden om
tot een bepaald resultaat te komen. In Figuur 8 is een voorbeeld te zien. Het is in
principe een flow-chart model van beslissingen en de consequenties hiervan. Het is
een vrij eenvoudig algoritme en daardoor ook eenvoudig te gebruiken, echter door
de eenvoud van het algoritme is één van deze decision trees vaak niet voldoende om
tot een effectief resultaat te komen. Een random forest bestaat dan ook uit
meerdere decision trees. In het geval van een random forest worden, zoals de naam
als zegt, willekeurige decision trees gecreëerd. Het random forest algoritme voegt
vervolgens de output van de individuele decision trees samen om een uiteindelijke
output te genereren.
Figuur 8: Voorbeeld Decision Tree
Onderzoeksrapport Machine Learning
16/77
2.2.5.3.
k-Nearest Neighbors
De k-nearest neighbors (KNN) algoritme is een makkelijk te implementeren
supervised algoritme die in staat is zowel classificatie en regression problemen op te
lossen. Het KNN-algoritme neemt aan de dingen met veel overeenkomsten bestaan
in dichte nabijheid. Zie het voorbeeld in Figuur 9 waar vergelijkbare datapunten
dicht bij elkaar liggen. Het KNN-algoritme maakt hier gebruik van door de afstand te
meten tussen het nieuwe datapunt en de omliggende datapunten. Het algoritme
bepaald vervolgens het gemiddelde van deze omringende datapunten en geeft aan
de hand hiervan een voorspelling. De “k” in KNN is het aantal datapunten waar het
gemiddelde van genomen wordt. Deze moet zorgvuldig gekozen worden. Stel je
kiest “k” te laag, bijvoorbeeld 1, kunnen ruis en uitschieters zorgen voor slechte
resultaten. Wanneer “k” te hoog wordt gekozen, kan dit zorgen voor veel
berekeningen en dus voor een traag model.
Figuur 9: Voorbeeld k_Nearest_Neighbours
2.2.5.4.
SVM
SVM, oftewel Support Vector Machine, is een supervised machine learning algoritme
dat vooral voor classificatie maar ook voor regression problemen gebruikt kan
worden. In het SVM-algoritme wordt elk data-item geplot in een n-dimensionale
ruimte, waarbij n het aantal aanwezige features is. De waarde van elk van deze
features stelt de waarde van de bijbehorende coördinaten voor. Vervolgens wordt
de classificatie uitgevoerd door de hyperplane dat de verschillende klassen het best
onderscheidt. Hierbij is een hyperplane een lijn of een vlak waarvan de dimensie één
factor lager is dan de ruimte waarin deze hyperplane zich bevindt. In het geval van
een 3-dimensionale ruimte is dit dus een 2 dimensioneel vlak of in het geval van een
2-dimensionale ruimte is dit dus een 1-dimensionale lijn. Zie Figuur 10 voor een
voorbeeld.
Onderzoeksrapport Machine Learning
17/77
Figuur 10: Voorbeeld hyperplane SVM
Dit algoritme probeert dus een hyperplane te vinden die de verschillende klassen
het beste onderscheidt. Hiervoor worden de support vectoren gebruikt. Dit zijn
datapunten die dicht bij deze hyperplane liggen en de ligging hiervan bepalen. Dit
wordt gedaan door de margin tussen de hyperplane te maximaliseren waardoor de
scheiding van de twee klassen optimaal is. Aan de hand van deze scheiding kunnen
voorspellingen worde gedaan. Zie Figuur 11 voor een voorbeeld.
Figuur 11: Voorbeeld margin SVM
2.2.5.5.
Naive Bayes
Naive Bayes is een classificatie techniek gebaseerd op Bayes theorema. In simpele
woorden, een Naive Bayes algoritme neemt aan dat de aanwezigheid van een
bepaalde feature in een klasse niet gerelateerd is aan de aanwezigheid van elke
andere feature. Bijvoorbeeld, een fruit kan beschouwd worden als een appel
wanneer het rood, rond en ongeveer 8 centimeter in diameter is. Zelfs als deze
kenmerken van elkaar of van het bestaan van andere kenmerken afhangen, zou een
Naive Bayes algoritme al deze eigenschappen beschouwen als onafhankelijk van de
kans dat deze vrucht een appel is. Dit algoritme is vooral bruikbaar bij grote datasets
en staat erom bekend beter te presteren dan sommige zeer geavanceerde
classificatie-algoritmes.
Onderzoeksrapport Machine Learning
18/77
Figuur 12: Voorbeeld Naive Bayes
2.3.
Deep learning en neurale netwerken
Deep learning is een onderdeel van machine learning waarbij vaak neurale
netwerken gebruikt worden. Het verschil tussen deep learning en machine learning
is het type data waarmee het werkt en de methodes die gebruikt worden om te
leren. Machine learning gebruikt algoritmes om data te onderzoeken, hiervan te
leren en op basis van wat geleerd is beslissingen te maken. Deep learning maakt ook
gebruik van algoritmes, maar structureert deze in Artificial Neural Networks,
afgekort in ANN. Deze ANN’s zijn afgeleid van het menselijk brein. Simpel
omschreven is het brein opgebouwd uit neuronen die onderling met elkaar
verbonden zijn. Deze neuronen geven op basis van inputsignalen reacties door via
outputsignalen aan andere neuronen. Doordat al deze neuronen aan elkaar
verbonden zijn, ontstaat er een netwerk van signalen die door bepaalde functies
doorgegeven worden en zo tot een bepaalde uitkomst komen.
Figuur 13: Voorbeeld Deep Neural Network
Onderzoeksrapport Machine Learning
19/77
Artificial Neural Networks bestaan vaak uit meerdere lagen waarin elke laag
meerdere neuronen bevat. Het aantal lagen, of layers, waaruit een ANN bestaat is
altijd minstens drie namelijk: één input layer, één of meerdere hidden/ verborgen
layers en één output layer. Zie ook Figuur 13. Elk neuron is verbonden met alle
neuronen van de volgende laag en kan zo informatie overbrengen. Hierbij is een
neuron een functie die op basis van de gegeven input een bepaalde output geeft.
Tijdens het trainen van een model wordt voor elke verbinding een weegfactor
bepaald. Aan de hand van de inputs en weegfactoren van elke verbinding, voert het
neuron een functie uit. Deze functies worden ook wel activation functions genoemd.
Zie het voorbeeld in Figuur 14. Hier is een neuron met 4 inputs en 1 output te zien.
De neuron bevat in dit geval een functie, waarbij als de som van de inputs keer de
weegfactoren hoger is dan 15, deze de output 1 geeft.
Figuur 14: Voorbeeld weegfactoren met neuron
2.3.1.
Weegfactoren
De weegfactoren in het neurale netwerk representeren hoe sterk de verbinding is
tussen twee neuronen. Wanneer de waarde van de weegfactor van het ene neuron
naar het andere neuron relatief groot is, betekent dit dat deze veel invloed over het
andere neuron heeft. Een voorbeeld kan zijn bij het voorspellen van de prijs van een
vliegticket, waar de vertrekdatum een grote invloed kan hebben op de prijs van het
ticket. Vandaar zullen de neuron verbindingen die de vertrekdatum representeren
een grote weegfactor hebben. Wanneer een weegfactor dicht bij nul zit, betekent
dit dat het wijzigen van deze input weinig invloed zal hebben op de output. Een
weegfactor kan ook negatief zijn. Het verhogen van deze input zal dan resulteren in
een lagere output. Het is belangrijk te weten dat bij ANN’s vaak een bias wordt
toegevoegd. Deze bias is een extra input die altijd constant is, vaak 1. De bias wordt
niet beïnvloedt door eerdere lagen maar hebben wel uitgaande verbinden met een
eigen weegfactor. De bias zorgt ervoor dat wanneer alle inputs gelijk zijn aan 0, het
neuron nog steeds geactiveerd wordt. Zie Figuur 15.
Onderzoeksrapport Machine Learning
20/77
Figuur 15: Voorbeeld bias en weegfactoren
2.3.2.
Activation functions
Zoals eerder al benoemd worden de functies die neuronen uitvoeren ook wel
activation functions genoemd. Een activation function in een neuraal netwerk
bepaalt hoe de som van weegfactoren en inputs getransformeerd wordt in een
ouput. Deze activation functions zijn vaak wiskundige berekeningen en zijn er in
verschillende soorten en maten. Het doel van activation functies is het toevoegen
van non-lineariteit aan een neuraal netwerk. Stel er wordt gebruik gemaakt van een
ANN zonder activation functions. Elke neuron zal alleen een lineaire transformatie
uitvoeren op in inputs met behulp van de weegfactoren en biases. Hierdoor wordt
het leren van een complexe taak via het netwerk onmogelijk. Er zijn drie soorten
activation functions: Binary step functies, lineaire functies en non-lineaire functies.
Hiervan zijn de binary step functies en de lineaire functies de minder complexe
functies. Bij de binary step functie wordt de input vergeleken met een bepaalde
waarde. Wanneer de input groter is dan deze waarde, wordt deze neuron
geactiveerd, zo niet wordt deze gedeactiveerd. Bij lineaire functies is de input
evenredig met de output. In Figuur 16 zijn voorbeelden hiervan weergegeven.
Figuur 16: Voorbeeld Binary Step en Linear Activation Function
Onderzoeksrapport Machine Learning
21/77
Zoals eerder al benoemd, zijn deze twee functies niet in staat complexe taken uit te
voeren. Hiervoor zijn non-lineaire functies nodig. Deze komen in velen verschillende
soorten en maten. In dit hoofdstuk worden vier van deze activation functions verder
toegelicht namelijk: ReLU, Leaky ReLU, TanH en de sigmoid functie. Zie ook Figuur 17
voor visuele weergaves van deze functies.
Figuur 17: Voorbeelden non-lineaire functies
2.3.2.1.
ReLU functie
De ReLU functie, oftewel Rectified Linear Unit, is de meest gebruikte activation
function vanwege het feit dat deze functie in vrijwel alle neurale netwerken wordt
gebruikt. De functie geeft de ouput x wanneer x positief is en de output 0 wanneer x
negatief is. Een groot voordeel van deze functie vergeleken met andere functies is
dat het rekenkundig gezien een eenvoudige functie is. Er wordt niet gebruik
gemaakt van delingen of exponentiele functies. Het gebruik van deze functie kan
veel rekenkracht en tijd besparen bij het trainen van een neuraal netwerk. Een
nadeel van deze functie is dat alle neuronen die een waarde lager doorgeven dan 0
gedeactiveerd worden aangezien voor een negatieve input de output 0 is. Deze
gedeactiveerde neuronen verliezen hun invloed op de output en worden om deze
reden ook wel “dode neuronen” genoemd. In dit geval komt de Leaky ReLU functie
handig van pas.
Onderzoeksrapport Machine Learning
22/77
2.3.2.2.
Leaky ReLU functie
De leaky ReLU functie is een verbeterde versie van de ReLU functie om het probleem
van deze “dode neuronen” tegen te gaan. Zoals te zien in Figuur 18 heeft de leaky
ReLU een kleine positieve helling, vaak met een richtingscoëfficiënt van 0.01, in het
negatieve gedeelte. Hierdoor blijven de voordelen van de ReLU functie nagenoeg
gelijk zonder het nadeel van de “dode neuronen”.
Figuur 18: ReLU vs Leaky ReLU functie
2.3.2.3.
Sigmoid functie
De sigmoid functie neemt elke reële input waarde en transformeert deze vervolgens
in een output waarde tussen de 0 en 1. Hoe positiever de waarde van de input, hoe
dichter de outputwaarde bij 1 zal zitten en hoe negatiever de waarde van de input,
hoe dichter de outputwaarde bij 0 zal zitten. Deze functie wordt vaak gebruikt waar
een bepaalde waarschijnlijkheid moet worden gebruikt om de output te voorspellen.
Omdat deze waarschijnlijkheid of kans vaak wordt weergegeven tussen de 0 en de 1,
oftewel 0% en 100%, is dit een geschikte functie vanwege het bereik.
2.3.2.4.
TanH functie
De TanH functie lijkt veel op de sigmoid functie en heeft zelfs dezelfde S-vorm waar
de sigmoid-functie ook bekend om is. Echter heeft de TanH-functie een output
bereik tussen -1 en 1 in plaats van 0 en 1. Hoe groter de positieve waarde, hoe
dichter de output bij 1 zit. Hoe groter de negatieve waarde, hoe dicht de output bij 1 zit. Doordat deze functie gecentreerd is rondom 0, is het eenvoudig om de output
waardes in te delen in negatief, neutraal en positief. Zie ook Figuur 19.
Figuur 19: ReLU vs TanH vs Sigmoid functie
Onderzoeksrapport Machine Learning
23/77
2.3.3.
Forward en backward propagation
Twee andere belangrijke termen in ANN’s zijn forward en backward propagation.
Forward propagation is het proces waarbij data of input waardes ingevoerd worden
in het neurale netwerk en waaruit een output waarde, oftewel de voorspelling,
wordt bepaald. Wanneer de data of input waardes in de eerste laag van het neurale
netwerk worden gevoerd, worden hier geen activation functions over uitgevoerd.
Dit gebeurt pas in de tweede layer, waar de waardes van de input layer
getransformeerd worden afhankelijk van de activation function. Dit proces herhaalt
zich voor de opvolgende layers tot er uiteindelijk een output waarde wordt
berekend in de output layer. Deze output waarde of voorspelling wordt vervolgens
vergeleken met de daadwerkelijke waarde om de fout te berekenen. Backward
propagation is de essentie van het trainen van een neuraal netwerk. Tijdens backpropagation worden de weegfactoren van het neurale netwerk gefinetuned op basis
van de fout in de vorige epoch. Een epoch betekent het trainen van het neurale
netwerk met alle training data voor één cyclus. Door meerdere epochs uit te voeren,
en dus meerdere malen alle weegfactoren te finetunen, kan de fout verkleind
worden waardoor de nauwkeurigheid en betrouwbaarheid van het model worden
vergroot.
Figuur 20: Voorbeeld Forward en Backward Propagation
2.3.4.
Convolution Neural networks (CNN)
Een Convolutional Neural Network, oftewel CNN, is een onderdeel van Deep
Learning die vooral gebruikt worden voor afbeeldingen. Een CNN wordt dan ook
vaak gebruikt voor beeldherkenning, het classificeren van afbeeldingen,
objectdetectie, gezichtsherkenning enzovoort. Het CNN neemt een input image,
verwerkt deze afbeelding en classificeert de afbeelding onder bepaalde categorieën.
Dit doet het op dezelfde wijze als een Deep Neural Network. Een afbeelding is in
feite een matrix met pixelwaardes. Wanneer een afbeelding wordt ingevoerd in een
CNN, wordt deze matrix omgezet in een vector. Stel de afbeelding, zwart-wit, is een
3x3 matrix dan wordt deze omgezet in een 9x1 vector. In dit geval zal het neurale
netwerk 9 input neuronen hebben. Echter, wanneer de afbeelding groter wordt en
bevat kleuren bevat, bijvoorbeeld een kleuren afbeelding van 1920x1080 pixels,
heeft de vector een grootte van 6.220.800x1. Dit betekent dat het neurale netwerk
dus ook 6.220.800 input neuronen moet bevatten. De rekenkracht benodigd voor
Onderzoeksrapport Machine Learning
24/77
het trainen van een model met zoveel input neuronen is aanzienlijk. Vanwege deze
reden wordt gebruik gemaakt van convolution layers.
Het doel van de convolution layers is het verkleinen van afbeeldingen in een vorm
waardoor het eenvoudiger is te verwerken door een neuraal netwerk. Dit wordt
gedaan zonder belangrijke eigenschappen ofwel features in de afbeelding te
verliezen welke nodig zijn voor een goede voorspelling. Deze convolution layers
maken dan ook gebruik van filters of kernels om een feature map te creëren. De
convolutie wordt uitgevoerd door de filter/kernel te bewegen over de afbeelding. Bij
elke locatie wordt een matrixvermenigvuldiging uitgevoerd en de uitkomst hiervan
wordt in de feature map gezet. Zie ook Figuur 21. Hier zie je dat de input data wordt
vermenigvuldigd met de kernel. Hier komt vervolgens een uitkomst uit die in de
feature map wordt gezet. Door deze convolutie is de input data 3x3 geworden in
plaats van 5x5. Bij grote afbeeldingen kunnen deze convoluties meerdere keren
worden uitgevoerd waardoor de input data aanzienlijk kleiner wordt.
Figuur 21: Voorbeeld filter/kernel
De filters/kernels zijn er in veel verschillende soorten en maten en zijn ook
eenvoudig zelf te creëren. Door convolutie van een afbeelding met verschillende
filters kunnen verschillende operaties uitgevoerd worden bijvoorbeeld randdetectie
of het verscherpen en vervagen van de afbeelding. In Figuur 22 zijn een aantal
voorbeelden van deze filters te zien.
Onderzoeksrapport Machine Learning
25/77
Figuur 22: Voorbeelden van verschillende filters/kernels
Na de convolution layer volgt vaak de pooling layer. Pooling layers hebben net zoals
convolutional layers het doel de input data te reduceren. Het verschil met
convolutional layers is echter dat de pooling functie niet gebruik maakt van
weegfactoren. Er zijn een aantal verschillende types pooling die het meest gebruikt
worden namelijk: max pooling, average pooling en sum pooling. Bij max pooling
wordt de hoogste waarde onder het filter gebruikt. Zie ook Figuur 23. Bij average
pooling wordt het gemiddelde van alle inputs onder het filter berekend en bij sum
pooling worden alle inputs bij elkaar opgeteld. De convolution layer gevolgd door de
pooling layer worden vaak meerdere keren herhaald om de input data te reduceren
totdat de input data klein genoeg is om een model te trainen.
Onderzoeksrapport Machine Learning
26/77
Figuur 23: Voorbeeld Max Pooling
Tot slot volgen de fully-connected layers. Deze layers stellen eigenlijk het neurale
netwerk voor zoals eerder besproken in het hoofdstuk deep learning. Nadat de
input-afbeelding één of meerdere keren door de convolution layer en pooling layer
is gegaan, blijft een matrix over. Deze matrix wordt omgezet in een vector waarvan
elk punt een input-neuron voorstelt. Vervolgens kan door gebruik te maken van het
deep learning principe met hidden layers en één output layer, zoals eerder in dit
hoofdstuk besproken, de afbeelding worden geclassificeerd.
Figuur 24: Proces CNN
2.4.
Transfer Learning
Een relatief nieuw begrip in machine learning is transfer learning. Transfer learning
is machine learning techniek waarbij een model getraind is voor een bepaalde taak
gebruikt wordt voor het trainen van een model voor een andere verwante taak.
Deze techniek zorgt ervoor dat het tweede model geoptimaliseerd wordt, waardoor
er sneller een beter model getraind kan worden. Dit werkt hetzelfde als bij mensen.
Mensen gebruiken bijvoorbeeld ook eerder opgedane kennis om andere dingen te
leren bijvoorbeeld het leren van motorrijden wanneer iemand al weet hoe deze
moet fietsen. Uit dit principe is transfer learning afgeleid. Transfer learning is vooral
erg populair in combinatie met deep learning vanwege de enorme middelen die
vaak nodig zijn om een deep learning model te trainen.
Onderzoeksrapport Machine Learning
27/77
Figuur 25: Traditionele Machine Learning vs Transfer Learning
Wanneer gebruik gemaakt wordt van transfer learning, dient er altijd een source
model aanwezig te zijn. Dit source model is een getraind model dat kennis bevat
over een bepaald probleem. Dit source model wordt vervolgens gebruikt om de
kennis door te geven aan het target model. Het target model is gerelateerd aan het
probleem van het source model. Doordat het source model al kennis heeft over
bepaalde features van het probleem, kan deze kennis overgezet worden naar het
target model. Dit kan gedaan worden door het gehele source model te gebruiken of
delen hiervan. Vervolgens wordt het target model aangepast zodat het geschikt is de
taak uit te voeren waarvoor het gemaakt is. Zo moet bijvoorbeeld altijd de laatste
layer aangepast worden die verantwoordelijk is voor het maken van de uiteindelijke
voorspelling. Echter kunnen er ook andere layers toegevoegd worden voor het
herkennen van andere features die in het source model niet aanwezig waren.
Wanneer het target model naar wens is aangepast, kan het model getraind worden
en zal worden opgemerkt dat het model vrij snel op een hogere nauwkeurigheid zit
dan wanneer de traditionele machine learning methode wordt gebruikt. Wat
belangrijk is bij het trainen van een model in combinatie met transfer learning, is het
bevriezen van bepaalde layers. Zoals eerder uitgelegd bestaat een model uit vele
weegfactoren. Om voordeel te halen uit transfer learning, zullen de layers die
gekopieerd zijn uit het source model bevroren moeten worden. Wanneer dit niet
gebeurt, gaan tijdens het trainen deze weegfactoren, en dus ook de kennis, van het
source model verloren. Hier voordeel van transfer learning vermindert hier dus ook
flink bij.
Onderzoeksrapport Machine Learning
28/77
Figuur 26: Voorbeeld gebruiken source model voor target model
Zoals eerder al gezegd is een van de fundamentele vereisten voor transfer learning
de aanwezigheid van source modellen die goed kunnen presteren. Gelukkig zijn er
veel van deze modellen gratis beschikbaar, vooral voor bijvoorbeeld computer
vision. Deze source modellen zijn vaak getraind met behulp van miljoenen
afbeeldingen waarop honderden verschillende objecten geclassificeerd kunnen
worden. Doordat deze modellen vaak al veel kennis bevatten over bepaalde
features, kunnen eenvoudiger nieuwe computer vision modellen getraind worden.
Een voorbeeld is het MobileNet V2 model ontwikkeld door Google. Dit model bevat
een dataset van 1.4 miljoen afbeeldingen met 1000 klasses. Dit model kan gebruikt
worden om bijvoorbeeld honden en katten te classificeren. Het model met
bijbehorende weegfactoren wordt hier gebruikt om veelvoorkomende features
afbeeldingen te herkennen. Zoals eerder al toegelicht dienen deze lagen met
bijbehorende weegfactoren bij het trainen ‘gefreezed’ te worden zodat het voordeel
van transfer learning behouden blijft. Vervolgens worden er een aantal lagen
toegevoegd die de honden en katten dienen te classificeren. Vervolgens kan het
model getraind worden en zal sneller een bepaalde nauwkeurigheid gehaald
worden. Om het model na de eerste trainingsperiode nog verder te verbeteren
worden vaak de laatste lagen van het source model ‘unfreezed’ zodat deze
weegfactoren verder gefinetuned kunnen worden. Let op, het is belangrijk dat dit
alleen gedaan wordt nadat de eerder toegevoegde lagen samen met het source
model getraind zijn
2.5.
Nauwkeurigheid model
Er is al meerdere keren gesproken over de nauwkeurigheid en betrouwbaarheid van
een model, maar hoe wordt deze nauwkeurigheid en betrouwbaarheid echt
gemeten? Ten eerste is het belangrijk te bepalen om wat voor model het gaat. Zo
kan er onderscheid gemaakt worden tussen classificatie- en regression-modellen.
Voor beide van deze modellen worden manieren om de nauwkeurigheid te meten
besproken.
2.5.1.
Classificatie
Dit gebeurt met een aantal methodes. Voor elk van deze methodes wordt vaak de
confusion-matrix gebruikt. Deze matrix, te zien in Tabel 2 geeft simpelweg de
correct en foutieve voorspellingen van een model weer. Dit wordt gedaan door de
Onderzoeksrapport Machine Learning
29/77
voorspelling van het model te vergelijken met de daadwerkelijke waardes. Hierin is
vervolgens onderscheid te maken tussen true-positive (TP), true-negative (TN), falsepositive (FP) en false-negative (FN). True-positive en true-negative zijn hierbij de
juist voorspelde waardes terwijl false-negative en false-positive hierbij de foutief
voorspelde waardes zijn.
N=10.000
In het echt: NEE
In het echt: JA
Totaal
Voorspelling: NEE
TN = 8879
FN = 347
9226
Voorspelling: JA
FP = 263
TP = 511
774
Totaal
9142
858
Tabel 2: Confusion matrix voorbeeld algemeen
De eerste methode is de accuracy. Deze methode bepaald simpelweg het aantal
goed voorspelde waardes, dus de TP plus de TN, ten opzichte van alle voorspelde
waardes dus TP + FP + FN + TP. Hieruit komt vervolgens een percentage dat de
accuraatheid representeert. In het voorbeeld hierboven is de accuracy
(8879+511)/10000 = 0.94 dus 94 procent. Dit lijkt een zeer goede methode om te
weten hoe goed het model daadwerkelijk is, echter is dit niet altijd het geval. Neem
als voorbeeld bewakingscamera’s op vliegvelden. Met behulp van
gezichtsherkenning dient een model aan te geven of een persoon wel of niet een
terrorist is. Gegeven het feit dat tussen 2000 en 2017 gemiddeld 800 miljoen
personen per jaar reizen via Amerikaanse vluchten en dat in dezelfde tijd 19
bevestigde terroristen Amerikaanse vluchten hebben geboard, behaalt dit model
een nauwkeurigheid van 99,999999%. Dit klinkt misschien indrukwekkend alleen de
kans is zeer groot dat het model alle 19 terroristen als “niet-terrorist” heeft
gemarkeerd. Dit is uiteraard niet de bedoeling en daarom is het van belang het
model ook te testen op precision en recall.
Precision is de kans dat een object behorend tot een bepaalde klasse correct wordt
voorspeld/geclassificeerd. Voor de klasse/voorspelling ‘JA’ wordt dit berekend door
het aantal true-positives te delen door het aantal true-positives plus false-positives
of dus TP/(TP+FP). Voor de klasse/voorspelling ‘NEE’ wordt dit berekend door het
aantal true-negatives te delen door het aantal true-negatives plus false-negatives of
dus TN/(TN+FN). In de tabel hierboven is dat voor de klasse ‘JA’ 511/(511+263) = 66
procent en voor de klasse ‘NEE’ 8879/(8879+347) = 96 procent.
Vervolgens is er ook nog de methode recall. Recall is de kans dat een
uitspraak/voorspelling die je doet correct is. Voor de klasse/voorspelling ‘JA’ wordt
dit berekend door het aantal true-positives te delen door het aantal true-positives
plus false-negatives of dus TP/(TP+FN). Voor de klasse/voorspelling ‘NEE’ wordt dit
berekend door het aantal true-negatives te delen door het aantal true-negatives
plus false-positives of dus TN/(TN+FP). In de tabel hierboven is dat voor de klasse
‘JA’ 511/(511+347) = 59 procent en voor de klasse ‘NEE’ 8879/(8879+263) = 97
procent.
Tot slot is er de methode F1-score. Dit is het harmonisch gemiddelde van precision
en recall. Deze methode wordt vaak gebruikt wanneer bij oneven verdeelde
classificatie problemen zoals het voorbeeld van de bewakingscamera’s hierboven.
De F1-score wordt als volgt berekend: (2 x precision x recall)/(precision + recall). In
het geval van Tabel 2 is de F1-score voor de voorspelling ‘JA’ 2/(1/0.66 + 1/0,59) = 62
procent en voor de klasse ‘NEE’ 2/ (1/0.96 + 1/0,97) = 96 procent.
Onderzoeksrapport Machine Learning
30/77
Stel het voorbeeld van de bewakingscamera’s op de Amerikaanse vluchten voor. In
Tabel 3 is het confusion-matrix van dit voorbeeld weergegeven. Wanneer gekeken
wordt naar de accuracy en de precision van dit model, lijkt deze zeer betrouwbaar.
De accuracy bedraagt 99,99999987%, de precision van “Terrorist: NEE” is ook
99,99999987% en de precision van “Terrorist: JA” is 100%. Wanneer na de recall
gekeken wordt is het geval van “Terrorist: NEE” ook niks aan de hand, de score is
hier 100%. Echter wanneer gekeken wordt naar de recall van “Terrorist: JA” wordt
hier maar een score gehaald van 5,26%. Ook in de F1-score is dit terug te zien. Deze
score voor “Terrorist: NEE” is 99% maar voor “Terrorist: JA” bedraagt deze score 10
%. Dit model is in dit geval dus niet heel betrouwbaar en bruikbaar voor de
Amerikaanse vliegvelden. Vanwege deze reden wordt er dus ook gekeken naar
precision, recall en F1-score.
N=13.600.000.019
In het echt:
“Terrorist: NEE”
In het echt:
“Terrorist: JA”
Totaal
Voorspelling:
“Terrorist: NEE”
TN =
13.600.000.000
FN = 18
Voorspelling:
“Terrorist: JA”
FP = 0
Totaal
TP = 1
19
13.600.000.018
1
13.600.000.000
Tabel 3: Confusion matrix voorbeeld terroristen
2.5.2.
Regression
Zoals eerder besproken zijn er voor regression-modellen andere manieren om de
nauwkeurigheid te bepalen. Dit komt omdat regressie gaat om het voorspellen van
waardes en niet klassen. Eerder besproken methodes van classificatie-modellen
werken in dit geval dus niet. De eerste methode die vaak wordt gebruikt bij
regressieproblemen is Mean Squared Error (MSE). Hiervoor wordt voor elke waarde
het verschil tussen de voorspelling en de daadwerkelijke waarde berekend, oftewel
de error. Vervolgens wordt elke error gekwadrateerd en worden al deze errors bij
elkaar opgeteld. Hier wordt tot slot het gemiddelde van berekend en blijft de Mean
Squared Error over. Hoe kleiner deze waarde, hoe nauwkeuriger of beter het model.
Het kwadrateren van de errors heeft vooral een grote invloed op de grote
afwijkingen/errors. Des te groter het verschil tussen de verwachte en voorspelde
waarde, des te groter de resulterende squared error. Dit zorgt ervoor dat modellen
met grotere afwijkingen meer worden ‘gestraft’ dan modellen met kleinere
verschillen. Bovendien zorgt het kwadrateren van de waardes ervoor dat de
positieve waardes niet beïnvloed worden door de negatieve waardes. Vervolgens is
er de Root Mean Squared Error (RMSE). Deze komt nagenoeg overeen met de Mean
Squared Error, echter wordt hier de wortel van de Mean Squared Error gepakt. Dit
heeft als voordeel dat de RMSE eenvoudiger te interpreteren is omdat de RMSE
beter de schaal weergeeft van de error weergeeft dan MSE. Tot slot is er nog de
Mean Absolute Error. Hier wordt net zoals bij MSE en RMSE de error berekent, dus
het verschil tussen de voorspelde en daadwerkelijke waarde. Echter wordt bij de
Mean Absolute Error de fout niet gekwadrateerd maar wordt meteen het
gemiddelde van deze errors berekend. Het is net als bij de RMSE makkelijk te
interpreteren alleen heeft het een aantal nadelen. Zoals hierboven al benoemd,
maakt het door het kwadrateren niet uit of de fout negatief of positief is. In het
geval van MAE is dit wel het geval en kan het dus zijn dat de negatieve waardes de
Onderzoeksrapport Machine Learning
31/77
positieve waardes opheffen. In theorie kan dus een MAE gehaald worden van 0, wat
optimaal is, echter hoeft dit niet te betekenen dat het model het altijd juist heeft.
Ook houdt de MAE minder rekening met grote errors in vergelijking tot MSE en
RMSE. In de praktijk wordt dus het meest RMSE gebruikt, vanwege de
interpreteerbaarheid maar ook omdat deze methode rekening houdt met negatieve
en positieve waardes en meer rekening houdt met grote errors/afwijkingen.
2.6.
Overfitting en underfitting
Zoals net besproken, wordt in machine learning de performance van een model niet
alleen gemeten door de accuracy maar ook door de precision, recall en F1-score.
Wat echter niet bij deze methodes gemeten wordt, is de generalisation, oftewel hoe
een model zich gedraagt bij ongeziene data. Hierbij speelt overfitting en underfitting
een grote rol. Een model ondervindt underfitting wanneer het niet goed de
onderliggende patronen in de data kan herkennen. Underfitting zorgt dan vaak ook
voor een lage accuracy in zowel de training data als ongeziene data en maakt het
model vaak onbruikbaar. Underfitting komt vaak voor wanneer er te weinig data
beschikbaar is of wanneer het algoritme dat gebruikt wordt te simpel is en niet in
staat is complexe patronen in de data te herkennen. Om underfitting te voorkomen
kunnen vaak verschillende dingen worden gedaan. Zo kan het verhogen van de
trainingstijd of het aantal epochs effectief zijn. Ook kan het verwijderen van
ongewenste data helpen. Bovendien kan verhogen van het aantal features de
accuracy verbeteren. Bijvoorbeeld het toevoegen van meerdere hidden neuronen
kan zorgen voor een complexer model en dus betere resultaten.
Een model ondervindt overfitting wanneer het getraind wordt met te veel data of
juist te lang getraind wordt. Als het model getraind wordt onder een van deze twee
omstandigheden zal het model zo goed trainen dat het ook gaat leren van de ruis en
irrelevante data aanwezig in de input data. Het probleem hiermee is dat wanneer er
nieuwe data aan dit model wordt gegeven, bijvoorbeeld een afbeelding met net iets
andere lichtinval, deze data niet correct wordt geclassificeerd. Zie ook Figuur 27. Een
manier om overfitting te voorkomen, is het simpeler maken van het model. Vaak is
de oorzaak van overfitting een te complex model. Het versimpelen van dit model,
door bijvoorbeeld in het geval van een neuraal netwerk het aantal neuronen te
verminderen, zorgt hier voor betere resultaten wanneer het model wordt
blootgesteld aan ongeziene data. Ook het reduceren van de trainingstijd kan de
accuracy van het model bij ongeziene data aanzienlijk verbeteren.
Figuur 27: Underfitting vs overfitting
Onderzoeksrapport Machine Learning
32/77
2.7.
Conclusie
In dit hoofdstuk is antwoord gegeven op de vraag: Wat is machine learning en welke
methodes worden gebruikt bij machine learning? Dit is gedaan door verschillende
onderzoeken naar machine learning te doen. Zo is naar voren gekomen dat bij
machine learning gebruikt gemaakt wordt van modellen oftewel de representatie
van wat een machine learning algoritme heeft geleerd. Dit kan via verschillende
methodes zoals supervised-, unsupervised-, semi-supervised- en reinforcement
learning. Hierin kan onder andere onderscheid gemaakt worden tussen classificatieen regression-oplossingen. De modellen worden getraind met behulp van
verschillende algoritmes zoals Logistic Regression, Decision trees of SVM. Bovendien
is er onderzoek gedaan naar deep learning en neurale netwerken. Deze neurale
netwerken kunnen met behulp van verschillende activation functies en
weegfactoren voorspellingen doe over grote datasets. Modellen in machine learning
worden vaak getest met behulp van een confusion matrix. Aan de hand hiervan kan
de accuracy, precision, recall of F1-score berekend worden en dus bepaald worden
of een bepaald model betrouwbaar en/of bruikbaar is. Tot slot is onderzoek gedaan
naar overfitting en underfitting van een model. In beide geval is een model niet
optimaal getraind en dus moet een goede afweging worden gemaakt in de
trainingstijd om beide situaties te voorkomen.
Onderzoeksrapport Machine Learning
33/77
3.
Toepassingen in Machine Learning
In dit hoofdstuk wordt antwoord gegeven op de deelvraag: Welke toepassingen zijn
er te vinden voor machine learning en welke van deze toepassingen zijn interessant
voor klanten en applicaties van Gain? Eerst zullen een aantal algemene industrieën
besproken worden. Hier zullen verschillende toepassingen voor machine learning
worden besproken en voorbeelden worden gegeven. Vervolgens zal dieper ingegaan
worden op toepassingen voor klanten en applicaties van Gain. Ook hierbij zullen
verschillende voorbeelden gegeven worden. Hierna wordt beschreven wanneer het
best gebruik gemaakt kan worden van machine learning. In het volgende hoofdstuk
wordt vervolgens een stappenplan beschreven hoe het best een machine learning
project aan kan worden gepakt. Tot slot wordt in de conclusie antwoord gegeven op
de deelvraag.
3.1.
Toepassingsgebieden algemeen
Vele soorten industrieën maken al gebruik van machine learning. Hieronder wordt
een aantal toepassingsgebieden besproken waar machine learning al een grote rol
speelt en worden een aantal voorbeelden gegeven. In de onderstaande
toepassingsgebieden zijn in de meeste gevallen veel meer voorbeelden te geven,
echter zal hier in dit onderzoek niet dieper op worden ingegaan omdat het hier gaat
over de toepassingsgebieden in het algemeen.
3.1.1.
Transport/automotive
In de transport/automotive sector wordt al veel gebruikt gemaakt van machine
learning. Denk bijvoorbeeld aan de groei van het aantal zelfrijdende auto’s op de
weg. Deze zelfrijdende auto’s worden steeds beter in het herkennen van andere
auto’s, verkeersborden, gevaarlijke situaties enzovoort. Niet het alleen het
herkennen van deze zaken wordt steeds beter, maar ook het reageren hierop
verbetert continu. De auto’s van Tesla zijn bijvoorbeeld al in staat ontwijkende
manoeuvres uit te voeren in gevaarlijke situaties. Echter moet bij machine learning
in de transport/automotive sector ook gedacht worden aan parkeer- en lane-change
assists, slimme energiesystemen en het voorspellen van onderdelen die defect gaat.
Ook bij de productie van deze auto’s wordt veel gebruik gemaakt van machine
learning bijvoorbeeld bij het inspecteren van onderdelen met behulp van computer
vision. Zelfs verzekeringsbedrijven zijn bezig met het ontwikkelen van AI-systemen
die met behulp van een foto een analyse uitvoeren over de schade aan een auto.
Figuur 28: Voorbeeld AI-systeem schade auto
3.1.2.
Financiële sector
Ook in de financiële sector is machine learning een veel gebruikt middel. Vanwege
de grote aantallen data die gegenereerd, opgeslagen en verwerkt worden in deze
sector, is dit een ideale omgeving om machine learning in toe te passen maar ook te
Onderzoeksrapport Machine Learning
34/77
testen. Machine learning wordt bijvoorbeeld gebruikt voor het voorspellen van de
aandelenmarkt. Deze modellen houden het zakelijke nieuws en alle transacties in de
gaten om te voorspellen of een aandeel gaat stijgen of dalen. Ook wordt machine
learning gebruikt om fraude te voorkomen. Fraude is een groot probleem voor bank
en financiële bedrijven en kan resulteren in grote verliezen elk jaar. Vroeger waren
fraude-detectie systemen simpeler te omzeilen door fraudeurs dan tegenwoordig.
Dit komt omdat tegenwoordig transacties worden vergeleken met verschillende
datapunten zoals de klant zijn accountgeschiedenis, locatie, bedrag etc. Hierdoor
kan bepaald worden of een bepaalde transacties vreemde kenmerken vertoond
waardoor de transactie kan worden tegengehouden. Ook bij het afsluiten van
leningen wordt met behulp van bepaalde algoritmes gekeken naar de
eigenschappen van de potentiële lener. Door het vergelijken van deze
eigenschappen met andere data, wordt vervolgens een keuze gemaakt of diegene in
aanmerking komt voor een lening.
3.1.3.
Zorgsector
In de zorgsector wordt ook al veel gebruik gemaakt van machine learning. Zo
worden grote hoeveelheden data van patiënten met elkaar vergeleken zodat
bepaalde patronen die geassocieerd worden met ziekten en gezondheidsproblemen
vroegtijdig kunnen worden gedetecteerd. Ook bij CT-scans, MRI’s en andere
technologieën waar gebruikt wordt gemaakt van beelden met veel details, is
machine learning heel behulpzaam. Veelvoorkomende toepassingen van medische
beeldvorming zijn bijvoorbeeld het identificeren van cardiovasculaire afwijkingen of
het zoeken naar kanker.
3.1.4.
Agrarische sector
Machine learning in de agrarische sector helpt boeren de productiviteit enorm te
verhogen. Vanwege de groeiende populatie is dit dan ook hard nodig. Zo worden op
sommige plaatsen al drones met camera’s gebruikt om boeren te helpen hun oogst
te maximaliseren. De camera’s op deze drones helpen met hulp van computer vision
en machine learning verschillende dingen te monitoren. Zo kunnen plantenziektes
gedetecteerd worden, de kwaliteit van bepaalde gewassen gemonitord worden en
kan gekeken worden of bepaalde gewassen veel last hebben van onkruid. Ook is er
al reeds een app ontwikkeld genaamd de AI Sowing App. Met behulp van deze app
kunnen boeren bepalen wat de beste tijd is om te zaaien, de bodem voor te
bereiden of bepaalde chemicaliën te gebruiken.
3.1.5.
Industriële sector
Tot slot wordt in de industriële sector ook al veel gebruik gemaakt van machine
learning. Zo wordt hier al veel gebruik gemaakt van computer vision voor
bijvoorbeeld kwaliteitscontrole. Hier wordt met behulp van vision-algoritmes
geleerd voorbeelden om goede producten te onderscheiden van producten met
afwijkingen. Ook wordt in de industrie veel gebruik gemaakt van ‘predictive
maintenance’. Hierbij wordt voorspelt wanneer bepaalde apparatuur gaat falen
zodat deze vroegtijdig kan worden vervangen en downtime kan worden voorkomen.
Ook machine learning in combinatie met robotica wordt al veel toegepast. Denk
bijvoorbeeld aan de robots die zichzelf aanleert te lopen met behulp van
reinforcement learning. Door vallen en opstaan zal deze robot in combinatie met
machine learning steeds beter en sneller kunnen lopen.
Onderzoeksrapport Machine Learning
35/77
3.2.
Toepassingen voor klanten van Gain
Gain is, zoals eerder besproken, een leverancier van oplossingen en diensten op het
gebied van industriële en technische automatisering. Verschillende markten waar
Gain meerdere klanten tot zijn klantenkring mag rekenen zijn bijvoorbeeld
machinebouw, voedingsindustrie maar ook maritiem en scheepsvaart. Bij het
onderzoek naar toepassingen voor klanten van Gain is dan ook vooral onderzoek
gedaan naar toepassingen in deze sectoren. Hieronder worden deze toepassingen
besproken en worden bovendien voorbeelden gegeven. Eerst zullen machine
learning toepassingen met machine vision toegelicht geworden, vervolgens
predictive maintenance, robotica, predictive quality en tot slot machine
optimalisatie.
3.2.1.
Machine vision
Machine vision is de technologie en methodes die gebruikt worden om gebaseerd
op beelden automatische inspectie en analyse uit te voeren. Dit wordt toegepast bij
automatische inspectie, procesbesturing en robotbegeleiding, meestal in de
industrie. Bij machine vision wordt gebruik gemaakt van computer vision. Computer
vision is een onderdeel van AI dat computer in staat stelt bruikbare informatie te
halen uit digitale afbeeldingen, video’s en andere visuele inputs. In machine vision
zijn drie belangrijke stappen: Image capturing, Image Processing en System Action.
De eerste stap bevat het maken van de beelden en deze omzetten in digitale
informatie. Deze beelden kunne op verschillende manier vastgelegd worden zoals
door vision sensoren, digitale camera’s, ultraviolette camera’s of infrarode camera’s.
Vervolgens volgt de stap Image Processing. Hier wordt deze digitale informatie
geanalyseerd met behulp van image processing algoritmes. Zo vindt er eerst preprocessing plaats om ruis te verminderen en/of het contrast te verhogen.
Vervolgens vindt segmentatie plaats. Hier wordt het beeld verdeeld in verschillende
segmenten gebaseerd op bepaalde karakteristieken in de afbeeldingen om bepaalde
randen en objecten te detecteren. Tot slot wordt in deze stap van elk van deze
segmenten features bepaald bijvoorbeeld grootte, kleur, vorm of een combinatie
van deze features. In de laatste stap, system action, wordt vervolgens aan de hand
van deze informatie de machine geïnstrueerd een bepaalde actie uit te voeren.
Figuur 29: Hoe werkt machine vision
In de industrie wordt machine vision steeds meer toegepast. Door steeds lagere
kosten van camera’s en de verbeterde nauwkeurigheid van beeldherkenning worden
er steeds meer goedkope en nauwkeurige vision-systemen gerealiseerd. Veel
industriële bedrijven richten zich op verhoogde automatisering en efficiëntie dankzij
Onderzoeksrapport Machine Learning
36/77
de industrie 4.0 initiatieven waar het doel is industriële processen te verbeteren met
computertechnologie. Dit wordt dan ook verschillende gebieden toegepast. Zo
wordt dit, zoals eerder gezegd, veel toegepast bij kwaliteitscontrole waarvan het van
belang is dat dit snel en met hoge nauwkeurigheid gebeurt. Ook bij voorraadbeheer
wordt gebruik gemaakt van machine vision. Door bijvoorbeeld barcodescanners
kunnen elk product snel gecontroleerd worden tijdens opslag en distributie. Ook
wordt machine vision regelmatig toegepast bij predictive maintenance bijvoorbeeld
door warmtebeelden van bepaalde apparatuur. Echter hangen deze systemen vaak
meer af van sensoren voor detecteren van hitte en vibraties. Predictive maintenance
wordt later in dit hoofdstuk nog verder besproken.
Machine vision is dus een veel gebruikte toepassing bij kwaliteitscontrole. Dit
gebeurt in vele vormen. Zo kan je 2D-detectie hebben met behulp van een simpele
camera, maar ook 3D-detectie en warmte-camera’s worden steeds vaker toegepast.
Hieronder worden een aantal toepassingen voor 2D-, 3D- en warmtecamera’s
beschreven.
3.2.1.1.
Toepassingen 2D-Machine vision
Voor machine vision in combinatie met normale 2D-camera’s zijn verreweg de
meeste toepassingen tot nu toe te vinden. Een goed voorbeeld is object-detectie.
Hierbij is het doel een bepaald object te detecteren of lokaliseren. Wanneer dit
object gedetecteerd of gelokaliseerd is, kan het object geclassificeerd worden. Hier
wordt dus bepaald om welk object het gaat. Deze object-lokalisatie en classificatie
wordt bijvoorbeeld toegepast bij pick en place systemen. Hier kan een robot met
behulp van een camera bepaalde objecten herkennen, lokaliseren en vervolgens
oppakken en sorteren.
Figuur 30: Vision in een pick en place systeem
Deze 2D-camera’s kunnen ook gebruikt worden om bepaalde inspecties uit te
voeren. Zo kunnen vision-systemen herkennen of een product afwijkingen vertoond.
Er kan gecontroleerd worden of materialen krassen bevatten of verkeerd gelast zijn.
Ook kunnen met deze camera’s verschillende metingen gedaan worden. Het meet
bijvoorbeeld een afstand tussen twee of meer punten om te bepalen of het product
afwijkingen vertoond. Bovendien kan met camera’s bepaald worden of een etiket op
de juiste wijze is geplaatst op het product.
Ook worden deze camera’s steeds vaker gebruikt bij bijvoorbeeld AGV’s. Deze AGV’s
navigeren met behulp van een camera autonoom door bepaalde ruimtes
bijvoorbeeld magazijnen. Door de camera’s zijn de AGV’s in staat objecten en
obstakels te herkennen, identificeren en de route hierop aan te passen. Dit
Onderzoeksrapport Machine Learning
37/77
voorkomt dat sommige van deze AGV’s ergens vast komen te zitten en met behulp
van mensen weer op het juiste pad moeten worden gezet. Door het gebruik van
deze camera’s is dit steeds minder nodig wat tijd en dus geld bespaart.
3.2.1.2.
Toepassingen 3D-Machine vision
Zoals eerder gezegd worden ook 3D-camera’s steeds vaker toegepast in de industrie.
Zo wordt het gebruik om zeer nauwkeurig afwijkingen in producten te meten. Er kan
bijvoorbeeld een 3D-foto worden gemaakt die vergelijken wordt met een 3D-model
om te bepalen of het product te veel afwijkt van het model. Ook kan met 3Dcamera’s nauwkeurig positie én oriëntatie van een product bepaald worden. Waar
2D-camera’s vaak op een vaste plek gehangen moeten worden om de locatie, en
vooral afstand en diepte, van een object te weten, kunnen 3D-camera’s eenvoudiger
op bewegende onderdelen geplaatst worden zoals een robotarm.
3.2.1.3.
Toepassingen Machine vision met hittecamera’s
Ook toepassingen van machine vision met hittecamera’s worden steeds vaker
gebruikt. Sommige warmtebeelden kunnen namelijk meer over de eigenschappen
van een product zeggen dan normale beelden. Zo wordt deze technologie vaak
toegepast bij het controleren van sealnaden. Een thermische afwijkingen kan
betekenen dat de seal niet aan de gestelde eisen voldoet. Dit wordt vaak toegepast
in de voedingsindustrie waar plastic zakken met voedingsmiddelen geseald worden.
Ook bij predictive maintenance wordt gebruik gemaakt van hittebeelden in
combinatie met andere data om het falen van apparatuur te voorspellen. Tot slot
kunnen deze camera’s gebruikt worden voor brandpreventie in grote magazijnen of
andere ruimtes.
Figuur 31: Voorbeeld warmtebeeld motoren
3.2.2.
Predictive maintenance
Een van de meeste gebruikte toepassingen van machine learning in de industrie is
predictive maintenance oftewel het voorspellen van onderhoud. Predictive
Onderzoeksrapport Machine Learning
38/77
maintenance maakt gebruik van verzamelde data om te voorspellen wanneer
bepaalde apparatuur een grote kans heeft om te falen. Door hier vroegtijdig
maatregelen te nemen kan downtime worden voorkomen of geminimaliseerd. Dit is
een groot verschil met preventive maintenance, preventief onderhoud, of zelfs
reactive maintenance, pas onderhoud plegen wanneer een onderdeel of machine
heeft gefaald. Doordat deze twee methodes vaak te laat kunnen komen, kan veel
geld bespaard worden met predictive maintenance.
Het doel van deze technologie is het detecteren en toezien op afwijkingen en het
falen van apparatuur wat potentiële kritieke fouten en downtime kan voorkomen of
minimaliseren. Dit kan er bovendien voor zorgen dat de levensduur van apparatuur
verhoogd wordt. Bij preventief onderhoud is het mogelijk dat sommige apparatuur
nog voor langere tijd correct kan werken. Het falen van apparatuur is namelijk vaker
gelinkt aan willekeurige gebeurtenissen (80%) dan aan levensduur (20%). Doordat
preventief onderhouden apparatuur vaak dus nog langer meekan, kan met
predictive maintenance extra geld worden bespaard. Voor het maken van
voorspellingen worden grote aantallen data verzameld, opgeslagen en verwerkt.
Deze data kan onder andere de conditie van de apparatuur, vibraties, akoestiek,
ultrasone, temperatuur, energieverbruik en olie-analyse data bevatten net zoals
eventueel thermische beelden van de apparatuur.
Wanneer het over predictive maintenance in combinatie met machine learning gaat,
wordt anomaly detection, oftewel het detecteren van onregelmatigheden, het
meest gebruikt. De machine learning modellen gebruiken de data die gegenereerd
wordt door de verschillende sensoren om het normale gedrag van de apparatuur te
leren. Vervolgens kunnen automatisch afwijkingen van dit gedrag gedetecteerd,
correlaties gevonden en voorzorgsmaatregelen genomen worden. Het grote
voordeel van machine learning is dat het zich kan aanpassen aan nieuwe data en
deze nieuwe data kan begrijpen waardoor het serieuze problemen kan detecteren
en het personeel kan inlichten.
Om een predictive maintenance oplossing te ontwikkelen zijn er verschillende
dingen nodig. Zoals bij het trainen van elk model is de data het belangrijkst.
Wanneer het model getraind wordt, dient de trainingsdata zowel genoeg samples te
bevatten van normale omstandigheden als omstandigheden waarin de apparatuur
faalt of aan het falen is. Ook dient de training-data informatie te bevatten over de
eerder uitgevoerde reparaties en onderhoud. Zonder deze data kan het model
misleidende resultaten geven omdat deze niet precies weet wat er aan de hand is en
welk onderdeel niet goed werkt. Eveneens is het verzamelen van data over de
conditie van de apparatuur belangrijk omdat dit een bron is van waardevolle datasamples. De aanname die wordt gedaan bij predictive maintenance is dat de
conditie van de apparatuur na verloop van tijd slechter gaat presteren doordat het
dagelijks zijn werkzaamheden uitvoert. Deze data bevat waarschijnlijk
eigenschappen waardoor veroudering en afwijkingen door het model herkent
kunnen worden. Ook is het van belang algemene data van de apparatuur en/of
onderdelen zoals fabricatiedatum, het model, datum ingebruikname en locatie mee
te geven aan het model zodat deze hiervan kan leren.
Onderzoeksrapport Machine Learning
39/77
Figuur 32: Voorbeeld van werking predictive maintenance
3.2.3.
Prescriptive maintenance
Prescriptive maintenance is erg vergelijkbaar met predictive maintenance maar gaat
nog een stapje verder dan. Bij predictive maintenance analyseert data om te
voorspellen wanneer bepaalde apparatuur of machines onderhoud nodig hebben.
Prescriptive maintenance doet dit ook, echter geeft dit principe ook aanbevelingen
over welke acties te ondernemen. Neem als voorbeeld een motor waarvan de lagers
een bepaald patroon met trillingen vertoond. Bij predictive maintenance wordt aan
de engineers verteld dat de lagers waarschijnlijk binnenkort gaan falen vanwege dit
trillingspatroon. Bij prescriptive maintenance wordt dit ook gedaan echter wordt
bijvoorbeeld ook verteld dat bij het reduceren van de motorsnelheid met 10% de
lagers nog twee keer zo lang meegaan. Dit is een voorbeeld van de aanbevelingen
die bij prescriptive maintenance worden gedaan terwijl dit niet gedaan wordt bij
predictive maintenance. Waar predictive maintenance enkel de geschatte tijd tot
falen aangeeft, zal prescriptive maintenance de engineers in staat stellen te
berekenen wat voor effect andere machineomstandigheden of machine-instellingen
hebben op de tijd tot falen.
3.2.4.
Collaborative and context-aware robotics
Een andere toepassing van machine learning die nog steeds in ontwikkeling is maar
steeds vaker wordt gebruikt zijn robots die zich bewust zijn van hun omgeving.
Samenwerking tussen robots en mensen wordt steeds belangrijker. Tegenwoordig,
door veiligheidsvoorschriften, zal wanneer er mensen in de buurt komen een robot
langzamer gaan of helemaal stoppen. Wanneer de persoon vervolgens weer
weggaat, zal de robot de werkzaamheden hervatten. Het niveau van contextawareness, of het bewust zijn van de omgeving, is hier vrij laag. Het verlaagt de
efficiëntie van robots. De productie vertraagt en de robots kunnen niet nauw
samenwerken met mensen.
Om deze redenen moeten robots gaan de productieomgeving gaan begrijpen maar
ook kunnen voorspellen wat mensen gaan doen. Hiervoor zijn systemen ontwikkeld
waardoor mensen veiliger en efficiënter kunnen samenwerken met robots. In plaats
van het inschatten van de afstand tussen een mens en de robot kan het systeem
iedere werknemer/operator herkennen. Het systeem gebruikt vervolgens een
Onderzoeksrapport Machine Learning
40/77
skeletmodel om de houding van een persoon te herkennen en vervolgens de
volgende houding te voorspellen. Een voorbeeld van een test is het blokkeren van
een robotarm zijn traject door een onverwachts een hand in dit traject te plaatsen.
In plaats van dat de robot stopte, paste deze zich aan. De robot voorspelde het
traject van de hand en paste hier zijn eigen traject op aan zodat deze rond de hand
bewoog.
3.2.5.
Digital Twin/simulaties met AI
Digital Twin is een technologie die al langer bestaat maar met de groeiende
mogelijkheden van AI wordt dit principe steeds vaker toegepast. Digital twins zijn
virtuele representaties van producten, processen, plaatsen, gebouwen of zelfs
mensen die worden ingezet voor het simuleren, analyseren en verbeteren van de
fysieke werkelijkheid. Deze virtuele representaties worden gebruikt om simulaties
uit te voeren aan de hand van de real-time data. Neem als voorbeeld een
windturbine. Deze windturbine heeft verschillende sensoren die data produceren
over verschillende aspecten van de windturbine zoals energieopbrengst,
temperatuur, weersomstandigheden enzovoort. Met deze data kan het virtuele
model simulaties doen, performance problemen bestuderen en eventueel
verbeteringen voorstellen. Het probleem met digital twins tot nu toe was het sneller
of in real-time analyseren van deze data. Met de traditionele technologieën is dit
vaak niet mogelijk. Hier komt AI om de hoek kijken. De digital twins in combinatie
met AI stelt de digital twins in staat de potentie van dit concept waar te maken. Met
machine learning kunnen modellen gecreëerd worden op basis van waargenomen
gedrag en historische data in plaats van alleen de ontwerpinformatie. Deze
modellen kunnen vervolgens in real-time voorspellingen maken in tegenstelling tot
de traditionele digital twin. Het gebruik van AI in combinatie met digital twins
bevindt zich nog in de beginfase. Momenteel gaat het veelal om eenvoudige taken
zoals het monitoren van de druk en het bijstellen van kleppen. Echter naarmate het
AI-systeem steeds slimmer wordt, zullen ook meer complexere taken op afstand en
automatisch worden opgelost.
Met AI en machine learning i.c.m. simulaties is er dus steeds meer mogelijk, ook in
de machinebouw. Steeds meer machinebouwers zijn begonnen met het gebruiken
van AI in combinatie met ’physics-based’ simulaties. Dit vanwege het feit dat
engineers steeds complexere ontwerpen dienen te creëren maar juist minder tijd
Onderzoeksrapport Machine Learning
41/77
hebben deze te ontwikkelen. Met behulp van AI zijn deze simulaties niet alleen
afhankelijk van data uit de daadwerkelijke machine maar ook uit zogenoemde GAN’s
(generative adversarial networks). Deze GAN’s identificeren automatisch kenmerken
en patronen in de aanwezige input data, zoals data van de daadwerkelijke machine,
en gebruikt deze informatie om nieuwe, synthetische data te genereren met
eigenschappen vergelijkbaar aan de data van de originele dataset. Dit werkt als
volgt. GAN’s produceren dus realistische data door het trainen van een ‘generator
network’ dat als output deze synthetische data heeft. Vervolgens wordt er gebruik
gemaakt van een ander neuraal netwerk ‘discriminator network’ dat probeert te
onderscheiden of het gaat om synthetische of de daadwerkelijke data. Deze twee
netwerk trainen in feite elkaar tot het ‘discriminator network’ het in 50% van de
gevallen fout heeft. Dit geeft aan dat het ‘generator network’ realistische data
produceert wat gebruikt kan worden in de simulaties.
In tegenstelling tot het bovenstaand probleem waar te weinig data aanwezig is voor
goede simulaties, kan een te grote hoeveelheid aan data er ook voor problemen
zorgen. Een aantal decennia geleden bestonden typische ontwerpsimulaties uit
enkele duizenden elementen/variabelen. Tegenwoordig bevatten deze
simulatiemodellen vaak miljoenen verschillende elementen/variabelen. De reden
van deze data-explosie is de vraag naar meer nauwkeurige representaties van de
werkelijkheid. Deze data-explosie zorgt voor een enorme toename in rekenkracht
die nodig is voor het uitvoeren van deze simulaties. De oplossing met AI is het
gebruik maken van ROM’s (Reduced Order Models). Door deze methode toe te
passen, bouwen engineers ROM's van grote, complexe systemen met behulp van
kleine datasets die zijn afgeleid van eerdere simulaties en tests, waardoor inzicht
wordt verkregen in systeemkenmerken. Hierdoor kunnen engineers snel de
elementen/variabelen vaststellen die de grootste invloed hebben op het systeem.
Door te focussen om de meer invloedrijke elementen/variabelen kan veel tijd en
rekenkracht bespaard worden.
Nu bekend is dat AI i.c.m. complexe applicaties maar juist ook met weinig data kan
werken, is de vraag hoe accuraat deze AI-simulaties zijn. Zijn AI-simulaties net zo
betrouwbaar als de traditionele simulaties. Het kenmerk van AI-technologie is het
vermogen om de fysica van een applicatie te ‘leren’. Ontwikkelaars kunnen de
originele simulatiemodellen combineren met een ML-model om de accuraatheid te
verbeteren. De onderliggende fysica kunnen worden vastgelegd met bekende
formules en de onbekende fysica kan worden vastgelegd door neurale netwerken.
Hierdoor stelt AI de engineers in staat problemen op te lossen door simulatie die
eerder niet mogelijk waren. Echter, zitten er ook beperkingen aan AI-simulaties waar
ontwikkelaars rekening mee moeten houden. Machine learning levert doorgaans
resultaten die net zo nauwkeurig zijn als de data waarvan het heeft geleerd.
Wanneer er data aan een ML-model wordt gegeven van slechte kwaliteit, dus
zonder enige relatie met de fysieke werkelijkheid, zal het ML-model niet in staat zijn
nieuwe problemen op te lossen. Aan de andere kant, wanneer een ML-model ook de
fysica achter de data leert, is dit model in staat de traditionele simulatiemodellen te
vervangen terwijl het net zo nauwkeurig is als de data waarvan het heeft geleerd.
Een voordeel van ML-modellen is dat het in de loop van de tijd steeds beter kan
worden. Wanneer bijvoorbeeld gebruik wordt gemaakt van GAN’s, hierboven
besproken, kan het ML-model steeds beter worden totdat het niet meer van het
echt te onderscheiden is.
Onderzoeksrapport Machine Learning
42/77
De vraag is nu: wat is het voordeel wat in de industriële automatisering of in de
machinebouw gehaald kan worden met deze AI-simulaties en Digital Twins. In veel
gevallen bestaat de digital twin van een machine uit drie verschillende
simulatiemodellen: het ‘automation model’, ‘electrical and behavior model’ en
‘physical and kinematic model’. Zie ook het voorbeeld van Siemens in Figuur 33. Met
behulp van het ‘automation model’ kunnen programma’s gesimuleerd worden in
een virtuele controller. In dit simulatiemodel kan de hardware configuratie en het
softwareprogramma in de virtuele controller geladen worden en kunnen vervolgens
de effecten via gesimuleerde inputs en outputs worden geobserveerd. Vervolgens is
er het ‘electrical en behavior model’. Hierin worden alle aanwezige sensoren,
actuatoren, proceskenmerken, temperatuur, druk, hydrauliek, enzovoort
gesimuleerd. Dit simulatiemodel wordt vervolgens gekoppeld aan het ‘physical and
kinematic model’. In dit simulatiemodel wordt gebruik gemaakt van alle CAD-data
van alle componenten om zaken als motion control, flow van verschillende
materialen, zwaartekracht en collisions te simuleren. Door deze drie
simulatiemodellen kan een goede representatie van een machine gemaakt worden.
De vele voordelen die hieruit gehaald kunnen worden zijn verschillend. Zo kan de
kwaliteit van een machine verbeterd worden met behulp van parameter
optimalisatie in de virtuele omgeving. Ook zorgen deze simulatiemodellen vaak voor
kortere inbedrijfstellingstijden wat ook weer zorgt voor minder kosten. Dit vanwege
het feit dat deze modellen machinebouwers in staat stelt machines fouten in een
vroeg stadium kunnen ontdekken met behulp van virtual testing. Ook kunnen met
behulp van een digital twin bijvoorbeeld operatortrainingen worden gegeven
voordat de machine daadwerkelijk in bedrijf is.
Figuur 33: Digital Twin en simulatiemodellen Siemens
3.2.6.
Predictive quality/waste reduction
Bij predictive quality wordt, zoals de naam al zegt, de kwaliteit van een product
voorspeld voordat deze daadwerkelijk geproduceerd is. Het doel is het reduceren
van verliezen in kwaliteit en afval in een proces. Dit wordt gedaan in verschillende
stappen. Eerst voorspelt het systeem of de machine producten met lagere kwaliteit
gaat produceren. Dit doet de machine door patronen te herkennen waar eerder bij
is vastgesteld dat de machine kwalitatief minder goede producten produceerde.
Deze producten kunnen kleine afwijkingen vertonen maar ook grote waardoor het
Onderzoeksrapport Machine Learning
43/77
product wellicht helemaal wordt afgekeurd. Vervolgens identificeert de machine
voortijdig waar de bron van het probleem ligt. Wanneer het systeem weet wanneer
de machine minder kwalitatieve producten of rejects gaat produceren en waar de
hoofdoorzaak ligt, alarmeert deze bijvoorbeeld de operators en wordt geadviseerd
bepaalde stappen te ondernemen. Deze methode is voornamelijk voordelig wanneer
er veel tijd zit tussen het produceren en de kwaliteitscontrole. Wanneer hier
bijvoorbeeld een paar uur tussen zit, kan een machine voor een lange tijd rejects
produceren wat qua kosten hoog kan oplopen. Door predictive quality kan dit
voorkomen worden wat uiteindelijk zorgt voor hogere en meer kwalitatieve
productie.
Figuur 34: Voorbeeld predictive quality
3.2.7.
Machine optimization
In de hedendaagse industrie is het steeds belangrijker dat machines langer meegaan
maar ook minder energie verbruiken. Hier komt machine optimization bij kijken.
Met behulp van machine learning kunnen onder andere energieverbruik en slijtage
verlaagd worden. Het doel bij deze methode is dan ook het energieverbruik en de
slijtage te verminderen zonder dat de productiesnelheid wordt verlaagd. Een
voorbeeld van een toepassing hier is producten die over een lopende band worden
getransporteerd. Deze producten gaan van station naar station en bij elk station
wordt een bepaalde bewerking uitgevoerd aan het product. In huidige gevallen is
het vaak het geval dat er bij elk station een soort ‘file’ ontstaat omdat elke
bewerking tijd kost. Hierdoor slaat de lopende band af en zal deze wanneer de ‘file’
weg is maximaal gaan accelereren. Dit gaat ten koste van het energieverbruik en
zorgt ervoor dat de lopende band sneller slijt. Met behulp van Machine Learning
algoritmes wordt er gezorgd dat er geen ‘files’ ontstaan en de band op een vast en
laag tempo kan blijven draaien. Dit kost minder energie dan steeds versnellen en
vertragen en zorgt hiervoor ook voor minder slijtage. Google bespaart bijvoorbeeld
30% energie met behulp van AI. De vele datacenters van Google dienen continu
gekoeld te worden zodat de apparatuur optimaal kan werken. Elke 5 minuten neemt
een systeem deze AI-data op van duizenden sensoren en geeft deze aan een neuraal
netwerk die vervolgens voorspelt wat voor effect bepaalde acties hebben op het
energieverbruik. Het neurale netwerk identificeert welke acties het minste energie
verbruiken maar wel zorgen voor een optimale omgeving in de datacenters.
Onderzoeksrapport Machine Learning
44/77
Figuur 35: Voorbeeld machine optimization
Een ander onderdeel van machine optimization is model optimization. Alle
industriële machines en processen maken gebruik van controllers zoals bijvoorbeeld
PID-controllers. Al deze controllers dienen geparametriseerd te worden, handmatig
of automatisch met behulp van auto-tuning technieken. Hier ligt het probleem
omdat veel controllers in het veld niet optimaal afgestemd zijn. Dit kan verschillende
oorzaken hebben. Zo kan het handmatig afstemmen van parameters lastig zijn en is
hiervoor veel ervaring en kennis over het proces nodig. Ook kan het zijn dat autotuning functies niet altijd beschikbaar of optimaal zijn waardoor fine-tuning vaak
benodigd is. Met behulp van machine learning, en specifiek reinforcement learning,
kan optimalisatie van deze controllers gerealiseerd worden. Reinforcement learning
wordt hier vaak gebruikt vanwege het feit dat er vaak al een suboptimale controller
aanwezig is. Deze aanpak maakt het eenvoudiger eerder opgedane kennis toe te
passen. Door het aanpassen van de parameters met behulp van trial en error
worden de parameters geoptimaliseerd. Dit betekent niet dat reinforcement
learning de optimale parameters van een controller garandeert, maar wel
verbeteringen.
3.2.8.
AI in product design
Ook in de wereld van product design speelt AI een steeds grotere rol. Hier moet nog
niet gedacht worden aan robots die zelf gehele machines kunnen ontwerpen maar
meer aan optimaliseren en het versnellen van ontwerpprocessen. De kracht van AI
op dit gebied ligt bij de snelheid waarop het grote hoeveelheden data kan
analyseren en vervolgens aan de hand van deze data ontwerpsuggesties kan doen.
Deze manier van product design wordt ook wel generative design genoemd.
Generative design is een ontwerpproces dat met behulp van een programma een
bepaald aantal outputs genereert die aan een aantal eisen voldoet. Vervolgens kan
de ontwerper een van deze outputs kiezen en deze finetunen waardoor het
ontwerpproces een stuk wordt versneld. Doordat klanten steeds vaker specifieke, op
maat gemaakte eisen hebben maar ook steeds sneller apparatuur of machines
geleverd willen hebben, is het generative design een handig proces om dit te
realiseren.
Onderzoeksrapport Machine Learning
45/77
Generative design wordt op dit moment voornamelijk gebruikt bij het ontwerpen
van 3D-tekeningen. Met behulp van een duidelijk gedefinieerde ontwerpopdracht
als input, kunnen ontwerpers gebruik maken van AI-systemen om verschillende
mogelijke configuraties van de oplossing te ontwerpen. Vervolgens kunnen de
ontwerpers deze honderden evalueren en het beste ontwerp uitkiezen. Dit zorgt er
ook voor dat niet alleen standaardmethodes van de ontwerper worden gebruikt
maar ook nieuwe, innovatieve en eventueel efficiëntere ontwerpen worden
gecreëerd. Een voorbeeld van dit principe is te zien in. In dit voorbeeld zijn
verschillende eisen meegegeven aan het AI-systeem zoals afmetingen, last, gewicht,
materiaal, maximale prijs per product enzovoort. Vervolgens komt het AI-systeem
met verschillende ontwerpen zoals ook te zien in Figuur 36. Een ontwerper kan nu
afwegingen maken tussen de verschillende ontwerpen en een beste ontwerp kiezen.
Een engineer zal bijvoorbeeld het meest waarschijnlijk met het meest linkse
ontwerp in Figuur 36 naar voren komen. Echter dankzij generative design komt naar
voren dat ook het meest rechtse ontwerp voldoet aan de eisen. Dit laatste ontwerp
gebruikt minder materiaal en is hierdoor lichter en eventueel goedkoper te
produceren.
Figuur 36: Voorbeeld generative design
Zoals eerder gezegd wordt op dit moment generative design het meest toegepast in
de wereld van 3D-tekeningen. Echter kan dit ontwerpproces ook in andere gebieden
worden toegepast. Denk bijvoorbeeld aan het ontwerpen van de elektronica voor
een machine. Aan de hand van eerdere projecten kan een model getraind worden
die suggesties doet over welke componenten benodigd zijn. Als input worden zaken
als het aantal benodigde sensoren, soort signaal van sensoren, aantal benodigde
actuatoren, soort signaal van actuatoren, beschikbare ruimte voor
besturingscomponenten enzovoort gegeven aan het model. Het model kan
vervolgens suggesties doen over welke componenten benodigd zijn zoals PLC’s, in/output modules, relais, knoppen en nog veel meer. Op basis van tekeningen en
stuklijst van eerdere projecten kan dit AI-systeem voorspellen welke componenten
nodig zijn. Door vervolgens meerdere ontwerpen beschikbaar te stellen aan de
hardware-engineer kan het hardware-ontwerpproces geoptimaliseerd en versneld
worden.
Onderzoeksrapport Machine Learning
46/77
3.3.
Wanneer gebruik maken van Machine Learning
Machine learning kan in vele gevallen een hele goed oplossing zijn, echter is dit niet
altijd het geval. Het is dan ook belangrijk te weten wanneer gebruik te maken van
Machine learning en wanneer niet. Zo kan in sommige gevallen het efficiënter,
goedkoper of meer tijdbesparend zijn om bijvoorbeeld zelf te programmeren. Zo kan
de kwaliteit maar ook hoeveelheid van de beschikbare data een grote rol spelen bij
het kiezen voor machine learning of meer traditionele programmeeropties.
Wanneer er weinig data aanwezig is, kan het ingewikkeld zijn om een bruikbaar
machine learning model te trainen. Dit is vooral het geval bij deep learning waar
vaak veel data nodig is. Echter te veel data kan ook voor problemen zorgen omdat
deze data ruis of ongewenste data kan bevatten. Hiervoor is vaak een data scientist
of specialist nodig die verstand heeft van deze data en de ongewenste data uit de
dataset kan halen. Ook moet rekening gehouden worden met het budget en de
tijdsperiode waarin een model gerealiseerd moet worden. Simpele machine learning
projecten vereisen vaak minder rekenkracht voor computers en kunnen daarom
eenvoudiger op de CPU van een computer getraind worden. Echter wanneer deep
learning modellen met grote datasets getraind moeten worden, vereist dit veel
meer rekenkracht. Er zal serieus nagedacht moeten worden over het budget dat
besteed moet worden aan bepaalde hardware, zoals GPU’s, en de tijd die benodigd
zal zijn voor het trainen. Deze twee factoren kunnen ervoor zorgen dat er gekozen
moet worden voor een andere oplossing dan machine learning. Ook spreekt het
voor zichzelf dat het gebruikmaken van machine learning voor minder complexe
problemen vaak niet rendabel is. Machine learning is vooral bedoeld voor het vinden
van complexe relaties en verborgen patronen in de data. Wanneer de relaties en
patronen van tevoren al duidelijk zijn, is het vaak efficiënter andere methodes toe te
passen.
3.4.
Stappenplan toepassen machine learning
Nu bekend is wat de toepassingen van machine learning zijn, is het goed te weten
hoe een machine learning project wordt opgezet. In dit hoofdstuk wordt beschreven
wat de stappen zijn die ondernomen dienen te worden voor het opzetten van een
succesvol machine learning project. Voor elke stap worden verschillende aspecten
besproken die belangrijk zijn voor het maken van de verschillende keuzes. Dit
stappenplan bestaat uit vijf stappen: Data verzamelen, pre-processen van data,
keuze methodes/algoritmes, trainen/testen van het model en het implementeren
van het model.
Figuur 37: Stappenplan Machine Learning project
Onderzoeksrapport Machine Learning
47/77
3.4.1.
Data verzamelen
De eerste en de meeste belangrijke stap van machine learning is het verzamelen van
data. Het verzamelen van veel en goede kwaliteit data is bepalend voor een goed
ML-model. Het proces van het verzamelen van data hangt af van het type project
dat gemaakt dient te worden. Wanneer een ML-project gemaakt moet worden dat
gebruik maakt van real-time data kan een IoT-systeem gerealiseerd worden die
gebruikt maakt van verschillende sensoren. De dataset kan vervolgens verzameld
worden uit verschillende bronnen zoals een bestand, database, sensor enzovoort.
Wanneer deze data verzameld is, kan echter niet meteen begonnen worden aan het
bouwen en trainen van een model. De data die verzameld is, kan bijvoorbeeld data
missen, extreem hoge waardes/uitschieters bevatten en ongeorganiseerde data/ruis
bevatten. Om dit probleem op te lossen wordt vaak het pre-processen van data
toegepast. Dit wordt in het volgende hoofdstuk besproken. Wanneer niet genoeg of
zelfs geen data verzameld kan worden, kan gebruikt gemaakt worden van datasets
beschikbaar op het internet. Voorbeelden van sites waar dataset gedownload
kunnen worden zijn Kaggle en UCI Machine learning Repository. Deze datasets
kunnen als geheel nieuwe dataset getraind worden of gebruikt worden of de
bestaande datasets aan te vullen.
3.4.2.
Pre-processen van data
Een andere belangrijke stap in machine learning is het preprocessen oftewel
voorbewerken van data. Data preprocessing is het proces waarbij de ruwe data die
verzameld is, wordt omgezet naar een format die gebruikt kan worden voor het
maken van een ML-model. De vraag is waarom dit preprocessen van data nodig is.
Vaak bevat de data die verzameld is fouten zoals missende data, uitschieters of
andere ongewenste data. Door bijvoorbeeld de missende data te negeren. Er kan
ook voor gekozen worden de missende data te vervangen door bijvoorbeeld het
gemiddelde of de meeste voorkomende waarde uit die data. Bovendien kunnen
uitschieters in de data buiten beschouwing gelaten worden. Wanneer bijvoorbeeld
bij gewicht van een persoon 800kg staat, kan ervan uitgegaan worden dat iemand
hier een fout heeft gemaakt en bijvoorbeeld een ‘nul’ te veel heeft ingevuld. Met
bepaalde preprocessing tools wordt deze data automatisch veranderd of buiten
beschouwing gelaten. Dankzij het preprocessen van al deze data, zorgt deze
ongewenste data niet voor ongewenste effecten op het model.
Een ander belangrijk aspect van preprocessen is het omzetten van bepaalde data
naar numerieke data. Vaak bevatten datasets categorische data zoals ‘male’,
‘female’ of bijvoorbeeld de nationaliteit van een persoon. Omdat machine learning
alleen kan werken met numerieke data dienen deze data omgezet te. Zo wordt in
het voorbeeld van ‘male’ en ‘female’ deze data vaak omgezet naar 0 en 1.
3.4.3.
Keuze methodes/algoritmes Machine learning
Wanneer er gekozen wordt om gebruik te maken van machine learning is het
belangrijk de meeste geschikte methodes en algoritmes te gebruiken. Het verkeerd
kiezen van de methodes en/of algoritmes kan ervoor zorgen dat het verkrijgen van
een geschikt ML-model te lang duurt of zelf helemaal niet lukt. Dit kan komen
doordat bepaalde methodes/algoritmes meer tijd nodig hebben om te trainen of
omdat sommige methodes/algoritmes nooit een bepaalde nauwkeurigheid behalen.
Hieronder wordt besproken wat de beste aanpak is en welke aspecten belangrijk zijn
voor een succesvol machine learning project.
Onderzoeksrapport Machine Learning
48/77
Om te beginnen is het belangrijk het probleem dat opgelost moet worden te
definiëren. Dit wordt gedaan door het probleem te categoriseren met behulp van de
input en output. Bij het categoriseren van de input moet gekeken worden naar de
data. Wanneer er een gelabelde dataset aanwezig is, valt het project onder de
methode supervised learning. Wanneer er geen gelabelde dataset aanwezig is of
gemaakt kan worden, zal gebruik gemaakt moeten worden van unsupervised
learning. Wanneer het model dient te communiceren met een bepaalde omgeving,
zal vaak gebruik gemaakt worden van reinforcement learning. Vervolgens dient met
de output het probleem verder gedefinieerd te worden. Dient de output
bijvoorbeeld verschillende objecten te classificeren, wordt gesproken van een
classificatie probleem. Wanneer de output een bepaalde waarde of getal te bepalen,
wordt gesproken van een regressie probleem. Het categoriseren van deze inputs en
outputs is belangrijk om later een geschikt ML-algoritme te vinden.
Figuur 38: Keuze machine learning methodes
Wanneer het probleem is vastgesteld, dient een keuze gemaakt te worden over
welke algoritmes toe te passen. Het kiezen van het juiste algoritme hangt af van
verschillende factoren. Zo kunnen aan de hand van de soort van het probleem
(classificatie, regressie of clustering) bepaalde algoritmes al afvallen. In Figuur 39 zijn
een aantal van deze soort problemen te zien. Bij elk van deze problemen zijn een
aantal algoritmes aangegeven die het meest geschikt zijn voor dit type probleem.
Hieronder zal een korte toelichting over een aantal van deze type problemen
worden gegeven.
Classificatie algoritmes maken voorspellingen over bepaalde klassen. Dit kan gaan
over classificaties tussen twee klassen, zoals een man en een vrouw, of meerder
klassen, zoals een hond, kat, vogel enzovoort. Typische classificatie algoritmes zijn
Naive Bayes, Logistic Regression en SVM.
Onderzoeksrapport Machine Learning
49/77
Vervolgens zijn er prediction, oftewel regressie, algoritmes. Deze algoritmes werken
met continue waardes, denk bijvoorbeeld aan het voorspellen van huizenprijzen of
de leeftijd van een persoon. Linear Regression is hiervan het meest gebruikte
algoritme. Wanneer de relatie tussen twee of meer variabelen gemodelleerd moet
worden, wordt vaak gebruik gemaakt van Multivariate regression, Ridge Regression,
en LASSO regression algoritmes.
In sommige gevallen is het doel bepaalde dingen in categorieën in te delen zonder te
weten wat deze categorieën zijn. In dit geval wordt gebruik gemaakt van clustering
om overeenkomsten tussen bepaalde objecten te identificeren en vervolgens te
groeperen. Bij dit type probleem wordt vaak gebruik gemaakt van KNN, k-means,
decision trees en random forest gebruik gemaakt.
Figuur 39: Keuze machine learning algoritmes
Het is belangrijk aan te geven dat het type probleem niet de enige factor voor het
kiezen van het juiste algoritme is. Er zijn veel verschillende factoren die nog een
invloed hebben op het kiezen van dit algoritme. Zo speelt de grote van de dataset
ook een belangrijke rol bij het kiezen tussen algoritmes. Wanneer er weinig data
beschikbaar is kan bijvoorbeeld beter gebruik gemaakt worden van Linear regression
of Naive Bayes algoritmes terwijl bij grote datasets juist is sommige gevallen beter
gebruik gemaakt kan worden van KNN en decision trees algoritmes of zelfs neurale
netwerken. Ook de gewenste nauwkeurigheid en aanwezige trainingstijd zijn
factoren die mee kunnen spelen bij het kiezen van een algoritme. Zo zal een model
dat in staat moet zijn gezichten te herkennen met behulp van een neuraal netwerk
algoritme veel nauwkeuriger zijn dan een simpel Logistic Regression algoritme.
Echter wanneer een verband moet worden gevonden tussen bijvoorbeeld gewicht
en lengte van personen zal een Logistiek Regression veel minder data en
trainingstijd nodig hebben.
Onderzoeksrapport Machine Learning
50/77
Het kiezen van het juiste algoritme is dus een lastig proces. Het is niet eenvoudig
een algoritme aan te wijzen dat optimaal geschikt is voor de gewenste
probleemstelling. In sommige gevallen is het hierom handig een machine learning
pipeline op te zetten. Deze pipeline vergelijkt de performance van verschillende
algoritmes en maakt een keuze welke het meest geschikt is op basis van de gegeven
criteria. Een ander methode is het opdelen van de data in kleinere groepen en voor
elk van deze groepen een model te trainen met een ander algoritmes. Hier kan
vervolgens vergelijken worden welk model het beste presteert.
Tot slot, het grootste deel van de taken die opgelost dienen te worden met machine
learning, worden tegenwoordig opgelost met neurale netwerken. Met deze
algoritmes kunnen bijvoorbeeld zowel classificatie als regressie problemen opgelost
worden. Echter zitten er ook een paar nadelen aan neurale netwerken. Zo is er veel
data nodig en kosten deze modellen vaak veel tijd om te bouwen. Zo zijn de eerder
besproken klassieke machine learning algoritmes wellicht niet zo universeel als
neurale netwerken, deze algoritmes zijn wel in staat efficiënt en snel modellen te
bouwen met kleine datasets. Bovendien vindt bij neurale netwerken vaak overfitting
plaats en zijn deze neurale netwerken vaak lastig te interpreteren. Een neural
netwerk is in principe een black-box, onderzoekers weten niet wat er in het neurale
netwerk gebeurt. Wanneer een van de doelen dus is om meer te weten te komen
over de verbanden in de datasets, kan beter niet gebruikt worden gemaakt van
neurale netwerken.
3.4.4.
Trainen/testen model
Wanneer de data is verzameld, preprocessing heeft plaatsgevonden en wanneer het
algoritme is gekozen kan het model getraind worden. Bij het trainen van het model
wordt de dataset vaak opgesplitst in drie delen: training dataset, validation dataset
en de testing dataset. Met behulp van de training en validation set wordt het model
getraind. De trainingset bevat de voorbeelden waarvan het model leert. De
validationset wordt vaak gebruikt om het model te finetunen en overfitting te
voorkomen. Tot slot is er nog de test dataset. Deze dataset wordt gebruikt om de
performance van het model te beoordelen. Deze test dataset verschilt dan ook van
de validation dataset doordat de test dataset niet gebruikt wordt tijdens het trainen.
Om het model goed te kunnen beoordelen, dient het model getest te worden aan de
hand van ongeziene data. De validation dataset is eigenlijk een onderdeel van de
trainingset en is hierdoor anders dan de test dataset.
Figuur 40: Splitten van dataset
Wanneer het model getraind is wordt deze getest aan de hand van de test dataset
en een confusion matrix. Hieruit kunnen verschillende meetwaardes gehaald
worden zoals accuracy, precision, recall, F1-score, etc. Aan de hand van deze
meetwaardes kan bepaald worden of het model aan de criteria voldoet.
Onderzoeksrapport Machine Learning
51/77
3.4.5.
Implementatie model
Wanneer het model getraind en getest is, kan deze geïmplementeerd worden in het
gewenste systeem. Hier kan vervolgens gekeken worden of het model ook in de realworld doet waarvoor het model ontwikkeld is. Wanneer dit zo is, kan gesproken
worden van een succesvol machine learning project. Echter stopt het project hier
niet. Door data te blijven verzamelen, kan het model verbeterd blijven worden. Met
behulp van de nieuwe data, kan het model opnieuw getraind worden. Hierdoor kan
een nog hogere nauwkeurigheid behaald worden dan voorheen. Door het model
steeds bij te laten trainen, zal het de taak waarvoor het gerealiseerd is steeds beter
uitvoeren en zal dus steeds meer voordeel hieruit gehaald worden. Er wordt wel
aantal aanbevolen een back-up van het bestaande model te bewaren voor het geval
er bijvoorbeeld overfitting plaats vindt en het model slechter gaat presteren.
3.4.6.
Voorbeeld stappenplan
In dit hoofdstuk zal een voorbeeld worden gegeven van een probleem dat men wil
oplossen met machine learning. Hier wordt gebruik gemaakt van het stappenplan
dat hierboven besproken is. Het probleem vindt plaats in een fabriek waar
producten worden vervoerd via verschillende conveyors. Deze conveyors worden
aangedreven met dezelfde soort elektromotoren. Het doel is met behulp van
predictive maintenance te voorspellen wanneer de motoren stuk gaan zodat
downtime kan worden voorkomen.
De eerste stap is het verzamelen van de data maar ook beoordelen of de
beschikbare data voldoende is om voorspellingen te doen over deze motoren. Stel
alleen de motorsnelheid kan als data verzameld worden, is de kans relatief groot dat
hiermee niet voorspeld kan worden wanneer de elektromotoren falen. Wanneer dit
het geval is zullen benodigde sensoren (zoals trillingssensoren, hittesensoren,
enzovoort) toegevoegd dienen te worden aan de motoren. In het geval van dit
voorbeeld zijn deze sensoren allemaal aanwezig dus hoeft hier geen rekening
gehouden mee te worden. De data van al deze sensoren worden vervolgens
verzameld samen met de data uit de onderhouds- en servicegeschiedenis.
Vervolgens volgt de stap preprocessing. De eerste stap in dit geval is het bepalen
welke data relevant is voor deze toepassing. Hier zijn data van de trillingssensoren,
hittesensoren maar ook motorsnelheid, energieverbruik en last relevant terwijl
zaken zoals bijvoorbeeld luchtvochtigheid vaak minder relevant zijn. Deze
irrelevante data dient dus buiten beschouwing gelaten te worden. Wanneer de
gewenste data is verzameld en de ongewenste data ‘weggegooid’ is, kan gekeken
worden naar ontbrekende data, uitschieters enzovoort. Tot slot dient alle data
genormaliseerd te worden, zodat alle variabelen hetzelfde bereik hebben. Dit kan
gedaan worden met behulp van normalisatie algoritmes die bij vrijwel alle MLframeworks beschikbaar zijn.
Vervolgens dient de bijbehorend methode en het bijbehorende algoritme gekozen
worden. Bij de verzamelde data zit in dit geval de onderhouds- en
servicegeschiedenis. Dit betekent dat voor elk mankement bijgehouden is wanneer
dit optrad. In dit geval is er dus sprake van gelabelde data en wordt er dus gebruik
gemaakt van supervised learning. In het geval van predictive maintenance wordt
vrijwel altijd gecontroleerd op afwijkingen in bijvoorbeeld het trillings-, warmte-,
energie- en andere patronen. Er is hier dus sprak van anomaly detection en dus
wordt volgens Figuur 39 geadviseerd gebruik te maken van de algoritmes SVM, LOF
of KNN. Echter is in het stappenplan ook besproken dat neurale netwerken in veel
Onderzoeksrapport Machine Learning
52/77
gevallen ook een uitkomst bieden. Omdat in dit geval sprake is van veel data, wordt
hier dan ook gekozen voor deep learning i.c.m. neurale netwerken omdat de
algoritmes SVM, LOF en KNN langere trainingstijden hebben.
Wanneer de methode het algoritme gekozen is, kan het model gebouwd en getraind
worden. In dit geval kan het neurale netwerk worden opgebouwd aan de hand van
de inputs en de gewenste outputs. De gewenste output is de tijd tot falen dus gaat
het hier om een regressie-probleem. Aan de hand van het x-aantal inputs (trillingen,
temperatuur, motorsnelheid, enzovoort) wordt de input laag bepaald met x aantal
inputneuronen. Vervolgens dienen verschillende hidden layers aangemaakt te
worden met tot slot de output layer die de tijd tot falen representeert. Deze output
layer heeft in dit geval één outputneuron maar er kan voor gekozen worden
meerdere neuronen toe te voegen wanneer bijvoorbeeld ook de bijbehorende acties
voorspeld dienen te worden. Dit valt echter meer onder prescriptive maintenance.
Vervolgens kan dit model getraind en getest worden. Wanneer met behulp van de
test-dataset bepaald wordt dat de nauwkeurigheid voldoende is, kan het model
geïmplementeerd worden.
Wanneer het model geïmplementeerd wordt, kan aan de hand van dit model
bepaald worden wanneer één van de elektromotoren gaat falen. Het model geeft als
output een bepaalde tijd weer die de tijd tot falen representeert. Vervolgens kan
met andere software, bijvoorbeeld in een PLC, een melding gegeven worden
wanneer de tijd onder een bepaalde waarde zakt. Hier kan vervolgens actie
ondernomen worden. Tot slot is het belangrijk data te blijven verzamelen en het
model te blijven trainen om een steeds nauwkeuriger model te creëren.
3.5.
Conclusie
In dit hoofdstuk is antwoord gegeven op de deelvraag: Welke toepassingen zijn er te
vinden voor machine learning en welke van deze toepassingen zijn interessant voor
klanten en applicaties van Gain? Eerst is onderzoek gedaan naar toepassingen in
verschillende industrieën zoals in de transport/automotive-, financiële-, zorg-,
agrarische- en de industriële sector. Vervolgens is dieper ingegaan op toepassingen
voor applicaties en klanten van Gain. Zo zijn eerst machine vision toepassingen
toegelicht bijvoorbeeld in combinatie met 2D-, 3D- en warmtecamera’s. Machine
vision kan toegepast worden voor kwaliteitscontrole maar ook voor objectdetectie.
Vervolgens is predictive maintenance besproken, waar met behulp van machine
learning voorspeld kan worden wanneer bepaalde apparatuur gaat falen. Hierna is
een toepassing besproken die door machine vision mensen in staat stelt meer en
dichter bij robots te werken. Ook predictive quality is een voorbeeld van een
toepassing. Hier wordt voorspeld wanneer een bepaald productieproces rejects gaat
produceren zodat hier vroegtijdig acties voor genomen kunnen worden. Als laatste
toepassing is machine optimalisatie besproken. Hier kan met behulp van machine
learning bijvoorbeeld energieverbruik en slijtage verminder worden. Tot slot is een
stappenplan beschreven. In dit stappenplan wordt uitgelegd hoe het best een
machine learning project kan worden aangepakt. Zo dient eerst data verzameld te
worden, vervolgens dient preprocessing over deze data plaats te vinden waarna de
beste methode en algoritme voor het model worden bepaald. Vervolgens wordt het
model getraind en getest. Wanneer het model aan alle gestelde eisen voldoet kan
het model geïmplementeerd worden.
Onderzoeksrapport Machine Learning
53/77
4.
Machine Learning platformen en tools
In dit hoofdstuk wordt antwoord gegeven op de deelvraag: Welke platformen en
tools voor machine learning zijn er beschikbaar en waar/hoe kunnen deze worden
toegepast? Om antwoord te geven op deze vraag wordt onderzoek gedaan naar
twee machine learning omgevingen, die van TwinCAT en die van TIA Portal. Voor elk
van deze omgeving is beschreven hoe het verzamelen van data, het trainen van een
model en het implementeren van dit model werkt. Ook worden verschillend
frameworks besproken waarmee verschillende machine learning modellen mee
kunnen worden gecreëerd. Tot slot wordt in de conclusie antwoord gegeven op de
deelvraag.
4.1.
TwinCAT Machine Learning omgeving
Beckhoff realiseert open automatiseringssystemen op basis van PC-gebaseerde
besturingstechniek. Voor de softwarekant vormt TwinCAT (The Windows Control
and Automation Technology) de kern van het besturingssysteem. Het TwinCAT
softwaresysteem verandert bijna elk PC-gebaseerd systeem in een real-time
besturing met meerdere PLC, NC, CNC en/of robotica runtimesystemen. Recentelijk
is een machine learning omgeving toegevoegd aan de laatste versie van TwinCAT,
TwinCAT 3. De machine learning modellen kunnen bovendien uitgevoerd worden in
real-time, waardoor het ideaal is om alle gewenste automatiseringsoplossingen uit
te voeren. Het idee van deze toepassing is om niet langer de standaard engineering
route te volgen waarbij oplossingen worden ontworpen voor bepaalde taken en
deze oplossingen te veranderen in algoritmes. De machine learning omgeving maakt
het mogelijk om deze gewenste algoritmes te leren via data. Beckhoff biedt hiervoor
een workflow voor deze gehele cyclus bestaande uit 3 stappen. Zo dient er eerst
data verzameld te worden, vervolgens kan met behulp van deze data een model
getraind worden en tot slot kan dit model toegepast worden om voorspellingen te
maken. Deze drie stappen zullen hieronder verder toegelicht worden. Het is
belangrijk om te realiseren dat dit een continu proces is. Het getrainde model kan
dus steeds bij blijven leren van de data terwijl dit model gebruikt wordt. Hierdoor
kan het model zichzelf verbeteren en dit verbeterde model kan opnieuw ingeladen
worden in het systeem.
Onderzoeksrapport Machine Learning
54/77
Figuur 41: Cyclus Machine Learning Beckhoff
4.1.1.
Data verzamelen
De eerste en vaak belangrijkste stap van machine learning is het verzamelen van
relevante data. Dit komt omdat een goede dataset belangrijk is voor het trainen van
een model. Bij een te kleine en/of slechte dataset zal een model nooit in staat zijn
goede voorspellingen te doen. In TwinCAT zijn er dan ook verschillende manieren
om deze data te verzamelen. Zo kan met de TC3 Scope en de bijbehorende
opslagfunctie data opgeslagen worden in onder andere binary-, CSV- en TDMSbestanden. Wanneer er een SQL of noSQL database (lokaal, op het netwerk of in de
cloud) aanwezig is, kunnen met behulp van de TC3 Database Server grote
hoeveelheden data tijdens het productieproces verzameld worden. Deze database
server is te gebruiken via de PLC en ondersteunt een groot aantal verschillende
bestandsformaten en databases waaronder ASCII en Excel bestanden maar ook
Microsoft SQL en Mongo DB. Wanneer de machine verbonden is met een message
broker aan een publieke of privé server kan, onder andere met TwinCAT IoT
producten, data opgeslagen worden via die broker in een datastore. Een message
broker is hier in feite software dat applicaties, systemen en services in staat stelt om
met elkaar te communiceren en informatie uit te wisselen. Bovendien kunnen
systemen van derde geïntegreerd worden via de OPC-UA interface van de TwinCAT
IoT Data Agent. Ook de TC3 Analytics Logger kan gebruikt worden om grote
hoeveelheden data op te slaan. Andere opties zijn bijvoorbeeld, het schrijven van
MAT-bestanden voor het verwerken van de data in MATLAB met de
TcExtendedFileWriter, het verzenden van data via TC3 OPC UA of het gebruiken van
de File Function Blocks van de PLC library Tc2_System.
Onderzoeksrapport Machine Learning
55/77
Figuur 42: Mogelijkheden data verzamelen TwinCAT
Zoals hierboven te zien is, zijn er genoeg mogelijkheden om data op te slaan. Echter
is ook de vraag welke data verzameld moet worden om het gewenste resultaat te
behalen. Neem als voorbeeld een proces waarvan het doel is elk product te
controleren op de kwaliteit. Door de hoge productiesnelheid van dit proces is het
onmogelijk om al deze producten handmatig te controleren dus wordt ervoor
gekozen om dit te automatiseren met behulp van machine learning. Hiervoor moet
eerst geïdentificeerd worden welke signalen relevant zijn voor de kwaliteit van het
product. In veel gevallen zal bijvoorbeeld de omgevingstemperatuur geen effect
hebben op de productkwaliteit. Echter de data en/of signalen die relevant zijn voor
de interactie tussen product en machine, bijvoorbeeld de stroom van een motor,
kunnen interessant zijn om te analyseren. Er moet dus gezocht worden naar
data/signalen die een verband hebben met het gewenste doel. Zo kan bij een
product met afwijkingen gekeken worden naar afwijkingen in de data, zoals een piek
in de motorstroom. De taak van het verzamelen van deze data ligt vaak in de handen
van de automatisering specialisten. Deze specialisten weten hoe de
besturingsarchitectuur eruitziet, hoe de omstandigheden op de werkvloer eruitzien
en hoe bovenstaande technieken om data te verzamelen en op te slaan werken.
4.1.2.
Model trainen
Wanneer alle benodigde data beschikbaar is via bestanden of databases, kan er een
model getraind worden. Om verwarring te voorkomen, het trainen van dit model
wordt niet in de PLC en dus niet real-time gedaan. Dit komt omdat het trainen van
een model veel rekenkracht vereist en dit via een PLC vaak onmogelijk is. In plaats
hiervan worden de modellen getraind buiten de real-time, vaak in een script
language zoals Python, R of MATLAB. Vervolgens kan het getrainde model ingeladen
worden in de PLC via ONNX, XML of BML.
Onderzoeksrapport Machine Learning
56/77
ONNX, Open Neural Network Exchange, is een open bestandsindeling die machine
learning modellen representeren. Het ONNX-format definieert een groep operators,
de bouwstenen van machine- en deep learning, in een standaard format waardoor
het mogelijk getrainde modellen te gebruiken in verschillende ML-frameworks en
andere tools. Een Machine Learning Framework is een interface, library of tool die
ontwikkelaars in staat stelt makkelijk machine learning modellen te maken zonder
diep in te hoeven gaan op de werking van onderliggende algoritmes. De werking van
de door Beckhoff ondersteunde frameworks zullen later worden besproken en
verder worden toegelicht. Beckhoff ondersteunt ONNX via de Machine Learning
Model Manager die het format kan lezen en omzetten naar een XML- of BMLformat.
Het Beckhoff-specifieke XML-format voor de representatie van getrainde machine
learning modellen vormt een kern onderdeel van de machine learning omgeving in
TwinCAT. Dit bestand kan zoals eerder vermeld gecreëerd worden vanuit een ONNXbestand maar ook direct met de XML Exporter. In tegenstelling tot ONNX kan het
XML-bestand TwinCAT-specifieke eigenschappen in kaart brengen. Aan de andere
kant zorgt het voor een betere samenwerking tussen de maker en de gebruiker
doordat het bestand eenvoudiger te begrijpen is. Tot slot is er de BMLbestandsindeling. Dit is de binaire representatie van een XML-bestand. Als resultaat
is het bestand niet openlijk zichtbaar en is de bestandsgrootte kleiner. Dit BMLbestand kan gegenereerd worden via de TC3 Machine Learning Model Manager. De
conversie van BML naar XML is hierbij niet mogelijk.
Figuur 43: Model trainen Beckhoff
4.1.2.1.
Ondersteunde Frameworks
Zoals eerder vermeld zijn er meerdere ondersteunde omgevingen/frameworks
waarin een model te creëren, te trainen en te valideren is. Beckhoff ondersteunt het
Onderzoeksrapport Machine Learning
57/77
ONNX-bestand wat betekent dat de frameworks die ONNX ondersteunen gebruikt
kunnen worden in TwinCAT. Onder deze frameworks zijn vele open-source
frameworks aanwezig zoals PyTorch en TensorFlow maar er zijn ook een aantal
commerciële frameworks aanwezig zoals MATLAB en SAS. In Figuur 44 zijn de
ondersteunde frameworks en converters van ONNX te zien.
Figuur 44: Ondersteunde frameworks Beckhoff
Het kiezen van het juiste framework hangt af van verschillende zaken. Om het juiste
framework te kiezen, zijn er drie belangrijke afwegingen waarop de keuze gebaseerd
moet worden.
-
Wordt het framework gebruikt voor machine learning of deep learning?
-
Wat is de gewenste programmeertaal voor het ontwikkelen van de MLmodellen?
-
Wat voor soort hardware (GPU, CPU, etc.) zijn er beschikbaar voor het trainen
van de modellen?
Voor het kiezen tussen machine learning en deep learning is de applicatie van groot
belang. Wanneer er bijvoorbeeld gebruik wordt gemaakt van machine vision zal
deep learning en dus ook een framework dat beschikt over deep learning de beste
optie zijn. Ook de programmeertaal die bepaalde frameworks gebruiken kan van
belang zijn. Zo kan iemand meer ervaring hebben met een bepaalde
programmeertaal en daardoor beter voor een framework met dezelfde
programmeertaal kiezen. De talen Python en R zijn de meest voorkomende
programmeertalen in machine learning, echter wordt er ook regelmatig gebruik
gemaakt van C/C++, Java en Scala. Tot slot is de beschikbare hardware, CPU’s en
GPU’s, tijdens het trainen van de modellen belangrijk. Wanneer grote hoeveelheden
data geanalyseerd moeten worden kan dit, afhankelijk van de gebruikte algoritmes
en soort data, veel tijd kosten. Zo kunnen één of meerdere GPU’s bij het trainen van
een model met veel afbeeldingen het trainproces een stuk versnellen.
Hieronder zullen een aantal van de meest gebruikte en populairste frameworks
worden toegelicht. Hierbij wordt beschreven hoe en met welke programmeertalen
deze frameworks werken, wat de sterke en zwakke punten zijn en worden deze
frameworks met elkaar vergeleken.
Onderzoeksrapport Machine Learning
58/77
4.1.2.2.
TensorFlow/Keras
TensorFlow is open-source framework gecreëerd door Google en is een van de
meest gebruikte ML-frameworks. TensorFlow is een zeer bruikbare machine learning
tool met een uitgebreide library die ontwikkelaars in staat stelt om zowel
classificatie modellen, regression modellen, neural networks en de meeste andere
soorten machine learning modellen te bouwen. Hieronder valt bovendien de
mogelijkheid voor het aanpassen van machine learning algoritmes en het feit dat
TensorFlow op zowel CPU’s en GPU’s kan lopen. TensorFlow wordt voornamelijk
geprogrammeerd in combinatie met Python maar ook C++ en Java kunnen gebruikt
worden. Het framework is simpel genoeg om voor de normale gebruiker een model
te creëren maar kan ook voor meer complexere projecten worden gebruikt.
TensorFlow wordt vaak in combinatie gebruikt met Keras. Keras is een open-source
software library die specifiek voor neurale netwerken gebruikt wordt. Hierdoor is
het mede dankzij Keras eenvoudiger deep learning toe te passen in TensorFlow. Zo
heeft het verschillende activation functies voor neurale netwerken maar is het ook
makkelijk verschillende layers voor een neuraal netwerk op te bouwen. Een groot
voordeel van TensorFlow is dat het goed gedocumenteerd is en wanneer de
documentatie niet genoeg er dankzij de vele gebruikers alsnog genoeg voorbeelden
en tutorials te vinden zijn op internet.
Figuur 45: TensorFlow/Keras
4.1.2.3.
PyTorch
De belangrijkste tegenhanger van TensorFlow is PyTorch. Meestal wanneer
engineers ervoor kiezen om een ML-framework te gebruiken, komt de keuze over
het algemeen neer op: “Wordt er TensorFlow of PyTorch gebruikt”. Dit door
Facebook ontwikkelde open-source ML-framework heeft veel overeenkomsten met
TensorFlow en wordt dan ook net zoals TensorFlow vaak geprogrammeerd in
Python. Bovendien heeft het opties om standaard machine learning modellen,
classification en regression, maar ook om deep learning modellen, neurale
netwerken, te ontwikkelen.
Onderzoeksrapport Machine Learning
59/77
Figuur 46: PyTorch
Er zijn echter ook een aantal verschillen tussen Keras en PyTorch. Zo is PyTorch
volgens vele gebruikers veel eenvoudiger zelf aan te passen naar bepaalde wensen
en volgt een meer object-georiënteerde aanpak door het bouwen van klassen. Ook
is bewezen dat PyTorch over het algemeen snellere trainingstijden heeft. Deze
trainingstijden zijn marginaal bij kleine projecten maar kunnen wel degelijk een
verschil maken bij grotere projecten. Zowel TensorFlow als PyTorch zijn echter beide
nog steeds in ontwikkeling dus het framework met de snelste trainingssnelheid zal
waarschijnlijk op en neer gaan tussen beide frameworks. TensorFlow aan de andere
kant heeft veel meer documentatie en een veel grotere gemeenschap waardoor het
eenvoudiger is om een oplossingen te vinden voor bepaalde vragen. Bovendien
beschikt TensorFlow over een hele handige tool genaamd TensorBoard.
TensorBoard maakt het mogelijk het machine learning modellen te visualiseren. Zo
is het eenvoudig te visualiseren hoe het model eruitziet maar ook hoe het model
verbeterd aan de hand van training.
De vraag is nu dan ook welke van de twee frameworks het beste is? Dit is bijna niet
te zeggen omdat beide zowel voordelen als nadelen hebben. Om een keuze te
maken zal goed gekeken moeten worden naar de applicatie waar het machine
learning model toegepast gaat worden. Aan de hand hiervan kunnen bepaalde vooren nadelen afgewogen worden en een framework worden gekozen.
Figuur 47: PyTorch vs TensorFlow
4.1.2.4.
Scikit Learn
Scikit Learn is een gratis machine learning library voornamelijk voor Python. Het
beschikt over verschillende classification, regression en clustering algoritmes
waaronder Linear Regression, Decision Trees, Support Vector Machines (SVM),
Onderzoeksrapport Machine Learning
60/77
Random Forests, k-Nearest Neighbors en meer. Ondanks het feit dat het mogelijk is
om deep learning toe te passen met Scikit Learn wordt dit nauwelijks gedaan. Scikit
Learn is meer voor bovenstaande standaard machine learning taken, voor deep
learning wordt vrijwel alleen TensorFlow en PyTorch gebruikt. Vaak wordt Scikit
gebruikt voor het begin van een machine learning taak en wordt vervolgens in een
andere framework voltooid. Zo heeft Scikit een uitstekende pre-processing tool voor
normalisatie en feature extraction. Vervolgens wordt voor overgestapt op
TensorFlow of PyTorch.
Figuur 48: Scikit Learn
4.1.2.5.
Micrsoft Azure Machine Learning
Azure machine learning is in tegenstelling tot TensorFlow, PyTorch en Scikit Learn
geen open-source framework maar heeft wel veel handige tools. Zo beschikt het
onder andere over automated machine learning waar verderop in dit hoofdstuk
meer over verteld wordt. Ook heeft het veel makkelijke tools om zelf een model te
creëren zoals een drag en drop designer waar modellen met gebouwd kunnen
worden. De talen Python en R worden ondersteund en het is bovendien mogelijk
modellen te gebruiken van andere frameworks zoals TensorFlow, PyTorch
enzovoort.
Een groot voordeel van Azure Machine Learning vergeleken met de eerder
besproken frameworks is dat het beschikt over een automated machine learning
(AutoML) functionaliteit. Met deze functionaliteit worden zowel tijd als kosten
bespaard doordat het vrijwel het hele machine learning proces automatiseert. Dit
proces werkt als volgt. Eerst dient het machine learning probleem geïdentificeerd te
worden. Is het bijvoorbeeld een classificatie of een regressie probleem? Vervolgens
dient de dataset ingeladen te worden en kan gespecificeerd worden om welke data
het gaat en wat voor format deze data komt. Hierna kunnen verschillende
parameters ingesteld worden. Zo kan bepaald worden hoelang deze AutoML
omgeving moet trainen, welke algoritmes gebruikt mogen worden, waarop een
model gevalideerd moet worden (precision, accuracy, etc.) en meer. Aan de hand
van deze parameters gaat deze AutoML omgeving verschillende modellen trainen.
Wanneer de omgeving klaar is met trainen kan door de gebruiker gekozen worden
welk model het best geschikt is. Dit kan de gebruiker doen door middel van de
handige visualisatie die bijvoorbeeld de precision, accuracy enzovoort laat zien maar
ook visualiseert de omgeving welke patronen er zijn gevonden in de dataset. Zo
weet de gebruiker ook enigszins waarop het model zijn keuzes baseert zodat deze
gebruiker dit ook kan verantwoorden aan de opdrachtgevers.
Onderzoeksrapport Machine Learning
61/77
Figuur 49: Voorbeeld AutoML
4.1.2.6.
MATLAB Machine Learning
Tot slot heeft ook Matlab een machine learning omgeving waarin modellen gemaakt
kunnen worden. Het beschikt over tools voor supervised en unsupervised learning
en kan daarmee clustering-, regression- of classificatieproblemen oplossen.
Bovendien is het mogelijk meerdere methodes toe te passen zoals decision trees,
SVM, kNN, neurale netwerken en meer. Ook biedt MATLAB handige tools tijdens het
maken van een machine learning model. Zo zijn er tools aanwezig die na het
importeren de gebruiker in staat stellen de dataset op te ruimen door bijvoorbeeld
uitschieters of lege waardes aan te passen. Dit zorgt voor een betrouwbare dataset
wat een grotere kans geeft op goed model. Ook zijn er meerdere visualisatietools
aanwezig die bijvoorbeeld de datasets voor het trainen kunnen analyseren maar ook
de patronen na het trainen in overzichtelijke figuren kunnen weergegeven. Tot slot
beschik MATLAB, net als over Azure Machine Learning, over een AutoML omgeving.
4.1.2.7.
Ondersteunde modellen en algoritmes
Zoals eerder besproken zijn er velen soorten modellen en algoritmes in machine
learning. De TwinCAT omgeving ondersteunt echter niet al deze modellen en
algoritmes. Er zijn, tot nu toe, twee type modellen die ondersteunt worden namelijk
de Support Vector Machine (SVM) en een neuraal netwerk. Deze twee modellen zijn
eerder al besproken in dit onderzoeksrapport. Zo werd een SVM gebruikt voor zowel
classificatie en regressie. Het doel van SVM is het vinden van een hyperplane in een
n-dimensionale ruimte waarin de afstand tussen de dichtstbijzijnde datapunten
wordt gemaximaliseerd. Bij dit SVM worden de volgende algoritmes of kernel
functions ondersteund: Linear, Radial Basis Function, Sigmoid en Polynomial. Een
neural netwerk bestaat uit verschillende lagen (input, hidden en output) die weer
bestaan uit één of meerdere neuronen. Aan de hand van weegfactoren en activation
functions worden vervolgens berekeningen gedaan om tot een voorspelling te
komen. In Figuur 50 zijn al ondersteunde activation functies te zien.
Onderzoeksrapport Machine Learning
62/77
Figuur 50: Ondersteunde activation functies Beckhoff
4.1.3.
Model implementatie
Wanneer er een correct werkend getraind model is gecreëerd, kan deze
geïmplementeerd worden in TwinCAT. Dit wordt gedaan met behulp van de TC3 ML
Model Manager. Diepere kennis over het machine learning model is niet nodig voor
het integreren van het model in TwinCAT. Het ONNX-, XML- of BML-bestand bevat
alle informatie van het model waaronder algoritmes, weegfactoren en activation
functies en hoeft alleen als uitvoerbare functie in TwinCAT gevoerd te worden. Dit
kan op twee manieren.
De eerste manier is het integreren van het model via een static TcCOM object. Dit
TcCOM object beschrijven de manier waarop onafhankelijk ontwikkelde en
gecompileerde softwarecomponenten met elkaar kunnen samenwerken. Door in
TwinCAT het voorbereidde TcMachineLearningModelCycal in te laden, wordt het
TcCOM object aangemaakt. Vervolgens kan onder het tabblad ML model
configuration het XML- of BML-bestand ingeladen worden. Hierbij worden de
beschikbare data types weergegeven voor de inputs en outputs. Het is belangrijk
hierop te merken dat er een verschil is tussen geprefereerde en ondersteunde
datatypes. Het enige verschil is wanneer niet-geprefereerde datatypes worden
gebruikt er door conversies van datatypes kleine verliezen op kunnen treden. Deze
inputs en outputs kunnen gekoppeld worden aan de bijbehorende variabelen.
Vervolgens kan het project in de PLC geladen worden en wordt het model in realtime uitgevoerd.
De tweede manier is het integreren van het model via de PLC library Tc3_MLL. Met
behulp van deze library kan een instantie van het functieblok FB_MllPrediction
gemaakt worden. In dit functieblok dienen het aantal inputs en outputs, de
datatypes van deze inputs en outputs enzovoort beschreven te worden. Bovendien
dient er een string gemaakt te worden die de locatie van het XML- of BML-bestand
beschrijft. Vervolgens kan een state machine gemaakt worden waar geswitcht wordt
tussen de verschillende states, bijvoorbeeld Idle, Config, Predict en Error state. Zo
wordt in de Idle state gewacht voor het commando om het XML- of BML-bestand in
te laden. Vervolgens wordt de configure-methode aangeroepen tot de configuratie
van het model voltooid is. Wanneer er een fout optreedt, zal de state machine naar
Onderzoeksrapport Machine Learning
63/77
de error state gaan. Zo niet, zal deze naar de predict state gaan waar het model aan
de hand van de inputs een voorspelling geeft via de outputs.
Wanneer het model runt in de PLC, kan nog steeds data verzameld worden waar het
model van kan leren. Door dit model steeds te blijven verbeteren, zal de
nauwkeurigheid van dit model beter worden. TwinCAT heeft daarom ook de optie
de getrainde modellen te updaten zonder te compileren of de TwinCAT Runtime te
herstarten. Om dit te doen, dient het nieuwe XML- of BML-bestand op het systeem
geladen te worden waardoor opnieuw de configuratie functie wordt uitgevoerd. De
trigger voor het configureren van dit nieuwe model kan handmatig verzonden
worden via een HMI of automatisch verzonden worden via een script. De cyclus van
het verzamelen van data, trainen en het implementeren kan hierdoor continu
doorlopen zonder het stoppen van de machine runtime.
Figuur 51: Model implementeren Beckhoff
4.2.
TIA-Portals Machine Learning omgeving
Net zoals Beckhoff heeft Siemens tegenwoordig ook een omgeving om machine
learning of AI in toe te passen. Dit gebeurt in TIA-portal met behulp van een speciale
module die in staat is neurale netwerk te laden en te integreren in het systeem.
Deze module, die in een volgend hoofdstuk verder besproken wordt, speelt een
belangrijke rol in het reduceren van programmeren en engineeren dat komt kijken
bij het creëren van automatiseringsoplossingen. Ook zorgt het ervoor dat
productieprocessen meer flexibel maar ook nauwkeurig worden. Zo zijn er al
applicaties van Siemens waar machine learning bijvoorbeeld visuele
kwaliteitscontroles uitvoert of robotsystemen die op basis van camera’s veel beter
reageren op onverwachte situaties. AI zal dan ook een grote rol gaan spelen in de
toekomst van automatisering bij Siemens. Het proces van machine learning komt
veel overeen met de cyclus van Beckhoff die eerder is besproken. Zo dient er eerst
data verzameld te worden. Met deze data kan een model getraind worden die
vervolgens in de speciale module geïmplementeerd kan worden. Dit proces wordt
continu herhaald om een beter model te blijven creëren.
Onderzoeksrapport Machine Learning
64/77
Figuur 52: Machine Learning in combinatie met Siemens
4.2.1.
S7-1500 TM NPU module
De speciale machine learning module van Siemens waar eerder over gesproken
wordt is de SIMATIC S7-1500 TM NPU module. Deze Neural Processing Unit kan
gebruikt worden in S7-1500 automatiseringssystemen maar ook in een ET 200MP
gedistribueerd I/O-systeem. Aan de hand van de benodigde rekenkracht van het
systeem is het zelfs mogelijk meer van deze NPU-modules in een systeem te
plaatsen. De NPU-module is uitgerust met een Myriad™X Vision processing unit chip
van Intel Movidius™ die speciaal is ontwikkeld voor het efficiënt verwerken van
grote hoeveelheden data via neurale netwerken. Deze AI-processor is dan ook
bijzonder geschikt voor het verwerken van beelden in combinatie met Convolutional
Neural Networks. Het getrainde neurale netwerk kan ingeladen worden in deze
module door middel van een SD-kaart. Gebruikers kunnen bovendien sensoren zoals
camera’s en microfoons via de Gigabit Ethernet- en USB 3.1-interfaces aan de NPUmodule verbinden. Voorbeelden van camera’s die geschikt zijn voor deze module
zijn de USB-camera’s van Intel (RealSense D435) en de Gigabit Ethernet Vision
camera van Basler (Basler ace acA1300-60gc). De data uit deze sensoren kan
gebruikt worden in het getrainde model om bijvoorbeeld een voorspelling te doen.
Ook de CPU-data die via het backplane verzonden wordt, kan ook gebruikt worden
als inputdata. De TM NPU module bestaat uit meerdere programmadelen die
gedownload dienen te worden naar het geheugen van de module. Zo is er het
applicatieprogramma en het neural netwerk. Het applicatieprogramma zorgt voor
de communicatie met de firmware van de module en leest de data van de
verbonden sensoren. Het neurale netwerk verwerkt alleen deze data via het
getrainde model en stuurt het resultaat naar het applicatieprogramma.
Onderzoeksrapport Machine Learning
65/77
Figuur 53: De SIMATIC S7-1500 TM NPU module
4.2.2.
Proces Machine Learning in TIA-portal
Zoals eerder al beschreven lijkt het proces van Machine Learning bij Siemens op het
proces van Beckhoff. Er dient eerst data verzameld te worden om een model te
trainen. Dit model, dat ook buiten de PLC wordt getraind, kan vervolgens
geïmplementeerd worden in de PLC waar het op basis van inputs en outputs
voorspellingen kan gaan doen. Bovendien is dit proces, net zoals bij Beckhoff, een
doorlopende cyclus, het model kan bij blijven leren van de nieuwe data. Ondanks
deze overeenkomsten zijn er wel degelijk wat verschillen. Het grote verschil is
uiteraard dat er bij Siemens gebruik gemaakt worden van een speciale NPU-module.
Het getrainde model zal dus niet in een bestaand systeem geïmplementeerd kunnen
worden zonder het toevoegen van één of meerdere van deze modules. Dit is een
nadeel ten opzichte van Beckhoff PLC’s waar dit in de meeste gevallen wel kan.
Het verzamelen van de data binnen TIA-portal kan op verschillende manieren
gedaan worden. Zo kan er simpelweg gebruikt gemaakt worden van data logging
waar data via CSV-bestanden opgeslagen wordt op de PLC’s geheugenkaart. Deze
kan vervolgens gedownload worden en worden gebruikt voor het trainen van het
model. Ook kan de data op bepaalde servers of zelfs de cloud worden opgeslagen.
Denk hier bijvoorbeeld aan MindSphere. Dit IoT-besturingssysteem verbindt
producten, installaties, systemen en machines met elkaar en kan hierdoor data
verzamelen. Deze data kan uiteraard weer gebruikt worden voor het trainen van het
model
Het trainen van de modellen kan net zoals bij Beckhoff met verschillende
frameworks gedaan worden zoals TensorFlow en PyTorch. Het getrainde model
dient omgezet te worden naar één of meer bestanden dat de NPU-module kan
lezen. In het geval van de NPU-module zijn dit een checkpoint- en meta-bestand.
Het checkpoint bestand bevat alle waardes van de parameters die gebruikt worden
in het model. Dit bestand bevat echter geen informatie over de methodes of
berekeningen die in het model gebruikt worden en zijn dus meestal alleen bruikbaar
wanneer de broncode die de parameters heeft getraind aanwezig is. Hiervoor
gebruikt de NPU-module het meta-bestand. Dit bestand bevat informatie dat
beschrijft of specificeert hoe een ander bestand gelezen moet worden. Deze
Onderzoeksrapport Machine Learning
66/77
bestanden, die dus het neurale netwerk bevatten, kunnen samen met het
applicatieprogramma via een SD-kaart ingelezen worden. Hiermee kan de module
vervolgens berekeningen en voorspellingen maken.
Wanneer het neurale netwerk dus via de SD-kaart ingeladen wordt, kan via TIAPortal dit neurale netwerk geconfigureerd worden. Eerst dient in de device-view van
TIA-portal de SIMATIC S7-1500 TM NPU module aan de hardware-configuratie
toegevoegd te worden. Dit kan simpel door in de catalogus onder Technology
Modules en vervolgens AI de module naar de correcte plaats aan de S7-1500 PLC of
een Interface Module (IM) te slepen. Er dient echter opgelet te worden dat niet alle
S7-1500 PLC en IM’s geschikt zijn. De TM NPU kan alleen geconfigureerd worden
met S7-1500 CPU’s met versie 2.5 en hoger, IM 155-5 PN HF versie 3.0 of hoger en
IM 155-5 PN ST versie 4.1 of hoger. Vervolgens zijn er door Siemens verschillende
functieblokken gecreëerd voor het gebruik maken van neurale netwerken in het
systeem. Deze functieblokken stellen de gebruiker in staat gebruik te maken van het
model zonder specifieke kennis te hebben over dit neurale netwerk. Zo kan met het
functieblok GetAppStatus de status van de applicatie bekeken worden. Het
functieblok PushData stuurt de data richting het neurale netwerk en vervolgens
kunnen met het functieblok GetResult de resultaten opgehaald worden. Aan deze
functieblokken kunnen verschillende inputs en outputs gekoppeld worden waardoor
het voor de gebruiker eenvoudig te programmeren is.
Figuur 54: Voorbeeld device-view met TM NPU module
4.3.
Conclusie
In dit hoofdstuk is antwoord gegeven op de deelvraag: Welke platformen en tools
voor machine learning zijn er beschikbaar en waar/hoe kunnen deze worden
toegepast? Eerst is de TwinCAT machine learning omgeving van Beckhoff besproken.
In deze omgeving wordt gebruik gemaakt van een proces met drie stappen. Eerst
wordt data verzameld met meerdere beschikbare tools in TwinCAT. Vervolgens kan
deze data gebruikt worden om in een van de ondersteunde frameworks een model
te trainen. De bekendste en meest gebruikte frameworks hier zijn TensorFlow en
PyTorch maar ook omgevingen zoals MATLAB en Microsoft Azure zijn competitief
dankzij hun automated machine learning omgevingen. De laatste stap van dit proces
Onderzoeksrapport Machine Learning
67/77
is het implementeren van het getrainde model. Met behulp van ONNX is het
eenvoudig een getraind model in te laden in de PLC en hier inputs en outputs aan te
koppelen. Tot slot is de AI-omgeving van Siemens besproken. Siemens stelt
gebruikers in staat via de TM NPU module neurale netwerken te implementeren aan
hun S7-1500 PLC’s. Het verzamelen van data, trainen van het model en het
implementeren van dit neurale netwerk heeft veel overeen met TwinCAT. Het
grootste verschil bevindt zich bij het inladen van het neurale netwerk en
applicatieprogramma. Dit wordt bij de TM NPU module gedaan met een SD-kaart.
Vervolgens kan in TIA-portal met verschillende functieblokken het neurale netwerk
eenvoudig worden geconfigureerd.
Onderzoeksrapport Machine Learning
68/77
5.
Onderzoeksrapport mini-delta robot
In dit hoofdstuk antwoord gegeven op de deelvraag: Hoe zit de delta robot eruit en
hoe wordt deze aangestuurd? Om antwoord te geven op deze vraag wordt eerst de
delta robot zelf besproken. Hier worden een aantal onderdelen benoemd en
toegelicht. Vervolgens wordt de besturing van deze delta robot toegelicht. Dit wordt
gedaan door eerst de besturing in de besturingskast te bespreken. Vervolgens zal
ook de besturing gemonteerd aan de delta robot besproken worden. Tot slot wordt
in de conclusie antwoord gegeven op de deelvraag.
5.1.
Delta robot
Een delta robot is een parallelle robot die bestaat uit drie armen die met elkaar
verbonden zijn. Deze drie armen kunnen elk afzonderlijk worden aangestuurd
waardoor de endeffector naar verschillende positie kan worden bewogen. Door de
parallellogram structuur in de armen blijft de oriëntatie van de endeffector altijd
stabiel. Delta robots worden vaak gebruikt in pick en place toepassingen omdat deze
robots redelijk snel kunnen zijn, sommige delta robots kunnen bijvoorbeeld 300 pick
en place bewegingen maken per minuut. De delta robot die gebruikt gaat worden, is
de RDG Delta Robot Kossel XL Printer. Zie Figuur 55. Deze delta robot bestaat uit een
stalen frame met drie poten. Aan deze drie poten zitten drie geleiders gemonteerd
die via een drietal riemen, pulleys en 48V-servomotoren naar boven of beneden
geleid kunnen worden. De servomotoren zijn van het type NEMA 17HS3001-20B.
Ook zitten er op de drie assen aan de bovenkant een eindschakelaar die een signaal
doorgeeft wanneer de geleiders de bovenkant bereiken.
Arm 1
Arm 2
Eindschakelaar_1
Arm 3
Eindschakelaar_3
Eindschakelaar_2
Z
X
Y
Stappenmotor_2
Stappenmotor_1
Stappenmotor_3
Figuur 55: RDG Delta Robot Kossel XL Printer
5.2.
Besturingskast
De delta robot wordt bestuurd via een besturingskast. In deze besturingskast zitten
onder andere een 24V- en 48V-voeding, een aantal zekeringsautomaten, een relais
en uiteraard de Beckhoff PLC met bijbehorende modules. De Beckhoff IPC die
Onderzoeksrapport Machine Learning
69/77
gebruikt wordt in deze opstelling is een CX5020 IPC. Deze embedded PC beschikt
over een 1.6 GHz Intel Atom® Z530 processor en kan, afhankelijk van de
geïnstalleerde TwinCAT runtime omgeving, gebruikt worden voor PLC en/of motion
control projecten. Aan deze IPC zitten verschillende modules gekoppeld. Zo zit onder
andere de EL1014 terminal aangekoppeld waarmee vier digitale inputs aangesloten
kunnen worden. Drie van deze aansluitingen worden gebruikt voor de besturing via
drie verschillende knoppen, een start-, stop- en resetknop. Deze zitten gemonteerd
aan de voorkant van de besturingskast. Vervolgens zit de EL1904 TwinSAFE-terminal
aan de IPC gekoppeld. Deze TwinSAFE module heeft vier faalveilige inputs die
geëvalueerd kunnen worden op het gebied van veiligheid. Deze module wordt dan
ook gebruikt voor de noodstop die ook aan de voorkant van de besturingskast zit
gemonteerd. Tot slot zit aan deze IPC een EL2904 TwinSAFE-terminal gemonteerd
die over vier faalveilige digitale outputs bezit. Aan de hand van de noodstop en deze
twee TwinSAFE terminals wordt een relais aangestuurd die de 48V-voeding naar de
servomotoren kan in- of uitschakelen. In Figuur 56 is de elektrische tekening en
schematische weergave van de besturingskast te zien.
Figuur 56: Elektrische tekeningen besturingskast
5.3.
Besturing aan delta robot
Tot slot zit nog een gedeelte van de besturing aan de delta robot gemonteerd. Deze
besturing is via een EK1100 EtherCAT module verbonden aan de IPC. Aan deze
EtherCAT module zitten andere modules verbonden voor onder andere de
Onderzoeksrapport Machine Learning
70/77
eindschakelaars en de 48V-servomotoren. De EL1014 digitale input terminal krijgt de
signalen binnen van de eindschakelaars. Vervolgens volgen er vier EL7047
servomotor terminals, waarvan één als reserve dient. Deze terminals zijn in staat de
servomotoren apart aan te sturen. In Figuur 57 is de elektrische tekening van
besturing gemonteerd aan de delta robot te zien.
Figuur 57: Elektrische tekeningen besturing aan delta robot
5.4.
Conclusie
In dit hoofdstuk wordt antwoord gegeven op de vraag: Hoe zit de delta robot eruit
en hoe wordt deze aangestuurd? Eerst is een kort onderzoek gedaan naar de delta
robot. De delta robot die gebruikt wordt is een RDG Delta Robot Kossel XL Printer.
Deze robot bestaat uit drie poten waaraan elk geleiders, eindschakelaars en
servomotoren met pulleys en riemen gemonteerd zijn. Deze robot wordt
aangestuurd via een besturingskast waar zich een Beckhoff IPC bevindt met
verschillende modules eraan. Ook bevinden zich in deze besturingskast de voeding,
zekeringsautomaten en een relais. De rest van de besturing is bevestigd aan de delta
robot. Deze besturing is via een EtherCAT interface verbonden met de IPC en
bestaat onder andere uit servomotor terminals. Deze sturen de verschillende
servomotoren ieder apart aan.
Onderzoeksrapport Machine Learning
71/77
6.
Bronvermelding
[1]
Wikipedia Contributors, “Machine learning,” Wikipedia, Apr. 29, 2019.
https://en.wikipedia.org/wiki/Machine_learning.
[2]
IBM Cloud Education, “What is Machine Learning?” www.ibm.com, Jul. 15, 2020.
https://www.ibm.com/cloud/learn/machine-learning.
[3]
QuinnRadich, “What is a machine learning model?,” docs.microsoft.com.
https://docs.microsoft.com/en-us/windows/ai/windows-ml/what-is-a-machine-learningmodel#:~:text=A%20machine%20learning%20model%20is.
[4]
J. Brownlee, “Difference Between Algorithm and Model in Machine Learning,” Machine Learning
Mastery, Apr. 28, 2020. https://machinelearningmastery.com/difference-between-algorithm-andmodel-in-machine-learning/.
[5]
T. S, “All Machine Learning Models Explained in 6 Minutes,” Medium, Oct. 17, 2020.
https://towardsdatascience.com/all-machine-learning-models-explained-in-6-minutes-9fe30ff6776a.
[6]
S. Ray, “Essentials of Machine Learning Algorithms (with Python and R Codes),” Analytics Vidhya,
Mar. 11, 2018. https://www.analyticsvidhya.com/blog/2017/09/common-machine-learningalgorithms/.
[7]
“Machine Learning: What it is and why it matters,” www.sas.com.
https://www.sas.com/nl_nl/insights/analytics/machine-learning.html (accessed Nov. 18, 2021).
[8]
O. G. Yalçın, “4 Machine Learning Approaches that Every Data Scientist Should Know,” Medium, Feb.
02, 2021. https://towardsdatascience.com/4-machine-learning-approaches-that-every-datascientist-should-know-e3a9350ec0b9.
[9]
IBM, “What is Supervised Learning?,” www.ibm.com, Aug. 19, 2020.
https://www.ibm.com/cloud/learn/supervised-learning.
[10]
“Supervised vs Unsupervised vs Reinforcement Learning | Intellipaat,” Intellipaat Blog, Dec. 26,
2019. https://intellipaat.com/blog/supervised-learning-vs-unsupervised-learning-vs-reinforcementlearning/.
[11]
P. Tieleman, “Supervised Learning: de betekenis en eenvoudige uitleg,” Data Science Partners |
Experts in Python, Apr. 25, 2020. https://pythoncursus.nl/supervised-learning/ (accessed Nov. 18,
2021).
[12]
https://www.facebook.com/kdnuggets, “An easy guide to choose the right Machine Learning
algorithm - KDnuggets,” KDnuggets, 2020. https://www.kdnuggets.com/2020/05/guide-chooseright-machine-learning-algorithm.html (accessed Nov. 18, 2021).
[13]
P. Tieleman, “Unsupervised Learning: wat is het? [de 3 methoden],” Data Science Partners | Experts
in Python, Apr. 25, 2020. https://pythoncursus.nl/unsupervised-learning/ (accessed Nov. 18, 2021).
[14]
Onderzoeksrapport Machine Learning
72/77
M. K. Pratt, “unsupervised learning,” SearchEnterpriseAI, 2017.
https://searchenterpriseai.techtarget.com/definition/unsupervised-learning (accessed Nov. 18,
2021).
[15]
“Unsupervised Machine Learning: What is, Algorithms, Example,” Guru99, Oct. 06, 2021.
https://www.guru99.com/unsupervised-machine-learning.html (accessed Nov. 18, 2021).
[16]
“Unsupervised Machine learning - Javatpoint,” www.javatpoint.com, 2011.
https://www.javatpoint.com/unsupervised-machine-learning (accessed Nov. 18, 2021).
[17]
IBM Cloud Education, “What is Unsupervised Learning?,” Ibm.com, Sep. 21, 2020.
https://www.ibm.com/cloud/learn/unsupervised-learning (accessed Nov. 18, 2021).
[18]
Packt, “Introduction to Clustering and Unsupervised Learning | Packt Hub,” Packt Hub, Feb. 23,
2016. https://hub.packtpub.com/introduction-clustering-and-unsupervised-learning/ (accessed Nov.
18, 2021).
[19]
Manil wagle, “Association Rules: Unsupervised Learning in Retail - Manil wagle - Medium,” Medium,
Mar. 25, 2020. https://medium.com/@manilwagle/association-rules-unsupervised-learning-in-retail69791aef99a (accessed Nov. 18, 2021).
[20]
B. Dickson, “What is semi-supervised machine learning?,” TechTalks, Jan. 04, 2021.
https://bdtechtalks.com/2021/01/04/semi-supervised-machine-learning/ (accessed Nov. 18, 2021).
[21]
Błażej Osiński, “What is reinforcement learning? The complete guide - deepsense.ai,” deepsense.ai,
Jul. 05, 2018. https://deepsense.ai/what-is-reinforcement-learning-the-complete-guide/ (accessed
Nov. 18, 2021).
[22]
S. Bhatt, “5 Things You Need to Know about Reinforcement Learning,” Kdnuggets.com, 2018.
https://www.kdnuggets.com/2018/03/5-things-reinforcement-learning.html.
[23]
“Introduction to Reinforcement Learning for Beginners,” Analytics Vidhya, Feb. 21, 2021.
https://www.analyticsvidhya.com/blog/2021/02/introduction-to-reinforcement-learning-forbeginners/ (accessed Nov. 18, 2021).
[24]
IBM Cloud Education, “What is Deep Learning?,” Ibm.com, May 2020.
https://www.ibm.com/cloud/learn/deeplearning#:~:text=Deep%20learning%20is%20a%20subset,from%20large%20amounts%20of%20data.
(accessed Nov. 18, 2021).
[25]
P. Tieleman, “Neural Networks & Deep Learning: de betekenis en voorbeelden,” Data Science
Partners | Experts in Python, Apr. 23, 2020. https://pythoncursus.nl/neural-networks-deep-learning/
(accessed Nov. 18, 2021).
[26]
Mate Labs, “Everything you need to know about Neural Networks,” Hackernoon.com, Nov. 2017.
https://hackernoon.com/everything-you-need-to-know-about-neural-networks-8988c3ee4491
(accessed Nov. 18, 2021).
[27]
“12 Types of Neural Networks Activation Functions: How to Choose?,” V7labs.com, 2021.
https://www.v7labs.com/blog/neural-networks-activation-functions (accessed Nov. 18, 2021).
Onderzoeksrapport Machine Learning
73/77
[28]
P. Kiely, “A Pirate’s Guide to Accuracy, Precision, Recall, and Other Scores,” FloydHub Blog, Oct. 31,
2019. https://blog.floydhub.com/a-pirates-guide-to-accuracy-precision-recall-and-other-scores/
(accessed Nov. 18, 2021).
[29]
Prabhu, “Understanding of Convolutional Neural Network (CNN) — Deep Learning,” Medium, Mar.
04, 2018. https://medium.com/@RaghavPrabhu/understanding-of-convolutional-neural-networkcnn-deep-learning-99760835f148 (accessed Nov. 18, 2021).
[30]
IBM Cloud Education, “What are Convolutional Neural Networks?,” Ibm.com, Oct. 20, 2020.
https://www.ibm.com/cloud/learn/convolutional-neural-networks (accessed Nov. 18, 2021).
[31]
Saama Technologies, “Different Kinds of Convolutional Filters,” Saama.com, Dec. 20, 2017.
https://www.saama.com/different-kinds-convolutional-filters/ (accessed Nov. 18, 2021).
[32]
freeCodeCamp.org, “An intuitive guide to Convolutional Neural Networks,” freeCodeCamp.org, Apr.
24, 2018. https://www.freecodecamp.org/news/an-intuitive-guide-to-convolutional-neuralnetworks-260c2de0a050/ (accessed Nov. 18, 2021).
[33]
Sumit Saha, “A Comprehensive Guide to Convolutional Neural Networks — the ELI5 way,” Medium,
Dec. 15, 2018. https://towardsdatascience.com/a-comprehensive-guide-to-convolutional-neuralnetworks-the-eli5-way-3bd2b1164a53 (accessed Nov. 18, 2021).
[34]
https://www.facebook.com/MachineLearningMastery, “How to Calculate Precision, Recall, and FMeasure for Imbalanced Classification,” Machine Learning Mastery, Jan. 02, 2020.
https://machinelearningmastery.com/precision-recall-and-f-measure-for-imbalanced-classification/
(accessed Nov. 18, 2021).
[35]
“Accuracy, Precision, Recall & F1 Score: Interpretation of Performance Measures - Exsilio Blog,”
Exsilio Blog, Sep. 09, 2016. https://blog.exsilio.com/all/accuracy-precision-recall-f1-scoreinterpretation-of-performance-measures/ (accessed Nov. 18, 2021).
[36]
“Accuracy, Precision, Recall & F1 Score: Interpretation of Performance Measures - Exsilio Blog,”
Exsilio Blog, Sep. 09, 2016. https://blog.exsilio.com/all/accuracy-precision-recall-f1-scoreinterpretation-of-performance-measures/ (accessed Nov. 18, 2021).
[37]
Koo Ping Shung, “Accuracy, Precision, Recall or F1? - Towards Data Science,” Medium, Mar. 15, 2018.
https://towardsdatascience.com/accuracy-precision-recall-or-f1-331fb37c5cb9 (accessed Nov. 18,
2021).
[38]
IBM Cloud Education, “What is Underfitting?,” Ibm.com, Mar. 23, 2021.
https://www.ibm.com/cloud/learn/underfitting (accessed Nov. 18, 2021).
[39]
“Machine Learning and AI in Manufacturing - The Complete Guide,” Seebo, Oct. 14, 2020.
https://www.seebo.com/machine-learning-ai-manufacturing/ (accessed Nov. 18, 2021).
[40]
“The Complete Guide to Predictive Maintenance with Machine Learning,” Technology partner for
innovative companies, 2020. https://spd.group/machine-learning/predictive-maintenance/
(accessed Nov. 18, 2021).
[41]
Onderzoeksrapport Machine Learning
74/77
“Machine Vision vs. Computer Vision — What’s the Difference?,” Appen, May 31, 2021.
https://appen.com/blog/computer-vision-vs-machine-vision/ (accessed Nov. 18, 2021).
[42]
“Machine Vision in 2021: In-Depth Guide,” AIMultiple, Jan. 14, 2020.
https://research.aimultiple.com/machine-vision/ (accessed Nov. 18, 2021).
[43]
D. Callahan, “Collaboration Between Humans, Robots Could Improve With Context-Aware System
From KTH,” Robotics 24/7, Apr. 11, 2021.
https://www.robotics247.com/article/collaboration_between_humans_robots_could_improve_with
_context_aware_system_from_kth/machine_learning (accessed Nov. 18, 2021).
[44]
Serhii Maksymenko, “AI in Manufacturing: Use Cases and Trends in 2021,” MobiDev, May 19, 2020.
https://mobidev.biz/blog/ai-machine-learning-in-manufacturing (accessed Nov. 18, 2021).
[45]
Beckhoff Automation GmbH & Co. KG, Hülshorstweg 20, 33415 Verl, Germany, “Machine Learning,”
Beckhoff Automation, 2021. https://www.beckhoff.com/nl-nl/products/automation/twincat-3machine-learning/ (accessed Nov. 18, 2021).
[46]
C. Middleton, “Google using DeepMind AI to reduce energy consumption by 30% | Internet of
Business,” Internet of Business, Aug. 20, 2018. https://internetofbusiness.com/google-usingdeepmind-ai-to-reduce-energy-consumption-by-30/ (accessed Nov. 18, 2021).
[47]
Fabrizio Frigeni, “Applying Machine Learning to Industrial Automation - Fabrizio Frigeni - Medium,”
Medium, Apr. 20, 2018. https://medium.com/@ffrige/applying-machine-learning-to-industrialautomation-d6b48c7457c0 (accessed Nov. 18, 2021).
[48]
G. Lawton, “How to find the best machine learning frameworks for you,” SearchEnterpriseAI, 2017.
https://searchenterpriseai.techtarget.com/feature/How-to-find-the-best-machine-learningframeworks-for-you (accessed Nov. 18, 2021).
[49]
Serdar Yegulalp, “What is TensorFlow? The machine learning library explained,” InfoWorld, Jun. 18,
2019. https://www.infoworld.com/article/3278008/what-is-tensorflow-the-machine-learninglibrary-explained.html (accessed Nov. 18, 2021).
[50]
“TensorFlow,” TensorFlow, 2021. https://www.tensorflow.org/ (accessed Nov. 18, 2021).
[51]
OpenSystems Media, “When to use Machine Learning or Deep Learning? - Embedded Computing
Design,” Embedded Computing Design, 2019.
https://www.embeddedcomputing.com/technology/ai-machine-learning/when-to-use-machinelearning-or-deep-learning (accessed Nov. 18, 2021).
[52]
“Intelligent automation redefined,” Siemens Nederland N.V., 2021.
https://new.siemens.com/nl/nl/products/automation/systems/industrial/io-systems/artificialintelligence.html (accessed Nov. 18, 2021).
[53]
“PyTorch,” Pytorch.org, 2021. https://pytorch.org/ (accessed Nov. 18, 2021).
[54]
“Machine Learning with MATLAB,” Mathworks.com, 2021.
https://nl.mathworks.com/solutions/machine-learning.html (accessed Nov. 18, 2021).
[55]
Onderzoeksrapport Machine Learning
75/77
“Azure Machine Learning - ML-as-a-service | Microsoft Azure,” Microsoft.com, 2021.
https://azure.microsoft.com/nl-nl/services/machine-learning/ (accessed Nov. 18, 2021).
[56]
“scikit-learn: machine learning in Python — scikit-learn 1.0.1 documentation,” Scikit-learn.org, 2021.
https://scikit-learn.org/stable/ (accessed Nov. 18, 2021).
[57]
Beckhoff Automation GmbH & Co. KG, “Manual TwinCAT 3 | Machine Learning and Neural Network
Inference Engine,” Beckhoff Automation GmbH & Co. KG. [Online]. Available:
https://www.beckhoff.com/nl-nl/products/automation/twincat/tfxxxx-twincat-3-functions/tf3xxxtc3-measurement/tf3800.html.
[58]
T. Kevan, “AI Rewrites the Possibilities of Digital Twin - Digital Engineering,” Digital Engineering, Jan.
31, 2020. https://www.digitalengineering247.com/article/ai-rewrites-the-possibilities-of-digitaltwin/ (accessed Nov. 18, 2021).
[59]
“What is a digital twin? | IBM,” Ibm.com, 2020. https://www.ibm.com/topics/what-is-a-digital-twin
(accessed Nov. 18, 2021).
[60]
R. Beck, “Digital Twins and AI: Transforming Industrial Operations,” Reliableplant.com, Jun. 06, 2020.
https://www.reliableplant.com/Read/31897/digital-twins-ai (accessed Nov. 18, 2021).
[61]
Hesly Bentvelsen, “Waarom IoT en AI een vlucht gaan nemen door de Digital Twin,” Tjip.com, 2019.
https://www.tjip.com/publicaties/waarom-iot-ai-digital-twin (accessed Nov. 18, 2021).
[62]
designnews.com, “How Do You Build a Better Machine? You Can Use Artificial Intelligence,”
designnews.com, Sep. 13, 2021. https://www.designnews.com/automation/how-do-you-buildbetter-machine-you-can-use-artificial-intelligence (accessed Nov. 18, 2021).
[63]
L. Aparaschivei, “What Is Generative Design? A Full Guide,” Vectornator.io, Aug. 17, 2021.
https://www.vectornator.io/blog/generative-design (accessed Nov. 18, 2021).
[64]
“How to Choose a Machine Learning Technique,” Serokell Software Development Company, 2020.
https://serokell.io/blog/how-to-choose-ml-technique (accessed Nov. 18, 2021).
[65]
https://www.facebook.com/kdnuggets, “An easy guide to choose the right Machine Learning
algorithm - KDnuggets,” KDnuggets, 2020. https://www.kdnuggets.com/2020/05/guide-chooseright-machine-learning-algorithm.html (accessed Nov. 18, 2021).
[66]
https://www.facebook.com/MachineLearningMastery, “Regression Metrics for Machine Learning,”
Machine Learning Mastery, Jan. 19, 2021. https://machinelearningmastery.com/regression-metricsfor-machine-learning/ (accessed Nov. 18, 2021).
[67]
T. Kevan, “Can AI Take Simulation to a New Level? - Digital Engineering,” Digital Engineering, Nov.
16, 2020. https://www.digitalengineering247.com/article/can-ai-take-simulation-to-a-new-level
(accessed Nov. 18, 2021).
[68]
akhilendra, “Evaluation Metrics for Regression models- MAE Vs MSE Vs RMSE vs RMSLE,”
Akhilendra.com, 2021. https://akhilendra.com/evaluation-metrics-regression-mae-mse-rmse-rmsle/
(accessed Nov. 18, 2021).
[69]
Onderzoeksrapport Machine Learning
76/77
Dipanjan (DJ) Sarkar, “A Comprehensive Hands-on Guide to Transfer Learning with Real-World
Applications in Deep Learning,” Medium, Nov. 14, 2018. https://towardsdatascience.com/acomprehensive-hands-on-guide-to-transfer-learning-with-real-world-applications-in-deep-learning212bf3b2f27a (accessed Nov. 18, 2021).
[70]
Ayush Pant, “Workflow of a Machine Learning project - Towards Data Science,” Medium, Jan. 11,
2019. https://towardsdatascience.com/workflow-of-a-machine-learning-project-ec1dba419b94
(accessed Nov. 18, 2021).
Onderzoeksrapport Machine Learning
77/77
Descargar