Cursusinhoud
Essentiële Computervisie
Essentiële Computervisie
Convolutielagen
Inzicht in Convolutielagen
Convolutielagen vormen de kern van convolutionele neurale netwerken (CNN's). Ze passen convolutie toe, waarbij een kleine matrix, een filter (of kernel) genoemd, over een afbeelding schuift om randen, texturen en vormen te detecteren. Hierdoor kunnen CNN's afbeeldingen efficiënter verwerken dan traditionele netwerken.
In plaats van een volledige afbeelding in één keer te analyseren, verdelen CNN's deze in kleinere secties, waarbij kenmerken op verschillende niveaus worden gedetecteerd. Vroege lagen herkennen eenvoudige patronen zoals randen, terwijl diepere lagen complexe structuren detecteren.
Werking van Convolutie
Convolutie houdt in dat een filter (kernel) over een afbeelding beweegt, volgens de volgende stappen:
Plaats het kernel linksboven op de afbeelding.
Voer elementgewijze vermenigvuldiging uit tussen het kernel en de pixelwaarden.
Sommeer de producten om een uitvoerpixel te genereren.
Verplaats het kernel volgens de stride en herhaal.
Genereer een feature map die gedetecteerde patronen benadrukt.
Meerdere filters stellen CNN's in staat om verschillende kenmerken vast te leggen, zoals verticale randen, krommingen en texturen.
Filters (Kernels):
Filters spelen een cruciale rol bij het extraheren van betekenisvolle patronen uit afbeeldingen. Verschillende typen filters zijn gespecialiseerd in het identificeren van diverse kenmerken:
Randdetectiefilters: identificeren objectgrenzen door abrupte intensiteitsveranderingen te detecteren (bijv. Sobel-, Prewitt- en Laplace-filters);
Textuurfilters: leggen herhalende patronen vast, zoals golven of rasters (bijv. Gabor-filters);
Verscherpingsfilters: versterken afbeeldingsdetails door hoge frequentiecomponenten te versterken;
Vervagingsfilters: verminderen ruis en maken afbeeldingen gladder (bijv. Gaussiaanse vervagingsfilter);
Emboss-filters: benadrukken randen en voegen een 3D-effect toe door diepte te accentueren.
Elk filter wordt getraind om specifieke patronen te detecteren en draagt bij aan het opbouwen van hiërarchische kenmerkrepresentaties in diepe CNN's.
Convolutielagen hergebruiken hetzelfde filter over een afbeelding, waardoor het aantal parameters afneemt en CNN's efficiënt worden. Gespecialiseerde lokaal verbonden lagen gebruiken echter verschillende filters voor verschillende regio's indien nodig.
Door convolutielagen te stapelen, extraheren CNN's gedetailleerde patronen, waardoor ze krachtig zijn voor beeldclassificatie, objectdetectie en visietaken.
Hyperparameters:
Stride: bepaalt hoe ver het filter per stap verschuift;
Padding: voegt pixels toe om de uitvoergrootte te regelen (same padding behoudt de grootte, valid padding verkleint deze);
Aantal filters (diepte): meer filters verbeteren kenmerkdetectie maar verhogen de rekentijd.
Voordat je aan het volgende hoofdstuk begint, moet je het volgende onthouden:
Hoewel convolutionele lagen de uitvoergrootte kunnen verkleinen, is hun primaire doel feature-extractie, niet dimensiereductie. Pooling-lagen daarentegen verminderen expliciet de dimensionaliteit terwijl belangrijke informatie behouden blijft, wat efficiëntie in diepere lagen waarborgt.
1. Wat is de primaire rol van een convolutionele laag in een CNN?
2. Welke hyperparameter bepaalt hoe ver een filter beweegt tijdens convolutie?
3. Wat is het doel van het toepassen van meerdere filters in een convolutielaag?
Bedankt voor je feedback!