Max pooling
En apprentissage automatique, la couche de max pooling ou max-pooling[1] est une des quatre couches dans un réseau de neurones convolutif. Cette couche permet de sous-échantillonner l'image pour réduire sa dimensionnalité spatiale lors de sa classification par un réseau de neurones. Le but de cette couche est de réduire la taille des images sans modifier les caractéristiques importantes de cette image.
Fonctionnement
[modifier | modifier le code]Le max pooling opère en appliquant un filtre de taille définie sur l'image d'entrée et en ne conservant que la valeur maximale pour chaque région couverte par le filtre. Ce processus est effectué de manière itérative sur toute l'image, généralement avec un déplacement du filtre appelé stride, ou « pas », qui peut varier en taille. L'opération ne modifie pas la profondeur de l'image d'entrée, mais réduit ses dimensions sur la hauteur et la largeur.
Procédé
[modifier | modifier le code]Le procédé de max-pooling s'effectue en passant une fenêtre (filtre) de dimensions spécifiées sur l'ensemble de l'entrée. Pour un max-pooling 3x3, la fenêtre de taille 3x3 se déplace sur l'image et sélectionne le maximum de chaque portion de l'image (appelée fenêtre ou région de pooling). Dans l'exemple illustré par l'image, la fenêtre glisse sur l'entrée et, pour chaque position de la fenêtre, la plus grande valeur des neuf est sélectionnée et placée dans la matrice de sortie.
La valeur maximale est choisie parce qu'elle est supposée représenter la caractéristique la plus saillante présente dans la région considérée. Ce processus est répété jusqu'à ce que toute l'image soit parcourue, ce qui résulte en une matrice de sortie qui est une version sous-échantillonnée de l'entrée. Par exemple, un max-pooling 3x3 sur une entrée de taille 6x6, sans chevauchement et sans padding (bourrage/remplissage), produirait une sortie de taille 2x2.
Le résultat de cette opération est une image réduite mettant en évidence les caractéristiques les plus dominantes. Cela permet au réseau de se concentrer sur les éléments les plus importants de l'entrée et d'ignorer les informations redondantes ou non pertinentes. Il y a donc une augmentation de l'efficacité du réseau et on évite ainsi le sur-apprentissage[2] par le réseau de neurones.
Effets et avantages
[modifier | modifier le code]L'utilisation du max pooling présente plusieurs avantages :
- Réduction de dimensionnalité : elle diminue la taille des matrices entrantes, ce qui réduit la quantité de calculs nécessaires pour les couches subséquentes.
- Invariance aux translations : elle aide le réseau à devenir insensible aux petites translations et déformations dans l'image d'entrée.
- Accentuation des caractéristiques : En extrayant les valeurs maximales, le max pooling met en exergue les caractéristiques prédominantes, comme les bords et les textures.
- Prévention du sur-apprentissage : en réduisant le nombre de paramètres libres, le réseau est moins susceptible de mémoriser le bruit et les détails spécifiques à l'ensemble de données d'entraînement.
Notes et références
[modifier | modifier le code]- (en) Neural Networks and Deep Learning (DOI 10.1007/978-3-319-94463-0, lire en ligne), p. 120
- (en) Michael Negnevitsky, Artificial intelligence: a guide to intelligent systems, Pearson [u.a.], (ISBN 978-0-201-71159-2), p. 325