Hvorfor bruker vi rektifiserte lineære enheter (ReLU) med nevrale nettverk? Hvordan forbedrer det nevrale nettverk?
Hvorfor sier vi at ReLU er en aktiveringsfunksjon? Er ikke softmax aktiveringsfunksjon for nevrale nettverk? Jeg tipper at vi bruker begge, ReLU og softmax, slik:
neuron 1 med softmax output —-> ReLU på output av neuron 1, som er
input av neuron 2 —> neuron 2 med softmax output -> …
slik at input av neuron 2 i utgangspunktet er ReLU (softmax (x1)). Er dette riktig?
Svar
ReLU-funksjonen er $ f (x) = \ max (0, x). $ Vanligvis brukes dette elementmessig på utdataene fra en annen funksjon, for eksempel et matrise-vektorprodukt. I MLP-bruk erstatter likeretterenheter alle andre aktiveringsfunksjoner bortsett fra kanskje avlesningen lag. Men jeg antar at du kan mikse og matche dem hvis du vil.
En måte ReLUs forbedrer nevrale nettverk er å øke hastigheten på opplæringen. Gradientberegningen er veldig enkel (enten 0 eller 1 avhengig av tegnet på $ x $ ). Beregningstrinnet til en ReLU er også enkelt: alle negative elementer er satt til 0,0 – ingen eksponentielle, ingen multiplikasjons- eller divisjonsoperasjoner.
Gradienter av logistiske og hyperbolske tangentnettverk er mindre enn den positive delen av ReLU. Dette betyr at den positive delen oppdateres raskere etter hvert som treningen skrider frem. Dette koster imidlertid. Gradienten 0 på venstre side har sitt eget problem, kalt «døde nevroner», der en gradientoppdatering setter de innkommende verdiene til en ReLU slik at utgangen alltid er null; modifiserte ReLU-enheter som ELU (eller Leaky ReLU, eller PReLU, etc.) kan forbedre dette.
$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . Derimot er gradienten til en sigmoid-enhet maksimalt $ 0,25 $ ; derimot $ \ tanh $ har det bedre for innganger i en region nær 0 siden $ 0,25 < \ frac {d} {dx} \ tanh (x) \ le 1 \ forall x \ i [-1.31, 1.31] $ (ca.).
Kommentarer
- Jeg ser ingen bevis for at jeg ønsket å stille et spørsmål eller at jeg deltok på denne siden. Helt ærlig er jeg ‘ overrasket over hvor godt ReLU fungerer, men jeg ‘ har sluttet å stille spørsmål ved det :).
- @aginensky Det ser ut til at kommentaren ble fjernet i mellomtiden.
- Kommentaren ble ikke fjernet av meg og ble heller ikke informert. Jeg ‘ har sluttet å svare på spørsmål, og jeg antar at dette betyr at jeg ‘ er ferdig med å kommentere også.
- @aginensky Jeg vet ikke ‘ hvorfor dette vil føre til at du slutter å kommentere. Hvis du har spørsmål om kommentarer og moderering, kan du stille et spørsmål i meta.stats.SE.
Svar
En viktig ting å påpeke er at ReLU er idempotent. Gitt at ReLU er $ \ rho (x) = \ max (0, x) $ , er det lett å se at $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ er sant for enhver endelig sammensetning. Denne egenskapen er veldig viktig for dype nevrale nettverk, fordi hvert lag i nettverket bruker en ikke-linearitet. La oss bruke to sigmoid-familiefunksjoner på samme inngang gjentatte ganger 1-3 ganger:
Du kan umiddelbart se at sigmoide-funksjoner» squash «deres innganger, noe som resulterer i forsvinnende gradientproblem: derivater nærmer seg null som $ n $ (antallet gjentatte applikasjoner) nærmer seg uendelig.
Svar
ReLU er maksfunksjonen (x, 0) med inngang x f.eks matrise fra et konvolvert bilde. ReLU setter deretter alle negative verdier i matrisen x til null, og alle andre verdier holdes konstante.
ReLU beregnes etter konvolusjonen og er en ikke-lineær aktiveringsfunksjon som tanh eller sigmoid.
Softmax er en klassifikator på slutten av nevrale nettverk. Det er logistisk regresjon for å normalisere utganger til verdier mellom 0 og 1. (Alternativ her er en SVM-klassifisering).
CNN Forward Pass f.eks: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax
Kommentarer
- Downvoting. Dette er et veldig dårlig svar! Softmax er ikke en klassifiserende! Det er en funksjon som normaliserer (skalerer) utgangene til området [0,1] og sørger for at de summeres opp til 1. Logistisk regresjon regulerer ikke » » hva som helst!Setningen » ReLU beregnes etter konvolusjonen, og derfor mangler en ikke-lineær aktiveringsfunksjon som tanh eller sigmoid. » et verb eller en sans.
- Svaret er ikke så ille. Setningen uten verbet må være » ReLU beregnes etter konvolusjonen og ER derfor en ikke-lineær aktiveringsfunksjon som tanh eller sigmoid. » Å tenke på softmax som en klassifikator er også fornuftig. Det kan sees på som en sannsynlig klassifisering som tildeler en sannsynlighet til hver klasse. Det » normaliserer » / » normaliserer » utgangene til [0,1] intervallet.
Svar
ReLU er en bokstavlig bryter. Med en elektrisk bryter gir 1 volt 1 volt ut, n volt inn gir n volt når den er på. På / av når du bestemmer deg for å bytte til null gir nøyaktig samme graf som ReLU. Den vektede summen (prikkprodukt) av et antall vektede summer er fortsatt et lineært system. For en bestemt inngang er ReLU-bryterne individuelt på eller av. Det resulterer i en bestemt lineær projeksjon fra inngangen til utgangen, da forskjellige vektede summer av vektet sum av … er koblet sammen av bryterne. For en bestemt inngang og en bestemt utgangsneuron er det et sammensatt system av vektede summer som faktisk kan oppsummeres til en enkelt effektiv vektet sum. Siden ReLU-brytere er på null, er det ingen plutselige avbrudd i utgangen for gradvise endringer i inngangen.
Det er andre numerisk effektive vektede sum (punktprodukt) algoritmer rundt som FFT og Walsh Hadamard-transformasjonen. Det er ingen grunn til at du ikke kan innlemme dem i et ReLU-basert nevralt nettverk og dra nytte av beregningsgevinster. (F.eks. Faste filterbankneurale nettverk.)
Svar
ReLU er sannsynligvis en av de enkleste mulige ikke-lineære funksjonene. En trinnfunksjon er enklere. Imidlertid har en trinnfunksjon den første avledede (gradienten) null overalt, men i ett punkt, hvor den har en uendelig gradient. ReLU har et endelig derivat (gradient) overalt. Den har et uendelig andre derivat i ett punkt.
Fremovernettverkene blir trent ved å lete etter en nullgradient. Det viktige her er at det er mange første derivater å beregne i et stort nettos backpropagation-rutine, og det hjelper at de er raske å beregne som ReLU. Det andre er at i motsetning til trinnfunksjon er ReLUs gradienter alltid endelige og de er ikke trivielle nuller nesten overalt. Til slutt trenger vi ikke-lineære aktiveringer for at det dype læringsnettet skal fungere vel Jeg, men det er et annet emne.