Forward-Propagation: KNN zur Klassifikation Tiere

Quelle: inf-schule.de, Kapitel 12.7.7.2, Aufgabe 1

Kapitel 12.7.7.2, Aufgabe 1

Stellen Sie für das KNN die Gewichtsmatrizen $W^1$ und $W^2$ auf und berechnen Sie damit jeweils durch zweifache Matrix-Vektormultiplikation die Aktivierungen am Ausgang des Netzwerks für die folgenden Lebewesen als Eingabegrößen. Die Komponenten der Vektoren können dabei als Werte in $cm$ interpretiert werden.

1.) $\vec{a}^0 = \left(\begin{array}{c} 8\\2\\3\\10 \end{array}\right)$      2.) $\vec{a}^0 = \left(\begin{array}{c} 150\\1\\40\\120 \end{array}\right)$      3.) $\vec{a}^0 = \left(\begin{array}{c} 4\\3\\25\\7 \end{array}\right)$

Tipp: Verwenden Sie zum Ausführen der Matrix-Verktormultiplikationen

Import Bibliothek NumPy

( Vektoren, Matrizen, lineare Algebra )

In [ ]:
import numpy as np

Definition der Tiere als Vektoren

Tier 1:   $\vec{a}^0 :=\left( \begin{array}{c} 8\\2\\3\\10 \end{array} \right)$             Tier 2:   $\vec{a}^0 := \left(\begin{array}{c} 150\\1\\40\\120 \end{array}\right)$             Tier 3:   $\vec{a}^0 := \left(\begin{array}{c} 4\\3\\25\\7 \end{array}\right)$

In [ ]:
 

Definition Gewichtsmatrizen und Schwellenwerte des KNN

$W^1 := \left(\begin{array}{cccc} -20 & 100 & -15 & 20 \\ 1 & -100 & 1 & 1 \\ -100 & 80 & 8 & 10 \end{array}\right)$     $\vec{b}^1 := \left( \begin{array}{c} 0\\0\\0 \end{array} \right)$


$W^2 := \left(\begin{array}{cccc} -10 & 0 & 2 \\ 2 & -10 & -100 \end{array}\right)$                     $\vec{b}^2 := \left(\begin{array}{c} 1\\1 \end{array}\right)$

In [ ]:
 

Definition Treppenfunktion zum Schwellenwert 0:

NB: Die Funktion arbeitet elementweise auf der übergebenen Matrix, wobei hier lediglich eine (nx1)-Matrix (also ein Vektor) übergeben wird. Zurückgegenben werden soll ebenfalls eine (nx1)-Matrix.

In [ ]:
def treppenfunktion(matrix):

Forward-Propagation

Schritt 0: Wähle ein Tier aus

Setzte das Tier als Aktivierung $\vec{a}^0$ des Eingangslayers:

In [ ]:
a0 = tier2

Schritt 1: Berechne Aktivierung des 1. Layers

$\vec{a}^1 := \vec{f}_0(W^1\vec{a}^0-\vec{b}^1)$

In [ ]:
 

Schitt 2: Berechne Aktivierung des 2. Layers (Ausgangsaktivierung)

$\vec{a}^2 := \vec{f}_0(W^2 \vec{a}^1-\vec{b}^2)$

In [ ]:
 

Zur Erinnerung:

Tier 1: $\vec{a}^0 = \left( \begin{array}{c} 8\\2\\3\\10 \end{array} \right)$       Tier 2: $\vec{a}^0 = \left(\begin{array}{c} 150\\1\\40\\120 \end{array}\right)$       Tier 3: $\vec{a}^0 = \left(\begin{array}{c} 4\\3\\25\\7 \end{array}\right)$

In [ ]: