Ποιοι τύποι κανονικοποίησης υπάρχουν (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)