Il concetto di normalizzazione batch nelle reti neurali

Aggiornato su September 02, 2024 3 minuti a leggere

Il concetto di normalizzazione batch nelle reti neurali cover image

La Normalizzazione batch è una tecnica utilizzata nelle reti neurali profonde per migliorare la velocità di allenamento, la stabilità e la convergenza. Il suo scopo principale è affrontare il problema dello spostamento della covariata interna, che si riferisce al cambiamento nella distribuzione degli input di ciascun livello durante l’addestramento a causa dei cambiamenti nei parametri del livello precedente. Questo cambiamento può rallentare il processo di formazione e rendere più difficile per ogni livello apprendere in modo efficace.

Come funziona la normalizzazione batch

  • Normalizzazione all’interno dei mini-batch: durante l’addestramento, la normalizzazione dei batch normalizza l’input di ciascun livello sottraendo la media del mini-batch e dividendo per la deviazione standard del mini-batch. Ciò aiuta a ridurre lo spostamento della covariata interna, rendendo la rete più stabile e consentendo un addestramento più rapido.

  • Parametri apprendibili: la normalizzazione batch introduce due parametri apprendibili per attivazione, generalmente indicati come parametri scala e spostamento. Questi parametri consentono al modello di adattarsi e apprendere la scala e lo spostamento ottimali per gli input di ciascun livello.

  • Normalizzazione tra le funzionalità: oltre a normalizzare la dimensione del mini-batch, la normalizzazione batch normalizza anche le funzionalità per ciascun campione all’interno del batch. Questa normalizzazione viene eseguita in modo indipendente per ciascuna dimensione della feature.

Impatto sulla formazione

  • Convergenza più rapida: la normalizzazione batch spesso porta a una convergenza più rapida durante l’addestramento consentendo l’utilizzo di tassi di apprendimento più elevati senza il rischio di divergenza.

  • Riduzione dell’overfitting: agisce come una forma di regolarizzazione, riducendo la dipendenza dall’abbandono o da altre tecniche di regolarizzazione, aiutando così a prevenire in una certa misura l’overfitting.

  • Stabilità e flusso del gradiente: stabilizza il processo di allenamento riducendo la probabilità che i gradienti scompaiano o esplodano, consentendo un flusso del gradiente più robusto attraverso la rete.

Svantaggi e limitazioni

  • Dipendenza dalla dimensione del batch: l’efficacia della normalizzazione del batch può essere influenzata dalla dimensione del batch utilizzata durante l’addestramento. Batch di dimensioni molto ridotte possono portare a stime imprecise delle statistiche dei mini-batch, influenzandone le prestazioni.

  • Difficoltà di applicazione ad alcune architetture: la normalizzazione batch potrebbe non funzionare in modo ottimale con le reti neurali ricorrenti (RNN) a causa della natura sequenziale del loro calcolo.

  • Impatto sull’inferenza: durante l’inferenza, la media e la deviazione standard utilizzate per la normalizzazione devono essere stimate dall’intero set di dati di addestramento o dalle statistiche in esecuzione, il che potrebbe introdurre alcune discrepanze, soprattutto nei casi in cui la distribuzione dei dati di inferenza differisce in modo significativo da i dati di allenamento.

Sebbene la normalizzazione batch sia una tecnica potente e comunemente utilizzata in molte architetture di deep learning, la sua efficacia può variare in base all’architettura di rete, alla distribuzione dei dati e ai casi d’uso specifici. In alcuni scenari, potrebbero essere preferite alternative come la normalizzazione dei livelli o la normalizzazione delle istanze.