Paras vastaus
ReLU määritellään f (x) = max (0, x). Softplus on sen differentiaalinen korvike ja määritellään muodossa f (x) = ln (1 + e ^ x).
Sekä ReLU että Softplus ovat suurelta osin samanlaisia, paitsi lähellä 0, jossa softplus on houkutteleva sileä ja erilainen. ReLU: n ja sen johdannaisen laskeminen on paljon helpompaa ja tehokkaampaa kuin softplus-funktiolle, jonka muotoilussa on log (.) Ja exp (.). Mielenkiintoista on, että softplus-funktion derivaatti on logistinen funktio: f ”(x) = \ frac {1} {1 + e ^ {- x}}.
Syvässä oppimisessa lasketaan aktivointitoiminto ja sen johdannainen on yhtä usein kuin lisäys ja vähennys aritmeettisesti. Siirtymällä ReLU: han eteen- ja taaksepäin kulku on paljon nopeampi, mutta samalla säilytetään syvän hermoverkkojen hyödyllisyyden edellyttämän aktivointitoiminnon epälineaarisuus.
Vastaus
Aktivointitoiminnon koko kohdan on oltava epälineaarinen.
Haluan selitä miksi. Jos sinulla on monikerroksinen verkko (ns. ”syvä” ”matalaa” verkkoa vastaan), mallisi voisi mahdollisesti oppia havaitsemaan tai käsittelemään paljon kehittyneempiä esimerkkejä. Verkkosi käyttäisi enemmän yhteyksiä käytettäessä painojen välillä (ja todennäköisesti enemmän painoja). Laskelmia tehtäessä suuri osa tarkoittaa todellista kertomista ja numeroiden yhteenlaskemista, kuten:
y = f (W x + b).
f (\ cdot) on jokin aktivointitoiminto.
Kun kaskadoit kerrokset, jokaisen kerroksen ulostulosta tulee tuloa seuraavalle kerrokselle. Esimerkiksi kahdelle tasolle:
y = x\_2 = f (W\_2 x\_1 + b\_2) = f (W\_2 f (W\_1 x\_0 + b\_1) + b\_2).
Jos kuitenkin f (\ cdot) oli lineaarinen funktio f (x) = \ alpha x + \ beta, sitten koko verkko ”romahtaa” vain yksikerroksiseksi verkoksi yksinkertaisesti siksi, että se mikä tahansa lineaaristen funktioiden lineaarinen yhdistelmä on itse lineaarinen funktio.
Yllä oleva yhtälö tekisi:
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 ”.
Tämä on aivan kuin sinulla olisi yksikerroksinen verkko, jolla on hieman erilaiset painot.
Nyt ReLU esittelee epälineaarisuuden, mikä tarkoittaa, että yllä oleva lauseke ei enää päde, joten optimoijan on ”yritettävä enemmän” punnitusten todella kouluttamiseksi ja kaiken saamiseksi toimimaan. On tietysti myös muita ei-lineaarisia toimintoja (esim. Sigmoidi, tanh jne.), Mutta koko asia on, että niiden on oltava epälineaarisia.
Lopuksi juuri kirjoitettu esimerkki perustuu yksinkertaiseen tiheästi yhdistettyyn verkkoon, mutta luulen, että se ulottuu myös muihin tapauksiin.