Dans les CNN : un max pool 2×2 avec un stride de 2 prend chaque région 2×2, garde la valeur maximale, et réduit chaque dimension spatiale de moitié. Cela accomplit deux choses : l'invariance de translation (de petits décalages dans l'entrée ne changent pas la sortie) et la réduction de dimensionnalité (moins de valeurs à traiter dans les couches suivantes). L'average pooling fait la même chose mais prend la moyenne, ce qui préserve plus d'information mais est moins robuste au bruit.
Pour créer un embedding de taille fixe à partir d'une séquence de tokens de longueur variable, tu dois faire du pooling. Stratégies courantes : pooling du token [CLS] (utiliser la représentation d'un token spécial, comme dans BERT), mean pooling (moyenner toutes les représentations de tokens — généralement le meilleur pour les embeddings de phrases), max pooling (prendre le max élément par élément à travers les tokens), et pooling pondéré (pondérer les tokens par les scores d'attention). La plupart des modèles d'embedding utilisent le mean pooling pour sa simplicité et son efficacité.
Dans les architectures de vision modernes, le global average pooling remplace les couches fully connected que les anciens CNN utilisaient pour la classification. Au lieu d'aplatir la carte de features finale en un vecteur (ce qui crée des millions de paramètres), le global average pooling fait la moyenne de chaque canal de la carte de features en un seul nombre. Cela produit une représentation compacte sans paramètres appris, agissant comme un régulariseur puissant. Les Vision Transformers utilisent une approche similaire avec le token [CLS].