Pooling

[pùling]

Operazione che riduce le dimensioni di una feature map prendendo max o media su finestre. Riduce calcolo e dà un po' di invarianza.

Definizione di Super Squalo ·

Il pooling è una operazione di downsampling usata nelle CNN (vedi convolution). Prende una feature map e la riduce di dimensione, sintetizzando regioni in singoli valori.

Tipi principali:

  • Max pooling: per ogni finestra (tipicamente 2x2), prende il valore massimo. Conserva i pattern più forti, scarta il resto. Standard nelle CNN classiche.
  • Average pooling: prende la media della finestra. Più morbido, smooth.
  • Global average pooling: media su tutta la feature map. Riduce a un vettore. Spesso ultimo passo prima del classifier finale.
  • Adaptive pooling: imposta dimensione output, calcola finestre di conseguenza. Utile per input di dimensione variabile.

Perché si usa:

  • Riduce dimensioni: meno calcolo nei layer successivi.
  • Translation invariance: piccoli spostamenti dell'oggetto non cambiano molto l'output.
  • Aumenta receptive field: dopo pooling, ogni neurone "vede" una porzione più ampia dell'immagine originale.
  • Riduce overfitting: meno parametri da imparare a valle.

Varianti moderne:

  • Strided convolution: convoluzione con stride > 1. Sostituisce il pooling, è più imparabile. Usata in molte architetture moderne.
  • Attention pooling: usa attention per pesare diversamente regioni dell'immagine. Standard nei Vision Transformer.

Critica nota: il pooling perde informazione spaziale precisa. Per task come segmentation (dove sta esattamente l'oggetto?), si usano architetture senza pooling aggressivo (U-Net, dilated convolutions).

Curiosità: Geoffrey Hinton, padrino del deep learning, ha ripetutamente criticato il max pooling come "errore". Ha proposto le Capsule Networks come alternativa. Hanno avuto poco successo. Il max pooling sopravvive.

Vedi anche