Informatik

Rückblick

Du hast ein komplettes neuronales Netz in Java gebaut — mit Neuronen, Schichten, Aktivierungsfunktionen und Forward Propagation — und die Grundidee der Backpropagation kennengelernt.

Das kann ich jetzt

  • Ich kann die Bestandteile eines neuronalen Netzes nennen. (4.1)
  • Ich kann die Rolle der Aktivierungsfunktion erklären. (4.2)
  • Ich kann Forward Propagation beschreiben. (4.3)
  • Ich kann die Grundidee der Backpropagation und die Rolle der Lernrate erklären. (4.4)
  • Ich kann die OO-Struktur eines neuronalen Netzes beschreiben (Neuron → Schicht → Netz). (4.5)

Das Wichtigste auf einen Blick

Begriff Bedeutung
Neuron Berechnet gewichtete Summe + Bias, wendet Aktivierungsfunktion an
Gewichte Bestimmen, wie stark jede Eingabe zählt
Aktivierungsfunktion Wandelt Summe in Ausgabe um (Sigmoid, ReLU)
Eingabeschicht Empfängt die Rohdaten
Verdeckte Schicht Verarbeitet die Daten (nicht von außen sichtbar)
Ausgabeschicht Liefert das Ergebnis
Forward Propagation Daten fließen vorwärts durch das Netz
Backpropagation Fehler wird rückwärts gereicht, Gewichte werden angepasst
Lernrate Bestimmt die Schrittgröße der Gewichtsanpassung

Ein neuronales Netz ist eine Kette von 1:n-Assoziationen: Netz hat Schichten, Schichten haben Neuronen, Neuronen haben eine Aktivierungsfunktion (Polymorphie). Forward Propagation ist der Vorwärtsdurchlauf, Backpropagation ist das Zurückrechnen des Fehlers. Die Lernrate steuert, wie schnell das Netz lernt.

Gemischte Aufgaben

Aufgabe 1: Forward Propagation auf dem Papier

Ein Netz hat zwei Eingaben, zwei verdeckte Neuronen und ein Ausgabeneuron. Überall wird ReLU als Aktivierungsfunktion verwendet.

Neuron Gewichte Bias
verdeckt 0 1,0 und −1,0 0,5
verdeckt 1 0,5 und 0,5 −1,0
Ausgabe 2,0 und −1,0 0,0

a) Berechne die Ausgabe des Netzes für die Eingabe (2,0 | 1,0). Notiere alle Zwischenwerte.

b) Berechne die Ausgabe für die Eingabe (0,0 | 3,0).

c) Bei einer der beiden Eingaben ist ein verdecktes Neuron vollständig abgeschaltet. Bei welcher, und was heißt das für die Ausgabe?

d) Wie viele Gewichte und wie viele Bias-Werte hat dieses Netz insgesamt? Wie viele Zahlen müssten beim Training also angepasst werden?

Tipp 1: Reihenfolge

Rechne schichtweise: erst beide verdeckten Neuronen vollständig (Summe, dann ReLU), dann erst das Ausgabeneuron. Dessen Eingaben sind die beiden ReLU-Ausgaben, nicht die ursprünglichen Zahlen.

Tipp 2: ReLU

ReLU(x) = x, wenn x positiv ist, sonst 0. Vergiss den Bias nicht — er wird addiert, bevor ReLU angewendet wird.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Aufgabe 2: Das Netz erweitern

Nimm das Programm aus Lektion 4.5 als Ausgangspunkt.

a) Ergänze die Klasse Netz um eine Methode int anzahlGewichte(), die zurückgibt, wie viele Gewichte und Bias-Werte das Netz insgesamt hat. Du brauchst dafür in Schicht und Neuron jeweils eine passende Hilfsmethode.

b) Baue ein zweites Netz mit der Struktur {2, 4, 4, 1} und lass dir für beide Netze die Anzahl ausgeben.

c) Erkläre, warum berechne in der Klasse Netz nicht geändert werden muss, obwohl das Netz jetzt eine Schicht mehr hat.

Tipp 1: Wo zählt man?

Nur das Neuron kennt seine Gewichte. Gib ihm eine Methode, die gewichte.length + 1 zurückliefert (das +1 ist der Bias). Schicht addiert über ihre Neuronen, Netz über seine Schichten.

Tipp 2: zu c)

Schau dir die Schleife in Netz.berechne genau an. Woher weiß sie, wie viele Durchläufe sie machen muss?

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Selbsttest

Rückblick

Teilbare URL erstellen

Abschnitte auswählen