Note
Il Batch Normalization layer è il layer di normalizzazione più utilizzato, ma non rappresenta l’unica possibilità.
🔴 Major issue BN layer
Il problema del BN layer è insito nel fatto che calcola media e varianza della distribuzione dei campioni la cui numerosità è pari alla dimensione dei mini-batch. Se la dimensione del mini-batch è sufficientemente grande, ad esempio , la stima risulta attendibile. Tuttavia, qualora il mini-batch è molto piccolo, ad esempio , 2 o addirittura — la media coincide con il valore del singolo campione o quasi, e in questi casi la normalizzazione perde efficacia, fino a non essere di fatto attuata nel caso degenere di mini-batch size unitario.
**Batch Normalization soffre quando si utilizzano mini-batch di piccole dimensioni. Esiste una pletora eterogenea di scenari in cui mini-batch piccoli sono essenziali: ad esempio, per ridurre il grado di determinismo dell’apprendimento, poiché più è piccola la dimensione del mini-batch, maggiore è il grado di aleatorietà del metodo del gradiente discendente — e quindi dell’intero processo di apprendimento. Inoltre, in alcuni contesti, l’utilizzo di mini-batch di grandi dimensioni risulta troppo oneroso, come nel caso in cui si operi con immagini 3D molto grandi.
Solution: Layer Normalization
Una valida alternativa è quella del Layer Normalization, una tecnica che applica la normalizzazione in modo differente, risultando più adatta in alcuni contesti nei quali la Batch Normalization risulta meno efficace, ad esempio quando si utilizzano mini-batch di piccole dimensioni o in architetture ricorrenti o sequenziali, dove la dipendenza temporale rende meno adatta la stima statistica su mini-batch.
Layer Normalization for MLPs
Note
Le formule sono formalmente analoghe a quelle della BN.
Tuttavia, con la Layer Normalization, la normalizzazione non viene più effettuata lungo la dimensione del batch (cioè non si fissa piu un neurone e si normalizza sui tutti i campioni del mini-batch), ma lungo la dimensione dei neuroni (o feature, nel caso delle CNN) (cioè si fissa un campione del mini-batch e si normalizza rispetto ai neuroni del layer che si sta considerando).
Di conseguenza, non rappresenta la media calcolata sui campioni del mini-batch fissato un certo neurone, come avviene nella Batch Normalization, bensì la media calcolata su tutti i neuroni del layer per un singolo campione del batch.
Ad esempio, se si ha un hidden layer (nel caso di un MLP) composto da neuroni e un mini-batch di campioni, ciascun campione viene normalizzato individualmente lungo i neuroni del layer. Questo approccio funziona anche con mini-batch di dimensione 1, a differenza della BN.
Dunque, Layer Normalization prescrive che ogni campione del mini-batch venga normalizzato layer-wise, cioè la media e la varianza sono calcolate sui neuroni (o feature) del layer per ciascun singolo campione, non sui campioni del mini-batch.
Recap
- Batch Normalization (BN): si fissa un neurone (canale per le CNN) e si normalizza sui tutti campioni del mini-batch.
- Layer Normalization (LN): si fissa un campione del mini-batch e si normalizza attraverso i neuroni (nel caso di MLP) o i canali (nel caso di CNN).


Advantages of LN w.r.t BN
Poiché la Layer Normalization considera la dimensione dei neuroni (o dei canali nelle CNN) e non quella del batch, la rete sarà in grado di apprendere un modo per riscalare lo spazio delle feature.
Important
La Batch Normalization è feature-agnostica: ogni feature (cioè ogni neurone) viene normalizzata rispetto ai campioni del mini-batch.
La rete, quindi, non ha controllo diretto sullo spazio delle feature del layer, perché la normalizzazione avviene separatamente per ciascuna di esse, indipendentemente dal contesto complessivo del layer.Al contrario, la Layer Normalization esegue una normalizzazione dello spazio delle feature del layer hidden considerato: questo approccio è molto più potente della BN.
Trasformare lo spazio delle feature è esattamente ciò che si è visto nel caso delle SVM nel Machine Learning, dove con il kernel trick si trasforma lo spazio delle feature in uno spazio a dimensione superiore, potenzialmente infinita.
Una SVM con kernel gaussiano, ad esempio, proietta le feature del nostro spazio originale (ad esempio uno spazio di cardinalità 1000) in uno spazio a dimensione infinita. Proiettare in uno spazio a dimensione superiore è estremamente vantaggioso nel Machine Learning, perché in quello spazio le feature potrebbero essere più separabili. La stessa cosa, mutatis mutandis, accade qui: la rete può apprendere come trasformare lo spazio delle feature in modo da trarre beneficio da tale trasformazione, sia per quel layer che per i layer successivi.
Important
Infatti, la Layer Normalization è lo standard de facto nei Transformer.
Disadvantages of LN w.r.t BN

📊 Perché la Layer Normalization ha più parametri apprendibili rispetto alla Batch Normalization?
Batch Normalization (BN)
- Normalizza ogni neurone (MLP) o ogni feature map (CNN), scorrendo lungo i campioni del mini-batch.
- Apprende **due parametri per neurone (feature map o canale nelle CNN):
- : scala
- : shift
- ✅ Totale parametri apprendibili:
- MLP: (dove è il numero di neuroni)
- CNN: (dove è il numero di canali di uscita)
Layer Normalization (LN)
- Normalizza ogni singolo esempio del batch,
scorrendo su tutte le feature (cioè su neuroni, canali e posizioni spaziali).- Anche qui si apprendono e , ma per ogni posizione normalizzata.
- ❗ Nelle CNN, LN:
- Non condivide i parametri sulle dimensioni spaziali
- Applica una trasformazione affine per ogni posizione del tensore
- Totale parametri apprendibili:
Confronto finale
- BN: pochi parametri (uno per neurone o canale)
- LN: molti più parametri nelle CNN, poiché lavora su tutte le dimensioni e non solo per feature
📌 Se , , allora LN introduce 25.088 parametri solo per e (contro i 128 della BN con ).