2026 Best Software Awards are here!See the list

Comprendere i livelli di pooling: una chiave per reti neurali migliori

Agosto 10, 2024
da Sagar Joshi

Sai come le reti neurali convoluzionali individuano i modelli nei grandi set di dati? Il segreto sta nel pooling.

Il pooling riduce la complessità dei modelli di deep learning riducendo la dimensione dell'input pur preservando le caratteristiche essenziali e le relazioni tra i dati. Questa operazione è anche conosciuta come downsampling o subsampling.

Le reti neurali convoluzionali (CNN), un tipo di rete neurale artificiale, utilizzano tipicamente operazioni di pooling per il riconoscimento e l'elaborazione delle immagini. Con le CNN, non è necessario estrarre manualmente le caratteristiche dai dati visivi. Invece, queste reti applicano filtri di diverse dimensioni sull'immagine per apprendere le sue caratteristiche garantendo la varianza di traslazione. Ciò significa che anche se l'oggetto si sposta in una posizione diversa in un'immagine, verrà riconosciuto come lo stesso oggetto.

Queste reti neurali convoluzionali hanno tre livelli fondamentali: convoluzionale, di pooling e completamente connesso. Il livello convoluzionale crea una mappa delle caratteristiche attraverso filtri che aiutano a riconoscere i modelli.

L'ultimo, un livello completamente connesso, aiuta a classificare nelle fasi finali di una rete neurale.

I livelli di pooling impediscono anche a una rete di overfitting, una causa di apprendimento di dettagli irrilevanti. Questo aumenta la velocità della rete nell'elaborazione delle immagini e riduce la probabilità di errori.

Nonostante riducano le dimensioni, i livelli di pooling conservano le caratteristiche essenziali necessarie per la classificazione. Ciò consente alle CNN di gestire immagini grandi e architetture profonde in modo più efficace.

Come funzionano i livelli di pooling?

I livelli di pooling rendono le CNN più veloci ed efficienti. Questi livelli utilizzano una finestra mobile (2x2 o 3x3) per spostarsi su un'immagine a passi. L'operazione viene eseguita a ogni passo in base al tipo di pooling impiegato. Ad esempio, se viene scelto il max pooling, viene preso il valore più grande nella finestra. Questo valore più grande rappresenta la caratteristica più essenziale dell'immagine.

Supponiamo che l'input sia un'immagine di tre cani. Il valore più grande qui corrisponderebbe al volto del cane. D'altra parte, se viene scelto il pooling medio, fornirà una panoramica delle caratteristiche dell'immagine, come il motivo o la struttura di un cane.

L'operazione di pooling crea una rappresentazione campionata verso il basso dei dati di input. Di conseguenza, l'immagine diventa più piccola e più accessibile da elaborare, aumentando la velocità computazionale.

Puoi applicare i livelli di pooling più volte nei modelli di deep learning, riducendo progressivamente le dimensioni spaziali delle mappe delle caratteristiche. Ciò consente alla rete di gestire immagini grandi e architetture profonde in modo più efficace.

Mentre il pooling affina gli output, l'apprendimento stesso inizia prima. Scopri come la retropropagazione guida l'addestramento delle reti neurali.

Vuoi saperne di più su Software di Reti Neurali Artificiali? Esplora i prodotti Rete Neurale Artificiale.

Perché i livelli di pooling sono importanti?

Quando i livelli convoluzionali producono una mappa delle caratteristiche, è dipendente dalla posizione. Ciò significa che un oggetto sarebbe irriconoscibile se spostato in una posizione diversa. Il livello di pooling offre invarianza traslazionale, garantendo che anche se un oggetto in un'immagine viene traslato, la rete neurale convoluzionale possa ancora riconoscerlo.

I livelli di pooling esistono sopra il livello convoluzionale, dove riducono il campionamento dell'output del livello di convoluzione attraverso filtri di varie dimensioni. Normalmente, vengono utilizzati livelli di max o average pooling, ma ci sono vari altri tipi di livelli di pooling utilizzati nelle CNN a seconda del caso d'uso.

Tipi di livelli di pooling

Esistono diversi tipi di pooling, come max, average, global o stochastic pooling. Approfondisci per comprendere i loro benefici e come differiscono.

Max pooling

Il max pooling è il metodo di pooling più comune. Divide la mappa delle caratteristiche di input in regioni più piccole, chiamate finestre di pooling o campi recettivi. Queste sono tipicamente di dimensioni 2x2 o 3x3. In ogni finestra di pooling, avviene un'operazione di aggregazione, dove viene selezionato il valore massimo nella griglia 2x2.

max pooling

Il valore massimo corrisponde alla caratteristica più significativa all'interno di ciascuna regione dell'immagine, rendendo più facile per il sistema identificare i modelli chiave.

