batch normalization
Megjelenés
Főnév
batch normalization (tsz. batch normalizations)
- (informatika, mesterséges intelligencia) Batch Normalization (röviden: BatchNorm) egy hatékony technika a mély neurális hálózatok tanításának felgyorsítására és stabilizálására. Az eljárás lényege, hogy egy adott réteg bemenetét normáljuk (átlag és szórás szerint), így csökkentve az ún. internal covariate shift hatását.
🧠 Alapötlet
A mély tanulás során a rétegek bemenete folyamatosan változik a tanítás alatt, ami lassíthatja vagy instabillá teheti a tanulást. A batch normalization ezt a hatást csökkenti azzal, hogy minden mini-batch-re újraszámítja és normálja az aktivációkat.
🔍 Működése
Tegyük fel, hogy egy réteg aktivációs kimenete:
1. Számítsuk ki a batch átlagát és szórását:
2. Normáljuk:
(ahol egy kis szám a nullával való osztás elkerülésére)
3. Skálázzuk és toljuk el tanulható paraméterekkel:
- : skálázási tényező (tanulható)
- : eltolási tényező (tanulható)
🧮 Összefoglaló képlettel
📊 Hol használjuk?
- Convolutional Neural Networks (CNN-ek): jellemzően a konvolúciós réteg után, aktiváció előtt
- Fully Connected rétegekben: szintén aktiváció előtt
- Generative modellekben: pl. GAN-ek
✅ Előnyök
| Előny | Leírás |
|---|---|
| 🧠 Gyorsabb konvergencia | Csökkenti a tanulási időt |
| 🔁 Nagyobb tanulási ráta megengedett | Kevésbé érzékeny a tanulási rátára |
| 📉 Regularizáló hatás | Enyhén csökkenti az overfitting esélyét |
| 🔒 Stabilabb tanulás | Mérsékli a belső változások miatti instabilitást |
⚠️ Hátrányok / Kihívások
- Mini-batch méretfüggő: kis batch esetén a statisztika pontatlan lehet
- Nem minden modellbe illeszkedik jól (pl. RNN-eknél nehezebb használni)
- Futtatási idő megnőhet inference során, ha nem cache-eljük az értékeket
🧠 Alternatívák
| Alternatíva | Használat |
|---|---|
| Layer Normalization | Főként RNN-eknél, batchfüggetlen |
| Instance Normalization | Képstílus-transzferben |
| Group Normalization | Kis batch méretekhez hatékony |
| Weight Normalization | Súlyokra alkalmazott normálás, más koncepció |
💻 Példa: PyTorch
import torch.nn as nn
model = nn.Sequential(
nn.Linear(100, 50),
nn.BatchNorm1d(50), # teljesen összekapcsolt réteghez
nn.ReLU(),
nn.Linear(50, 10)
)
CNN-nél:
nn.BatchNorm2d(num_features) # feature map csatornák száma
📌 TL;DR
Batch normalization egy technika, amely normálja a hálózat egy rétegének bemeneteit mini-batch szinten, hogy gyorsabb és stabilabb tanulást tegyen lehetővé. Aktiváció előtt illesztjük be, és tanulható eltolást/skálázást alkalmaz.
- batch normalization - Szótár.net (en-hu)
- batch normalization - Sztaki (en-hu)
- batch normalization - Merriam–Webster
- batch normalization - Cambridge
- batch normalization - WordNet
- batch normalization - Яндекс (en-ru)
- batch normalization - Google (en-hu)
- batch normalization - Wikidata
- batch normalization - Wikipédia (angol)