Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Perceptronlag | Sektion
Grundlæggende Neurale Netværk

bookPerceptronlag

Stryg for at vise menuen

Perceptron er det simpleste neurale netværk—kun én neuron. Til mere komplekse opgaver anvendes et multilags perceptron (MLP), som indeholder en eller flere skjulte lag, der gør det muligt for netværket at lære mere komplekse mønstre.

Et MLP består af:

  1. Inputlag — modtager data;
  2. Skjulte lag — udtrækker mønstre;
  3. Outputlag — genererer forudsigelser.

Hvert lag har flere neuroner; outputtet fra ét lag bliver input til det næste.

Lagets vægte og bias

Tidligere gemte en neuron sine vægte som en vektor og bias som en skalar. Et lag indeholder dog mange neuroner, så dets vægte bliver en matrix, hvor hver række gemmer vægtene for én neuron. Bias for alle neuroner danner en vektor.

For et lag med 3 input og 2 neuroner:

W=[W11W12W13W21W22W23],b=[b1b2]W=\begin{bmatrix} W_{11} & W_{12} & W_{13} \\ W_{21} & W_{22} & W_{23} \end{bmatrix}, \qquad b=\begin{bmatrix} b_1 \\ b_2 \end{bmatrix}

Her er WijW_{ij} vægten fra den jj-te input til den ii-te neuron; bib_i er bias for neuron ii.

Fremadpropagering

Fremadpropagering aktiverer hver neuron ved at beregne en vægtet sum, lægge bias til og anvende aktiveringsfunktionen.

Tidligere brugte en enkelt neuron:

[ z = W \cdot x + b ]

Nu, da hver række af (W) er én neurons vægtvektor, beregner matrixmultiplikation mellem vægtmatricen og inputvektoren automatisk alle neuronernes vægtede summer på én gang.

For at tilføje bias til outputtene fra de respektive neuroner, skal der også tilføjes en bias-vektor:

Til sidst anvendes aktiveringsfunktionen på resultatet — sigmoid eller ReLU i dette tilfælde. Den resulterende formel for fremadpropagering i laget er som følger:

a=activation(Wx+b)a = activation(Wx + b)

hvor aa er vektoren af neuronaktiveringer (output).

Layer-klasse

Da MLP'er er opbygget af lag, defineres en dedikeret Layer-klasse. Dens attributter:

  • inputs: inputvektor (n_inputs elementer);
  • outputs: rå neuronoutput (n_neurons elementer);
  • weights: vægtmatrix;
  • biases: bias-vektor;
  • activation_function: aktivering anvendt i laget.

Vægte og bias initialiseres med tilfældige værdier fra en uniform fordeling i ([-1, 1]). inputs og outputs initialiseres som nul-fyldte NumPy-arrays for at sikre konsistente former til senere backpropagation.

class Layer:
    def __init__(self, n_inputs, n_neurons, activation_function):
        self.inputs = np.zeros((n_inputs, 1))
        self.outputs = np.zeros((n_neurons, 1))
        self.weights = ...
        self.biases = ...
        self.activation = activation_function
Note
Bemærk

Initialisering af inputs og outputs med nuller forhindrer formfejl og sikrer, at lagene forbliver konsistente under både fremad- og bagudpassager.

Forward-metode

Fremadpropagering for et lag beregner rå output og anvender aktiveringsfunktionen:

def forward(self, inputs):
    self.inputs = np.array(inputs).reshape(-1, 1)
    # Raw outputs: weighted sum + bias
    self.outputs = ...
    # Apply activation
    return ...

Omformning af input til en kolonnevektor sikrer korrekt multiplikation med vægtmatricen og matcher de forventede dimensioner gennem hele netværket.

Note
Bemærk

Hvis det ønskes, kan jeg også forkorte dette yderligere, fremstille et diagram over lagstrukturen eller generere den fulde fungerende kode for Layer-klassen.

1. Hvad gør et multilagsperceptron (MLP) mere kraftfuldt end et simpelt perceptron?

2. Hvorfor er det nødvendigt at anvende denne kode, før inputs multipliceres med vægtmatricen?

question mark

Hvad gør et multilagsperceptron (MLP) mere kraftfuldt end et simpelt perceptron?

Select the correct answer

question mark

Hvorfor er det nødvendigt at anvende denne kode, før inputs multipliceres med vægtmatricen?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 10

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Sektion 1. Kapitel 10
some-alt