Nejlepší odpověď
ReLU je definována jako f (x) = max (0, x). Softplus je jeho diferenciální náhrada a je definován jako f (x) = ln (1 + e ^ x).
ReLU i Softplus jsou do značné míry podobné, s výjimkou blízkosti 0, kde je softplus lákavě plynulý a odlišitelný. Je mnohem jednodušší a efektivnější vypočítat ReLU a jeho deriváty než pro funkci softplus, která má ve své formulaci log (.) A exp (.). Zajímavé je, že derivací funkce softplus je logistická funkce: f „(x) = \ frac {1} {1 + e ^ {- x}}.
Při hlubokém učení výpočet aktivační funkce a jeho derivace je stejně častá jako sčítání a odčítání v aritmetice. Přepnutím na ReLU jsou průchody vpřed a vzad mnohem rychlejší při zachování nelineární povahy aktivační funkce potřebné pro hluboké neurální sítě, aby byly užitečné.
Odpověď
Celý bod aktivační funkce musí být nelineární.
Dovolte mi vysvětlete proč. Máte-li síť více vrstev (tzv. „hluboká“ proti „mělké“ síti), mohl by se váš model potenciálně naučit detekovat nebo zpracovat mnohem propracovanější příklady. Při provozu by vaše síť využívala více propojení mezi váhami (a nejpravděpodobněji více vahami). Když provádíte výpočty, mnoho z toho znamená vlastně vynásobení a přidání čísel dohromady, například:
y = f (W x + b).
přičemž f (\ cdot) je nějaká aktivační funkce.
Když vrstvy „kaskádujete“, výstup každé vrstvy se stane vstupem do další. Například pro 2 vrstvy:
y = x\_2 = f (W\_2 x\_1 + b\_2) = f (W\_2 f (W\_1 x\_0 + b\_1) + b\_2).
Pokud však f (\ cdot) byla lineární funkce f (x) = \ alpha x + \ beta, pak by se celá síť „zhroutila“ do pouze jednovrstvé sítě, jednoduše proto, že libovolná lineární kombinace lineárních funkcí je lineární funkcí sama.
Rovnice výše by vykreslila:
x\_2 = \ alpha (W\_2 (\ alpha (W\_1 x\_0 + b\_1)) + \ beta) + b\_2) + \ beta = \ alpha ^ 2 W\_1 W\_2 x\_0 + \ alpha ^ 2 W\_1 W\_2 b\_1 + \ alpha ^ 2 W\_2 \ beta + \ alpha W\_2 b\_1 + \ beta = \ alpha „x\_0 + \ beta „.
Je to, jako byste měli síť s jednou vrstvou s mírně odlišnými váhami.
Nyní ReLU zavádí nelinearitu, což znamená, že výše uvedené prohlášení již neplatí, optimalizátor se tedy musí „více snažit“, aby vážení skutečně vycvičil a aby vše fungovalo. Samozřejmě existují i jiné nelineární funkce (např. Sigmoid, tanh atd.), Ale jde o to, že musí být nelineární.
Konečně je právě napsaný příklad založen na jednoduché hustě propojené síti, ale myslím, že se vztahuje i na další případy.