Dit artikel verduidelijkt de groepsnormalisatie op een fundamentele manier. Ik heb dit artikel samengesteld naar wat ik heb opgedaan met Fast.ai en deeplearning.ai. Ik zal beginnen met waarom we het nodig hebben, hoe het werkt, op dat moment hoe het te integreren in vooraf voorbereide systemen, bijvoorbeeld VGG.

Om welke reden gebruiken we groepsnormalisatie?

We standaardiseren de informatielaag door het aanpassen en schalen van de handelingen. Als we bijvoorbeeld hoogtepunten hebben van 0 tot 1 en sommige van 1 tot 1000, moeten we ze standaardiseren om het leren te versnellen. In het geval dat de informatielaag er baat bij heeft, waarom zouden we niet iets soortgelijks doen voor de kwaliteiten in de verborgen lagen, die voortdurend veranderen, en meerdere keren of meer verbetering in de voorbereidingssnelheid krijgen.

Groepsnormalisatie verlaagt de som met wat de verborgen eenheidsgedachten bewegen (covariantiebeweging). Om de covariantie beweging te verduidelijken, wat dacht je van een diepgaand systeem van katachtigeherkenning. We trainen onze informatie op alleen maar donkere katachtigen foto’s. In het geval dat we op dit moment proberen dit systeem toe te passen op informatie met gehulde katachtigen, is het vanzelfsprekend; we gaan niet op bewonderenswaardige wijze vooruit. De voorbereidingsset en de voorspellingsset zijn de twee foto’s van de katachtigen, maar ze verschillen een beetje. Aan het eind van de dag, als een berekening wat X aan Y mapping heeft aangepast, en op het moment dat de circulatie van X verandert, moeten we misschien de leerberekening opnieuw trainen door te proberen de verspreiding van X aan te passen aan de overdracht van Y. ( Deeplearning.ai: Om welke reden werkt Bunch Norm? (C2W3L06))

Bovendien stelt de standaardisatie van de klomp elke laag van een systeem in staat om te leren zonder dat iemand anders de input van verschillende lagen iets vrijer maakt.

We kunnen hogere leerpercentages gebruiken omdat de standaardisering van clusters ervoor zorgt dat er geen activering is die echt hoog of echt laag is. Ook, door dat, dingen die al niet de kans konden krijgen om zich voor te bereiden, zal het beginnen voor te bereiden.

Het vermindert overfitting in het licht van het feit dat het een lichte regularisatie-effect heeft. Net als bij dropout voegt het wat rumoer toe aan de inwijdingen van elke omhulde laag. Op deze manier, bij de kans dat we clump standaardisatie gebruiken, zullen we minder gebruik maken van dropout, wat de moeite waard is om dankbaar voor te zijn in het licht van het feit dat we niet veel gegevens zullen verliezen. Hoe dan ook, we moeten niet alleen afhankelijk zijn van groepsnormalisatie voor regularisatie; we kunnen het beter samen met drop-out gebruiken.

Hoe werkt groepsnormalisatie?

Om de stabiliteit van een neuraal netwerk te verhogen, normaliseert batchnormalisatie de output van een vorige activeringslaag door het batchgemiddelde af te trekken en te delen door de standaardafwijking van de batch.

Hoe het ook zij, na deze zet/omvang van de inwerkingstelling geeft een aantal willekeurig ingestelde parameters, de belastingen in de volgende laag zijn nooit meer ideaal. SGD (Stochastische hoekval) fixeert deze standaardisatie als het een pad is om het ongelukswerk te beperken.

Bijgevolg voegt batch-normalisatie twee trainbare parameters toe aan elke laag, zodat de genormaliseerde output wordt vermenigvuldigd met een “standaarddeviatie”-parameter (gamma) en een “gemiddelde” parameter (bèta) wordt toegevoegd. Aan het eind van de dag kan SGD door middel van batchnormalisatie de denormalisatie uitvoeren door alleen deze twee belastingen voor elke initiatie te veranderen, in plaats van de kracht van het systeem te verliezen door elk van de belastingen te veranderen.

Groepsstandaardisatie en vooraf voorbereide systemen zoals VGG:

VGG heeft geen cluster standaardlaag in zich, omdat er voor VGG geen groepsnormalisatie bestond. Bij de kans dat we er vanaf het begin mee trainen, zal het voorgeprogrammeerde gewicht profiteren van de standaardisatie van de acties. Het opnemen van een standaardlaag verbetert dus echt ImageNet, wat cool is. Je kunt het toevoegen aan dikke lagen, en bovendien aan convolutionele lagen.

In het geval dat we een groepsnorm inbedden in een geprepareerd systeem, zal het de geprepareerde ladingen veranderen, aangezien het het gemiddelde en het gat zal verminderen met de standaardafwijking voor de enactmentlagen en we hebben dat niet nodig om te gebeuren in het licht van het feit dat we die geprepareerde ladingen nodig hebben om het equivalent te blijven. Wat we dus moeten doen, is een standaardlaag van een groep inbedden en de gamma- en bèta-laag zinvol maken om de verandering in de opbrengst te fixeren.

Om alles samen te vatten, kunt u de standaardisatie beschouwen als het voorbewerken van elke laag van het systeem.