Sobes.tech
Middle — Senior

Ποιοι τύποι κανονικοποίησης υπάρχουν (Batch, Layer, Instance, Group, RMSNorm);

sobes.tech AI

Απάντηση από AI

Η κανονικοποίηση σε νευρωνικά δίκτυα βοηθάει στην σταθεροποίηση και επιτάχυνση της εκπαίδευσης, μειώνοντας την εσωτερική μετατόπιση της κατανομής των ενεργοποιήσεων. Οι κύριοι τύποι κανονικοποίησης:

  • Κανονικοποίηση παρτίδας (Batch Normalization, BatchNorm) — κανονικοποίηση ανά παρτίδα. Υπολογίζει το μέσο όρο και την διακύμανση για κάθε χαρακτηριστικό σε ένα mini-batch, και στη συνέχεια κλιμακώνει και μετατοπίζει τις τιμές. Αποτελεσματική, αλλά εξαρτάται από το μέγεθος της παρτίδας.

  • Κανονικοποίηση επιπέδου (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)