Voorspellen met Machine Learning
Onder Machine Learning vallen alle technieken die het mogelijk maken dat een computer een bepaalde taak goed kan doen, zonder dat daarvoor expliciet de opdracht is geprogrammeerd. Doel is om verbanden te leren zien, zodat analyses en voorspellingen kunnen worden gedaan, waarop gewogen besluiten kunnen worden genomen. Dit automatisch leren of Machine Learning, ML of Machinaal Leren, valt als (interdisciplinair) onderzoeksveld binnen Kunstmatige Intelligentie (Artificial Intelligence, kortweg: AI). Door de ontwikkeling van algoritmes en technieken waarmee computers kunnen leren is het mogelijk dat computers zelfstandig taken, waaronder analyses en voorspellingen, uitvoeren. Hierdoor kan veel sneller en goedkoper worden gewerkt.
Wat is Machine Learning?
In het vakgebied Machine Learning (ML) staat het onderzoek naar de formulering van algoritmes centraal. Een
algoritme is een bepaalde reeks van instructies die vanaf een vast bepaald startpunt naar een gegeven doel leidt. Het gaat dus om een beschrijving van een bepaalde beginsituatie met instructies over hoe daarmee moet worden omgegaan, met daarin opgesloten de oplossing voor een bepaald probleem. Het kan dan gaan om het verklaren van het verleden of het voorspellen van de toekomst. Wil je de toekomst kunnen voorspellen zul je eerst inzicht moeten krijgen in het verleden.
Een recept voor witloftaart is ook een soort algoritme: je hebt je beginsituatie en je weet wat het eindresultaat moet zijn. Vervolgens leg je in stapjes, in de juiste volgorde, uit hoe je bij het eindproduct komt. Een formeel algoritme gaat meestal over informatie en betreft een rekenkundig proces zodat de computer exact weet welke stappen er moeten gebeuren en in welke volgorde deze moeten plaatsvinden om tot een gegeven eindresultaat te komen. Hierin moet nauwkeurig worden vastgelegd wat de mogelijke invoerdata kunnen zijn en hoe hiermee om te gaan. Dit gebeurt met een computerprogramma waarin je het algoritme in een bepaalde computertaal uitvoert. Dit is de broncode.
Programmeren
Er zijn verschillende manieren om tegen een situatie aan te kijken en het mogelijke eindresultaat te bereiken. Dit vertaalt zich in verschillende manieren van programmeren. Zo heb je procedureel programmeren (ook imperatief programmeren genoemd) waarin stap voor stap wordt uiteengezet wat het programma achtereenvolgens moet doen. Maar je hebt ook object georiënteerd programmeren waarin je programmeert door objecten in te delen in klassen en hier eigenschappen aan te hangen (attributen) en functies (acties, berekeningen, bewerkingen, enzovoorts). Programmeertalen voor data-analyse zijn bijvoorbeeld R, Python en Scala.
Algoritmes
Een algoritme moet kunnen leren van en analyses en voorspellingen kunnen doen op basis van inkomende data. Door deze te analyseren kan de computer zijn oorspronkelijke opdracht steeds verder verfijnen, waarbij het doel hetzelfde blijft, maar de methode om dit te bereiken wordt geoptimaliseerd onder invloed van de eigen (statistische) data-analyse. De opdracht die je het algoritme meegeeft is dus heel belangrijk.
De opkomst van Machine Learning
Machine Learning is niet nieuw, maar wel belangrijk in opkomst in de 21e eeuw. Door big data, de overvloed aan gegevens, de behoefte aan uitbreiding van de data-analysemogelijkheden en voorspelmodellen door de behoefte aan business intelligence, en de beschikbaarheid van de benodigde rekenkracht.
De beperkingen van Machine Learning
De analyses en voorspelmodellen geven een correlationeel verband, maar niet per se een causaal verband. Je weet dus dat er samenhang is, maar niet hoe die samenhang er precies uitziet. Veel voorspelmodellen zijn gebaseerd op historische data en het verleden is niet altijd een garantie voor de toekomst.
In veel gevallen verdeel je je data in een (willekeurig) deel trainingsdata en een groter deel testdata. Zo train je je voorspelmodel.
Je berekent altijd eerst de beschrijvende statistieken van je data. Vaak ga je hier later mee aan de slag in je algoritme.
De algoritmes zijn door mensen gemaakt en kunnen dus bias hebben (een bepaalde vooringenomenheid) of uitgaan van andere (onbewust of bewust) verkeerde principes. De keuzes die de data-scientist of programmeur maakt tijdens het bouwen van het algoritme zijn rechtstreeks van invloed op het resultaat en dus goed om mee te nemen.
De resultaten van de voorspelmodellen moeten op een goede manier geïnterpreteerd worden. De analyse van het resultaat is daarmee een erg belangrijke factor om tot een goed voorspelmodel te kunnen komen. Als je ziet dat uit data blijkt dat mensen met kinderen minder snel een baan vinden dan mensen zonder kinderen zou je kunnen denken dat dit ligt aan de ouders zelf of aan de kinderen op zich, maar hoogstwaarschijnlijk zit daar bijvoorbeeld de noodzaak voor goede kinderopvang of flexibele werktijden achter. Weet wat je meet (niet - alleen - meet wat je weet).
De methoden van Machine Learning
Er kunnen twee methoden van Machine Learning worden onderscheiden, naast een derde restcategorie:
- Supervised learning
- Unsupervised learning
- Andere types of Semi-supervised learning
Binnen deze categorieën vallen onder meer de volgende methoden:
1. Supervised learning
2. Unsupervised learning
- Clustering
- Anomalie detectie
- Frequent subsets
- Association rules
3. Andere types
- Reinforcement Learning
- Recommender Systems
- Deep Learning
Supervised learning
Via Supervised Learning ofwel gecontroleerd leren leer je een computer om data te interpreteren door zowel de inputdata als de outputdata te leveren. De machine gaat dus zelf aan de slag om de data te categoriseren op basis van de informatie die je aanlevert. Je geeft bijvoorbeeld de criteria op waaraan een bepaalde bloem moet voldoen om tot een gegeven soort te worden gerekend (input) en geeft aan wat de output moet zijn, wat betreft label, klasse of doel. Denk aan de grootte van de bloemblaadjes, kleur van de bloemblaadjes, lengte van de stengel, enzovoorts. Of je laat duizenden voorbeelden van gelukkige gezichten zien, zodat de computer kan leren hoe dit eruit ziet. De computer analyseert de data en komt met een resultaat; een voorspelmodel. Wat is de kans dat een bloem tot een bepaalde soort behoort? Hoe groot is de kans dat deze mens 'gelukkig' is? Zo kunnen de onderliggende, voorspellende modellen worden gevonden. Maar hiervoor is het altijd noodzakelijk dat de data wordt gelabeld volgens het gewenste resultaat. En dat moet je dan natuurlijk wel weten.
Classificatie
Verschillende datapunten worden onderverdeeld in klassen. Dit is het label dat je meegeeft. Het model voorspelt tot welke klasse een nieuw datapunt moet behoren. Dit is een handige methode wanneer er een snelle beslissing op basis van de data nodig is.
Voorbeelden van algoritmes hier zijn:
- logistische regressie: het verband tussen een dichotome afhankelijke variabele, een variabele met twee uitkomstmogelijkheden, zoals dood of levend of wel versus niet, en een of meerdere onafhankelijke variabelen of predictoren. Als voorbeeld: zullen mensen wel of niet een huis kopen als we de leeftijd, het inkomen en het aantal dagen dat mensen een woning zoeken weten?
- k-NN ofwel k-Nearest Neighbour: Hiermee bepaal je de kans dat een bepaald datapunt behoort tot een bepaalde klasse gelet op de klasse waar het meest dichtstbijzijnde punt of punten (afhankelijk van je definitie van K=x) toebehoort.
- neurale netwerken: complexe adaptieve netwerken bestaande uit processoren (vergelijkbaar met breinneuronen) die input en output van data genereren, die met elkaar in verbinding staan en waarvan je de weging van de verbindingen kan variëren. Bij supervised learning zorg je ervoor dat het neurale netwerk heel veel voorbeelden krijgt als input met het gewenste of bekende resultaat. Door deze trainingsset, en er geldt hoe groter hoe betrouwbaarder, kan het zichzelf leren te optimaliseren en steeds beter te worden in het herkennen van patronen.
- Naive Bayesiaanse classifier: Geschikt voor grote datasets, omdat er geen gecompliceerde parameters geformuleerd hoeven te worden, onderzoekt dit algoritme in hoeverre predictoren onafhankelijk van elkaar zijn op basis van het theorem van Bayes. De regel van Bayes is de voorwaardelijke kans P(A|B) voordat bekend is of de gebeurtenis B al of niet heeft plaatsgevonden.
- Support Vector Machine: Bij een Support Vector Machine (SVM) worden de datapunten uitgezet in een vectorruimte (een driedimensionale ruimte waarin datapunten met de coördinaten x, y, x worden voorgesteld). De classificatie wordt vervolgens uitgevoerd door te zoeken naar punten die de marge tussen twee klassen maximaliseren: het hypervlak, zodat de scheiding tussen de twee klassen zo groot mogelijk is. De vectors die het hypervlak bepalen, en dus het meest dichtbij liggen, zijn de support vectors.
- decision trees of random forests: vooraf moet ingegeven worden welke kolom in de dataset de onderscheidende factor moet worden. Het model deelt vervolgens de dataset op in steeds meer homogene subsets, zodat de gelijkenis met een boom ontstaat. Elke 'decision node' of beslisknoop verwijst naar een beslissing of klasse, waarbij de 'root node', ofwel de eerste en bovenste knoop, de beste voorspeller is. Kijk je naar een dataset met gegevens over de personen die op de Titanic waren, dan kun je als onderscheidende eigenschap 'Wel/Niet overleden' nemen om te bepalen wat de beslissende factoren waren om de Titanic wel of niet te overleven. Een random forest is een verzameling van decision trees.
Mogelijke toepassingen: Medische diagnoses, klantprofielen, beeldherkenning, emotieherkenning, beoordeling van kredietaanvragen, churn (rate) prediction (hoeveel klanten of abonnees verlaten een leverancier in een gegeven periode).
Regressie
Op basis van een gegeven set van numerieke waarden kun je voorspellingen doen over de numerieke waarde van een nieuw datapunt, waarbij het label waarmee je je data categoriseert ook een numerieke waarde heeft.
Voorbeelden van algoritmes hier zijn:
- (Multiple) lineaire regressie: door de geobserveerde data met de te voorspellen data te vergelijken voor een afhankelijke uitkomstvariabele (=y) kom je tot een voorspelling van een of meer onafhankelijke voorspeller (x). Door te achterhalen hoe je de relatie tussen x en y het beste kunt weergeven voorspel je kortom de ideale regressielijn. Bijvoorbeeld als je geïnteresseerd bent in de samenhang tussen lengte en gewicht en de leeftijd van het kind, dan verwachten we dat lengte en gewicht (de onafhankelijke x-variabelen) voorspellers zijn voor de leeftijd van het kind (de afhankelijke y-variabele). Dus hoe groter en zwaarder, hoe ouder het kind zal zijn. Op basis van de data kun je de leeftijd voorspellen bij gegeven datapunten voor lengte en gewicht.
- En opnieuw k-NN, neurale netwerken, support vector machine, decision trees.
Mogelijke toepassingen: Voorspellingen van aandelen, omzetprijzen, huizenprijzen (bijvoorbeeld: gegeven het aantal kamers, de grootte van de tuin en de nabijheid van natuur wat is dan de verwachte verkoopprijs, gelet op de bekende huizenprijzen in de dataset.
Unsupervised learning
Bij unsupervised learning geef je het model geen voorbeelden of labels mee, maar laat je het zelf patronen en structuren in de data ontdekken.
Clustering
Als je een set van datapunten als uitgangspunt neemt is de vraag hier: kunnen we binnen deze data groepen vinden? Dit is handig om de data te verkennen en bepaalde kenmerken van de data te ontdekken.
Anomaly Detection
Met behulp van dit algoritme kun je zien of er uitschieters (outliers) zijn in een gegeven dataset.
Frequent Subsets
Welke data items horen bij elkaar en vormen subsets in een dataset.
Association rules
Bij dit algoritme wordt onderzocht in welke mate er samenhang is tussen de support voor een item (X, het aantal keer dat een item voorkomt in de database) en de confidence voor een itemset (Y, het aantal keer dat items samen voorkomen; vergelijkbaar met het algoritme van frequent subsets). Door het totaal aantal transacties (T) mee te nemen in de vergelijking kan een regel (rule) worden opgesteld. Bijvoorbeeld de regel dat boter, brood en pindakaas relatief vaak samen worden gekocht. Vervolgens kan op basis van deze gegevens de lift worden bepaald. Is deze gelijk aan 1 dan zijn de variabelen onafhankelijk, anders komen ze vaker of minder vaak voor dan je zou verwachten en is er dus sprake van een afhankelijkheidsrelatie. Om de kracht van de voorspelling te bepalen wordt de conviction bepaald van de rule, waarin je rekening houdt met de kans dat de rule behoort tot het aantal incorrecte voorspellingen. Zo kun je op basis van de data bepalen voorspellen welke items betekenisvol samen voorkomen, zodat je je marketing, prijsbeleid of product placement hierop kunt aanpassen.
Mogelijke toepassingen: fraudeherkenning, sensor monitoring, data opschonen (het proces om foutieve en corrupte data te ontdekken en aan te passen of te verwijderen), market-basket-analyse om je dienstverlening op aan te passen (shampoo wordt vaak samen met crèmespoeling gekocht, een burger van de gemeente zal wanneer hij aangeeft sinds kort op zoek te zijn naar werk ook vaak een sollicitatietraining willen volgen).
Andere types
Hierbij gaat het om algoritmes die zowel binnen supervised als unsupervised leren vallen of juist in geen van de twee categorieën. Het algoritme leert gedrag door een (al dan niet vertraagde) beloning of straf. Een voorbeeld hiervan is het spel Go.
Reinforcement learning
Bij reinforcement learning is het de bedoeling dat het algoritme leert via trial en error door feedback te geven aan de 'agent' in de vorm van beloning of straf welke acties de hoogste beloning in een dynamische omgeving binnen een bepaalde tijd opleveren.
Zo leert het algoritme ons welke acties de grootste beloningen opleveren en dus de voorkeur verdienen. Reinforcement leren wordt vaak ingezet voor robotica, (serious) gaming en navigatiebegeleiding.
Recommender Systems
Een voorbeeld van Recommender Systems is de service van onder meer Amazon en bol.com om via een voorspelmodel suggesties te doen voor verdere aankopen op basis van de eigen eerdere aankopen en aankopen van miljoenen andere kopers.
Deep Learning
Onderdeel van Machine Learning is Deep Learning. In plaats van taakgerichte algoritmes wordt hier patroonherkenning gebruikt om algoritmes uit te voeren. Met behulp van zogenaamde digitale hersencellen worden neurale netwerken gevormd die informatie inventariseren, analyseren en combineren. Hierdoor kan een computer een taal leren, zich de verkeersregels eigen maken en leren schaken. Er ontstaat een steeds duidelijker en meer gedetailleerd beeld van de data, zoals je ook in het (schemer)donker steeds meer contouren ziet als je je blijft focussen op je omgeving.
Heeft je neurale netwerk meer dan twee tussenlagen, dan spreken we van deep neural networks, waarbij elke tussenlaag een aparte taak heeft, zodat je het herkenningsproces opdeelt in kleine stapjes. Door de complexiteit van deze neurale netwerken is hier sprake van Deep Learning. Een voorbeeld van Deep Learning is DeepDream, Google's herkenningssoftware voor onder meer verkeer, gezichten en katten.
De toekomst van Machine Learning
Anno 2018 wordt ons leven al meer gestuurd door algoritmes dan we beseffen. We laten overal onze digitale voetsporen en vingerafdrukken na. Deze data worden gebruikt, voor gerichte marketing, maar ook voor algemene data-analyses en voorspellingen. De machtstructuren van grote bedrijven en overheden bepalen hierin wat er gebeurt. Elke keer dat we invullen wat we verstaan onder een verkeerslicht of een auto bijvoorbeeld helpen we Google's algoritme bij verkeersherkenning, zodat onder meer zelfrijdende auto's dichterbij komen. Ons surfgedrag op internet verraadt waar we ons mee bezighouden en geeft onze angsten, behoeften en verlangens bloot. Klantcontacten worden opgenomen. Ook de overheid wil graag meer van ons weten om de veiligheid en controle te verhogen. WhatsApp geeft aan wanneer we online zijn, maar weet ook wie onze contacten zijn, waar we zijn wanneer we berichten sturen en aan wie. Google scant de inhoud van onze mails en geeft suggesties op basis daarvan. We zien wat we willen zien. Of wat het algoritme denkt dat we willen zien. We worden constant in de gaten gehouden en gemanipuleerd. Ontsnappen is feitelijk niet mogelijk. Privacy en big data staan dan ook op gespannen voet met elkaar.
De macht van Machine Learning
Het besef van de macht van algoritmes komt gaandeweg op gang, maar veel mensen realiseren zich niet dat ze er al door geleefd worden. Niet alleen ons leven wordt bepaald door AI, maar wijzelf ook. Er is wel een tegengeluid, maar dat komt ook in 2018 moeizaam en langzaam op gang. In de AVG (internationaal bekend als de GDPR) bijvoorbeeld staat bepaald dat bijvoorbeeld een hypotheek niet mag worden beoordeeld door een algoritme alleen, maar dat bij ingrijpende beslissingen ook een mens naar de informatie moet hebben gekeken. Maar wie kan alles controleren? En als je het algoritme vertrouwt, waarom zou je het dan tegenspreken? Dat is de vraag. Mensen maken zich wel druk over Facebook, Google, Samsung en WhatsApp, maar niet genoeg. Want als je een bepaalde directe service krijgt, ruil je er je het abstracte privacy er vaak voor in. Mensen gaan ervan uit dat grote bedrijven en overheden zich ethisch gedragen, dat ze zich gedragen zoals het hoort. Maar hoe hoort het eigenlijk? En wie bepaalt dat? Wie heeft de macht of wie is de macht? Om hier een goed antwoord op te vinden en goed mee om te kunnen gaan is meer nodig dan een GDPR of nieuwe ethiek. Daarvoor zijn nieuwe wereldwijde wetten nodig.
Denk en praat mee over de ethiek van Kunstmatige Intelligentie
De opkomst van Machine Learning en Kunstmatige Intelligentie biedt kansen en voordelen, maar ook bedreigingen en nadelen. Door het een van het ander te scheiden hoeven bedreigingen geen belemmeringen te worden. Zo kan optimaal en ethisch gebruik worden gemaakt van deze nieuwe technieken. Dan is het wel belangrijk dat er een ethisch kader komt. Veel mensen maken zich hier sterk voor: experts, wetenschappers en leidinggevenden op alle niveaus. Het moet gaan om meer nadruk op kunstmatige ethiek en niet alleen op kunstmatige intelligentie, zoals Pim Haselager, universitair hoofddocent aan de Radboud Universiteit betoogt. En ook het Rathenau Instituut maakt zich hier sterk voor, zo bleek uit
een artikel dat verscheen op 29 november 2018. Hoe eerder er meer regels komen hoe beter zodat het vertrouwen niet wordt geschaad en we gezamenlijk verantwoordelijkheid kunnen nemen voor de digitale samenleving, inclusief Artificial Intelligence.
De Europese Commissie heeft op 8 april 2019 een
definitieve versie gepubliceerd van richtlijnen voor een betrouwbare Artificial Intelligence. Daarnaast hebben ze een
rapport gepubliceerd met daarin de definitie van AI, als wetenschappelijke discipline en als techniek zodat een eenduidig gedeeld beeld ontstaat van wat AI precies is en wat het kan brengen. In het artikel van Robert Viola, directeur Generaal van het DG Communication Networks, Content and Technology van de Europese Commissie wordt dit alles nog eens op een rijtje gezet voor een breder publiek (https://ec.europa.eu/digital-single-market/en/news/artificial-intelligence-real-benefits). Deze richtlijnen beperken zich echter tot Europese Commissie.
De OESO (OECD) heeft op 22 mei 2019 een set van Principles on Artificial Intelligence (AI) aangenomen. Het gaat hier om de eerste internationale normen voor verantwoord beheer en ontwikkeling van een betrouwbare Artificial Intelligence. Juist het internationale karakter kan een extra impuls geven aan de benodigde wereldwijde coöperatie en coördinatie als het gaat om AI. Daarbij worden nadrukkelijk de rechten van de mens en democratische waarden centraal gesteld, rekening houdend met de belangrijkste uitdagingen en risico's die met AI gepaard gaan omvat en toch duidelijk toekomstgericht is, zodat de ontwikkeling van AI niet onder druk komt te staan. In totaal 42 landen, waaronder de Verenigde Staten, hebben deze principes ondertekend en ze staan open voor alle andere landen om te onderschrijven. In de OESO-beginselen vind je naast algemene principes voor AI ook concrete aanbevelingen terug voor overheidsbeleid en -strategieën (https://www.oecd.org/science/forty-two-countries-adopt-new-oecd-principles-on-artificial-intelligence.htm). Om landen te helpen de AI-principes uit te voeren, te stimuleren en te monitoren is het OESO bezig om een centraal AI beleidscentrum op te richten, dat functioneert als een soort inclusieve hub, een kloppend hart van informatie, bewijs en beleidsmogelijkheden over AI. En daar blijft het niet bij. Er is inmiddels ook een AI Council opgericht door het World Economic Forum om mondiale regels voor AI op te kunnen stellen. De discussie kan en mag worden gevoerd.