Artificial Intelligence: het nieuwe elektriciteit

Zoals elektriciteit 100 jaar geleden een revolutie teweegbracht in levens, verandert Artificial Intelligence (AI) ons leven momenteel volledig. Google, Netflix, gezichtsdetectie, voorspellende zoekopdrachten, aanbevelingen, kaarten, zelfrijdende auto’s, om er maar een paar te noemen, gebruiken allemaal een of andere vorm van AI om ons leven te verbeteren. Aan de hand van voorbeelden licht ik toe waarom ik AI zie als het nieuwe elektriciteit en hoe wij als ilionx hiermee kansen zien.

Artificial Intelligence als basis voor verandering

Terug naar AI. Dat is het best samen te vatten als een overkoepelende term voor systemen of machines die de menselijke intelligentie nabootsen. Andrew Ng, de oprichter van Coursera en oud directeur van Google Brain, gaat een stap verder en stelt:

“AI is the new electricity”

Elektriciteit heeft het mogelijk gemaakt om op grote schaal nieuwe toepassingen voor de industrie te ontwikkelen, Andrew Ng stelt dat AI opnieuw zorgt voor een baanbrekende verandering binnen industriële toepassingen.

Machine Learning een vorm van AI

De impact van Artificial Intelligence trok altijd mijn aandacht. Maar om nou te stellen dat het ‘the new electricity’ is. Daarvoor miste ik tot nu toe de juiste verdieping. Totdat ik recent stuitte op de podcast ‘Machine Learning Guide’. In een van de afleveringen werd aangeraden om de Coursera cursus Machine Learning te volgen.

Maar wat houdt Machine Learning dan precies in en hoe verhoudt zich dat tot AI? Kort gezegd: Machine Learning (ML) is een vorm van AI. Het is gericht op het bouwen van systemen die van data kunnen leren zodat ze nieuwe data, wanneer ze daarmee geconfronteerd worden, op een juiste manier verwerken. Er bestaat een groot aantal Machine Learning methoden, maar het belangrijkste onderscheid is mijn inziens te maken in het gebruik van supervised of unsupervised learning. In dit artikel zet ik uiteen wat de aspecten van supervised learning zijn, aangezien dit de meest intuïtieve vorm van ML is. Hopelijk leidt dit tot inspiratie voor toepassingen binnen je eigen business.

Supervised Learning

Zowel supervised als unsupervised learning leren door voorbeelden van data één voor één aangeleverd te krijgen. In het geval van leren met toezicht (supervised) krijgt de methode naast het voorbeeld van de data ook de concrete waarde die aan die data is toegekend aangeleverd. Denk dan aan een getal of categorie. Dit wordt een label genoemd.

Bij leren zonder toezicht (unsupervised) is er daarentegen geen sprake van gelabelde data zodat het mogelijk is om automatisch de natuurlijke structuur van een dataset af te leiden. Bijvoorbeeld bij het automatisch rubriceren van artikelen in verschillende categorieën.

Supervised Learning voorbeelden

Grof gezegd zijn er twee soorten taken die je met supervised learning uit kunt voeren namelijk classificatie en regressie. Bij classificatie probeer je een categorie als label aan data toe te kennen terwijl je bij regressie een waarde uit een continue schaal kiest. Hieronder stip ik even kort een concreet voorbeeld aan van beide taken.

Huizenmarkt

We proberen aan de hand van gegevens over de grootte van huizen op de onroerendgoedmarkt, de prijs van huizen te voorspellen. De prijs als functie van de grootte is een continue output, dus dit is een regressie probleem.

We zouden van dit voorbeeld ook een classificatieprobleem kunnen maken door de output te richten op de vraag of “het huis voor meer of minder dan de vraagprijs kan worden verkocht”. Hier worden de huizen geclassificeerd op basis van de prijs in twee discrete categorieën.

Lineaire regressie

Na deze korte introductie over het type problemen dat machine learning kan oplossen, richt ik de pijlen op het supervised learning vraagstuk. Hierbij zal ik lineaire regressie als uitgangspunt nemen, omdat dit de meest elementaire vorm van supervised learning is. De volgende stap is om deze formeel te beschrijven aan de hand van een gegeven trainingsset: een functie h: X → Y, zodat de functie h(x) een “goede” voorspeller is voor de overeenkomstige waarde van y. Om historische redenen wordt deze functie h(x) een hypothese genoemd.

De nauwkeurigheid van deze hypothese meten we met behulp van een kostenfunctie. Deze functie berekent het gemiddelde van alle resultaten van de hypothese functie met de invoer van x en de actuele uitkomsten van y. Bekijk als voorbeeld de onderstaande afbeelding.

