Sobes.tech
Middle — Senior

Какви видове нормализация съществуват (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)