Di seguito è riportato il processo di max pooling.

  • Crea finestre di pooling. La mappa delle caratteristiche è divisa in regioni non sovrapposte di dimensioni 2x2 o 3x3.
  • Scegli il valore massimo. Il max pooling raccoglie il valore più alto per ciascuna regione.
  • Produci una mappa delle caratteristiche poolata. Utilizzando il valore più alto di ciascuna regione, crea una mappa delle caratteristiche poolata. Questa avrà dimensioni inferiori rispetto alla mappa delle caratteristiche convoluta.

Man mano che la dimensione della mappa delle caratteristiche si riduce, così fa la potenza computazionale richiesta per elaborare l'immagine. Questo tipo di pooling cattura le caratteristiche più importanti e scarta i dettagli irrilevanti. Rende la rete più robusta a piccoli spostamenti o traslazioni in un'immagine.

Average pooling

L'average pooling funziona allo stesso modo del max pooling, ma anziché selezionare il valore massimo, prende il valore medio di ogni regione. Considerando tutti i valori in una regione, l'average pooling conserva più informazioni sulle caratteristiche.

average pooling

Ecco come funziona l'average pooling:

  • Dividi la mappa delle caratteristiche. La mappa delle caratteristiche è divisa in regioni non sovrapposte.
  • Calcola il valore medio. L'average pooling calcola la media di tutti i valori in un'area.
  • Sviluppa una mappa delle caratteristiche poolata. Questi valori medi compongono la mappa delle caratteristiche poolata. La mappa delle caratteristiche poolata prodotta dall'average pooling è più liscia e meno rumorosa di quella prodotta dal max pooling.

Global pooling

Il global pooling viene applicato su tutta la mappa delle caratteristiche e restituisce un singolo valore per ciascuna mappa delle caratteristiche. Questo tipo di livello di pooling funziona nelle fasi finali delle reti neurali convoluzionali, dove la mappa delle caratteristiche viene convertita in un vettore a dimensione fissa prima di essere passata ai livelli completamente connessi.

global pooling

Il global pooling include anche i metodi di max e average pooling. Il global max pooling utilizza il valore massimo dell'intera mappa delle caratteristiche, mentre il global average pooling prende il valore medio. Fornisce una dimensione di output fissa indipendentemente dalla dimensione dell'input, rendendo più semplice il collegamento a livelli densi e completamente connessi.

Stochastic pooling

Lo stochastic pooling introduce casualità nel processo di pooling. Sceglie i valori in base alla distribuzione di probabilità derivata da diversi valori nella regione di pooling. Qui, non si seleziona un valore massimo o medio da diverse aree sulla mappa delle caratteristiche.

Fonte: Citeseerx

La casualità impedisce alla rete di overfitting sui dati di addestramento. Questo porta a una migliore generalizzazione, permettendo alla rete di esplorare diverse rappresentazioni delle caratteristiche.

Benefici e sfide dei livelli di pooling

I livelli di pooling preservano le caratteristiche più critiche dei dati di input offrendo invarianza di traslazione. Ciò consente al modello di generare lo stesso output indipendentemente da piccoli cambiamenti nell'input.

Questi livelli sono cruciali nella dimensione e complessità dei modelli di machine learning, rendendoli utili in diversi compiti di machine learning. Sono posizionati dopo i livelli convoluzionali in una CNN, dove riducono il campionamento dell'output, aiutando il modello a elaborarlo più velocemente. Questi livelli aiutano anche a selezionare le caratteristiche più importanti di un'immagine utilizzando la tecnica del max pooling.

Sebbene il livello di pooling riduca le dimensioni di un livello di input, contribuisce anche a una certa perdita di informazioni dalle mappe delle caratteristiche. C'è la possibilità di sovra-lisciare le mappe delle caratteristiche che potrebbe portare a una perdita di dettagli cruciali per il compito di regressione finale.

Inoltre, entrano in gioco iperparametri come le regioni di pooling e la dimensione del passo. Il passo valuta quanti quadrati o pixel i filtri saltano quando si spostano su un'immagine da sinistra a destra o dall'alto verso il basso. È necessario regolarli per ottenere prestazioni ottimali, il che può richiedere tempo e richiedere una ragionevole esperienza nel modello.

Rendere le CNN più veloci

I livelli di pooling rendono le reti neurali più robuste contro le distorsioni nei dati di input. Migliorano anche le prestazioni del modello su nuovi dati non visti riducendoli e impedendo che si adattino troppo strettamente ai dati di addestramento.

In generale, rendono le reti neurali convoluzionali più veloci semplificando i dati pur mantenendo informazioni importanti.

Scopri le reti neurali ricorrenti e comprendi come rendono più facile il riconoscimento vocale e la didascalia delle immagini.

Modificato da Monishka Agrawal

Sagar Joshi
SJ

Sagar Joshi

Sagar Joshi is a former content marketing specialist at G2 in India. He is an engineer with a keen interest in data analytics and cybersecurity. He writes about topics related to them. You can find him reading books, learning a new language, or playing pool in his free time.