Hoe werken convolutionele lagen en pooling?

De werking van convolutie

Een convolutionele laag is het hart van een CNN. De laag bestaat uit een set filters (kernels), elk een kleine matrix van gewichten. Tijdens de forward pass schuift elk filter over de invoer (een afbeelding of een feature map) en berekent op elke positie het inproduct van het filter en het overeenkomstige deel van de invoer. Dit resulteert in een feature map. Het filter wordt gedeeld over alle posities, wat zorgt voor translatie-invariantie: een patroon wordt herkend ongeacht waar het in de afbeelding voorkomt. De stapgrootte waarmee het filter schuift heet de stride. Soms wordt padding toegevoegd aan de randen om de ruimtelijke dimensies te behouden. Na de convolutie wordt een niet-lineaire activatiefunctie toegepast, meestal ReLU. Meerdere filters in één laag produceren meerdere feature maps, die samen de invoer voor de volgende laag vormen. De gewichten van de filters worden geleerd tijdens de training via backpropagation. Vroege lagen leren eenvoudige kenmerken zoals randen; latere lagen combineren deze tot complexere patronen. Convolutie is rekenintensief, maar zeer effectief gebleken.

Pooling en zijn rol

Pooling-lagen verkleinen de ruimtelijke afmetingen van feature maps en verminderen zo het aantal parameters en de rekenkracht. Ze helpen ook tegen overfitting. De meest gebruikte vorm is max-pooling, waarbij een venster (meestal 2x2) over de feature map schuift en het maximum neemt. Dit behoudt de sterkste activatie en maakt het netwerk robuuster voor kleine verschuivingen. Average pooling neemt het gemiddelde, wat meer informatie behoudt maar minder scherp is. Global average pooling reduceert elke feature map tot één getal en wordt vaak gebruikt aan het einde van een CNN in plaats van volledig verbonden lagen. Pooling heeft geen leerbare parameters. Het introduceert een zekere mate van invariantie voor translatie en vervorming. Een nadeel is dat het ruimtelijke informatie verliest, wat nadelig kan zijn voor taken zoals beeldsegmentatie. Daarom gebruiken sommige moderne architecturen geen pooling, maar in plaats daarvan convoluties met stride 2. Pooling blijft echter een eenvoudige en effectieve manier om de dimensionaliteit te verkleinen. Samen met convolutie vormt pooling de basis van vrijwel elke CNN-architectuur.

Dit toepassen in
jouw bedrijf?

We vertalen het naar jouw processen en laten binnen een week een werkend prototype zien.