Какви видове нормализация съществуват (Batch, Layer, Instance, Group, RMSNorm)?
sobes.tech AI
Отговор от AI
Нормализацията в невронните мрежи помага за стабилизирането и ускоряването на обучението, като намалява вътрешното изместване на разпределението на активиранията. Основните видове нормализация:
-
Batch Normalization (BatchNorm) — нормализация по партида. Изчислява средното и дисперсията за всяка характеристика върху мини-партия, след което мащабира и преместване стойностите. Ефективна е, но зависи от размера на партидата.
-
Layer Normalization (LayerNorm) — нормализация по слой. Изчислява статистики за всички неврони на слой за всеки отделен пример, независимо от размера на партидата. Често се използва в RNN и трансформатори.
-
Instance Normalization (InstanceNorm) — нормализация по пример и канал, често при обработка на изображения, например при пренасяне на стил.
-
Group Normalization (GroupNorm) — разделя каналите на групи и нормализира вътре във всяка група. Работи стабилно при малки размери на партидата.
-
RMSNorm (Root Mean Square Normalization) — нормализация по корена на средната стойност на квадратите, без изваждане на средното. Упростена алтернатива на LayerNorm, понякога дава по-добри резултати в трансформаторите.
Пример за BatchNorm в PyTorch:
import torch
import torch.nn as nn
batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10) # партида от 32 примера
output = batch_norm(x)