Wat zijn CNN’s?
Een convolutional neural network (CNN) is een type deeplearningmodel dat speciaal is ontworpen voor het verwerken van data met een rasterstructuur, zoals afbeeldingen.
CNN’s zijn een van de fundamenten van computer vision: ze liggen ten grondslag aan gezichtsherkenning, zelfrijdende auto’s, medische beeldanalyse en nog veel meer.
Waarom CNN’s voor beelden?
Waarom niet gewoon een standaard neuraal netwerk? Stel je een afbeelding van 224×224 pixels voor met 3 kleurkanalen (RGB):
224 × 224 × 3 = 150.528 inputwaarden per afbeelding.
Nadeel: Fully connected
Voordeel: CNN
CNN’s lossen dit op met drie slimme eigenschappen:
- Lokale verbindingen: elk neuron kijkt alleen naar een klein gebied (het receptive field).
- Gedeelde gewichten: dezelfde filter wordt hergebruikt over het hele beeld.
- Overal hetzelfde patroon: dezelfde filter vindt een patroon waar het ook in het beeld staat, dus een kat wordt herkend of hij nu linksboven of rechtsonder staat.
De convolutielaag
De kern van een CNN is de convolutie. Een kleine matrix (de “kernel” of “filter”) schuift over het beeld en berekent een gewogen som op elke positie.
Input (5×5)
Kernel (3×3)
Feature map (3×3)
Verschillende filters detecteren verschillende features: horizontale lijnen, verticale lijnen, randen, texturen. Door meerdere filters te stapelen, leert het netwerk steeds complexere patronen.
Pooling: dimensiereductie
Na de convolutie komt vaak een poolinglaag. Deze verkleint de ruimtelijke dimensies, waardoor het netwerk efficiënter wordt en minder gevoelig voor kleine verschuivingen.
Max pooling
Pakt de maximale waarde: behoudt de sterkste activatie.
Average pooling
Berekent het gemiddelde: een vloeiendere representatie.
Complete CNN-architectuur
Een typische CNN combineert meerdere convolutie- en poolinglagen, gevolgd door fully connected lagen voor de uiteindelijke classificatie:
Input
224×224×3
Conv + ReLU
112×112×64
Max pool
56×56×64
Conv + ReLU
56×56×128
Max pool
28×28×128
Flatten
100.352
FC
4096
Output
1000klassen
Elke volgende convolutielaag leert features op een hoger niveau:
Lagen 1 en 2
Lagen 3 en 4
Laag 5 en verder
Bekende CNN-modellen
Door de jaren heen zijn er steeds krachtigere CNN-architecturen ontwikkeld:
| Model | Jaar | Innovatie | Lagen |
|---|---|---|---|
| LeNet-5 | 1998 | Eerste succesvolle CNN (handgeschreven cijfers) | 5 |
| AlexNet | 2012 | ReLU, dropout, training op GPU’s. Luidde de doorbraak van deep learning in. | 8 |
| VGGNet | 2014 | Dieper netwerk met alleen 3×3 filters | 16-19 |
| GoogLeNet/Inception | 2014 | Inception-modules: parallelle filters van verschillende groottes | 22 |
| ResNet | 2015 | Skip connections: maken netwerken van 152 lagen en meer trainbaar | 18-152 |
| EfficientNet | 2019 | Compound scaling: diepte, breedte en resolutie samen opschalen | Variabel |
Praktische toepassingen
CNN’s worden breed toegepast in de industrie:
Gezichtsherkenning
Autonome voertuigen
Medische beeldanalyse
Kwaliteitscontrole