Batch Normalization är en teknik som används i djupa neurala nätverk för att förbättra träningshastighet, stabilitet och konvergens. Dess primära syfte är att hantera problemet med intern kovariatförskjutning, vilket avser förändringen i fördelningen av varje lagers ingångar under träning på grund av förändringar i det föregående lagrets parametrar. Denna förändring kan sakta ner träningsprocessen och göra det svårare för varje lager att lära sig effektivt.
Så fungerar normalisering av batcher
-
Normalisering inom mini-batcher: Under träningen normaliserar batch-normalisering indata för varje lager genom att subtrahera medelvärdet för mini-batch och dividera med standardavvikelsen för mini-batch. Detta bidrar till att minska den interna kovariatförskjutningen, vilket gör nätverket mer stabilt och möjliggör snabbare träning.
-
Inlärningsbara parametrar: Batch-normalisering introducerar två inlärningsbara parametrar per aktivering, vanligtvis kallade skal- och skiftparametrar. Dessa parametrar gör det möjligt för modellen att anpassa och lära sig den optimala skalan och förskjutningen för varje lagers ingångar.
-
Normalisering över funktioner: Förutom att normalisera över mini-batch-dimensionen normaliserar batch-normalisering också över funktionerna för varje prov inom batchen. Denna normalisering utförs oberoende för varje funktionsdimension.
Inverkan på utbildningen
-
Snabbare konvergens: Batchnormalisering leder ofta till snabbare konvergens under träningen genom att högre inlärningshastigheter kan användas utan risk för divergens.
-
Minskning av överanpassning: Den fungerar som en form av regularisering, vilket minskar beroendet av dropout eller andra regulariseringstekniker och därmed i viss mån bidrar till att förhindra överanpassning.
-
Stabilitet och gradientflöde: Den stabiliserar träningsprocessen genom att minska sannolikheten för att gradienter försvinner eller exploderar, vilket möjliggör ett mer robust gradientflöde genom nätverket.
Nackdelar och begränsningar
-
Beroende av batchstorlek: Batchnormaliseringens effektivitet kan påverkas av den batchstorlek som används under träningen. Mycket små batchstorlekar kan leda till felaktiga uppskattningar av minibatchstatistiken, vilket påverkar dess prestanda.
-
Svårighet att tillämpa på vissa arkitekturer: Batch-normalisering kanske inte fungerar optimalt med recurrent neural networks (RNNs) på grund av den sekventiella karaktären hos deras beräkningar.
-
Inverkan på inferens: Under inferens måste medelvärdet och standardavvikelsen som används för normalisering uppskattas från hela träningsdatasetet eller från löpande statistik, vilket kan medföra viss diskrepans, särskilt i fall där inferensdatafördelningen skiljer sig avsevärt från träningsdata.
Även om batchnormalisering är en kraftfull teknik och ofta används i många djupinlärningsarkitekturer, kan dess effektivitet variera beroende på nätverksarkitektur, datadistribution och specifika användningsfall. I vissa scenarier kan alternativ som skiktnormalisering eller instansnormalisering vara att föredra.