Connect with us

AI 101

Wat zijn CNN’s (Convolutional Neural Networks)?

mm

Misschien heb je je wel eens afgevraagd hoe Facebook of Instagram automatisch gezichten in een afbeelding kan herkennen, of hoe Google je laat zoeken naar vergelijkbare foto’s op het web door alleen maar een foto van jezelf te uploaden. Deze functies zijn voorbeelden van computer visie en worden aangedreven door convolutional neural networks (CNN’s). Maar wat zijn convolutional neural networks precies? Laten we een diepe duik nemen in de architectuur van een CNN en begrijpen hoe ze werken.

Wat zijn Neurale Netwerken?

Voordat we beginnen over convolutional neural networks te praten, laten we even definiëren wat een regulier neuronaal netwerk is. Er is een ander artikel over het onderwerp van neurale netwerken beschikbaar, dus we zullen hier niet te diep op in gaan. Om ze echter kort te definiëren, zijn het computationele modellen geïnspireerd door de menselijke hersenen. Een neuronaal netwerk werkt door gegevens in te nemen en de gegevens te manipuleren door “gewichten” aan te passen, die aannamen zijn over hoe de invoerfuncties met elkaar en de klasse van het object verwant zijn. Terwijl het netwerk getraind wordt, worden de waarden van de gewichten aangepast en zullen ze hopelijk convergeren naar gewichten die de relaties tussen functies nauwkeurig vastleggen.
Dit is hoe een feed-forward neuronaal netwerk werkt, en CNN’s bestaan uit twee helften: een feed-forward neuronaal netwerk en een groep convolutional lagen.

Wat zijn Convolution Neural Networks (CNN’s)?

Wat zijn de “convoluties” die in een convolutional neuronaal netwerk plaatsvinden? Een convolutie is een wiskundige bewerking die een set van gewichten creëert, wat essentieel een weergave van delen van de afbeelding is. Deze set van gewichten wordt een kernel of filter genoemd. Het filter dat wordt gemaakt is kleiner dan de hele invoer afbeelding, en bedekt alleen een deel van de afbeelding. De waarden in het filter worden vermenigvuldigd met de waarden in de afbeelding. Het filter wordt dan verplaatst om een weergave van een nieuw deel van de afbeelding te vormen, en het proces wordt herhaald totdat de hele afbeelding is bedekt.
Een andere manier om hierover na te denken is om je een bakstenen muur voor te stellen, waar de bakstenen de pixels in de invoer afbeelding vertegenwoordigen. Een “venster” wordt heen en weer geschoven langs de muur, wat het filter is. De bakstenen die zichtbaar zijn door het venster zijn de pixels die hun waarde vermenigvuldigen met de waarden binnen het filter. Om deze reden wordt deze methode van het creëren van gewichten met een filter vaak de “schuiframen techniek” genoemd.
De uitvoer van de filters die over de hele invoer afbeelding worden verplaatst is een tweedimensionale array die de hele afbeelding vertegenwoordigt. Deze array wordt een “functie kaart” genoemd.

Waarom Convolutions Essentieel Zijn

Wat is het doel van het creëren van convoluties? Convolutions zijn nodig omdat een neuronaal netwerk in staat moet zijn om de pixels in een afbeelding als numerieke waarden te interpreteren. De functie van de convolutional lagen is om de afbeelding om te zetten in numerieke waarden die het neuronaal netwerk kan interpreteren en vervolgens relevante patronen uit kan halen. De taak van de filters in het convolutional netwerk is om een tweedimensionale array van waarden te creëren die kunnen worden doorgegeven aan de latere lagen van een neuronaal netwerk, die de patronen in de afbeelding zullen leren.
Filters En Kanalen

Foto: cecebur via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Convolutional_Neural_Network_NeuralNetworkFeatureLayers.gif)


Blogger en programmeur met specialisaties in Machine Learning en Deep Learning onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor het sociale goede.