Erstellung Einer Neuronalen Netzwerkschicht
Einzelne Schicht eines neuronalen Netzwerks
In einem einfachen Feedforward-Neuronalen Netzwerk wird die Ausgabe eines Neurons in einer Schicht mithilfe der gewichteten Summe seiner Eingaben berechnet, die durch eine Aktivierungsfunktion geleitet wird. Dies lässt sich wie folgt darstellen:
y=σ(W⋅x+b)
Dabei gilt:
- y: Ausgabe des Neurons;
- W: Matrix, die die mit den Verbindungen zum Neuron assoziierten Gewichte darstellt;
- x: Spaltenmatrix (oder Vektor), die die Eingabewerte für das Neuron repräsentiert;
- b: Skalarwert;
- σ: Aktivierungsfunktion, wie beispielsweise die Sigmoid-, ReLU- oder Softmax-Funktion.
Um die beste Leistung zu erzielen, werden alle Berechnungen mit Matrizen durchgeführt. Wir werden diese Aufgabe auf die gleiche Weise angehen.





Danke für Ihr Feedback!
single
Erstellung Einer Neuronalen Netzwerkschicht
Swipe um das Menü anzuzeigen
Einzelne Schicht eines neuronalen Netzwerks
In einem einfachen Feedforward-Neuronalen Netzwerk wird die Ausgabe eines Neurons in einer Schicht mithilfe der gewichteten Summe seiner Eingaben berechnet, die durch eine Aktivierungsfunktion geleitet wird. Dies lässt sich wie folgt darstellen:
y=σ(W⋅x+b)
Dabei gilt:
- y: Ausgabe des Neurons;
- W: Matrix, die die mit den Verbindungen zum Neuron assoziierten Gewichte darstellt;
- x: Spaltenmatrix (oder Vektor), die die Eingabewerte für das Neuron repräsentiert;
- b: Skalarwert;
- σ: Aktivierungsfunktion, wie beispielsweise die Sigmoid-, ReLU- oder Softmax-Funktion.
Um die beste Leistung zu erzielen, werden alle Berechnungen mit Matrizen durchgeführt. Wir werden diese Aufgabe auf die gleiche Weise angehen.





