Padding
Le padding (ou remplissage) est une technique utilisée dans les réseaux de neurones convolutifs (CNN) qui consiste à ajouter des pixels supplémentaires — souvent de valeur nulle — autour des bords d’une image avant l’application d’un filtre de convolution. L’objectif est de contrôler la taille des cartes de caractéristiques produites et de préserver l’information aux limites de l’image.
Pourquoi c’est nécessaire
Lorsqu’on applique des convolutions successives sans padding, la taille de l’image se réduit rapidement : une convolution 3×3 sur une image 28×28 produit une sortie de 26×26. Après plusieurs couches, la carte devient minuscule et perd beaucoup d’information utile. Le padding compense cette réduction et permet d’entraîner des réseaux plus profonds.
Différents modes de padding
- Padding nul (zero padding) : ajoute des 0 autour de l’image.
- Same padding : conserve exactement la même dimension en entrée et sortie.
- Valid padding : pas de padding, la sortie est réduite.
- Padding réfléchi : duplique les pixels de bordure pour limiter les artefacts.
Exemples d’utilisation
- Classification d’images (ex. MNIST, CIFAR).
- Détection d’objets : éviter que les objets situés en bordure soient ignorés.
- Segmentation sémantique : préserver les contours pour une meilleure précision.
Limites
Un padding excessif peut introduire des artefacts artificiels qui n’existent pas dans l’image d’origine. De plus, il augmente la charge de calcul.
📚 Références
- Géron, A. (2019). Apprentissage automatique avec Scikit-Learn, Keras et TensorFlow.
- Dumoulin, V. & Visin, F. (2016). A guide to convolution arithmetic for deep learning.