Deep learning

In de wereld van big data en artificiŽle intelligentie is er geen enkele technologie die meer tot de verbeelding spreekt dan deep learning. Via neurale netwerken slaagt men erin computers beoordelingen te laten doen zonder vooraf een algoritme te schrijven Ė een methode die vroeg of laat ook zijn weg zal vinden naar industriŽle automatisering.

Deze introductie tot deep learning past in onze artikelenreeks waarin ook artificiŽle intelligentie en machine learning uitgelegd worden. De drie termen zijn met elkaar verbonden, want machine learning is een methode om tot artificiŽle intelligentie te komen. Deep learning is op zijn beurt een van de mogelijke methodes binnen machine learning.

De term deep learning slaat op het gebruik van neurale netwerken. U weet wel, het simuleren van de werking van de hersenen via een netwerk van nodes die signalen aan elkaar doorgeven. In simulaties is zo een netwerk opgebouwd uit lagen waarbij de eerste laag nodes externe input krijgt. Elke node genereert op basis hiervan een output die met een bepaald gewicht aan de nodes in de volgende laag wordt doorgegeven. Dat gewicht is een maat voor hoe relevant de bijhorende input blijkt te zijn voor de gewenste output. Vele lagen later (vandaar de deep in deep learning) komen de nodes tot een output.

Typisch aan zo een neuraal netwerk is wat in ons artikel over machine learning ďreinforcement learningĒ genoemd wordt. Het systeem moet de parameters in de nodes en gewichten bij het doorgeven van de signalen zelf bepalen door training. Daarbij wordt het gevoed met grote hoeveelheden input, waarbij de parameters zichzelf aanpassen tot telkens de gewenst output bekomen wordt. De data die gebruikt wordt tijdens het trainen van het neuraal netwerk wordt gelabelde data genoemd. Het is een reeks van inputs waarvan telkens ook geweten is wat de output zou moeten zijn.

Duizenden iteraties

Neem als voorbeeld een specifieke uitdaging waar vandaag op gewerkt wordt in het kader van zelfrijdende voertuigen: het herkennen van verkeersborden. Om een stopbord te herkennen zou men in een traditionele applicatie werken met een algoritme dat bijvoorbeeld eerst de contouren zoekt in een beeld, vervolgens op zoek gaat naar een achthoek, dan kijkt of de kleur binnen die achthoek rood is, enz.

Bij deep learning is de aanpak heel anders. Men voedt fotoís aan een neuraal netwerk, bijvoorbeeld door ze in stukken te knippen en elke node in de eerste laag een stukje te geven. Tijdens de training van het netwerk gebruikt men gelabelde data zodat telkens de output die men moet bekomen Ė of het systeem al dan niet een stopbord ziet Ė vastligt. Dat maakt het mogelijk om de parameters in het systeem zodanig bij te stellen dat het neuraal netwerk de juiste output levert.

Na duizenden en duizenden van deze iteraties met gelabelde data wordt het systeem dan geacht in staat te zijn om met vrij grote nauwkeurigheid bij een compleet nieuw beeld te zeggen of er al dan niet een stopbord in staat.

Waar deep learning zich onderscheidt van de andere methodes in machine learning is dat het ďalgoritmeĒ dat op deze manier tot stand komt, gebonden is aan het neuraal netwerk zelf. Met andere woorden, om het systeem te gebruiken heeft men precies hetzelfde neuraal netwerk nodig als hetgeen in de training gebruikt werd. Via het Open Neural Network Exchange (ONNX) bestandsformaat kan een getraind netwerk met al zijn paramaters overgezet worden op een andere hardware.

Grafische kaarten

Dat deep learning pas de laatste jaren echt is komen opzetten heeft alles te maken met de enorme rekenkracht die ervoor nodig is. Om tot een intelligent systeem te komen is een enorm neuraal netwerk nodig dat bovendien ook nog eens met miljoenen inputs getraind moet worden. Een doorbraak op het vlak van rekenkracht is er gekomen toen men krachtige grafische kaarten uit de gaming industrie begon te gebruiken. Producent NVIDIA is een van de koplopers in het domein en ontwikkelt intussen ook CPUís die qua architectuur volledig afgestemd zijn op deep learning toepassingen.

Een voorbeeld hiervan is de NVIDIA DRIVE PX 2 computer die ontwikkeld werd voor onderzoek naar zelfrijdende autoís. Het neuraal netwerk krijgt in dit geval de input van meerdere cameraís en sensoren. Door het systeem te trainen, wat concreet betekent dat men de computer laat mee volgen hoe een menselijke bestuurder rijdt, hoopt men dat het neurale netwerk zichzelf kan configureren tot een systeem dat ooit zelf het stuur zal kunnen overnemen. Voor alle duidelijkheid: zo ver is men nog lang niet.

In de industrie wordt intussen ook al volop geŽxperimenteerd met neurale netwerken, zoals in Neuraal netwerk leert bin picking.

Een andere toepassing is de ontwikkeling van smart sensoren die bijvoorbeeld in staat moeten zijn om aan de hand van klassieke metingen in een proces een maat te genereren voor een niet direct meetbare grootheid zoals productkwaliteit. Men spreekt dan over ANFIS gebaseerde sensoren (Adaptive Neuro-Fuzzy Inference System).

© Productivity.be


Feel free to share



Productivity.be

is een publicatie van
Redactiebureau ConScript

Contact

Erwin Vanvuchelen
+32 (0)475 64 99 34
erwin@conscript.be
erwinvanvuchelen