stomp Wat zijn CNN's (Convolutional Neural Networks)? - Verenig AI
Verbind je met ons

AI 101

Wat zijn CNN's (Convolutional Neural Networks)?

mm
Bijgewerkt on

Misschien heb je je afgevraagd hoe Facebook of Instagram automatisch gezichten in een afbeelding kunnen herkennen, of hoe Google je op internet naar vergelijkbare foto's laat zoeken door gewoon een eigen foto te uploaden. Deze functies zijn voorbeelden van computervisie en worden mogelijk gemaakt door convolutionele neurale netwerken (CNN's). Maar wat zijn convolutionele neurale netwerken precies? Laten we eens diep in de architectuur van een CNN duiken en begrijpen hoe ze werken.

Wat zijn neurale netwerken?

Voordat we beginnen te praten over convolutionele neurale netwerken, laten we even de tijd nemen om een ​​normaal neuraal netwerk te definiëren. Er is een ander artikel over het onderwerp beschikbare neurale netwerken, dus we zullen hier niet te diep op ingaan. Om ze kort te omschrijven zijn het echter computermodellen die zijn geïnspireerd door het menselijk brein. Een neuraal netwerk werkt door gegevens op te nemen en de gegevens te manipuleren door "gewichten" aan te passen. Dit zijn aannames over hoe de invoerkenmerken verband houden met elkaar en de klasse van het object. Terwijl het netwerk wordt getraind, worden de waarden van de gewichten aangepast en zullen ze hopelijk convergeren tot gewichten die de relaties tussen kenmerken nauwkeurig vastleggen.

Dit is hoe een feed-forward neuraal netwerk werkt, en CNN's bestaan ​​uit twee helften: een feed-forward neuraal netwerk en een groep convolutionele lagen.

Wat zijn convolution neurale netwerken (CNN's)?

Wat zijn de ‘convoluties’ die plaatsvinden in een convolutioneel neuraal netwerk? Een convolutie is een wiskundige bewerking die een reeks gewichten creëert, waardoor in wezen een weergave van delen van de afbeelding ontstaat. Deze reeks gewichten wordt genoemd een kernel of filter. Het filter dat wordt gemaakt, is kleiner dan het gehele invoerbeeld en beslaat slechts een subsectie van het beeld. De waarden in het filter worden vermenigvuldigd met de waarden in de afbeelding. Het filter wordt vervolgens 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 door je een bakstenen muur voor te stellen, waarbij de stenen de pixels in het invoerbeeld vertegenwoordigen. Langs de muur wordt een “raampje” heen en weer geschoven, dat is het filter. De stenen die door het venster zichtbaar zijn, zijn de pixels waarvan de waarde wordt vermenigvuldigd met de waarden binnen het filter. Om deze reden wordt deze methode van het creëren van gewichten met een filter vaak de "sliding windows"-techniek genoemd.

De uitvoer van de filters die over het gehele invoerbeeld worden verplaatst, is een tweedimensionale matrix die het hele beeld vertegenwoordigt. Deze reeks wordt a genoemd "kenmerkkaart".

Waarom windingen essentieel zijn

Wat is eigenlijk het doel van het creëren van convoluties? Convoluties zijn nodig omdat een neuraal netwerk de pixels in een afbeelding moet kunnen interpreteren als numerieke waarden. De functie van de convolutionele lagen is om het beeld om te zetten in numerieke waarden die het neurale netwerk kan interpreteren en er vervolgens relevante patronen uit kan halen. De taak van de filters in het convolutionele netwerk is om een ​​tweedimensionale reeks waarden te creëren die kunnen worden doorgegeven aan de latere lagen van een neuraal netwerk, die de patronen in het beeld 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)

CNN's gebruiken niet slechts één filter om patronen uit de ingevoerde beelden te leren. Er worden meerdere filters gebruikt, omdat de verschillende arrays die door de verschillende filters worden gemaakt, leiden tot een complexere, rijkere weergave van het invoerbeeld. Gebruikelijke nummers van filters voor CNN's zijn 32, 64, 128 en 512. Hoe meer filters er zijn, hoe meer mogelijkheden CNN heeft om de invoergegevens te onderzoeken en ervan te leren.

Een CNN analyseert de verschillen in pixelwaarden om de grenzen van objecten te bepalen. In een afbeelding in grijstinten zou CNN alleen kijken naar de verschillen in zwart-wit, licht-naar-donker termen. Wanneer de afbeeldingen kleurenafbeeldingen zijn, houdt CNN niet alleen rekening met donker en licht, maar moet het ook rekening houden met de drie verschillende kleurkanalen – rood, groen en blauw –. In dit geval beschikken de filters over 3 kanalen, net als het beeld zelf. Het aantal kanalen dat een filter heeft, wordt de diepte genoemd en het aantal kanalen in het filter moet overeenkomen met het aantal kanalen in het beeld.

Convolutioneel neuraal netwerk (CNN) Architectuur

Laten we eens kijken naar de volledige architectuur van een convolutioneel neuraal netwerk. Aan het begin van elk convolutioneel netwerk bevindt zich een convolutionele laag, omdat het nodig is om de beeldgegevens om te zetten in numerieke arrays. Convolutionele lagen kunnen echter ook na andere convolutionele lagen komen, wat betekent dat deze lagen op elkaar kunnen worden gestapeld. Het hebben van meerdere convolutionele lagen betekent dat de uitvoer van één laag verdere convoluties kan ondergaan en kan worden gegroepeerd in relevante patronen. In de praktijk betekent dit dat naarmate de beeldgegevens door de convolutionele lagen gaan, het netwerk complexere kenmerken van het beeld begint te "herkennen".

De vroege lagen van een ConvNet zijn verantwoordelijk voor het extraheren van de functies op laag niveau, zoals de pixels waaruit eenvoudige lijnen bestaan. Latere lagen van het ConvNet zullen deze lijnen samenvoegen tot vormen. Dit proces van de overgang van analyse op oppervlakteniveau naar analyse op diep niveau gaat door totdat het ConvNet complexe vormen zoals dieren, menselijke gezichten en auto's herkent.

Nadat de gegevens door alle convolutionele lagen zijn gegaan, gaat het verder naar het dicht verbonden deel van de CNN. De dicht verbonden lagen zijn hoe een traditioneel feed-forward neuraal netwerk eruit ziet, een reeks knooppunten gerangschikt in lagen die met elkaar zijn verbonden. De gegevens gaan door deze dicht met elkaar verbonden lagen, die de patronen leren die door de convolutionele lagen zijn geëxtraheerd, en daardoor wordt het netwerk in staat objecten te herkennen.

Blogger en programmeur met specialiteiten in Machine leren en Diepe leren onderwerpen. Daniel hoopt anderen te helpen de kracht van AI te gebruiken voor maatschappelijk welzijn.