Hvorfor bruger vi rektificerede lineære enheder (ReLU) med neurale netværk? Hvordan forbedrer det neurale netværk?
Hvorfor siger vi, at ReLU er en aktiveringsfunktion? Er ikke softmax aktiveringsfunktion for neurale netværk? Jeg gætter på, at vi bruger begge, ReLU og softmax, sådan:
neuron 1 med softmax output —-> ReLU på output fra neuron 1, som er
input af neuron 2 —> neuron 2 med softmax output -> …
så input af neuron 2 er grundlæggende ReLU (softmax (x1)). Er dette korrekt?
Svar
ReLU-funktionen er $ f (x) = \ max (0, x). $ Normalt anvendes dette elementmæssigt til output fra en anden funktion, såsom et matrix-vektorprodukt. I MLP-anvendelser erstatter ensretterenheder alle andre aktiveringsfunktioner undtagen måske aflæsningen lag. Men jeg formoder, at du kunne blande og matche dem, hvis du kunne lide.
En måde, ReLUer forbedrer neurale netværk på, er ved at fremskynde træningen. Gradientberegningen er meget enkel (enten 0 eller 1 afhængigt af tegnet på $ x $ ). Desuden er beregningstrinnet for en ReLU let: eventuelle negative elementer er indstillet til 0,0 – ingen eksponentialer, ingen multiplikations- eller divisionsoperationer.
Gradienter af logistiske og hyperbolske tangentnetværk er mindre end den positive del ReLU. Dette betyder, at den positive del opdateres hurtigere, når træningen skrider frem. Dette har dog en pris. Gradienten 0 på venstre side har sit eget problem, kaldet “døde neuroner”, hvor en gradientopdatering indstiller de indgående værdier til en ReLU, således at output altid er nul; modificerede ReLU-enheder såsom ELU (eller Leaky ReLU eller PReLU osv.) kan forbedre dette.
$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . Derimod er gradienten af en sigmoid-enhed højst $ 0,25 $ ; på den anden side går $ \ tanh $ bedre til input 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 intet bevis for, at jeg ville stille et spørgsmål, eller at jeg deltog i denne side. Helt ærligt er jeg ‘ forbløffet over, hvor godt ReLU fungerer, men jeg ‘ er holdt op med at stille spørgsmålstegn ved det :).
- @aginensky Det ser ud til, at kommentaren blev fjernet i mellemtiden.
- Kommentaren blev ikke fjernet af mig, og jeg blev heller ikke informeret. Jeg ‘ er holdt op med at svare på spørgsmål, og jeg tror det betyder, at jeg ‘ er færdig med at kommentere også.
- @aginensky Jeg ved ikke ‘ hvorfor dette ville få dig til at stoppe med at kommentere. Hvis du har spørgsmål om kommentarer og moderering, kan du stille et spørgsmål i meta.stats.SE.
Svar
En vigtig ting at påpege er, at ReLU er idempotent. Da ReLU er $ \ rho (x) = \ max (0, x) $ , er det let at se, at $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ gælder for enhver begrænset sammensætning. Denne egenskab er meget vigtig for dybe neurale netværk, fordi hvert lag i netværk anvender en ikke-linearitet. Lad os nu anvende to sigmoid-familiefunktioner på den samme indgang gentagne gange 1-3 gange:
Du kan straks se, at sigmoidfunktioner” squasher “deres input, hvilket resulterer i det forsvindende gradientproblem: derivater nærmer sig nul som $ n $ (antallet af gentagne applikationer) nærmer sig uendeligt.
Svar
ReLU er den maksimale funktion (x, 0) med input x f.eks matrix fra et indviklet billede. ReLU indstiller derefter alle negative værdier i matrixen x til nul, og alle andre værdier holdes konstante.
ReLU beregnes efter sammenfaldet og er en ikke-lineær aktiveringsfunktion som tanh eller sigmoid.
Softmax er en klassifikator i slutningen af det neurale netværk. Det er logistisk regression for at normalisere output til værdier mellem 0 og 1. (Alternativ her er en SVM-klassifikator).
CNN Forward Pass f.eks .: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax
Kommentarer
- Downvoting. Dette er et meget dårligt svar! Softmax er ikke en klassifikator! Det er en funktion, der normaliserer (skalerer) output til området [0,1] og sikrer, at de summeres op til 1. Logistisk regression regulerer ikke ” ” noget!Sætningen ” ReLU beregnes efter sammenfaldet, og derfor mangler en ikke-lineær aktiveringsfunktion som tanh eller sigmoid. ” mangler et verbum eller en sense.
- Svaret er ikke så dårligt. Sætningen uden verbet skal være ” ReLU beregnes efter sammenløbet, og ER derfor en ikke-lineær aktiveringsfunktion som tanh eller sigmoid. ” At tænke på softmax som en klassifikator giver også mening. Det kan ses som en probabilistisk klassifikator, der tildeler en sandsynlighed for hver klasse. Det ” normaliserer ” / ” normaliserer ” output til intervallet [0,1].
Svar
ReLU er en bogstavskontakt. Med en elektrisk afbryder giver 1 volt ind 1 volt ud, n volt ind giver n volt ud, når den er tændt. Til / Fra, når du beslutter at skifte til nul, giver nøjagtigt den samme graf som ReLU. Den vægtede sum (prikprodukt) af et antal vægtede summer er stadig et lineært system. For en bestemt indgang er ReLU-switchene individuelt til eller fra. Det resulterer i en bestemt lineær projektion fra input til output, da forskellige vægtede summer af vægtet sum af … er forbundet sammen af switchene. For en bestemt input og en bestemt outputneuron er der et sammensat system af vægtede summer, der faktisk kan sammenfattes til en enkelt effektiv vægtet sum. Da ReLU-switches er nul, er der ingen pludselige diskontinuiteter i output for gradvise ændringer i input.
Der er andre numerisk effektive vægtede sum (dot-produkt) algoritmer rundt som FFT og Walsh Hadamard-transformation. Der er ingen grund til, at du ikke kan inkorporere dem i et ReLU-baseret neuralt netværk og drage fordel af beregningsgevinsterne. (F.eks. Faste filterbankneurale netværk.)
Svar
ReLU er sandsynligvis en af de enkleste mulige ikke-lineære funktioner. En trinfunktion er enklere. En trinfunktion har dog den første afledte (gradient) nul overalt, men i et punkt, hvor den har en uendelig gradient. ReLU har et endeligt derivat (gradient) overalt. Det har et uendeligt andet derivat i et punkt.
Feed forward-netværkene trænes ved at lede efter en nulgradient. Det vigtige her er, at der er mange første derivater til at beregne i et stort net backpropagation rutine, og det hjælper, at de er hurtige til at beregne som ReLU. Det andet er, at i modsætning til trinfunktion er ReLUs gradienter altid endelige, og de er ikke trivielle nuller næsten overalt. Endelig har vi brug for ikke-lineære aktiveringer for at dyb læringsnet fungerer godt l, men det er et andet emne.