Vraag Waarom moet een niet-lineaire activeringsfunctie worden gebruikt in een backpropagation-neuraal netwerk?


Ik heb wat dingen gelezen over neurale netwerken en ik begrijp het algemene principe van een neuraal netwerk met één laag. Ik begrijp de noodzaak van meerdere lagen, maar waarom worden niet-lineaire activeringsfuncties gebruikt?

Deze vraag wordt gevolgd door deze: Wat is een afgeleide van de activeringsfunctie die wordt gebruikt voor backpropagation?


87
2018-03-20 06:06


oorsprong


antwoorden:


Het doel van de activeringsfunctie is om te introduceren niet-lineariteit in het netwerk

op zijn beurt kunt u hiermee een antwoordvariabele modelleren (ook wel doelvariabele, klassenlabel of score) die niet-lineair varieert met de verklarende variabelen

niet-lineaire betekent dat de uitvoer niet kan worden gereproduceerd uit een lineaire combinatie van de ingangen (wat niet hetzelfde is als de uitvoer die naar een rechte lijn verwijst - het woord hiervoor is affine).

een andere manier om erover na te denken: zonder a niet-lineaire activeringsfunctie in het netwerk, een NN, ongeacht hoeveel lagen het had, zou zich net als een enkele laag perceptron gedragen, omdat het sommeren van deze lagen u gewoon een andere lineaire functie zou geven (zie de definitie net boven).

>>> in_vec = NP.random.rand(10)
>>> in_vec
  array([ 0.94,  0.61,  0.65,  0.  ,  0.77,  0.99,  0.35,  0.81,  0.46,  0.59])

>>> # common activation function, hyperbolic tangent
>>> out_vec = NP.tanh(in_vec)
>>> out_vec
 array([ 0.74,  0.54,  0.57,  0.  ,  0.65,  0.76,  0.34,  0.67,  0.43,  0.53])

Een algemene activeringsfunctie die wordt gebruikt in backprop (hyperbolische tangens) geëvalueerd van -2 tot 2:

enter image description here


116
2018-03-20 09:02



Een lineaire activeringsfunctie kan gebruik zijn. Maar in zeer beperkte gevallen. Om activeringsfuncties beter te begrijpen, is het belangrijk om te kijken naar de gewone kleinste kwadratuur of eenvoudigweg de lineaire regressie. Een lineaire regressie is gericht op het vinden van de optimale gewichten die resulteren in een minimaal verticaal effect tussen de verklarende en doelvariabelen, wanneer gecombineerd met de invoer. In het kort als de verwachte uitvoer de lineaire regressie weergeeft zoals hieronder getoond, dan kunnen lineaire activeringsfuncties worden gebruikt: (bovenste figuur) .Maar in de in de tweede figuur hieronder weergegeven lineaire functie zal niet het gewenste resultaat opleveren: (middelste cijfer) Een niet-lineaire functie zoals hieronder weergegeven, zou echter de gewenste resultaten opleveren: (onderste figuur)   enter image description here 

Activeringsfuncties kunnen niet lineair zijn omdat neurale netwerken met een lineaire activeringsfunctie maar één laag diep zijn, ongeacht hoe complex hun architectuur is. Input voor netwerken is meestal lineaire transformatie (input * gewicht), maar de echte wereld en problemen zijn niet-lineair. Om de inkomende gegevens niet-lineair te maken, gebruiken we niet-lineaire toewijzing, de activeringsfunctie. Een activeringsfunctie is een beslissingsfunctie die de aanwezigheid van bepaalde neurale functies bepaalt. Het is toegewezen tussen 0 en 1, waarbij nul betekent dat de functie er niet is, terwijl één betekent dat de functie aanwezig is. Helaas kunnen de kleine veranderingen die optreden in de gewichten niet worden weergegeven in de activeringswaarde omdat deze alleen 0 of 1 kan aannemen. Daarom moeten niet-lineaire functies continu zijn en te differentiëren tussen dit bereik. Een neuraal netwerk moet elke invoer van oneindig tot oneindig kunnen verwerken, maar het moet in staat zijn om het in een aantal uitvoeringen in te delen dat zich tussen {0,1} of tussen {-1,1} bevindt. behoefte aan activeringsfunctie. Niet-lineariteit is nodig in activeringsfuncties omdat het doel in een neuraal netwerk is om een ​​niet-lineaire beslissingsgrens te produceren via niet-lineaire combinaties van het gewicht en de ingangen.


