Begreper & referanser
Alle nøkkelbegrepene, formlene og referansene fra Nevrale nettverk, samlet på én side. Bruk denne som oppslag når du leser, øver flashcards eller tar quiz.
Begreper
Sentrale begreper fra kapittelet med korte definisjoner.
En enkel lineær klassifikator som kombinerer vektede input og en aktiveringsregel.
En beregningsenhet som summerer vektede input, legger til bias og bruker en aktiveringsfunksjon.
En funksjon som omformer nevronets score og gir nettverket ikke-lineær uttrykksevne.
Et lag mellom input og output som lærer mellomrepresentasjoner av dataene.
Beregningen som fører input gjennom nettverket fram til prediksjon og tap.
Effektiv beregning av gradienter ved å bruke kjerneregelen baklengs gjennom beregningsgrafen.
Gradient descent der hver oppdatering bruker én observasjon eller en minibatch.
En innstilling som velges utenfor selve treningen, for eksempel lagbredde, læringsrate eller regulariseringsstyrke.
Formler
Hver formel: hva den heter, hvordan den ser ut, og hva symbolene betyr.
Nevronets score
Et nevron summerer vektede innganger og et biasledd før aktiveringen brukes.
ReLU
ReLU setter negative scorer til null og lar positive scorer passere uendret.
Sigmoidaktivering
Sigmoid brukes blant annet i utgangen ved binær klassifikasjon.
Softmax
Softmax gjør scorer om til en sannsynlighetsfordeling som summerer til 1.
Forward pass i et lag
Et lag gjør en affin transformasjon av forrige aktivering og bruker deretter aktiveringsfunksjonen .
Kjerneregel
Backpropagation bruker kjerneregelen for å føre tapets gradient bakover gjennom beregningsgrafen.
Vektoppdatering
Hvert lag oppdateres mot lavere tap med gradienten som backpropagation har beregnet.
Kodesnutter
Kodesnutter fra kapittelet, vist literal.
Forward pass i et lite nettverk
import numpy as np rng = np.random.default_rng(4172)x = np.array([0.8, -1.1])W1 = rng.normal(0, 0.4, size=(3, 2))b1 = np.zeros(3)W2 = rng.normal(0, 0.4, size=(1, 3))b2 = np.zeros(1) z1 = W1 @ x + b1a1 = np.maximum(0, z1)z2 = W2 @ a1 + b2p = 1 / (1 + np.exp(-z2)) print("skjult score:", np.round(z1, 3))print("skjult ReLU:", np.round(a1, 3))print("P(y=1|x):", np.round(p, 3))Matrisenes former gjør dataflyten synlig: tre skjulte nevroner mottar to input, og ett output-nevron mottar tre aktiveringer.
Ett backprop-steg for et sigmoid-nevron
import numpy as np rng = np.random.default_rng(4172)x = rng.normal(size=3)y = 1.0w = rng.normal(0, 0.3, size=3)b = 0.0eta = 0.2 z = x @ w + bp = 1 / (1 + np.exp(-z))tap_for = -(y * np.log(p) + (1 - y) * np.log(1 - p)) dz = p - ydw = dz * xdb = dzw_ny = w - eta * dwb_ny = b - eta * db p_ny = 1 / (1 + np.exp(-(x @ w_ny + b_ny)))tap_etter = -(y * np.log(p_ny) + (1 - y) * np.log(1 - p_ny))print(f"tap før={tap_for:.4f}, tap etter={tap_etter:.4f}")For sigmoid kombinert med binary cross-entropy blir gradienten mot scoren p−y. Koden viser at ett lite steg reduserer tapet for observasjonen.
Læringsmål
Hva du skal kunne etter å ha lest kapittelet.
- 01Regne et forward pass gjennom et lite nettverk med ReLU og sigmoid eller softmax
- 02Forklare hvorfor aktiveringsfunksjoner gir nettverket ikke-lineær uttrykksevne
- 03Bruke kjerneregelen til å følge én gradientvei gjennom backpropagation
- 04Utføre ett gradientbasert vektsteg og kontrollere retningen på oppdateringen
- 05Skille parametre fra hyperparametre og diagnostisere enkel under- og overtilpasning