menu sluiten
Contact

Antwerpen
Veldkant 33B, 2550 Kontich
België +32 (0)3 444 11 08

Breda
Rithmeesterpark 50-A1, 4838GZ Breda
Nederland +32 (0)3 444 11 08

info@jstack.eu

20 March 2020

AI, machine learning en deep learning: wat is nu het verschil?

In een eerdere blogpost hebben we besproken hoe Data Science zich verhoudt tot Artificial Intelligence, Machine Learning en Deep Learning. In deze post gaan we dieper in op wat deze concepten inhouden en geven we een aantal voorbeelden van praktische toepassingen. Ter verduidelijking van sommige onderdelen hebben we een aantal links naar video’s toegevoegd, waarin deze onderdelen goed uitgelegd worden.

Artificial Intelligence

Er bestaat geen eenduidige definitie van Artificial Intelligence (AI) en vaak hangt deze dan ook af van de context waarin deze gebruikt wordt. Van origine wordt AI gezien als subdomein van computer science en beschrijft het processen waarin computers menselijke intelligentie kunnen imiteren. De English Oxford Living Dictionary defineert het als: “The theory and development of computer systems able to perform tasks normally requiring human intelligence, such as visual perception, speech recognition, decision-making, and translation between languages.”

Deze definitie in het achterhoofd houdend, is AI logischerwijs een breed begrip. In de praktijk wordt AI vooral ingezet om betere producten of services te creëren. Daarmee wordt de definitie van AI in de huidige tijd voornamelijk bepaald door de set aan problemen die het kan oplossen en de voordelen die dit kan hebben voor de samenleving. Het primaire doel van een AI systeem is dan ook niet langer het redeneren als een mens, maar het verbeteren van de wereld om ons heen. Dit zien we terug in tal van toepassingen die niet meer weg te denken zijn in het dagelijks leven, zoals het aanraden van een volgende serie of film op Netflix of het doen van een online aankoop.

Binnen AI bestaan een aantal subdomeinen, waarvan Machine Learning en Deep Learning de meest bekende zijn. Deze worden hieronder verder toegelicht. Hier willen we kort nog enkele van de vele andere subdomeinen toelichten zodat het onderscheid tussen deze technieken en Machine Learning later duidelijker wordt.

Planning

AI planning modellen, zoals STRIPS, zijn in staat om de optimale opeenvolging van acties te bepalen om vanuit een begintoestand de gewenste uitkomst te bereiken. Om een dergelijk model te kunnen maken moet de set van mogelijke acties met bijhorende pre- en postcondities expliciet geprogrammeerd worden.

Een concreet voorbeeld van zo’n actie is bijvoorbeeld het “koken van water”. De precondities zijn “de aanwezigheid van een hittebron” en “water”. De postcondities zijn dan bijvoorbeeld “de aanwezigheid van een hittebron” en “kokend water”. Een planning model zou deze actie kunnen toevoegen in een lange ketting van acties die van een hoop ingrediënten een afgewerkt gerecht maakt.

Daarnaast zou een planning model bijvoorbeeld ingezet kunnen worden om de optimale productielijn te bepalen. De verschillende processen kunnen worden gemodelleerd als acties waarbij de nodige grondstoffen en halffabrikaten gezien worden als precondities en de resulterende fabrikaten en bijproducten als postcondities.

Constraint programming

Een constraint solver is een stuk software dat in staat is om toestanden te genereren die aan een hele hoop voorwaarden moeten voldoen. Deze voorwaarden moeten expliciet geprogrammeerd worden.

Een typisch voorbeeld van een constraint solver is een applicatie die correcte sudoku borden kan genereren, eventueel vertrekkend van een bord dat deels is ingevuld. In dit voorbeeld zouden de spelregels van sudoku, bijvoorbeeld dat een getal niet 2 keer mag voorkomen in een rij, de voorwaarden vormen.

Een praktischere toepassing van het gebruik van constraint solvers is het inplannen van werknemers met flexibele werkuren. De regels van zo’n systeem zouden de beschikbaarheden en voorkeuren van de werknemers kunnen zijn en de minimaal vereiste capaciteit per tijdslot. De solver zou dan in staat zijn om een werknemer planning te genereren waarbij alle capaciteit is ingevuld, geen enkele werknemer is ingepland op een moment waarop hij niet beschikbaar is en zoveel mogelijk werknemers zijn ingepland op hun tijdslots naar voorkeur.

