Machine Learning
Machine Learning (ML) is een subset van AI. ML modellen onderscheiden zich van andere AI soorten doordat ze in staat zijn om zelfstandig te leren problemen oplossen. Dit leerproces, wat training heet, is meestal een iteratief proces waarin het model taken uitvoert waarvoor het een score krijgt. Het model leert daarna de taak beter uit te voeren door zichzelf te corrigeren aan de hand van de score. De algoritmes die het zo’n model mogelijk maken om te leren van zo’n score zijn vaak erg wiskundig en statistisch onderbouwd.
Machine learning is ook op verschillende manieren op te delen in sets van technieken. Het belangrijkste onderscheid tussen ML modellen wordt gemaakt in de manier waarop ze getraind worden. De belangrijkste groepen, die we hieronder wat zullen toelichten, zijn supervised, semi-supervised, unsupervised, transfer- en reinforcement learning.
Supervised Learning

Bron: http://bigdata-madesimple.com
Een supervised machine learning model vergaart kennis over een onderwerp door te leren uit een dataset van input-output voorbeelden, wat gelabelde data wordt genoemd. Het model probeert tijdens de training te voorspellen wat de output moet zijn voor een gegeven input, waarna deze voorspelling wordt vergeleken met de output die verwacht werd. De uitkomst van deze vergelijking gebruikt het model om zichzelf vervolgens bij te sturen, zodat het de volgende keer een betere voorspelling kan maken. De kracht van een supervised machine learning model hangt hierdoor sterk af van de kwaliteit van de dataset. Wanneer de dataset veel verkeerde labels bevat of de voorbeelden in de dataset geen goede vertegenwoordiging zijn van de input waarmee het model in aanraking zal komen, zal het model mogelijks veel fouten maken in productie.
Een aantal veelgebruikte modellen voor supervised learning zijn probabilistische modellen, decision trees, random forests, neurale netwerken en support vector machines.
Een heldere uitleg over supervised learning kan je in deze video terugvinden.
Unsupervised Learning

Bron: http://bigdata-madesimple.com
In sommige gevallen willen we AI inzetten om nuttige inzichten te vergaren uit een hoop data, zonder dat we hiervoor een gelabelde dataset kunnen voorzien. Machine learning modellen zijn namelijk in staat om betekenisvolle verbanden te zien in data, die wij als mens soms niet kunnen vatten of opmerken. Wanneer we een ML model bouwen dat zelfstandig inzichten kan vergaren uit ongelabelde data, spreken we over unsupervised learning. De populairste vormen van unsupervised learning zijn clustering en auto-encoding.
Clustering algoritmes kunnen de voorbeelden in een dataset op een betekenisvolle manier groeperen zonder dat een mens moet aangeven wat voor groepen er aanwezig zijn in de data. Wat de effectieve betekenis van zo’n gevonden groep dan is, wordt vaak aan een data specialist overgelaten om te interpreteren. In een dataset waar de top 10 lievelingsfilms van duizenden gebruikers in zit zou een clusteringalgoritme bijvoorbeeld groepen van mensen kunnen detecteren met voorkeur voor eenzelfde genre, zonder dat de genre van de films mee in de dataset is opgenomen.
Auto-encoders worden dan weer ingezet om de meest essentiële informatie uit data te extraheren. Deze informatie is heel vaak niet voor interpretatie vatbaar voor eens mens, maar kan wel door een computer gebruikt worden om data te comprimeren tot een veel kleiner formaat.
Een heldere uitleg over unsupervised learning kan je in deze video terugvinden.
Semi-supervised Learning
Naast supervised en unsupervised learning, bestaat er ook een combinatie van deze twee vormen. Deze vorm wordt semi-supervised learning genoemd en maakt gebruikt van zowel gelabelde en ongelabelde data. Vaak is er namelijk voldoende data beschikbaar, maar is slechts een fractie voorzien van labels. Door middel van de kleine set labels kan er richting gegeven worden aan hoe de categorieën van het clustering algoritme opgebouwd worden. Het doel hierbij is dat het model in staat is om de ongelabelde data correct te interpreteren aan de hand van de informatie van de gelabelde data.
Een voorbeeld van het gebruik van dergelijke modellen is het classificeren van internetpagina’s. Er zijn oneindig veel pagina’s op het web, maar het is onmogelijk om deze allemaal te voorzien van een categorielabel (bijvoorbeeld wetenschappelijk, forum, nieuws, etc.). Het gebruik van semi-supervised learning is hiervoor geschikt, omdat middels een kleine set van gelabelde pagina’s ongelabelde pagina’s goed geclassificeerd kunnen worden.
Een heldere uitleg over semi-supervised learning kan je in deze video terugvinden.
Transfer Learning
Een andere methode die gebruikt kan worden als er weinig gelabelde data beschikbaar is, is transfer learning. Dit gaat uit van het idee dat kennis van een taak gebruikt kan worden in een gerelateerde taak. In een eerdere blog hebben we uitgelegd hoe dit precies in zijn werk gaat.
Reinforcement Learning

Bron: http://bigdata-madesimple.com
Reinforcement learning modellen onderscheiden zich van andere machine learning modellen omdat ze eigenlijk zelf instaan voor de verzameling van hun trainingsdata. Tijdens het trainen beschikt het model niet over een dataset van input-output voorbeelden, maar wel over een omgeving waarin het zelf kan gaan experimenteren. Het is soms bijvoorbeeld veel minder werk om een simulatie te creëren van een situatie waarin we willen dat de AI correct handelt dan het is om zelf een dataset te verzamelen met voorbeelden van goede handelingen. In deze simulatieomgeving traint een AI agent vervolgens honderdduizenden keren, eventueel tegen een andere agent, om zo een optimale strategie te ontwikkelen. In sommige gevallen is dit een vorm van het eerder genoemde mini-max algoritme.
Een typisch voorbeeld van reinforcement learning is wanneer we een robot (of een zelfrijdende wagen) willen leren om zelfstandig te navigeren in een omgeving zonder bepaalde regels te overtreden. Het zou veel werk vereisen om een dataset te maken met alle mogelijke sensor metingen van de robot als input en de optimale reactie als output. Het is een heel stuk makkelijker om een simulatie van een wegennetwerk te bouwen die berekent wat de sensor input van de robot is en die de robot een slechte score geeft op het moment dat deze een beslissing neemt die leidt tot een botsing. De robot kan in deze simulatie dan zelfstandig miljoenen pogingen doen om correct te navigeren en de feedback van de simulatie gebruiken om zichzelf te corrigeren.
Een heldere uitleg over semi-supervised learning kan je in deze video terugvinden.
Een ander leuk voorbeeld van reinforcement learning is het deep-q-learning model in deze video, dat heeft geleerd om Super Mario spelletjes te spelen.