Varför använder vi ReLU i neurala nätverk och hur använder vi det?

Varför använder vi rektifierade linjära enheter (ReLU) med neurala nätverk? Hur förbättrar det neurala nätverk?

Varför säger vi att ReLU är en aktiveringsfunktion? Är inte softmax aktiveringsfunktion för neurala nätverk? Jag gissar att vi använder både ReLU och softmax så här:

neuron 1 med softmax output —-> ReLU på utgången från neuron 1, vilket är en inmatning av neuron 2 —> neuron 2 med softmax-utdata -> …

så att inmatningen av neuron 2 i grunden är ReLU (softmax (x1)). Är detta rätt?

Svar

ReLU-funktionen är $ f (x) = \ max (0, x). $ Vanligtvis tillämpas detta elementvis på utdata från någon annan funktion, till exempel en matrisvektorprodukt. I MLP-användningar ersätter likriktarenheter alla andra aktiveringsfunktioner utom kanske avläsningen Men jag antar att du kan mixa och matcha dem om du vill.

Ett sätt att ReLU förbättrar neurala nätverk är att påskynda träningen. Gradientberäkningen är mycket enkel (antingen 0 eller 1 beroende på tecknet på $ x $ ). Beräkningssteget för en ReLU är också enkelt: alla negativa element är inställda på 0,0 – inga exponentialer, inga multiplikations- eller delningsoperationer.

Gradienter av logistiska och hyperboliska tangentnätverk är mindre än den positiva delen av ReLU. Detta innebär att den positiva delen uppdateras snabbare när träningen fortskrider. Detta kostar dock en kostnad. Gradienten 0 på vänster sida har sitt eget problem, kallat ”döda nervceller”, där en gradientuppdatering sätter de inkommande värdena till en ReLU så att utmatningen alltid är noll; modifierade ReLU-enheter som ELU (eller Leaky ReLU eller PReLU, etc.) kan förbättra detta.

$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . Däremot är gradienten för en sigmoidenhet högst $ 0,25 $ ; å andra sidan går $ \ tanh $ bättre för ingångar i en region nära 0 eftersom $ 0,25 < \ frac {d} {dx} \ tanh (x) \ le 1 \ forall x \ i [-1.31, 1.31] $ (ungefär).

Kommentarer

  • Jag ser inga bevis för att jag ville ställa en fråga eller att jag deltog i den här sidan. Uppriktigt sagt är jag ’ förvånad över hur bra ReLU fungerar, men jag ’ har slutat ifrågasätta det :).
  • @aginensky Det verkar som om kommentaren togs bort under tiden.
  • Kommentaren har inte tagits bort av mig och jag fick inte heller någon information. Jag ’ har slutat svara på frågor och jag antar att det betyder att jag ’ är klar med att kommentera också.
  • @aginensky Jag vet inte ’ varför detta skulle få dig att sluta kommentera. Om du har några frågor om kommentarer och moderering kan du ställa en fråga i meta.stats.SE.

Svara

En viktig sak att påpeka är att ReLU är idempotent. Med tanke på att ReLU är $ \ rho (x) = \ max (0, x) $ är det lätt att se att $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ gäller för alla begränsade sammansättningar. Den här egenskapen är mycket viktig för djupa neurala nätverk, eftersom varje lager i nätverk tillämpar en icke-linjäritet. Nu ska vi tillämpa två sigmoidfamiljfunktioner på samma ingång upprepade gånger 1-3 gånger:

ange bildbeskrivning här

Du kan omedelbart se att sigmoidfunktioner” squashar ”sina ingångar vilket resulterar i det försvinnande gradientproblemet: derivat närmar sig noll som $ n $ (antalet upprepade applikationer) närmar sig oändligheten.

Svar

ReLU är maxfunktionen (x, 0) med ingången x t.ex. matris från en invecklad bild. ReLU sätter sedan alla negativa värden i matrisen x till noll och alla andra värden hålls konstanta.

ReLU beräknas efter fällningen och är en icke-linjär aktiveringsfunktion som tanh eller sigmoid.

Softmax är en klassificerare i slutet av det neurala nätverket. Det är logistisk regression för att normalisera utgångar till värden mellan 0 och 1. (Alternativ här är en SVM-klassificering).

CNN Forward Pass t.ex.: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax

Kommentarer

  • Downvoting. Detta är ett mycket dåligt svar! Softmax är inte en klassificerare! Det är en funktion som normaliserar (skalar) utgångarna till intervallet [0,1] och säkerställer att de summerar upp till 1. Logistisk regression ” normaliserar ” vad som helst!Meningen ” ReLU beräknas efter fällningen och därför saknar en icke-linjär aktiveringsfunktion som tanh eller sigmoid. ” saknar verb eller sense.
  • Svaret är inte så illa. Meningen utan verbet måste vara ” ReLU beräknas efter konvolutionen och IS därför en icke-linjär aktiveringsfunktion som tanh eller sigmoid. ” Att tänka på softmax som klassificerare är också meningsfullt. Det kan ses som en probabilistisk klassificering som tilldelar en sannolikhet för varje klass. Det ” reglerar ” / ” normaliserar ” utgångarna till [0,1] intervallet.

Svar

ReLU är en bokstavsomkopplare. Med en elektrisk strömbrytare ger 1 volt in 1 volt ut, n volt in ger n volt när den är på. På / Av när du väljer att växla vid noll ger exakt samma graf som ReLU. Den vägda summan (punktprodukten) av ett antal vägda summor är fortfarande ett linjärt system. För en viss ingång är ReLU-omkopplarna individuellt på eller av. Det resulterar i en viss linjär projektion från ingången till utgången, eftersom olika viktade summor av vägd summa av … är sammankopplade av omkopplarna. För en viss ingång och en viss utgångsneuron finns det ett sammansatt system av vägda summor som faktiskt kan sammanfattas till en enda effektiv vägd summa. Eftersom ReLU-omkopplare anger noll finns det inga plötsliga avbrott i utgången för gradvisa ändringar av ingången.

Det finns andra numeriskt effektiva viktade summa (punktprodukt) algoritmer runt som FFT och Walsh Hadamard-transform. Det finns ingen anledning att du inte kan införliva dem i ett ReLU-baserat neuralt nätverk och dra nytta av beräkningsvinsterna. (T.ex. fasta filterbankneurala nätverk.)

Svar

ReLU är förmodligen en av de enklaste icke-linjära funktionerna som är möjliga. En stegfunktion är enklare. En stegfunktion har dock den första härledda (gradient) noll överallt utom i en punkt, där den har en oändlig gradient. ReLU har ett ändligt derivat (gradient) överallt. Det har ett oändligt andra derivat i en punkt.

Framåtnätverken tränas genom att leta efter en nollgradient. Det viktiga här är att det finns många första derivat att beräkna i ett stort nätets backpropagationsrutin, och det hjälper att de är snabba att beräkna som ReLU. Det andra är att till skillnad från stegfunktion är ReLU: s lutningar alltid ändliga och de är inte triviala nollor nästan överallt. Slutligen behöver vi icke-linjära aktiveringar för att djupinlärningsnätet ska fungera väl Jag, men det är ett annat ämne.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *