Považuje se přidání náhodného šumu ke skrytým vrstvám za regularizaci? Jaký je rozdíl mezi tím a přidáním výpadku a normalizace dávky?


Odpověď 1:

Ano, přidání náhodného šumu do skrytých vrstev je regularizace přesně stejným způsobem jako v případě výpadku. Hlavní intuicí je, že pokud je nervová odezva v každé vrstvě hlučná, pak trénink musí přizpůsobit váhy jednotlivým kategoriím s vůlí, která je větší než šum. Tedy v době, kdy hluk chybí, by klasifikace měla být stabilnější. Je to velmi podobné tomu, jak funguje klasifikace maximální marže, a všichni víme, jak úspěšné byly techniky maximální marže (např. Support Vector Machines). Musíte však být opatrní, abyste se ujistili, že šum nepřekonává signál.

Dropout je považován za metodu regularizace, protože provádí průměrování modelu. To znamená, že během tréninku je model v určitém časovém okamžiku ve skutečnosti pravděpodobnostní rozložení na třídu modelů neuronových sítí, ve kterých jsou závaží pevná, ale může chybět kterýkoli z neuronů v modelu. Celková pravděpodobnost každé neurální sítě je určena individuální pravděpodobností, že konkrétní neuron je přítomen nebo nepřítomen. Toto je regularizace, protože průměruje předpojatost jednotlivých případů a vyhlazuje nákladovou funkci.

Přidání náhodného šumu do skryté vrstvy funguje stejným způsobem, ale s odlišným rozdělením pravděpodobnosti. Spíše než s pevnými váhami máte pevnou topologii a rozdělení pravděpodobnosti volí váhy náhodně podle gaussovského rozdělení soustředěného na „skutečné“ váhy, tj. Hmotnosti, které ukládáte na pevný disk. Znovu se jedná o průměrování modelu a mělo by to mít vliv na regularizaci, s tím, že šum (rozptyl) by neměl signál přemoci. Pokud například poprvé použijete BatchNorm, budete mít zhruba standardní normální výstupní profil (jednotky vycentrované na nulu s rozptylem jedna) a poté můžete použít šum s rozptylem, řekněme 0,1. Můžete hrát s rozptylem, abyste viděli, co funguje.

EDIT: Vzhledem k tomu, že otázka se zmínila o BatchNorm, chtěl jsem zdůraznit, že BatchNorm se ve skutečnosti nepoužívá pro regularizaci. To znamená, že BatchNorm nevyrovnává náklady. Místo toho je přidán BatchNorm, aby se zlepšil výkon backpropagation. V podstatě chrání zadní šířený gradient před příliš velkým nebo malým změnou měřítka a nedávením; jako technika má hlubší propojení s metodami optimalizace druhého řádu, které se pokoušejí modelovat zakřivení nákladové plochy. Jak jsem již zmínil výše, BatchNorm lze také použít k zajištění správnosti relativního škálování, pokud chcete přidat neurální činnosti k náhodnému šumu.


Odpověď 2:

Považoval bych to za optimalizační trik víc než za regularizaci.

Účinek by měl být ekvivalentní účinku stochasticity v SGD.

SGD a jeho inspirace metodami Monte Carlo se vyhýbají uvíznutí v chudých lokálních minimech tím, že provádějí náhodný krok každou chvíli, místo přísného sledování směru nejstrmějšího sestupu; nebo dělat něco ekvivalentního v jejich různých inkarnacích, např. přidat náhodný komponent ke každému kroku namísto periodického provádění náhodného kroku.

Přidání slabého náhodného šumu k váhám dosáhne přesně toho samého. [Tip: Gradient sestup také přidává něco k váhám v každé iteraci!]


Odpověď 3:

UPRAVIT:

Přidání gaussovského distribuovaného náhodného šumu ke vstupním datům každé vrstvy může způsobit, že váš model bude robustnější vůči malým změnám v datech, což vaší síti umožní lépe rozlišit šum od signálu. Jak řekl Zeeshan Zia, v zásadě by to byl slušný stochastický gradient. Stále bych o této regularizaci neuvažoval. Je to spíše technika, která pomůže vašemu modelu naučit se vzory oddělit šum od signálu.

Dropout náhodně zakáže určitou část uzlů ve skryté vrstvě při každém průchodu. To zlepšuje síť, protože ji nutí naučit se rozpoznávat stejné vzorce několika způsoby, což vede k lepšímu modelu.

Dávka normalizace je místo, kde vezmete vstupy do vrstvy a ujistěte se, že jsou všechny normalizovány mezi 0 a 1. To pomáhá síti učit se lépe, protože udržuje gradient slušně konzistentnější a hladší. Tímto způsobem se vyhnete skákání kolem minima, protože váš sklon je příliš velký.