Wat is Activatiefunctie?

De functie die in elk neuron van een neuraal netwerk wordt toegepast op de gewogen som van de invoer (plus een bias). Met een niet-lineaire functie kan een netwerk met gestapelde lagen complexe verbanden weergeven. ReLU is gebruikelijk in verborgen lagen, terwijl uitvoerlagen vaak de sigmoïdefunctie gebruiken voor classificatie met twee klassen, de softmaxfunctie voor classificatie met meerdere klassen en de identiteitsfunctie (geen verandering) voor regressie.

Japanse benaming: 活性化関数

“Activatiefunctie” komt voor in 5 oefenvragen uit 2 onderwerpen, bijv. Basis van machine learning, AI-hardware en softwarestack.

Vakgebied: Basis van machine learning

Waarom een niet-lineaire functie nodig is

Zonder activatiefunctie (dus met de identiteitsfunctie) is elke laag alleen een matrixvermenigvuldiging plus een vectoroptelling. Een willekeurig aantal gestapelde lineaire transformaties kan tot één lineaire transformatie worden samengevoegd, dus hoe diep het netwerk ook is, het kan alleen een lineaire functie van zijn invoer weergeven. Door niet-lineaire activatiefuncties ertussen te zetten, kan het verbanden weergeven die niet met één rechte lijn te scheiden zijn, zoals XOR, en nog veel complexere.

Veelgebruikte functies

De sigmoïdefunctie σ(z) = 1 ÷ (1 + e^(−z)) houdt haar uitvoer tussen 0 en 1, zodat de uitvoer als kans kan worden behandeld. tanh houdt de uitvoer tussen −1 en 1, gecentreerd rond 0. ReLU(z) = max(0, z) is een eenvoudige functie die positieve invoer ongewijzigd doorgeeft en voor invoer van 0 of minder 0 uitvoert; ze is goedkoop te berekenen en haar gradiënt verdwijnt niet gemakkelijk, zodat ze de standaardkeuze is voor verborgen lagen van diepe netwerken. Gladde varianten van ReLU zoals GELU worden ook veel gebruikt.

Verband met verdwijnende gradiënten

Bij invoer met een grote absolute waarde verzadigen de sigmoïdefunctie en tanh op een constante uitvoer en worden hun afgeleiden bijna 0. De afgeleide van de sigmoïdefunctie is hoogstens 0,25, dus als lagen worden gestapeld, krimpt de gradiënt bij backpropagatie door vermenigvuldiging, en leren de lagen dicht bij de invoer slecht (verdwijnende gradiënten). ReLU heeft in het positieve bereik een afgeleide van 1, zodat de gradiënt niet gemakkelijk krimpt. Anderzijds houdt een neuron waarvan de invoer altijd negatief is een gradiënt van 0 en stopt het met leren; daarom geven varianten zoals Leaky ReLU ook het negatieve bereik een kleine helling.

Nu oefenen: vragen over Activatiefunctie

Waarom zijn in een neuraal netwerk met veel gestapelde lagen de lagen dicht bij de invoer moeilijk te trainen als de sigmoïdefunctie als activatiefunctie wordt gebruikt?

  1. ADe afgeleide van de sigmoïdefunctie is hoogstens 0,25, zodat de gradiënt bij backpropagatie bij elke laag kleiner wordt en in de lagen dicht bij de invoer bijna 0 is
  2. BDe uitvoer van de sigmoïdefunctie blijft niet binnen het bereik van 0 tot 1, zodat de waarden bij elke laag groter worden en de berekening overloopt
  3. CDe sigmoïdefunctie heeft punten waarin ze niet differentieerbaar is, zodat sommige lagen bij backpropagatie geen gradiënt kunnen krijgen
Antwoord en toelichting tonen

Antwoord: A. De afgeleide van de sigmoïdefunctie is hoogstens 0,25, zodat de gradiënt bij backpropagatie bij elke laag kleiner wordt en in de lagen dicht bij de invoer bijna 0 is

Bij backpropagatie worden de afgeleiden van de activatiefuncties van opeenvolgende lagen een voor een met de gradiënt vermenigvuldigd. De afgeleide van de sigmoïdefunctie, σ(z)(1 − σ(z)), is hoogstens 0,25, zodat de gradiënt na bijvoorbeeld 10 lagen krimpt tot 0,25¹⁰ ≈ 9,5 × 10⁻⁷. Dit heet het probleem van de verdwijnende gradiënt (vanishing gradient). Tegenmaatregelen zijn ReLU gebruiken, waarvan de afgeleide in het positieve bereik 1 is, residuele verbindingen (skip connections) toevoegen die signalen langs lagen heen doorgeven, de beginwaarden van de gewichten zorgvuldig kiezen en batchnormalisatie gebruiken.

Veelgestelde vragen

Is de softmaxfunctie een activatiefunctie?

Ze wordt behandeld als een van de activatiefuncties die in de uitvoerlaag voor classificatie met meerdere klassen worden gebruikt. Ze verschilt van de andere doordat ze niet op elk neuron afzonderlijk werkt, maar alle waarden van de uitvoerlaag gebruikt om ze om te zetten in kansen die samen 1 zijn.

Heeft het iets te maken met „activering” in de halfgeleiderproductie?

Nee. De activatiefunctie van een neuraal netwerk dankt haar naam aan het nabootsen van een zenuwcel die geprikkeld raakt (vuurt). Activering in de halfgeleiderproductie verwijst naar het warmtebehandelen van geïmplanteerde doteringsatomen, zodat ze roosterplaatsen in het kristal innemen en ladingsdragers kunnen leveren.

“Activatiefunctie” in de toelichting

Vragen met “Activatiefunctie” (5)

  1. Waarom zijn in een neuraal netwerk met veel gestapelde lagen de lagen dicht bij de invoer moeilijk te trainen als de sigmoïdefunctie als activatiefunctie wordt gebruikt?
  2. Wat is het belangrijkste doel van "operator fusion" (samenvoegen van bewerkingen) in AI-berekeningen?
  3. Welke uitspraak over de "rekengraaf" (computational graph) in AI-frameworks en -compilers is juist?
  4. Welke logische functie kan niet worden weergegeven door een enkelvoudig perceptron dat alleen uit een invoerlaag en een uitvoerlaag bestaat (één neuron dat met een drempel 0 of 1 uitvoert)?
  5. Een klein neuraal netwerk met de invoer x₁ = 1 en x₂ = 2 heeft twee verborgen neuronen h₁ = ReLU(x₁ + x₂ − 1) en h₂ = ReLU(x₁ − 2x₂ + 1) en de uitvoer y = 2h₁ + 3h₂ + 1. Wat is de waarde van y?

Verwante termen

Backpropagatie Operator fusion Rekengraaf (computational graph) Convolutioneel neuraal netwerk (CNN) Gesuperviseerd leren (supervised learning) Gradiëntafdaling (gradient descent) Hoofdcomponentenanalyse (PCA) k-means-clustering Kruisvalidatie (cross-validation) Ongesuperviseerd leren (unsupervised learning)

Naar de woordenlijst