27
2018-03-10 14:47



Als we alleen lineaire activeringsfuncties in een neuraal netwerk toestaan, is de uitvoer slechts een lineaire transformatie van de invoer, wat niet genoeg is om een ​​te vormen universele functie-approximator. Zo'n netwerk kan gewoon worden voorgesteld als een matrixvermenigvuldiging, en je zou niet in staat zijn om zeer interessant gedrag van zo'n netwerk te verkrijgen.

Hetzelfde geldt voor het geval dat alle neuronen affiene activeringsfuncties hebben (dat wil zeggen een activeringsfunctie op de vorm f(x) = a*x + c, waar a en c zijn constanten, wat een generalisatie is van lineaire activeringsfuncties), wat alleen maar resulteert in een affiene transformatie van input tot output, wat ook niet erg opwindend is.

Een neuraal netwerk kan zeer goed neuronen bevatten met lineaire activeringsfuncties, zoals in de uitvoerlaag, maar deze vereisen het bedrijf van neuronen met een niet-lineaire activeringsfunctie in andere delen van het netwerk.


14
2018-01-15 17:24



"Het huidige artikel maakt gebruik van de Stone-Weierstrass-stelling en de cosinus-squasher van Gallant en White om vast te stellen dat standaard-multilayer-feedforward-netwerkarchitecturen met behulp van abritrary squash-functies vrijwel elke functie van belang kunnen benaderen tot elke gewenste mate van nauwkeurigheid, mits voldoende veel verborgen eenheden zijn beschikbaar. " (Hornik et al., 1989, Neural Networks)

Een squashfunctie is bijvoorbeeld een niet-lineaire activeringsfunctie die overeenkomt met [0,1] zoals de sigmoid-activeringsfunctie.


3
2018-03-20 09:13



Zoals ik me herinner - sigmoid functies worden gebruikt omdat hun afgeleide die in BP-algoritme past gemakkelijk te berekenen is, iets simpels als f (x) (1-f (x)). Ik herinner me de wiskunde niet precies. Eigenlijk kan elke functie met afgeleiden worden gebruikt.


1
2018-03-20 08:56



Er zijn tijden dat een puur lineair netwerk bruikbare resultaten kan opleveren. Stel dat we een netwerk van drie lagen hebben met vormen (3,2,3). Door de middelste laag te beperken tot slechts twee dimensies, krijgen we een resultaat dat het "vlak van de beste passing" is in de oorspronkelijke driedimensionale ruimte.

Maar er zijn gemakkelijker manieren om lineaire transformaties van deze vorm te vinden, zoals NMF, PCA enz. Dit is echter een geval waarbij een meerlagig netwerk NIET op dezelfde manier werkt als een enkele laag perceptron.


1
2018-05-16 17:41



Een gelaagde NN van verschillende neuronen kan worden gebruikt om lineair onlosmakelijke problemen te leren. De XOR-functie kan bijvoorbeeld worden verkregen met twee lagen met stap-activeringsfunctie.


0
2018-05-21 15:24



Het is helemaal geen vereiste. In feite is de gelijkgerichte lineaire activeringsfunctie is erg handig in grote neurale netwerken. Het berekenen van de gradiënt is veel sneller en induceert spartachtigheid door een minimumwaarde in te stellen op 0.

Zie het volgende voor meer details: https://www.academia.edu/7826776/Mathematical_Intuition_for_Performance_of_Rectified_Linear_Unit_in_Deep_Neural_Networks


Bewerk:

Er is enige discussie geweest over de vraag of de gerectificeerde lineaire activeringsfunctie een lineaire functie kan worden genoemd.

Ja, het is technisch een niet-lineaire functie omdat het niet lineair is op het punt x = 0, maar het is nog steeds correct om te zeggen dat het lineair is op alle andere punten, dus ik denk niet dat het nuttig is om hier te nitpicken,

Ik had de identiteitsfunctie kunnen kiezen en het zou nog steeds waar zijn, maar ik koos ReLU als een voorbeeld vanwege zijn recente populariteit.


-2
2017-11-05 18:28