AI-For-Beginners/translations/no/lessons/3-NeuralNetworks/03-Perceptron
localizeflow[bot] 7a9b37f3b1 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00
..
lab chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00
Perceptron.ipynb 🌐 Update translations via Co-op Translator 2025-12-12 20:42:50 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00

README.md

Introduksjon til nevrale nettverk: Perceptron

Quiz før forelesning

En av de første forsøkene på å implementere noe som ligner på et moderne nevralt nettverk ble gjort av Frank Rosenblatt fra Cornell Aeronautical Laboratory i 1957. Det var en maskinvareimplementasjon kalt "Mark-1", designet for å gjenkjenne primitive geometriske figurer, som trekanter, firkanter og sirkler.

Frank Rosenblatt The Mark 1 Perceptron

Bilder fra Wikipedia

Et inputbilde ble representert av et 20x20 fotocelle-array, så det nevrale nettverket hadde 400 innganger og én binær utgang. Et enkelt nettverk inneholdt én nevron, også kalt en terskellogikkenhet. Vektene i det nevrale nettverket fungerte som potensiometre som krevde manuell justering under treningsfasen.

Et potensiometer er en enhet som lar brukeren justere motstanden i en krets.

The New York Times skrev om perceptron på den tiden: embryoet til en elektronisk datamaskin som [marinen] forventer vil kunne gå, snakke, se, skrive, reprodusere seg selv og være bevisst sin egen eksistens.

Perceptron-modell

Anta at vi har N funksjoner i modellen vår, i så fall vil inputvektoren være en vektor av størrelse N. En perceptron er en binær klassifiseringsmodell, det vil si at den kan skille mellom to klasser av inputdata. Vi antar at for hver inputvektor x vil utgangen fra vår perceptron være enten +1 eller -1, avhengig av klassen. Utgangen beregnes ved hjelp av formelen:

y(x) = f(wTx)

hvor f er en stegaktiveringsfunksjon

Trening av perceptron

For å trene en perceptron må vi finne en vektvektor w som klassifiserer flest mulig verdier korrekt, det vil si som resulterer i den minste feilen. Denne feilen E er definert av perceptron-kriteriet på følgende måte:

E(w) = -∑wTxiti

hvor:

  • summen tas over de treningsdatapunktene i som resulterer i feil klassifisering
  • xi er inputdata, og ti er enten -1 eller +1 for henholdsvis negative og positive eksempler.

Dette kriteriet betraktes som en funksjon av vektene w, og vi må minimere det. Ofte brukes en metode kalt gradient descent, der vi starter med noen initiale vekter w(0), og deretter oppdaterer vektene ved hver steg i henhold til formelen:

w(t+1) = w(t) - η∇E(w)

Her er η den såkalte læringsraten, og ∇E(w) betegner gradienten av E. Etter å ha beregnet gradienten, ender vi opp med

w(t+1) = w(t) + ∑ηxiti

Algoritmen i Python ser slik ut:

def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):

    weights = [0,0,0] # Initialize weights (almost randomly :)
        
    for i in range(num_iterations):
        pos = random.choice(positive_examples)
        neg = random.choice(negative_examples)

        z = np.dot(pos, weights) # compute perceptron output
        if z < 0: # positive example classified as negative
            weights = weights + eta*weights.shape

        z  = np.dot(neg, weights)
        if z >= 0: # negative example classified as positive
            weights = weights - eta*weights.shape

    return weights

Konklusjon

I denne leksjonen lærte du om en perceptron, som er en binær klassifiseringsmodell, og hvordan du trener den ved hjelp av en vektvektor.

🚀 Utfordring

Hvis du vil prøve å bygge din egen perceptron, kan du prøve dette laboratoriet på Microsoft Learn som bruker Azure ML designer.

Quiz etter forelesning

Gjennomgang & Selvstudium

For å se hvordan vi kan bruke perceptron til å løse et lekeproblem så vel som virkelige problemer, og for å fortsette læringen - gå til Perceptron-notatboken.

Her er en interessant artikkel om perceptrons også.

Oppgave

I denne leksjonen har vi implementert en perceptron for en binær klassifiseringsoppgave, og vi har brukt den til å klassifisere mellom to håndskrevne sifre. I dette laboratoriet blir du bedt om å løse problemet med sifferklassifisering helt, det vil si å bestemme hvilket siffer som mest sannsynlig tilsvarer et gitt bilde.