Gå til indhold
atlas

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

Bruges sammen med
Backpropagation

Kilder og videre læsning

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…

Atlas er i beta.