Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Der Unterschied zwischen Batch-Normalisierung und Layer-Normalisierung

Der Unterschied zwischen Batch-Normalisierung und Layer-Normalisierung

WBOY
WBOYnach vorne
2024-01-23 22:00:121200Durchsuche

Der Unterschied zwischen Batch-Normalisierung und Layer-Normalisierung

Normalisierung wird häufig verwendet, um das Problem explodierender oder verschwindender Gradienten in neuronalen Netzen zu lösen. Dabei werden die Werte eines Merkmals in den Bereich [0,1] abgebildet, sodass alle Werte im gleichen Maßstab oder in der gleichen Verteilung liegen. Einfach ausgedrückt normalisiert die Normalisierung die Eingabe in ein neuronales Netzwerk und erhöht die Trainingsgeschwindigkeit.

Zwei Arten der Normalisierung

Es gibt hauptsächlich zwei Arten von Normalisierungstechniken, nämlich:

  • Batch-Normalisierung
  • Layer-Normalisierung

Batch-Normalisierung (Batch-Normalisierung)

Um die Ausgabe der verborgenen Ebene zu erhalten, Normalerweise verwenden wir eine nichtlineare Aktivierungsfunktion, um die Eingabe zu verarbeiten. Und für jedes Neuron in einer bestimmten Schicht können wir es voraktivieren, sodass es einen Mittelwert von Null und eine Einheitsstandardabweichung aufweist. Dies kann durch die Durchführung einer Mittelwertsubtraktion und einer Standardabweichungsdivision für einen Mini-Batch von Eingabemerkmalen erreicht werden.

Allerdings kann es zu streng sein, alle Voraktivierungen auf Null und eine Einheitsstandardabweichung für alle Chargen zu zwingen, sodass die Einführung einer bestimmten Fluktuationsverteilung dem Netzwerk beim Lernen besser helfen kann.

Um dieses Problem zu lösen, führt die Batch-Normalisierung zwei Parameter ein: Skalierungsfaktor Gamma (γ) und Offset Beta (β), die beide lernbare Parameter sind.

Bei der Batch-Normalisierung müssen wir auf die Verwendung von Batch-Statistiken achten. Wenn die Chargengröße klein ist, reichen der Stichprobenmittelwert und die Standardabweichung nicht aus, um die tatsächliche Verteilung darzustellen, was dazu führt, dass das Netzwerk keine aussagekräftigen Informationen erhält. Daher müssen wir sicherstellen, dass die Stapelgröße groß genug ist, um genauere Statistiken zu erhalten und dadurch die Leistung und das Lernen des Modells zu verbessern.

Layer-Normalisierung (Layer-Normalisierung)

Layer-Normalisierung ist eine von den Forschern Jimmy Lei Ba, Jamie Ryan Kiros und Geoffrey E. Hinton vorgeschlagene Methode. Die Kernidee dieser Methode besteht darin, für alle Merkmale einer gegebenen Eingabe über alle Neuronen in einer bestimmten Schicht die gleiche Verteilung zu erreichen. Im Gegensatz zur Batch-Normalisierung führt die Schichtnormalisierung eine Normalisierungsoperation für die Merkmalsdimension jeder Probe durch. Es normalisiert die Ausgabe dieser Schicht, indem es den Mittelwert und die Varianz jedes Neurons auf den Eingabemerkmalen berechnet. Diese Methode kann dem Modell helfen, sich an kleine Datenmengen anzupassen und die Generalisierungsfähigkeit des Modells zu verbessern. Der Vorteil der Ebenennormalisierung besteht darin, dass sie nicht auf Stapeln zur Normalisierung aller Features basiert, sondern jede Eingabe auf eine bestimmte Ebene normalisiert, wodurch die Abhängigkeit von Stapeln entfällt. Dadurch eignet sich die Schichtnormalisierung gut für Sequenzmodelle wie den beliebten Transformer und Recurrent Neural Networks (RNN).

Hauptunterschiede zwischen Batch-Normalisierung und Layer-Normalisierung

1. Die Batch-Normalisierung normalisiert jedes Feature unabhängig in einem Mini-Batch. Die Layer-Normalisierung normalisiert jede Eingabe im Stapel unabhängig über alle Features hinweg.

2. Da die Chargennormalisierung von der Chargengröße abhängt, ist sie für kleine Chargen nicht wirksam. Die Ebenennormalisierung ist unabhängig von der Chargengröße und kann daher auch auf kleinere Chargen angewendet werden.

3. Die Batch-Normalisierung erfordert eine unterschiedliche Verarbeitung während des Trainings und der Inferenz. Da die Schichtnormalisierung entlang der Eingabelänge einer bestimmten Schicht erfolgt, können zur Trainings- und Inferenzzeit dieselben Operationen verwendet werden.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Batch-Normalisierung und Layer-Normalisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:163.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen