Machine learning is een vakgebied binnen AI dat zich bezighoudt met algoritmes en technieken waarmee computers kunnen leren. Afhankelijk van de taak komen er verschillende algoritmes aan te pas.

Er zijn veel verschillende taken die een computer goed kan uitvoeren. Zo is een computer goed in patronen herkennen in grote datasets. Dit kan vervolgens gebruikt worden om mogelijk frauduleuze financiële transacties op te sporen in een dataset bestaande uit miljoenen transacties, of om e-mails te markeren als spam of geen spam. Ook kan je een computer leren om spelletjes te spelen. Dit zijn verschillende taken die vragen om verschillende algoritmes.

Een eerste indeling van de algoritmes ziet er zo uit:

Afhankelijk van de taak die je met machine learning wilt bereiken, heb je verschillende soorten algoritmes: superviseer learning, unsupervised learning en reinforcement learning

Supervised versus unsupervised learning

Supervised learning, in het Nederlands gecontroleerd leren genoemd, is een tak van algoritmes waarbij de computer kan leren op basis van een dataset waarvan de gewenste uitvoer (labels) bekend is. Stel dat je een dataset hebt met vele e-mails, en van elke e-mail weet je of het spam is of niet. In dit geval kunnen supervised learning-technieken gebruikt worden om hiermee een spamfilter te maken: op basis van de vele voorbeelden kan de computer patronen zoeken om te leren wanneer een mail spam is. Dit leerproces wordt trainen genoemd. Het getrainde model kan vervolgens als spamfilter worden toegepast op nieuwe mails.

Kortom: als de gewenste uitvoer, in dit geval de labels spam of geen spam, bekend is, is het mogelijk om supervised learning toe te passen. Supervised learning omvat veel verschillende algoritmes, zoals beslisbomen, random forests of neurale netwerken. Het wordt bijvoorbeeld gebruikt in spraakherkenningssoftware (zoals Siri) of beeldherkenningssoftware voor het herkennen van mensen of huisdieren in foto’s.

Stel dat je wel de dataset hebt bestaande uit heel veel e-mails, maar niet weet van elke e-mail of het spam is of niet. Dan kan de dataset niet zomaar gebruikt worden om een spamfilter te maken – de uitvoer mist nu immers. Wel zou je nu kunnen onderzoeken uit wat voor soort mails de dataset bestaat. Zijn er groepen te ontdekken van mails die op elkaar lijken, zoals reclamemails of persoonlijke correspondentie? Vormen de spam-mails hun eigen groep? Hiervoor kunnen clusteringstechnieken gebruikt worden. Dat is een voorbeeld van unsupervised learning (ongecontroleerd leren): het algoritme zoekt zelf structuur in de gegeven invoer. Vervolgens moet je nog wel zelf betekenis geven aan de gevonden structuur: als een clusteringalgoritme duidelijke groepen kan onderscheiden, is het namelijk niet duidelijk wat de indeling in groepen betekent, alleen dat er groepen te onderscheiden zijn.

Reinforcement learning

Als je je computer wilt laten leren een videogame te spelen, zoals het klassieke Pong (tafeltennis op de computer), is weer een ander type algoritmes nodig. Het is in dit geval de bedoeling dat de computer reageert op zijn omgeving: waar gaat de bal naartoe, en waar moet de computer met zijn batje naartoe om de bal terug te spelen? Hier komt reinforcement learning (versterkend leren) van pas.

De computer kan hierbij kiezen uit bepaalde acties, en krijgt na elke actie een beloning. Die beloning kan ook negatief zijn, om slechte acties af te straffen. Het is de taak van de computer om de beloning te maximaliseren. Door het spelen van vele potjes en te leren van de beloningen die hij na een potje krijgt, kan een zogeheten agent leren hoe hij een goede Pong-speler wordt. Ook hier zijn er weer verschillende algoritmes om van de beloning te leren, zoals Q-learning of SARSA.

Niet alleen Pong, maar ook vele klassiekers als Asteroids, Packman en Donkey Kong staan klaar om in Python gespeeld te worden door een zelfgemaakte reinforcement learning-agent.

Andere soorten machine learning-algoritmes

Er bestaan naast deze nog andere types machine learning. Zo is er semisupervised learning. Dit zit tussen supervised en unsupervised in, en beschrijft technieken die ermee om kunnen gaan als de uitvoer maar voor een deel van de dataset beschikbaar is.

Tegenwoordig gaat het in het nieuws vaak over AI. Vaak worden dan tools zoals ChatGPT besproken, en wordt er gesproken van generative AI. Dit soort tools worden generatief genoemd, omdat ze zelf teksten of beelden genereren. Over het algemeen worden unsupervised of semi-supervised learning technieken gebruikt om deze modellen te trainen.

De soorten algoritmes in het kort

  • Supervised learning: de computer leert een voorspelling te doen op basis van een dataset waarvan de verwachte uitvoer bekend is.
  • Unsupervised learning: de computer zoekt zelf structuur in een dataset (bijvoorbeeld om verschillende groepen te identificeren of de dimensie van de dataset te verkleinen).
  • Reinforcement learning: de computer leert de juiste acties te kiezen op basis van interactie met zijn omgeving.

Data, data, data

Zoals we hebben gezien, bepaalt de taak die je de computer wilt laten leren welk type algoritmes gebruikt kunnen worden. Deze algoritmes bepalen ook wat voor data er nodig is. Om bijvoorbeeld een supervised learning-algoritme te trainen heb je een dataset nodig waarvan de verwachte uitvoer bekend is. Het is niet altijd gemakkelijk om aan zo’n dataset te komen. Het verkrijgen van deze labels zal soms handmatig gedaan moeten worden, en kan een behoorlijk tijdrovend klusje zijn. In andere situaties zijn de labels niet te achterhalen, dan is het niet mogelijk om supervised learning toe te passen. Zo bepaalt de beschikbare data dus uiteindelijk ook weer wat er door de computer geleerd kan worden.

Benieuwd geworden naar wat je met machine learning allemaal kan? Hier vind je tips om te beginnen met machine learning!