Waarom gebruiken we gerectificeerde lineaire eenheden (ReLU) met neurale netwerken? Hoe verbetert dat het neurale netwerk?
Waarom zeggen we dat ReLU een activeringsfunctie is? Is de softmax-activeringsfunctie niet voor neurale netwerken? Ik vermoed dat we zowel ReLU als softmax als volgt gebruiken:
neuron 1 met softmax output —-> ReLU op de output van neuron 1, dat is de input van neuron 2 —> neuron 2 met softmax output -> …
zodat de input van neuron 2 in feite ReLU (softmax (x1)) is. Is dit correct?
Antwoord
De ReLU-functie is $ f (x) = \ max (0, x). $ Gewoonlijk wordt dit elementair toegepast op de uitvoer van een andere functie, zoals een matrix-vectorproduct. Bij MLP-toepassingen vervangen gelijkrichters alle andere activeringsfuncties, behalve misschien de uitlezing Maar ik veronderstel dat je ze zou kunnen mixen en matchen als je dat wilt.
Een manier waarop ReLUs neurale netwerken verbeteren, is door de training te versnellen. De berekening van de gradiënt is heel eenvoudig (ofwel 0 of 1, afhankelijk van het teken van $ x $ ). De rekenstap van een ReLU is ook eenvoudig: alle negatieve elementen worden ingesteld op 0,0 – geen exponentiële waarden, geen vermenigvuldigings- of deelbewerkingen.
Gradiënten van logistieke en hyperbolische tangensnetwerken zijn kleiner dan het positieve deel van de ReLU. Dit betekent dat het positieve gedeelte sneller wordt bijgewerkt naarmate de training vordert. Hieraan zijn echter kosten verbonden. De 0-gradiënt aan de linkerkant heeft zijn eigen probleem, “dode neuronen” genaamd, waarbij een gradiëntupdate de inkomende waarden instelt op een ReLU zodat de uitvoer altijd nul is; gemodificeerde ReLU-eenheden zoals ELU (of Leaky ReLU, of PReLU, etc.) kunnen dit verbeteren.
$ \ frac {d} {dx} \ text { ReLU} (x) = 1 \ forall x > 0 $ . Daarentegen is het verloop van een sigmoïd-eenheid maximaal $ 0,25 $ ; aan de andere kant doet $ \ tanh $ het beter voor invoer in een regio in de buurt van 0 sinds $ 0,25 < \ frac {d} {dx} \ tanh (x) \ le 1 \ forall x \ in [-1.31, 1.31] $ (ongeveer).
Opmerkingen
- Ik zie geen bewijs dat ik een vraag wilde stellen of dat ik aan deze pagina heb deelgenomen. Eerlijk gezegd ben ik ‘ verbaasd over hoe goed ReLU werkt, maar ik ‘ heb er geen vragen meer over :).
- @aginensky Het lijkt erop dat de opmerking in de tussentijd is verwijderd.
- De opmerking is niet door mij verwijderd en ik ben ook niet op de hoogte gesteld. Ik ‘ ben gestopt met het beantwoorden van vragen en ik denk dat dit betekent dat ik ‘ ook klaar ben met reageren.
- @aginensky Ik weet niet ‘ waarom dit ertoe zou leiden dat je stopt met reageren. Als u vragen heeft over opmerkingen en moderatie, kunt u een vraag stellen in meta.stats.SE.
Antwoord
Een belangrijk ding om op te merken is dat ReLU idempotent is. Aangezien ReLU $ \ rho (x) = \ max (0, x) $ is, is het gemakkelijk te zien dat $ \ rho \ circ \ rho \ circ \ rho \ circ \ dots \ circ \ rho = \ rho $ geldt voor elke eindige compositie. Deze eigenschap is erg belangrijk voor diepe neurale netwerken, omdat elke laag in de netwerk past een niet-lineariteit toe. Laten we nu twee sigmoïdfamiliefuncties 1-3 keer herhaaldelijk op dezelfde invoer toepassen:
Je kunt onmiddellijk zien dat sigmoïde functies hun invoer” squashen “, wat resulteert in het verdwijnende gradiëntprobleem: derivaten naderen nul als $ n $ (het aantal herhaalde aanvragen) nadert oneindig.
Answer
ReLU is de max functie (x, 0) met invoer x bijv matrix van een geconvolueerd beeld. ReLU stelt dan alle negatieve waarden in de matrix x in op nul en alle andere waarden worden constant gehouden.
ReLU wordt berekend na de convolutie en is een niet-lineaire activeringsfunctie zoals tanh of sigmoid.
Softmax is een classificator aan het einde van het neurale netwerk. Dat is logistieke regressie om de uitgangen te normaliseren naar waarden tussen 0 en 1. (Alternatief is hier een SVM-classificator).
CNN Forward Pass bijv .: input-> conv-> ReLU-> Pool-> conv-> ReLU-> Pool-> FC-> softmax
Reacties
- Downvoting. Dit is een heel slecht antwoord! Softmax is geen classificator! Het is een functie die de outputs normaliseert (schaalt) naar het bereik [0,1] en ervoor zorgt dat ze tot 1 optellen. Logistieke regressie ” regulariseert alles!De zin ” ReLU wordt berekend na de convolutie en daarom een niet-lineaire activeringsfunctie zoals tanh of sigmoid. ” mist een werkwoord of sense.
- Het antwoord is niet zo slecht. De zin zonder het werkwoord moet ” ReLU zijn berekend na de convolutie en IS daarom een niet-lineaire activeringsfunctie zoals tanh of sigmoid. ” Softmax beschouwen als een classificator is ook logisch. Het kan worden gezien als een probabilistische classificator die een kans aan elke klasse toewijst. Het ” regulariseert ” / ” normaliseert ” de outputs naar het [0,1] interval.
Answer
ReLU is een letterlijke omschakeling. Met een elektrische schakelaar geeft 1 volt in 1 volt uit, n volt in geeft n volt uit als hij aan staat. Aan / uit wanneer u besluit om op nul te schakelen, geeft exact dezelfde grafiek als ReLU. De gewogen som (puntproduct) van een aantal gewogen sommen is nog steeds een lineair systeem. Voor een bepaalde ingang zijn de ReLU-schakelaars afzonderlijk aan of uit. Dat resulteert in een bepaalde lineaire projectie van de ingang naar de uitgang, aangezien verschillende gewogen sommen van gewogen som van … met elkaar zijn verbonden door de schakelaars. Voor een bepaalde input en een bepaald output neuron is er een samengesteld systeem van gewogen sommen die feitelijk kunnen worden samengevat tot een enkele effectieve gewogen som. Aangezien ReLU-schakelaars op nul staan, zijn er geen plotselinge onderbrekingen in de uitvoer voor geleidelijke veranderingen in de invoer.
Er zijn andere numeriek efficiënte algoritmen voor gewogen som (puntproduct) zoals de FFT- en Walsh Hadamard-transformatie. Er is geen reden waarom u deze niet kunt opnemen in een op ReLU gebaseerd neuraal netwerk en kunt profiteren van de rekenwinst. (Bijv. Neurale netwerken met een vaste filterbank.)
Antwoord
ReLU is waarschijnlijk een van de eenvoudigste niet-lineaire functies die mogelijk zijn. Een stapfunctie is eenvoudiger. Een stapfunctie heeft echter overal de eerste afgeleide (gradiënt) nul, maar op één punt, waarop een oneindige gradiënt. ReLU heeft overal een eindige afgeleide (gradiënt). Het heeft een oneindige tweede afgeleide in één punt.
De feed forward-netwerken worden getraind door te zoeken naar een gradiënt van nul. Het belangrijkste hier is dat er zijn veel eerste afgeleiden om te berekenen in de backpropagation-routine van een groot net, en het helpt dat ze snel kunnen worden berekend zoals ReLU. De tweede is dat de gradiënten van ReLU, in tegenstelling tot de stapfunctie, altijd eindig zijn en dat ze niet bijna overal triviale nullen Ten slotte hebben we niet-lineaire activeringen nodig om het deep learning-netwerk goed te laten werken l, maar dat is een ander onderwerp.