Aktiveringsfunktion
Også kendt som: activation function
Reglen, hver enhed i et neuralt netværk bruger på sit samlede input, så netværket kan lære krumme og ikke kun lige mønstre.
Kladde - dette opslag er endnu ikke gennemgået.
Formelt
En fast funktion, der anvendes på den vægtede sum af input i hver enhed i et neuralt netværk; fordi den ikke er en ret linje, kan lag oven på hinanden beskrive komplekse mønstre, hvor et vilkårligt antal lag uden den ville falde sammen til én lineær afbildning.
Forklaret enkelt
Som en lysdæmper, der er helt slukket, indtil man drejer den forbi et bestemt punkt, og derefter giver mere lys, jo længere man drejer. Det knæk er det, der lader mange simple kontakter tilsammen skabe rige mønstre af lys.
I praksis
En studerendes dybe netværk til at sortere plantefotos holder op med at lære efter nogle få lag; ved at skifte den gamle S-formede funktion ud med en, der blot sender positive værdier videre og blokerer negative, begynder det at lære igen.
Hvorfor det betyder noget
Valget afgør, om et dybt netværk overhovedet kan lære, og hvor hurtigt, og det former, hvilke mønstre netværket kan udtrykke.
Teknisk uddybning
En enhed beregner a = phi(w . x + b). Hvis phi er lineær, er en stak af lag en sammensætning af affine afbildninger og dermed selv affin, så dybde giver ingen ekstra udtrykskraft. Med en passende ikke-polynomiel phi er et netværk med ét skjult lag en universel approksimator af kontinuerte funktioner på kompakte mængder (Cybenko, 1989; Hornik, 1991; Leshno m.fl., 1993), og dybde gør mange funktioner langt billigere at repræsentere. Aktiveringen bestemmer også den gradient, som backpropagation ganger igennem hvert lag, og derfor betyder dens afledte lige så meget som dens form.
Den logistiske sigmoid 1/(1 + e^-x) og tanh dominerede de tidlige netværk. Begge mættes: For store positive eller negative input er deres afledte tæt på nul (sigmoidens afledte er højst 0,25), så gradienterne skrumper geometrisk, når de løber tilbage gennem mange lag, det såkaldte vanishing gradient-problem. Den ensrettede lineære enhed, ReLU(x) = max(0, x), blev udbredt af Nair og Hinton (2010) og af Glorot, Bordes og Bengio (2011), som viste, at dybe netværk med ensrettere kunne trænes godt uden ikke-superviseret fortræning. ReLU har afledt 1 for positive input og giver sparsomme aktiveringer, men enheder, der sidder fast i negative input, giver nul for evigt (dying ReLU), hvilket førte til Leaky ReLU, PReLU og ELU.
Moderne transformere bruger mest glatte varianter med gating. GELU (Hendrycks og Gimpel, 2016) er x gange normalfordelingens fordelingsfunktion i x og bruges i BERT og GPT-2; SiLU eller Swish er x gange sigmoid(x); SwiGLU, en gated linear unit med Swish som gate, bruges i feed-forward-blokkene i modeller som PaLM og LLaMA. Outputlag bruger opgavespecifikke funktioner frem for de skjulte lags aktiveringer: sigmoid til uafhængige binære output, softmax til en sandsynlighedsfordeling over klasser eller tokens og identiteten til regression. Valget af aktivering hænger sammen med initialiseringen af vægtene: Glorot-initialisering (Xavier) passer til tanh, mens He-initialisering er udledt til ReLU. PyTorch leverer dem som torch.nn-moduler, fx ReLU, GELU, SiLU, Sigmoid, Tanh og Softmax.
Relationer
- Del af
- Neuralt netværk
- Bruges sammen med
- Backpropagation
Kilder og videre læsning
Officiel dokumentation
Opslagsværker
Lærebøger
Hvor dataene kommer fra
Dette opslag er skrevet af en AI ud fra kilderne ovenfor og er endnu ikke gennemgået af et menneske. Brug det som udgangspunkt, og tjek alt vigtigt mod kilderne.
Se gennemgangskøenForeslå en rettelse på GitHubDette begreb som JSON
Test dig selv
Indlæser…