Otázka:
Proč jsou v backpropagaci problémem aktivační funkce, které nejsou zaměřeny na nulu?
Amelio Vazquez-Reina
2016-09-27 19:12:41 UTC
view on stackexchange narkive permalink

Přečetl jsem zde následující:

  • Sigmoidní výstupy nejsou zaměřeny na nulu . To je nežádoucí, protože neurony v pozdějších vrstvách zpracování v neuronové síti (více o tom brzy) by přijímaly data, která nejsou vycentrována na nulu. To má dopad na dynamiku při sestupu gradientu, protože pokud jsou data přicházející do neuronu vždy pozitivní (např. $ x > 0 $ elementwise v $ f = w ^ Tx + b $ )), pak se přechod na vahách $ w $ během zpětného šíření stane buď všemi pozitivní nebo všechny záporné (v závislosti na přechodu celého výrazu $ f $ ). To by mohlo zavést nežádoucí dynamiku cik-cak do aktualizací přechodu pro váhy. Všimněte si však, že jakmile se tyto přechody sčítají napříč dávkou dat, konečná aktualizace pro váhy může mít proměnné znaky, což tento problém poněkud zmírní. Jedná se tedy o nepříjemnost, ale ve srovnání s výše uvedeným problémem s nasycenou aktivací má méně závažné důsledky.

Proč by mít všechny $ x>0 $ (elementwise) vedou ke všem pozitivním nebo negativním přechodům na $ w $ ?


Stejnou otázku jsem měl také při sledování videí CS231n.
Jeden odpovědět:
dontloo
2016-09-28 08:08:31 UTC
view on stackexchange narkive permalink

$$ f = \ sum w_ix_i + b $$ $$ \ frac {df} {dw_i} = x_i $$ $$ \ frac {dL} {dw_i} = \ frac {dL} {df} \ frac {df} {dw_i} = \ frac {dL} { df} x_i $$

protože $ x_i>0 $ , přechod $ \ dfrac {dL} {dw_i} $ má vždy stejný znak jako $ \ dfrac {dL} {df} $ (všechny kladné nebo záporné).

Aktualizovat
Řekněme, že existují dva parametry $ w_1 $ a $ w_2 $ , pokud jsou přechody dvou dimenzí vždy stejného znaménka, znamená to, že se v prostoru parametrů můžeme pohybovat pouze zhruba ve směru severovýchod nebo jihozápad.

Pokud se náš cíl stane na severovýchodě, můžeme se tam pohybovat pouze klikatým způsobem, stejně jako paralelní parkování v úzkém prostoru. (odpusťte můj výkres)

enter image description here

Proto mohou být pro pozitivní nebo all-negativní aktivační funkce (relu, sigmoid) obtížné optimalizace. Abychom tento problém vyřešili, můžeme předem normalizovat data tak, aby byla vycentrována na nulu jako při normalizaci dávek / vrstev.

Dalším řešením, na které si myslím, je přidání zkreslení pro každý vstup, aby se vrstva stala $$ f = \ sum w_i (x_i + b_i). $$ Přechody jsou pak $$ \ frac {dL} {dw_i} = \ frac {dL} {df} (x_i-b_i) $$ značka nebude záviset pouze na $ x_i $ .

Opravte mě, pokud se mýlím, ale neměla by být hodnota dL / df transponována na x, tj. X.T, protože bychom zde používali myšlenku Jacobina.
@chinmay omlouvám se za pozdní odpověď, myslím, že $ f $ zde je výsledek $ w ^ Tx + b $, takže hodnota dL / df nezávisí na x, a obvykle $ L $ je skalární, $ w $ a$ x $ jsou 1d vektory, takže dL / df by měl být také skalární, že?
Ano, z mého konce je to velký překlep.Myslel jsem df / dw .... ale myslím, že to záleží více na vektoru x a jestli je to vektor řádků nebo vektor sloupců
@dontloo omlouvám se za velmi pozdní odpověď, ale jaký je problém s přechody, které mají stejné znaménko jako $ d L / d f $? Proč je to špatná věc?
@floyd ahoj, právě jsem přidal několik aktualizací pro vaši otázku
Není argument funkční pouze pro konkrétní případ (jako na obrázku)?Pokud je src vpravo nahoře a cíl je vlevo dole (nebo naopak), pak nebudeme mít dynamiku cik-cak, že?Nechápal jsem, jak to zde zobecňujeme?
@Vinay ano, nemyslím si, že je to široce použitelný případ, nejsem však expert na optimalizační metody


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...