Come funziona e cosa è la Batch Normalization

AI, INTELLIGENZA ARTIFICIALE

Il problema centrale che la Batch Normalization (BN) mira a risolvere nel campo del deep learning è noto come “internal covariate shift”. Per comprendere appieno l’importanza di questa soluzione, è cruciale analizzare la natura del problema e il modo in cui la BN agisce efficacemente per mitigarlo.

Che Cos’è l’Internal Covariate Shift?

L’internal covariate shift si riferisce alle variazioni nella distribuzione degli input dei vari strati di una rete neurale durante il processo di training. Man mano che la rete si adatta e apprende dai dati, i pesi e i bias degli strati si aggiornano, causando una variazione continua delle distribuzioni degli input ricevuti dagli strati successivi. Questo fenomeno impone a ogni strato della rete di adattarsi costantemente a nuove distribuzioni, rallentando la convergenza del modello e rendendo più difficile il processo di training.

Perché l’Internal Covariate Shift è un Problema?

Il continuo cambiamento delle distribuzioni di input rende complicato per la rete stabilizzare l’apprendimento, poiché gli strati devono continuamente adattarsi a nuove condizioni. Questo non solo rallenta il training, ma rende anche più complessa la sintonizzazione dei parametri della rete, come il tasso di apprendimento e l’inizializzazione dei pesi. Inoltre, può portare a problemi di saturazione nelle funzioni di attivazione (ad esempio, nelle funzioni sigmoide e tanh), dove valori di input troppo elevati o troppo bassi riducono la sensibilità della rete alle variazioni dei dati di input.

Come Funziona la Batch Normalization?

La Batch Normalization affronta il problema dell’internal covariate shift normalizzando gli input di ciascun strato per ogni batch di dati. In pratica, questo significa regolare gli input degli strati in modo che abbiano una media prossima a zero e una varianza unitaria. Questo processo stabilizza le distribuzioni degli input per gli strati successivi, permettendo alla rete di apprendere in modo più efficiente.

Il processo di BN segue questi passaggi:

1.Calcolo della Media e della Varianza: Per ogni batch di dati, la BN calcola la media e la varianza degli input di uno strato.

2. Normalizzazione: Gli input vengono poi normalizzati sottraendo la media e dividendo per la radice quadrata della varianza aggiunta di un piccolo termine epsilon, per evitare la divisione per zero.

3. Riscalamento e Traslazione: Infine, gli input normalizzati vengono riscalati e traslati attraverso i parametri appresi \gamma e \beta

dove y è il valore normalizzato prodotto da ogni sub-strato della rete che passerà attraverso la funzione di attivazione, quali Sigmoide, Relu, Tanh ecc ecc.

Questi passaggi consentono alla BN di mantenere la capacità della rete di rappresentare le funzioni non-lineari,

Vantaggi della Batch Normalization

La stabilizzazione delle distribuzioni di input attraverso la BN porta a numerosi vantaggi:

  • Accelerazione del Training: Riducendo l’internal covariate shift, la BN permette di usare tassi di apprendimento più elevati senza il rischio di divergenza, accelerando significativamente il training.
  • Miglioramento dell’Inizializzazione: Con la BN, la rete diventa meno sensibile all’inizializzazione dei pesi.
  • Utilizzo Efficiente di Funzioni di Attivazione Non-Lineari: La BN riduce il rischio di saturazione per funzioni di attivazione come la sigmoide, permettendo di costruire reti neurali più profonde.
  • Effetto di Regolarizzazione: La BN introduce un leggero effetto di regolarizzazione, potenzialmente riducendo la necessità di altre tecniche come il dropout.

Se vuoi farmi qualche richiesta o contattarmi per un aiuto riempi il seguente form

    Comments