Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Perceptronlager | Neuronnätverk Från Grunden
Introduktion till neurala nätverk med Python

bookPerceptronlager

Perceptron är det enklaste neurala nätverket—endast en neuron. För mer komplexa uppgifter används ett multilagerperceptron (MLP), som innehåller en eller flera dolda lager som gör det möjligt för nätverket att lära sig mer avancerade mönster.

Ett MLP består av:

  1. Ingångslager — tar emot data;
  2. Dolda lager — extraherar mönster;
  3. Utgångslager — genererar prediktioner.

Varje lager har flera neuroner; utgången från ett lager blir ingången till nästa.

Lagerns vikter och bias

Tidigare lagrade en neuron sina vikter som en vektor och bias som en skalär. Ett lager innehåller dock många neuroner, så dess vikter blir en matris, där varje rad lagrar vikterna för en neuron. Bias för alla neuroner bildar en vektor.

För ett lager med 3 ingångar och 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}

Här är WijW_{ij} vikten från den jj:e ingången till den ii:e neuronen; bib_i är bias för neuron ii.

Framåtriktad propagiering

Framåtriktad propagiering aktiverar varje neuron genom att beräkna en viktad summa, addera bias och tillämpa aktiveringsfunktionen.

Tidigare använde en enskild neuron:

[ z = W \cdot x + b ]

Nu, eftersom varje rad i (W) är en neurons viktvektor, beräknar matrismultiplikation mellan viktmatrisen och ingångsvektorn automatiskt alla neuronernas viktade summor samtidigt.

För att lägga till bias till utgångarna från respektive neuron, ska en bias-vektor också adderas:

Slutligen appliceras aktiveringsfunktionen på resultatet — sigmoid eller ReLU i vårt fall. Den resulterande formeln för framåtriktad propagiering i lagret är följande:

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

där aa är vektorn av neuronaktiveringar (utgångar).

Lagerklass

Eftersom MLP:er byggs upp av lager definieras en dedikerad Layer-klass. Dess attribut:

  • inputs: indata-vektor (n_inputs element);
  • outputs: råa neuronutgångar (n_neurons element);
  • weights: viktmatris;
  • biases: bias-vektor;
  • activation_function: aktiveringsfunktion som används i lagret.

Vikter och bias initieras med slumpmässiga värden från en uniform fördelning i ([-1, 1]). inputs och outputs initieras som nollfyllda NumPy-arrayer för att säkerställa konsekventa former för senare backpropagering.

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
Notering

Att initiera inputs och outputs med nollor förhindrar formfel och säkerställer att lagren förblir konsekventa under både framåt- och bakåtriktade pass.

Forward-metod

Framåtriktad propagiering för ett lager beräknar råa utdata och applicerar aktiveringsfunktionen:

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

Omformning av indata till en kolumnvektor säkerställer korrekt multiplikation med viktmatrisen och att dimensionerna matchar genom hela nätverket.

Note
Notering

Om så önskas kan jag även förkorta detta ytterligare, skapa ett diagram över lagerstrukturen eller generera den fullständiga fungerande koden för Layer-klassen.

1. Vad gör ett flerskiktsperceptron (MLP) mer kraftfullt än ett enkelt perceptron?

2. Varför är det nödvändigt att använda denna kod innan inputs multipliceras med viktmatrisen?

question mark

Vad gör ett flerskiktsperceptron (MLP) mer kraftfullt än ett enkelt perceptron?

Select the correct answer

question mark

Varför är det nödvändigt att använda denna kod innan inputs multipliceras med viktmatrisen?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain how the weights and biases are initialized in the Layer class?

What activation functions can I use in the Layer class?

Can you walk me through how forward propagation works step by step?

bookPerceptronlager

Svep för att visa menyn

Perceptron är det enklaste neurala nätverket—endast en neuron. För mer komplexa uppgifter används ett multilagerperceptron (MLP), som innehåller en eller flera dolda lager som gör det möjligt för nätverket att lära sig mer avancerade mönster.

Ett MLP består av:

  1. Ingångslager — tar emot data;
  2. Dolda lager — extraherar mönster;
  3. Utgångslager — genererar prediktioner.

Varje lager har flera neuroner; utgången från ett lager blir ingången till nästa.

Lagerns vikter och bias

Tidigare lagrade en neuron sina vikter som en vektor och bias som en skalär. Ett lager innehåller dock många neuroner, så dess vikter blir en matris, där varje rad lagrar vikterna för en neuron. Bias för alla neuroner bildar en vektor.

För ett lager med 3 ingångar och 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}

Här är WijW_{ij} vikten från den jj:e ingången till den ii:e neuronen; bib_i är bias för neuron ii.

Framåtriktad propagiering

Framåtriktad propagiering aktiverar varje neuron genom att beräkna en viktad summa, addera bias och tillämpa aktiveringsfunktionen.

Tidigare använde en enskild neuron:

[ z = W \cdot x + b ]

Nu, eftersom varje rad i (W) är en neurons viktvektor, beräknar matrismultiplikation mellan viktmatrisen och ingångsvektorn automatiskt alla neuronernas viktade summor samtidigt.

För att lägga till bias till utgångarna från respektive neuron, ska en bias-vektor också adderas:

Slutligen appliceras aktiveringsfunktionen på resultatet — sigmoid eller ReLU i vårt fall. Den resulterande formeln för framåtriktad propagiering i lagret är följande:

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

där aa är vektorn av neuronaktiveringar (utgångar).

Lagerklass

Eftersom MLP:er byggs upp av lager definieras en dedikerad Layer-klass. Dess attribut:

  • inputs: indata-vektor (n_inputs element);
  • outputs: råa neuronutgångar (n_neurons element);
  • weights: viktmatris;
  • biases: bias-vektor;
  • activation_function: aktiveringsfunktion som används i lagret.

Vikter och bias initieras med slumpmässiga värden från en uniform fördelning i ([-1, 1]). inputs och outputs initieras som nollfyllda NumPy-arrayer för att säkerställa konsekventa former för senare backpropagering.

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
Notering

Att initiera inputs och outputs med nollor förhindrar formfel och säkerställer att lagren förblir konsekventa under både framåt- och bakåtriktade pass.

Forward-metod

Framåtriktad propagiering för ett lager beräknar råa utdata och applicerar aktiveringsfunktionen:

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

Omformning av indata till en kolumnvektor säkerställer korrekt multiplikation med viktmatrisen och att dimensionerna matchar genom hela nätverket.

Note
Notering

Om så önskas kan jag även förkorta detta ytterligare, skapa ett diagram över lagerstrukturen eller generera den fullständiga fungerande koden för Layer-klassen.

1. Vad gör ett flerskiktsperceptron (MLP) mer kraftfullt än ett enkelt perceptron?

2. Varför är det nödvändigt att använda denna kod innan inputs multipliceras med viktmatrisen?

question mark

Vad gör ett flerskiktsperceptron (MLP) mer kraftfullt än ett enkelt perceptron?

Select the correct answer

question mark

Varför är det nödvändigt att använda denna kod innan inputs multipliceras med viktmatrisen?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 2. Kapitel 3
some-alt