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 jesper.van.gils@gain.nl Bedrijfsgegevens: Naam bedrijf: Adres: Telefoonnummer: E-mailadres: Gain Projects b.v. Kleine Landtong 29, 4201 HL Gorinchem +31 183 820 300 info@gain.nl Bedrijfsbegeleider: Naam: Functie: Telefoonnummer: E-mailadres: Marco Conrads Technical manager bij Gain Projects +31 6 34 82 53 74 marco.conrads@gain.nl Onderwijsinstelling: Naam instelling: Adres: Telefoonnummer: E-mailadres: Avans Hogeschool Breda Lovensdijkstraat 61-63, 4818 AJ Breda +31 88 525 7500 studentinfo@avans.nl Stagecoördinator: Naam: Telefoonnummer: E-mailadres: Peter Klijn +31 88 525 8549 plaj.klijn@avans.nl Docentbegeleider: Naam: Telefoonnummer: E-mailadres: Onno Eerenberg +31 88 525 9066 o.eerenberg@avans.nl 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