De ce folosim ReLU în rețelele neuronale și cum îl folosim?

De ce folosim unități liniare rectificate (ReLU) cu rețele neuronale? Cum îmbunătățește acest lucru rețeaua neuronală?

De ce spunem că ReLU este o funcție de activare? Nu este funcția de activare softmax pentru rețelele neuronale? Bănuiesc că folosim ambele, ReLU și softmax, astfel:

neuronul 1 cu ieșire softmax —-> ReLU la ieșirea neuronului 1, care este intrarea
a neuronului 2 —> neuron 2 cu ieșire softmax -> …

astfel încât intrarea neuronului 2 este practic ReLU (softmax (x1)). corect?

Răspuns

Funcția ReLU este $ f (x) = \ max (0, x). $ De obicei, acest lucru se aplică elementar la ieșirea unei alte funcții, cum ar fi un produs cu matrice-vector. În utilizările MLP, unitățile redresoare înlocuiesc toate celelalte funcții de activare, cu excepția poate a citirii Dar presupun că le-ați putea combina și potrivi dacă doriți.

Un mod prin care ReLU-urile îmbunătățesc rețelele neuronale este accelerarea antrenamentului. Calculul gradientului este foarte simplu (fie 0, fie 1 în funcție de semnul $ x $ ). De asemenea, pasul de calcul al unei ReLU este ușor: orice element negativ este setat la 0,0 – fără exponențiale, fără operații de multiplicare sau divizare.

Gradienții rețelelor logistice și tangente hiperbolice sunt mai mici decât porțiunea pozitivă a ReLU. Aceasta înseamnă că porțiunea pozitivă este actualizată mai rapid pe măsură ce antrenamentul progresează. Cu toate acestea, acest lucru are un cost. Gradientul 0 din partea stângă are propria problemă, numită „neuroni morți”, în care o actualizare de gradient stabilește valorile primite la o ReLU astfel încât ieșirea să fie întotdeauna zero; unitățile ReLU modificate precum ELU (sau Leaky ReLU sau PReLU etc.) pot ameliora acest lucru.

$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . În schimb, gradientul unei unități sigmoide este cel mult 0,25 $ $ ; pe de altă parte, $ \ tanh $ este mai bun pentru intrări într-o regiune aproape de 0, deoarece 0,25 $ < \ frac {d} {dx} \ tanh (x) \ le 1 \ forall x \ in [-1.31, 1.31] $ (aproximativ).

Comentarii

  • Nu văd nicio dovadă că am vrut să pun o întrebare sau că am participat la această pagină. Sincer, ‘ sunt uimit de cât de bine funcționează ReLU, dar am ‘ am încetat să-l mai întreb :).
  • @aginensky Se pare că comentariul a fost eliminat între timp.
  • Comentariul nu a fost eliminat de mine și nici nu am fost informat. ‘ am încetat să mai răspund la întrebări și cred că asta înseamnă că am ‘ terminat și cu comentarii.
  • @aginensky Nu ‘ nu știu de ce acest lucru te-ar determina să nu mai comentezi. Dacă aveți întrebări despre comentarii și moderare, puteți pune o întrebare în meta.stats.SE.

Răspuns

Un lucru important de subliniat este că ReLU este idempotent. Având în vedere că ReLU este $ \ rho (x) = \ max (0, x) $ , este ușor de văzut că $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ este adevărat pentru orice compoziție finită. Această proprietate este foarte importantă pentru rețelele neuronale profunde, deoarece fiecare strat din rețeaua aplică o neliniaritate. Acum, să aplicăm două funcții de familie sigmoidă la aceeași intrare în mod repetat de 1-3 ori:

introduceți descrierea imaginii aici

Puteți vedea imediat că funcțiile sigmoide își„ squash ”intrările rezultând problema gradientului de dispariție: derivatele abordează zero ca $ n $ (numărul de aplicații repetate) se apropie de infinit.

Răspuns

ReLU este funcția maximă (x, 0) cu intrarea x de ex matrice dintr-o imagine convolvată. ReLU setează apoi toate valorile negative din matricea x la zero și toate celelalte valori sunt menținute constante.

ReLU este calculat după convoluție și este o funcție de activare neliniară, cum ar fi tanh sau sigmoid.

Softmax este un clasificator la sfârșitul rețelei neuronale. Aceasta este o regresie logistică pentru a normaliza ieșirile la valori cuprinse între 0 și 1. (Alternativă aici este un clasificator SVM).

CNN Forward Pass de exemplu: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax

Comentarii

  • Vot negativ. Acesta este un răspuns foarte rău! Softmax nu este un clasificator! Este o funcție care normalizează (scalează) ieșirile la intervalul [0,1] și asigură că acestea însumează până la 1. Regresia logistică nu ” regularizează ” orice!Propoziția ” ReLU este calculată după convoluție și, prin urmare, o funcție de activare neliniară, cum ar fi tanh sau sigmoid. ” nu are un verb sau un sens.
  • Răspunsul nu este atât de rău. Propoziția fără verb trebuie să fie ” ReLU este calculată după convoluție și IS , prin urmare o funcție de activare neliniară, cum ar fi tanh sau sigmoid. ” Gândirea la softmax ca un clasificator are sens și ea. Poate fi văzut ca un clasificator probabilistic care atribuie o probabilitate fiecărei clase. ” regularizează ” / ” normalizează ” ieșirile la intervalul [0,1].

Răspuns

ReLU este un comutator literal. Cu un întrerupător electric 1 volți intră dă 1 volt ieșit, n volți intră dă n volți când este pornit. Pornit / Oprit atunci când decideți să comutați la zero dă exact același grafic ca ReLU. Suma ponderată (produs punct) a unui număr de sume ponderate este încă un sistem liniar. Pentru o anumită intrare, comutatoarele ReLU sunt activate sau oprite individual. Aceasta are ca rezultat o proiecție liniară particulară de la intrare la ieșire, deoarece diferite sume ponderate ale sumei ponderate de … sunt conectate împreună prin comutatoare. Pentru un anumit neuron de intrare și un anumit neuron de ieșire există un sistem compus de sume ponderate care de fapt pot fi rezumate la o singură sumă efectivă ponderată. Deoarece ReLU comută starea la zero, nu există discontinuități bruște în ieșire pentru modificări treptate în intrare.

Există alți algoritmi de sumă ponderată eficientă numeric (produs punct) în jurul valorii, cum ar fi transformarea FFT și Walsh Hadamard. Nu există niciun motiv pentru care să nu le poți încorpora într-o rețea neuronală bazată pe ReLU și să beneficiezi de câștigurile computaționale. div class = „answer”>

ReLU este probabil una dintre cele mai simple funcții neliniare posibile. O funcție pas este mai simplă. Cu toate acestea, o funcție pas are primul derivat (gradient) zero peste tot, dar într-un singur punct, la care are un gradient infinit. ReLU are o derivată finită (gradient) peste tot. Are o secundă derivată infinită într-un singur punct.

Rețelele de feed forward sunt antrenate în căutarea unui gradient zero. Important este că există o mulțime de prime derivate de calculat într-o rutină de propagare înapoi a unei rețele mari și ajută la calcularea rapidă ca ReLU. Al doilea este că, spre deosebire de funcția pas, gradienții ReLU sunt întotdeauna finiți și nu sunt zerouri banale aproape peste tot. În cele din urmă, avem nevoie de activări neliniare pentru ca rețeaua de învățare profundă să funcționeze bine L, dar acesta este un subiect diferit.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *