Batchnormalisering er en teknik, der bruges i dybe neurale netværk til at forbedre træningshastighed, stabilitet og konvergens. Dens primære formål er at behandle spørgsmålet om internt kovariatskift, som refererer til ændringen i fordelingen af hvert lags input under træning på grund af ændringer i det foregående lags parametre. Dette skift kan bremse træningsprocessen og gøre det mere udfordrende for hvert lag at lære effektivt.
Sådan fungerer batchnormalisering
-
Normalisering inden for mini-batches: Under træning normaliserer batch-normalisering input af hvert lag ved at fratrække mini-batch-gennemsnittet og dividere med mini-batch-standardafvigelsen. Dette hjælper med at reducere det interne kovariatskifte, hvilket gør netværket mere stabilt og giver mulighed for hurtigere træning.
-
Lærbare parametre: Batchnormalisering introducerer to parametre, der kan læres pr. aktivering, typisk omtalt som skala og skift-parametre. Disse parametre gør det muligt for modellen at tilpasse sig og lære den optimale skala og skifte for hvert lags input.
-
Normalisering på tværs af funktioner: Ud over at normalisere på tværs af mini-batch-dimensionen, normaliserer batch-normalisering også på tværs af funktionerne for hver prøve i batchen. Denne normalisering udføres uafhængigt for hver funktionsdimension.
Indvirkning på træning
-
Hurtigere konvergens: Batchnormalisering fører ofte til hurtigere konvergens under træning ved at tillade brugen af højere indlæringshastigheder uden risiko for divergens.
-
Reduktion af overfitting: Det fungerer som en form for regularisering, der reducerer afhængigheden af frafald eller andre regulariseringsteknikker og hjælper derved til en vis grad at forhindre overfitting.
-
Stabilitet og gradientflow: Det stabiliserer træningsprocessen ved at reducere sandsynligheden for forsvindende eller eksploderende gradienter, hvilket muliggør mere robust gradientflow gennem netværket.
Ulemper og begrænsninger
-
Batchstørrelsesafhængighed: Batchnormaliseringens effektivitet kan påvirkes af batchstørrelsen, der bruges under træning. Meget små batchstørrelser kan føre til unøjagtige estimater af mini-batchstatistikken, hvilket påvirker dens ydeevne.
-
Svære ved at anvende på nogle arkitekturer: Batchnormalisering fungerer muligvis ikke optimalt med tilbagevendende neurale netværk (RNN'er) på grund af den sekventielle karakter af deres beregninger.
-
Påvirkning på inferens: Under inferens skal middelværdien og standardafvigelsen, der bruges til normalisering, estimeres ud fra hele træningsdatasættet eller fra løbestatistikker, hvilket kan introducere en vis uoverensstemmelse, især i tilfælde, hvor inferensdatafordelingen afviger væsentligt fra træningsdataene.
Mens batchnormalisering er en kraftfuld teknik og almindeligvis brugt i mange deep learning-arkitekturer, kan dens effektivitet variere baseret på netværksarkitektur, datadistribution og specifikke brugssager. I nogle scenarier kan alternativer som lagnormalisering eller forekomstnormalisering være at foretrække.