Wischen, um mit dem Codieren zu beginnen
Gegeben sind Gewichte, Eingaben und Bias für eine einzelne Neuronenschicht. Berechnen Sie deren Ausgabe mittels Matrixmultiplikation und der Sigmoid-Aktivierungsfunktion. Betrachten Sie eine Schicht mit 3 Eingaben und 2 Neuronen, wobei ein einzelner Batch nur eine Probe enthält.
-
Bestimmung der Formen:
- Die Form der Eingabematrix
Isollte in der ersten Dimension die Anzahl der Proben im Batch darstellen. Bei einer Probe mit 3 Eingaben beträgt die Größe1x3; - Die Gewichtsmatrix
Wsollte Spalten mit Eingabengewichten für jedes Neuron enthalten. Für 2 Neuronen mit 3 Eingaben ist die erwartete Form3x2. Dies ist nicht der Fall, daher muss die Gewichtsmatrix transponiert werden, um die erforderliche Form zu erhalten.
- Die Form der Eingabematrix
-
Matrixmultiplikation:
- Mit den Matrizen in der richtigen Form führen Sie die Matrixmultiplikation durch;
- Beachten Sie, dass bei der Matrixmultiplikation das Ergebnis aus dem Skalarprodukt jeder Zeile der ersten Matrix mit jeder Spalte der zweiten Matrix abgeleitet wird. Achten Sie auf die richtige Reihenfolge der Multiplikation.
-
Bias-Addition:
- Führen Sie eine elementweise Addition des Ergebnisses der Matrixmultiplikation mit dem Bias durch.
-
Anwenden der Aktivierungsfunktion:
- Verwenden Sie die Sigmoid-Aktivierungsfunktion auf das Ergebnis der Bias-Addition, um die Ausgabe des Neurons zu erhalten;
- TensorFlow stellt die Sigmoid-Funktion als
tf.sigmoid()bereit.
Hinweis
Am Ende des Kurses werden wir die Implementierung eines vollständigen Feed-Forward-Netzwerks mit TensorFlow behandeln. Diese Übung legt das Fundament dafür.
Lösung
Definition von Schichtgewichten, Schichteingaben und Schicht-Bias
Hier werden die Gewichte, Eingaben und der Bias für die Schicht definiert. Wir verwenden tf.Variable() für Gewichte und Bias, da dies trainierbare Parameter in neuronalen Netzwerken sind, und tf.constant() für die Eingabe, da diese während des Trainings unverändert bleibt. dtype=tf.float64 wird für höchste Präzision gesetzt.
W = tf.Variable([[0.5, 0.4, 0.7], [0.1, 0.9, 0.5]], dtype=tf.float64)
Dies ist die Gewichtsmatrix für die neuronale Schicht. Jede Zeile repräsentiert die Gewichte für ein Neuron in Bezug auf jede Eingabe.
I = tf.constant([[0.5, 0.6, 0.1]], dtype=tf.float64)
Dies ist die Eingabematrix, die eine einzelne Stichprobe mit 3 Merkmalen darstellt.
b = tf.Variable(0.1, dtype=tf.float64)
Dies ist der Bias-Wert. Es handelt sich um einen Skalar, der zur gewichteten Summe addiert wird, bevor die Aktivierungsfunktion angewendet wird.
W = tf.transpose(W)
Die Gewichte sind in Zeilen organisiert, aber für die Matrixmultiplikation sollten sie in Spalten angeordnet sein. Daher transponieren wir die Matrix. Danach entspricht die erste Spalte den Gewichten des ersten Neurons und die zweite Spalte denen des zweiten Neurons.
weighted_sum = tf.matmul(I, W)
Hier berechnen wir die Matrixmultiplikation der Eingabe und der transponierten Gewichtsmatrix. Dies ergibt die gewichtete Summe der Eingaben.
Lassen Sie uns diese Matrixmultiplikation Schritt für Schritt aufschlüsseln:
Bestimmung der Form der resultierenden Matrix:
Die resultierende Matrix übernimmt die Anzahl der Zeilen aus der ersten Matrix (Matrix I mit Form 1x3) und die Anzahl der Spalten aus der zweiten Matrix (Matrix W mit Form 3x2). Somit hat die resultierende Matrix die Form 1x2.
Ablauf der Matrixmultiplikation:
Für das erste Element der resultierenden Matrix (wir nennen es S[0][0] für "gewichtete Summe"):
- Multiplizieren Sie das erste Element der ersten Zeile der Matrix
Imit dem ersten Element der ersten Spalte der MatrixW:0.5 * 0.5 = 0.25; - Multiplizieren Sie das zweite Element der ersten Zeile der Matrix
Imit dem zweiten Element der ersten Spalte der MatrixW:0.6 * 0.4 = 0.24; - Multiplizieren Sie das dritte Element der ersten Zeile der Matrix
Imit dem dritten Element der ersten Spalte der MatrixW:0.1 * 0.7 = 0.07; - Addieren Sie diese Produkte:
0.25 + 0.24 + 0.07 = 0.56.
Somit ist S[0][0] gleich 0.56.
Für das zweite Element der resultierenden Matrix (S[0][1]):
- Multiplizieren Sie das erste Element der ersten Zeile der Matrix
Imit dem ersten Element der zweiten Spalte der MatrixW:0.5 * 0.1 = 0.05; - Multiplizieren Sie das zweite Element der ersten Zeile der Matrix
Imit dem zweiten Element der zweiten Spalte der MatrixW:0.6 * 0.9 = 0.54; - Multiplizieren Sie das dritte Element der ersten Zeile der Matrix
Imit dem dritten Element der zweiten Spalte der MatrixW:0.1 * 0.5 = 0.05; - Addieren Sie diese Produkte:
0.05 + 0.54 + 0.05 = 0.64.
Somit ist S[0][1] gleich 0.64.
Daraus ergibt sich die resultierende Matrix S aus der Multiplikation der Matrix I und der Matrix W:
[ [0.56, 0.64] ]
biased_sum = weighted_sum + b
Der Bias wird zur gewichteten Summe addiert. Dies ist eine Form der affinen Transformation, die das Ergebnis verschiebt, um während des Trainings eine bessere Anpassung zu erreichen.
neuron_output = tf.sigmoid(biased_sum)
Die Sigmoidfunktion drückt den Wert auf einen Bereich zwischen 0 und 1, sodass unsere Ausgabe in einem normalisierten Bereich liegt. Sie wird häufig bei binären Klassifikationsproblemen verwendet.
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen