Hva er fordelene med å bruke ReLU over softplus som aktiveringsfunksjoner?


Beste svaret

ReLU er definert som f (x) = max (0, x). Softplus er dens differensielle surrogat og er definert som f (x) = ln (1 + e ^ x).

Både ReLU og Softplus er stort sett like, bortsett fra nær 0 der softplus er fristende glatt og differensierbar. Det er mye lettere og effektivt å beregne ReLU og dets derivat enn for softplus-funksjonen som har log (.) Og exp (.) I formuleringen. Interessant er at derivatet av softplus-funksjonen er den logistiske funksjonen: f «(x) = \ frac {1} {1 + e ^ {- x}}.

I dyp læring beregner du aktiviseringsfunksjonen og dets derivat er like hyppig som addisjon og subtraksjon i aritmetikk. Ved å bytte til ReLU er frem- og bakoverpasningene mye raskere mens de beholder den ikke-lineære naturen til aktiveringsfunksjonen som kreves for at dype nevrale nettverk skal være nyttige.

Svar

Hele poenget med en aktiveringsfunksjon er å være ikke-lineær.

La meg forklar hvorfor. Hvis du har et nettverk av flere lag (såkalt «dypt» mot et «grunt» nettverk), kan modellen din potensielt lære å oppdage eller håndtere mye mer sofistikerte eksempler. Når du opererer, vil nettverket bruke flere sammenkoblinger mellom vekter (og mest sannsynlig flere vekter). Når du gjør beregningene, betyr mye av det faktisk å multiplisere og legge sammen tall, som:

y = f (W x + b).

med f (\ cdot) som en eller annen aktiveringsfunksjon.

Når du «kaskader» lagene, blir utdataene fra hvert lag en inngang til det neste. For to lag, for eksempel:

y = x\_2 = f (W\_2 x\_1 + b\_2) = f (W\_2 f (W\_1 x\_0 + b\_1) + b\_2).

Hvis f (\ cdot) var en lineær funksjon f (x) = \ alpha x + \ beta så ville hele nettverket «kollapse» til bare ett-lags nettverk, ganske enkelt fordi det noe lineær kombinasjon av lineære funksjoner er en lineær funksjon i seg selv.

Ligningen ovenfor vil gjengi:

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 «.

Dette er akkurat som om du hadde et enkeltlagsnettverk med litt forskjellige vekter.

Nå introduserer ReLU ikke-linearitet, noe som betyr at utsagnet ovenfor ikke lenger holder, så optimalisereren må «prøve hardere» for å virkelig trene vektene og få det til å fungere. Det er selvfølgelig andre ikke-lineære funksjoner også (f.eks. Sigmoid, tanh, etc.), men hele poenget er at de være ikke-lineære.

Endelig er eksemplet som nettopp er skrevet basert på et enkelt tett koblet nettverk, men jeg antar at det strekker seg til andre tilfeller også.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *