Batch-normalisering er en teknikk som brukes i dype nevrale nettverk for å forbedre treningshastighet, stabilitet og konvergens. Det primære formålet er å løse problemet med intern kovariatforskyvning, som refererer til endringen i fordelingen av hvert lags inndata under trening på grunn av endringer i det forrige lagets parametere. Denne forskyvningen kan forsinke treningsprosessen og gjøre det vanskeligere for hvert lag å lære effektivt.
Slik fungerer batchnormalisering
-
Normalisering innen minibatcher: Under treningen normaliserer batch-normalisering inndataene i hvert lag ved å trekke fra gjennomsnittet for minibatchene og dividere med standardavviket for minibatchene. Dette bidrar til å redusere den interne kovariatforskyvningen, noe som gjør nettverket mer stabilt og muliggjør raskere trening.
-
Parametere som kan læres: Batch-normalisering introduserer to lærbare parametere per aktivering, vanligvis referert til som skala- og skiftparametere. Disse parametrene gjør det mulig for modellen å tilpasse og lære seg den optimale skalaen og forskyvningen for hvert lags inndata.
-
Normalisering på tvers av funksjoner: I tillegg til å normalisere på tvers av minibatchdimensjonen, normaliserer batch-normalisering også på tvers av funksjonene for hver prøve i batchen. Denne normaliseringen utføres uavhengig for hver funksjonsdimensjon.
Påvirkning på opplæringen
-
Raskere konvergens: Batch-normalisering fører ofte til raskere konvergens under treningen ved at man kan bruke høyere læringshastigheter uten risiko for divergens.
-
Reduksjon av overtilpasning: Den fungerer som en form for regularisering som reduserer avhengigheten av frafall eller andre regulariseringsteknikker, og bidrar dermed til en viss grad til å forhindre overtilpasning.
-
Stabilitet og gradientflyt: Den stabiliserer treningsprosessen ved å redusere sannsynligheten for at gradienter forsvinner eller eksploderer, noe som gir en mer robust gradientflyt gjennom nettverket.
Ulemper og begrensninger
-
Avhengighet av batchstørrelse: Batchnormaliseringens effektivitet kan påvirkes av batchstørrelsen som brukes under treningen. Svært små batchstørrelser kan føre til unøyaktige estimater av minibatchstatistikken, noe som påvirker ytelsen.
-
Vanskelig å bruke på enkelte arkitekturer: Batch-normalisering fungerer kanskje ikke optimalt med tilbakevendende nevrale nettverk (RNNs)C_ på grunn av den sekvensielle beregningen.
-
Påvirkning på inferens: Under inferens må gjennomsnittet og standardavviket som brukes til normalisering, estimeres fra hele treningsdatasettet eller fra løpende statistikk, noe som kan føre til noe avvik, spesielt i tilfeller der fordelingen av inferensdataene avviker betydelig fra treningsdataene.
Selv om batch-normalisering er en kraftig teknikk og ofte brukes i mange dyplæringsarkitekturer, kan effektiviteten variere basert på nettverksarkitektur, datadistribusjon og spesifikke brukstilfeller. I noen scenarier kan alternativer som lagnormalisering eller forekomstnormalisering være å foretrekke.