Proč používáme s neurálními sítěmi rektifikované lineární jednotky (ReLU)? Jak to vylepšuje neurální síť?
Proč říkáme, že ReLU je aktivační funkce? Není aktivační funkce softmaxu pro neuronové sítě? Hádám, že používáme jak ReLU, tak softmax takto:
neuron 1 s výstupem softmax —-> ReLU na výstupu neuronu 1, což je vstup neuronu 2 —> neuron 2 s výstupem softmax -> …
takže vstup neuronu 2 je v podstatě ReLU (softmax (x1)). správně?
Odpověď
Funkce ReLU je $ f (x) = \ max (0, x). $ Obvykle se to aplikuje elementárně na výstup nějaké jiné funkce, jako je například produkt matice-vektor. V použití MLP nahradí usměrňovací jednotky všechny ostatní aktivační funkce kromě snad odečtu vrstvu. Ale předpokládám, že je můžete kombinovat, pokud chcete.
Jedním ze způsobů, jak ReLU zlepšují neurální sítě, je zrychlení tréninku. Výpočet přechodu je velmi jednoduchý (buď 0 nebo 1 v závislosti na znaménku $ x $ ). Výpočtový krok ReLU je také snadný: všechny negativní prvky jsou nastaveny na 0,0 – žádné exponenciály, žádné operace násobení nebo dělení.
Gradienty logistických a hyperbolických tangentních sítí jsou menší než kladná část ReLU. To znamená, že pozitivní část se s postupem tréninku aktualizuje rychleji. To však stojí za cenu. Gradient 0 na levé straně je má svůj vlastní problém, zvaný „mrtvé neurony“, ve kterém aktualizace přechodu nastavuje příchozí hodnoty na ReLU tak, že výstup je vždy nula; upravené jednotky ReLU, jako je ELU (nebo Leaky ReLU nebo PReLU atd.), to mohou zlepšit.
$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . Naopak gradient sigmoidní jednotky je maximálně $ 0,25 $ ; na druhou stranu $ \ tanh $ je lepší pro vstupy v oblasti blízké 0, protože 0,25 $ < \ frac {d} {dx} \ tanh (x) \ le 1 \ forall x \ in [-1,31, 1,31] $ (přibližně).
Komentáře
- Nevidím žádné důkazy o tom, že bych chtěl položit otázku nebo že jsem se zúčastnil této stránky. Upřímně jsem ‚ žasl nad tím, jak dobře ReLU funguje, ale ‚ jsem to přestal zpochybňovat :).
- @aginensky Zdá se, že komentář byl mezitím odstraněn.
- Komentář nebyl odstraněn mnou ani jsem nebyl informován. ‚ Přestal jsem odpovídat na otázky a myslím, že to znamená, že jsem ‚ skončil i s komentováním.
- @aginensky Nevím ‚, proč by to způsobilo, že přestanete komentovat. Pokud máte nějaké dotazy týkající se komentářů a moderování, můžete se zeptat v meta.stats.SE.
Odpovědět
Jedna důležitá věc, na kterou je třeba poukázat, je, že ReLU je idempotentní. Vzhledem k tomu, že ReLU je $ \ rho (x) = \ max (0, x) $ , je snadné vidět, že $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ platí pro jakoukoli konečnou kompozici. Tato vlastnost je velmi důležitá pro hluboké neuronové sítě, protože každá vrstva v síť aplikuje nelinearitu. Nyní použijeme dvě funkce rodiny sigmoidů na stejný vstup opakovaně 1–3krát:
Okamžitě vidíte, že sigmoidní funkce„ rozmačkávají “své vstupy, což má za následek úběžný problém přechodu: derivace se blíží k nule jako $ n $ (počet opakovaných aplikací) se blíží nekonečnu.
Odpověď
ReLU je maximální funkce (x, 0) se vstupem x např matice ze složitého obrazu. ReLU poté nastaví všechny záporné hodnoty v matici x na nulu a všechny ostatní hodnoty se udržují konstantní.
ReLU se počítá po konvoluci a je nelineární aktivační funkcí, jako je tanh nebo sigmoid.
Softmax je klasifikátor na konci neuronové sítě. To je logistická regrese k normalizaci výstupů na hodnoty mezi 0 a 1. (Alternativou je zde klasifikátor SVM).
Předání CNN, např .: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax
Komentáře
- Hlasování proti. To je velmi špatná odpověď! Softmax není klasifikátor! Jedná se o funkci, která normalizuje (upravuje) výstupy na rozsah [0,1] a zajišťuje jejich součet až 1. Logistická regrese nereguluje “ “ cokoli!Věta “ ReLU se počítá po konvoluci, a proto nelineární aktivační funkce jako tanh nebo sigmoid. “ postrádá sloveso nebo smysl.
- Odpověď není tak špatná. Věta bez slovesa musí být “ ReLU se počítá po konvoluci a JE proto nelineární aktivační funkce jako tanh nebo sigmoid. “ Myšlení softmaxu jako klasifikátoru má také smysl. Lze jej považovat za pravděpodobnostní klasifikátor, který přiřazuje pravděpodobnost každé třídě. “ reguluje “ / “ normalizuje “ výstupy do intervalu [0,1].
Odpověď
ReLU je doslovný přepínač. S elektrickým spínačem 1 volt vstup dává 1 volt ven, n voltů vstup dává n voltů ven, když je zapnutý. Zapnuto / Vypnuto, když se rozhodnete přepnout na nulu, poskytuje přesně stejný graf jako ReLU. Vážený součet (bodový součin) řady vážených součtů je stále lineární systém. U konkrétního vstupu jsou přepínače ReLU jednotlivě zapnuty nebo vypnuty. Výsledkem je konkrétní lineární projekce ze vstupu na výstup, protože přepínače spojují různé vážené součty váženého součtu … Pro konkrétní vstup a konkrétní výstupní neuron existuje složený systém vážených součtů, který lze ve skutečnosti shrnout do jediného účinného váženého součtu. Vzhledem k tomu, že stav přepínačů ReLU je nulový, nejsou ve výstupu žádné náhlé diskontinuity pro postupné změny na vstupu.
Existují i další numericky efektivní algoritmy váženého součtu (bodový produkt), jako je FFT a Walsh Hadamardova transformace. Neexistuje žádný důvod, proč je nelze začlenit do neurální sítě založené na ReLU a těžit z výpočtových zisků. (Např. Neuronové sítě s pevnou filtrační bankou.)
Odpovědět
ReLU je pravděpodobně jedna z nejjednodušších možných nelineárních funkcí. Kroková funkce je jednodušší. Kroková funkce má však první derivaci (přechod) nula všude, ale v jednom bodě, ve kterém má nekonečný gradient. ReLU má všude konečnou derivaci (gradient). Má nekonečnou druhou derivaci v jednom bodě.
Sítě pro předávání dopředu jsou trénovány hledáním nulového přechodu. Důležité je zde, že existuje spousta prvních derivací, které se mají vypočítat v rutině backpropagation ve velké síti, a pomáhá jim to, aby se rychle počítaly jako ReLU. Druhým je to, že na rozdíl od funkce step jsou přechody ReLU vždy konečné a nejsou triviální nuly téměř všude. Nakonec potřebujeme nelineární aktivace, aby síť pro hluboké učení fungovala dobře l, ale to je jiný předmět.