Verder zijn er nog tal van technieken en toepassingen te noemen, zoals het mini-max algoritme dat veel gebruikt wordt in decision-making en game theory. Het zoekt de optimale zet voor een speler, ervan uitgaande dat de tegenstander ook optimaal speelt. Of path-finding algoritmes waarvan het doel is om de kortste of optimaalste route tussen twee punten te vinden. Of het gebruik van een greenscreen bij film- en televisieopnames, waarmee de achtergrond naar wens gemaakt kan worden. Hiervoor wordt gebruikt gemaakt van klassieke computer vision.

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

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 

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

Reinforced 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.

Deep Learning

Deep artificial neural networks

Bron: ‘Neural Networks and Deep Learning’ door Michael Nielsen.

Deep Learning (DL) modellen zijn een subset van ML modellen. Typisch spreekt men hier over Deep Artificial Neural networks. Hetgeen deze modellen zo krachtig maakt en ze onderscheidt van andere ML modellen is dat ze in staat zijn om zelf te leren hoe ze de data moeten interpreteren en welke interpretaties van de data er nu het belangrijkst zijn bij het maken van een beslissing. De data die je aan een deep learning model als input geeft hoeft niet gestructureerd of formeel te zijn. De input van zo’n model kan bijvoorbeeld gewoon een foto van een persoon zijn in plaats van een formulier waarin de persoon beschreven staat (lengte, geslacht, haarkleur, etc.) of het kan een audio-opname van een gesprek zijn in plaats van een transcriptie waarop al voorverwerking is uitgevoerd. Goed ontworpen en getrainde deep learning modellen kunnen heel krachtig worden en in staat zijn om taken uit te voeren waarvan men voorheen dacht dat ze menselijke intuïtie vereisen.

Een bekend voorbeeld van zo’n indrukwekkend deep learning model is AlphaGo, een deep reinforcement learning AI model dat in 2016 één van ‘s werelds beste Go spelers met 4-1 versloeg in een wedstrijd. In de wedstrijd vertoonde AlphaGo een aantal aparte en unieke zetten waarvan professionele Go spelers op het eerste gezicht dachten dat het fouten waren, maar deze achteraf toegeschreven aan een bewuste strategie. Aangezien Go wordt gezien als één van de moeilijkste competitieve bordspellen, waar heel veel inzicht en gevoel voor nodig is, kwam deze overwinning voor velen als een verrassing en werd het gezien als een echte doorbraak voor AI.

Deep learning modellen zijn tegenwoordig overal terug te vinden op plaatsen waar men voorheen menselijke experts en veel tijd nodig had.

  • Deep image segmentation modellen die al worden ingezet in sommige ziekenhuizen kunnen helpen met het aligneren van een tumor op een scan, waardoor een dokter hier minder tijd aan verliest.
  • Deep machine translation modellen kunnen in enkele seconden teksten vertalen op een manier waarop de echte betekenis van de brontekst bewaard blijft, in plaats van gewoon woord per woord te vertalen.
  • Fraude detectie modellen gebaseerd op deep learning kunnen uit een enorme stroom van transacties detecteren welke transacties abnormaal zijn in de geschiedenis van een gebruiker en deze markeren als mogelijke creditcard fraude.

Het trainen van een deep learning model vraagt veel rekenkracht, computergeheugen en, indien het geen reinforcement learning model is, ook erg veel data. De constant groeiende rekenkracht van hedendaagse computerchips en grafische kaarten, de afname in prijs van snel computergeheugen met hoge capaciteit en de opkomst van cloud computing zorgen de laatste jaren dan ook voor een enorme stijging in populariteit van deep learning modellen. Tegenwoordig is deep learning voor vele mensen bijna een synoniem van AI geworden. Toch is het belangrijk om te beseffen dat niet ieder probleem met een deep learning model aangepakt moet worden en dat er vaak veel simpelere AI technieken zijn die evengoed gebruikt kunnen worden en vaak minder rekenkracht of data vereisen.

Een heldere uitleg over deep learning kan je in deze video terugvinden.

Interessant? Deel deze case met een vriend(in) of collega!