In den folgenden interaktiven Übungen werden Sie die Funktionsweise neuronaler Netze weiter vertiefen. Zunächst sehen Sie, wie sich Änderungen von Parametern und Hyperparametern auf die Vorhersagen des Netzes auswirken. Anschließend wenden Sie das Gelernte an, um ein neuronales Netz für die Anpassung an nichtlineare Daten zu trainieren.
Übung 1
Das folgende Widget richtet ein neuronales Netzwerk mit folgender Konfiguration ein:
- Eingabeschicht mit 3 Neuronen, die die Werte
0.00 , 0.00 und 0.00 enthalten. - Versteckte Schicht mit 4 Neuronen
- Ausgabeschicht mit 1 Neuron
- Die ReLU- Aktivierungsfunktion wird auf alle Knoten der verborgenen Schicht und den Ausgabeknoten angewendet.
Überprüfen Sie die Ersteinrichtung des Netzwerks (Hinweis: Klicken Sie noch nicht auf die Schaltflächen ▶️ oder >| ) und erledigen Sie dann die Aufgaben unterhalb des Widgets.
Aufgabe 1
Die Werte der drei Eingabemerkmale des neuronalen Netzwerkmodells sind alle 0.00 . Klicken Sie auf jeden Knoten im Netzwerk, um alle initialisierten Werte anzuzeigen. Bevor Sie auf die Schaltfläche „Wiedergabe“ ( ▶️ ) klicken, beantworten Sie bitte folgende Frage:
Welchen Ausgabewert erwarten Sie: positiv, negativ oder 0?
Positiver Ausgabewert
Sie haben einen positiven Ausgabewert gewählt. Befolgen Sie die nachstehenden Anweisungen, um anhand der Eingabedaten eine Schlussfolgerung zu ziehen und zu überprüfen, ob Ihre Annahme richtig ist.
Negativer Ausgabewert
Sie haben einen negativen Ausgabewert gewählt. Befolgen Sie die nachstehenden Anweisungen, um anhand der Eingabedaten eine Schlussfolgerung zu ziehen und zu überprüfen, ob Ihre Annahme richtig ist.
Ausgabewert 0
Sie haben den Ausgabewert 0 gewählt. Befolgen Sie die nachstehenden Anweisungen, um eine Schlussfolgerung anhand der Eingabedaten zu ziehen und zu überprüfen, ob Ihre Annahme richtig ist.
Klicken Sie nun auf die Wiedergabetaste (▶️) über dem Netzwerk und beobachten Sie, wie alle Werte der verborgenen Schichten und Ausgabeknoten angezeigt werden. War Ihre obige Antwort korrekt?
Klicken Sie hier für eine Erklärung.
Der genaue Ausgabewert hängt davon ab, wie die Gewichts- und Bias-Parameter zufällig initialisiert werden. Da jedoch jedes Neuron in der Eingabeschicht den Wert 0 hat, werden die Gewichte, die zur Berechnung der Werte der verborgenen Schichten verwendet werden, alle auf null gesetzt. Die Berechnung des ersten verborgenen Schichtknotens sieht beispielsweise wie folgt aus:
y = ReLU(w 11 * 0,00 + w 21 * 0,00 + w 31 * 0,00 + b)
y = ReLU(b)
Der Wert jedes Knotens in der verborgenen Schicht entspricht also dem ReLU-Wert des Bias (b), der 0 ist, wenn b negativ ist, und b selbst, wenn b 0 oder positiv ist.
Der Wert des Ausgabeknotens wird dann wie folgt berechnet:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
Aufgabe 2
Bevor Sie das neuronale Netzwerk modifizieren, beantworten Sie bitte die folgende Frage:
Wenn man nach der ersten verborgenen Schicht eine weitere verborgene Schicht zum neuronalen Netzwerk hinzufügt und dieser neuen Schicht 3 Knoten gibt, wobei alle Eingabe- und Gewichts-/Bias-Parameter gleich bleiben, welche Berechnungen der anderen Knoten werden dadurch beeinflusst?
Alle Knoten im Netzwerk, außer den Eingangsknoten
Sie haben alle Knoten im Netzwerk ausgewählt, außer den Eingabeknoten . Befolgen Sie die unten stehenden Anweisungen, um das neuronale Netzwerk zu aktualisieren und zu überprüfen, ob Ihre Auswahl korrekt ist.
Nur die Knoten in der ersten verborgenen Schicht
Sie haben nur die Knoten in der ersten verborgenen Schicht ausgewählt. Befolgen Sie die unten stehenden Anweisungen, um das neuronale Netzwerk zu aktualisieren und zu überprüfen, ob Ihre Auswahl korrekt ist.
Nur der Ausgabeknoten
Sie haben nur den Ausgabeknoten ausgewählt. Befolgen Sie die unten stehenden Anweisungen, um das neuronale Netzwerk zu aktualisieren und zu überprüfen, ob Ihre Auswahl korrekt ist.
Nun modifizieren Sie das neuronale Netzwerk, indem Sie eine neue verborgene Schicht mit 3 Knoten wie folgt hinzufügen:
- Klicken Sie auf die Schaltfläche „+“ links neben dem Text „1 versteckte Ebene“, um vor der Ausgabeebene eine neue versteckte Ebene hinzuzufügen.
- Klicken Sie zweimal auf die Schaltfläche „+“ über der neuen ausgeblendeten Ebene, um der Ebene 2 weitere Knoten hinzuzufügen.
War Ihre obige Antwort richtig?
Klicken Sie hier für eine Erklärung.
Lediglich der Ausgabeknoten ändert sich. Da die Inferenz dieses neuronalen Netzes „Feedforward“ ist (die Berechnungen erfolgen von Anfang bis Ende), wirkt sich das Hinzufügen einer neuen Schicht nur auf die Knoten nach der neuen Schicht aus, nicht auf die vorhergehenden.
Aufgabe 3
Klicken Sie auf den zweiten Knoten (von oben) in der ersten verborgenen Ebene des Netzwerkdiagramms. Bevor Sie Änderungen an der Netzwerkkonfiguration vornehmen, beantworten Sie die folgende Frage:
Wenn Sie den Wert des Gewichts w 12 (angezeigt unterhalb des ersten Eingabeknotens x 1 ) ändern, welche anderen Knotenberechnungen könnten bei bestimmten Eingabewerten beeinflusst werden?
Keiner
Sie haben keine Option ausgewählt. Befolgen Sie die unten stehenden Anweisungen, um das neuronale Netzwerk zu aktualisieren und zu überprüfen, ob Ihre Auswahl korrekt ist.
Der zweite Knoten in der ersten verborgenen Schicht, alle Knoten in der zweiten verborgenen Schicht und der Ausgabeknoten.
Sie haben den zweiten Knoten der ersten verborgenen Schicht, alle Knoten der zweiten verborgenen Schicht und den Ausgabeknoten ausgewählt. Befolgen Sie die unten stehenden Anweisungen, um das neuronale Netzwerk zu aktualisieren und zu überprüfen, ob Ihre Auswahl korrekt ist.
Alle Knoten in der ersten verborgenen Schicht, der zweiten verborgenen Schicht und der Ausgabeschicht.
Sie haben alle Knoten in der ersten verborgenen Schicht, der zweiten verborgenen Schicht und der Ausgabeschicht ausgewählt. Befolgen Sie die unten stehenden Anweisungen, um das neuronale Netzwerk zu aktualisieren und zu überprüfen, ob Ihre Auswahl korrekt ist.
Klicken Sie nun in das Textfeld für das Gewicht w12 (unterhalb des ersten Eingabeknotens x1 angezeigt), ändern Sie dessen Wert auf 5.00 und drücken Sie die Eingabetaste. Beobachten Sie die Aktualisierungen im Diagramm.
War Ihre Antwort korrekt? Überprüfen Sie Ihre Antwort sorgfältig: Bedeutet eine Änderung des Knotenwerts, dass sich die zugrunde liegende Berechnung nicht geändert hat?
Klicken Sie hier für eine Erklärung.
Im ersten verborgenen Layer ist nur der zweite Knoten (der angeklickte) betroffen. Die Wertberechnungen der anderen Knoten im ersten verborgenen Layer enthalten w12 nicht als Parameter und sind daher nicht betroffen. Alle Knoten im zweiten verborgenen Layer sind betroffen, da ihre Berechnungen vom Wert des zweiten Knotens im ersten verborgenen Layer abhängen. Ebenso ist der Wert des Ausgabeknotens betroffen, da seine Berechnungen von den Werten der Knoten im zweiten verborgenen Layer abhängen.
Dachten Sie, die Antwort sei „keine“, weil sich die Knotenwerte im Netzwerk beim Ändern des Gewichtswerts nicht verändert haben? Beachten Sie, dass sich die zugrundeliegende Berechnung eines Knotens ändern kann, ohne dass sich der Knotenwert ändert (z. B. liefern ReLU(0) und ReLU(–5) beide den Wert 0). Treffen Sie keine Annahmen darüber, wie das Netzwerk beeinflusst wurde, nur weil Sie die Knotenwerte betrachten; überprüfen Sie unbedingt auch die Berechnungen.
Übung 2
In den Übungen zu Merkmalskreuzungen im Modul „Kategorische Daten“ haben Sie manuell Merkmalskreuzungen erstellt, um nichtlineare Daten anzupassen. Nun sollen Sie versuchen, ein neuronales Netzwerk zu entwickeln, das während des Trainings automatisch lernt, nichtlineare Daten anzupassen.
Ihre Aufgabe: Konfigurieren Sie ein neuronales Netzwerk, das die orangefarbenen Punkte von den blauen Punkten im unten stehenden Diagramm trennen kann und dabei sowohl bei den Trainings- als auch bei den Testdaten einen Verlust von weniger als 0,2 erreicht.
Anweisungen:
Im interaktiven Widget unten:
- Ändern Sie die Hyperparameter des neuronalen Netzes, indem Sie mit einigen der folgenden Konfigurationseinstellungen experimentieren:
- Versteckte Ebenen können durch Klicken auf die Schaltflächen + und - links neben der Überschrift VERSTECKTE EBENEN im Netzwerkdiagramm hinzugefügt oder entfernt werden.
- Neuronen können einer verborgenen Schicht hinzugefügt oder entfernt werden, indem man auf die Schaltflächen + und - über einer Spalte der verborgenen Schicht klickt.
- Ändern Sie die Lernrate, indem Sie einen neuen Wert aus dem Dropdown- Menü „Lernrate“ oberhalb des Diagramms auswählen.
- Ändern Sie die Aktivierungsfunktion, indem Sie einen neuen Wert aus dem Dropdown-Menü „Aktivierung“ oberhalb des Diagramms auswählen.
- Klicken Sie auf die Schaltfläche „Play“ (▶️) über dem Diagramm, um das neuronale Netzwerkmodell mit den angegebenen Parametern zu trainieren.
- Beobachten Sie die Visualisierung der Anpassung des Modells an die Daten im Verlauf des Trainings sowie die Werte für Testverlust und Trainingsverlust im Ausgabebereich .
- Wenn das Modell auf den Test- und Trainingsdaten keinen Verlust unter 0,2 erreicht, klicken Sie auf „Zurücksetzen“ und wiederholen Sie die Schritte 1–3 mit anderen Konfigurationseinstellungen. Wiederholen Sie diesen Vorgang, bis Sie die gewünschten Ergebnisse erzielen.
Klicken Sie hier für unsere Lösung.
Wir konnten sowohl den Test- als auch den Trainingsverlust unter 0,2 senken, indem wir Folgendes erreichten:
- Hinzufügen einer verborgenen Schicht mit 3 Neuronen.
- Wahl einer Lernrate von 0,01.
- Auswahl der ReLU-Aktivierungsfunktion.