We proberen een rechte lijn (hΘ (x)) te maken die door deze verspreide punten gaat. Ons doel is om de best mogelijke lijn tussen deze punten te berekenen. Best mogelijk wil in dit geval zeggen: een lijn die afstand tot de werkelijke uitkomsten van y (de zwarte stippen) minimaliseert. Wanneer de uitkomst van de kostenfunctie nul is, dan liggen alle y uitkomsten precies op de lijn en is deze een perfecte voorspeller voor de trainingsset.

Zo, nu hebben we een hypothese functie en een manier om te meten hoe nauwkeurig deze is voor onze data. Dat is pas het begin. We gaan verder met een methode om parameters te bepalen van deze hypothese functie aan de hand van de uitkomsten van de kostenfunctie. Hiervoor komt de methode gradient descent goed van pas.

Gradient descent

Tijd voor de volgende stap van het eerder genoemde voorbeeld. We willen graag het minimum bepalen van de kostenfunctie. Dit kunnen we bereiken met de Gradient Descent methode. Met deze methode veranderen een aantal parameters net zo lang totdat we het minimum hebben bereikt. De onderstaande grafiek is hier een voorbeeld van.

Met het Gradient Descent algoritme kunnen we ons model trainen om tot een optimale oplossing te komen.

Kunstmatige Neurale Netwerken

Kunstmatige neurale netwerken proberen het biologische neurale netwerk in het menselijk brein na te bootsen. De natuur heeft miljoenen innovaties geïnspireerd – van vogels die vliegtuigen inspireren, klitten die klittenband inspireren, tot walvissen die windturbines inspireren om sneller te gaan. Op dezelfde manier heeft het menselijk brein de creatie van neurale netwerken geïnspireerd.

Een typisch brein bevat bijna 100 miljard minuscule cellen die neuronen worden genoemd. Elk neuron bestaat uit een cellichaam met een aantal verbindingen die eruit komen: talrijke dendrieten (de input van de cel – die informatie naar het cellichaam transporteert) en een enkel axon (de output van de cel – die informatie wegvoert).

Toch zijn kunstmatige neurale netwerken behoorlijk effectief als je bedenkt hoe ze in veel toepassingen worden gebruikt en in de loop van de tijd slimmer zijn geworden.

Wanneer we een afbeelding van bijvoorbeeld een kat aanbieden, dan zal het neurale netwerk gaan voorspellen wat er waargenomen wordt . In het begin zullen alle connecties rondom de verschillende nodes en zal bijvoorbeeld de output er als volgt uitzien: 10% kat 20% gitaar etc. Maar tijdens het trainen van het netwerk zullen deze percentages langzaam veranderen richting 90% kat, 1% gitaar. Met o.a. het eerder genoemde Gradient Descent worden alle connecties aangepast. Door het aanbieden van een groot aantal afbeeldingen tijdens de trainingsfase wordt de uitkomst steeds nauwkeuriger. Het neuraal netwerk is uiteindelijk in staat om een afbeelding van een kat te herkennen.

Nu denk je misschien dat het concept van neurale netwerken vrij nieuw is, maar dat is toch niet zo. Zoals je hieronder kan zien was in 1958 het eerste kunstmatige neurale netwerk al ontwikkeld, het perceptron. En in 1992 werden al de eerste stappen gemaakt met autonoom rijden met behulp van een neuraal netwerk.

Mede door de vooruitgang van hardware en populaire projecten zoals AlphaGo, computer versloeg een professionele Go speler, zijn neurale netwerken populair geworden.

ilionx, jouw partner voor AI en Machine Learning

Dit was slechts het topje van de ijsberg. Zelf ben ik erg enthousiast geworden over Machine Learning omdat ik nu inzicht heb ik gekregen hoe autonoom rijden van een Tesla werkt, hoe tekst- en spraakherkenning werkt. Maar ook hoe bijvoorbeeld Siri van Apple werkt.

Daarnaast krijgen we binnen ilionx ook steeds meer te maken met Machine Learning. Op dit moment zijn we bezig met Smart Industries en een voorbeeld is gewasherkenning in de agrarische sector.

De laatste jaren ben ik altijd werkzaam geweest als frontend ontwikkelaar, maar ik wil me in de toekomst toch ook graag stappen zetten richten Machine Learning Engineer en meewerken in uitdagende projecten van ilionx. Ben je net als ik enthousiast geworden over Machine Learning? Graag neem ik je mee in mijn artikelen over mijn volgende stappen. De eerstvolgende stap is al bekend : Deep Learning Specialization.