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-ի, որը երբեմն տալիս է ավելի լավ արդյունքներ փոխակերպիչներում։

PyTorch-ում BatchNorm-ի օրինակ՝

import torch
import torch.nn as nn

batch_norm = nn.BatchNorm1d(num_features=10)
x = torch.randn(32, 10)  # 32 օրինակով բատչ
output = batch_norm(x)