Ein erstes neuronales Netzwerk
In dieser Übung trainieren wir unser erstes kleines neuronales Netz.
Mit neuronalen Netzen können wir
nicht lineare Modelle erlernen,
explizite Funktionsverknüpfungen.
Aufgabe 1: Das angegebene Modell kombiniert unsere beiden Eingabefeatures in einem
mit einem einzelnen Neuron. Erlernt dieses Modell Nichtlinearitäten? Führen Sie ihn aus, um
zu schätzen.
Aufgabe 2: Versuchen Sie, die Anzahl der Neuronen in der verborgenen Schicht
1 bis 2 und versuchen Sie, von einer linearen zu einer nicht linearen Aktivierung zu wechseln.
wie ReLU. Können Sie ein Modell erstellen, das Nichtlinearitäten lernen kann? Kann es modellieren
effektiv zu nutzen?
Aufgabe 3: Versuchen Sie, die Anzahl der Neuronen in der verborgenen Ebene
2 bis 3 mit einer nicht linearen Aktivierung wie ReLU. Kann es die Daten modellieren,
effektiv einsetzen? Wie variiert die Modellqualität bei jeder Ausführung?
Aufgabe 4: Fahren Sie mit dem Experimentieren fort, indem Sie ausgeblendete Ebenen hinzufügen oder entfernen.
und Neuronen pro Schicht. Sie können auch gern
Lernraten ändern,
Regularisierung und andere Lerneinstellungen. Was ist die kleinste
Anzahl an Neuronen und Schichten, die einen Testverlust ergibt
0,177 oder niedriger ist?
Wird durch das Erhöhen der Modellgröße die Anpassung verbessert oder wie schnell konvergiert sie?
Ändert sich dadurch, wie oft es zu einem guten Modell konvergiert? Versuchen Sie beispielsweise
folgende Architektur:
- Erste verborgene Schicht mit drei Neuronen.
- Zweite versteckte Schicht mit drei Neuronen.
- Dritte versteckte Schicht mit zwei Neuronen.
(Die Antworten werden direkt unter der Übung angezeigt.)
Klicken Sie auf das Plus-Symbol, um eine Antwort auf Aufgabe 1 zu erhalten.
Die Aktivierung ist auf Linear gesetzt, sodass dieses Modell nicht lernen kann,
alle Nichtlinearitäten
berücksichtigt werden. Der Verlust ist sehr hoch und wir sagen, dass das Modell unzureichend ist.
mit den Daten.
Klicken Sie auf das Plus-Symbol, um eine Antwort auf Aufgabe 2 zu erhalten.
Die nicht lineare Aktivierungsfunktion kann nicht lineare Modelle erlernen. Sie können jedoch
Eine einzelne verborgene Schicht mit zwei Neuronen kann nicht alle Nichtlinearitäten in
und haben auch ohne Rauschen einen hohen Verlust:
unteranpassung der Daten. Diese Übungen sind nicht deterministisch, sodass einige Läufe
kein effektives Modell erlernen, während andere Ausführungen ziemlich gut funktionieren.
Das beste Modell hat möglicherweise nicht die Form, die Sie erwarten!
Klicken Sie auf das Plus-Symbol, um eine Antwort auf Aufgabe 3 zu erhalten.
Die unbestimmte Natur von Playground zeigt sich bei dieser Übung. A
Eine einzelne verborgene Schicht mit drei Neuronen reicht aus, um das Dataset zu modellieren (keine
Rauschen), aber nicht alle Läufe konvergieren zu einem guten Modell.
Drei Neuronen sind ausreichend, da die XOR-Funktion als Kombination aus drei Halbebenen ausgedrückt werden kann (ReLU-Aktivierung). Sie sehen dies in der
Neuronenbilder, die die Ausgabe der einzelnen Neuronen zeigen. In einem guten Modell
mit 3 Neuronen und ReLU-Aktivierung gibt es 1 Bild mit einer fast
vertikale Linie, wobei X1 positiv (oder negativ; das Vorzeichen kann
vertauscht werden), 1 Bild mit einer fast horizontalen Linie, die das Vorzeichen von
x2 und 1 Bild mit einer diagonalen Linie, die ihre
Interaktion.
Allerdings werden nicht alle Ausführungen zu einem guten Modell konvergieren. Bei einigen Ausführungen
besser als ein Modell mit zwei Neuronen. Hier sind doppelte Neuronen zu sehen,
Cases.
Klicken Sie auf das Plus-Symbol, um eine Antwort auf Aufgabe 4 zu erhalten.
Eine einzelne verborgene Schicht mit drei Neuronen kann die Daten modellieren,
sodass bei vielen Läufen ein Neuron verloren geht
gutes Modell haben. Eine einzelne Schicht mit mehr als drei Neuronen
hat mehr Redundanz.
konvergiert daher mit größerer Wahrscheinlichkeit einem guten Modell.
Wie wir gesehen haben, kann eine einzelne verborgene Schicht mit nur zwei Neuronen die Daten nicht modellieren.
gut. Wenn Sie es ausprobieren, können Sie sehen,
dass alle Elemente in der Ausgabeebene
können nur Formen aus den Linien dieser beiden Knoten sein. In diesem Fall
kann ein tieferes Netzwerk den Datensatz besser modellieren als nur die erste verborgene Schicht:
können einzelne Neuronen in der zweiten Schicht komplexere Formen modellieren,
im oberen rechten Quadranten durch Kombinieren von Neuronen in der ersten Schicht. Beim Hinzufügen
die zweite ausgeblendete Ebene den Datensatz immer noch besser modellieren als die erste ausgeblendete Ebene.
kann es sinnvoller sein, der ersten Ebene weitere Knoten hinzuzufügen,
mehr Linien in das Kit zu integrieren, aus dem die zweite Schicht ihre
Formen.
Ein Modell mit einem Neuron in der ersten verborgenen Schicht kann jedoch nicht
egal wie tief es ist. Das liegt daran, dass die Ausgabe der ersten
variiert nur in einer Dimension (normalerweise eine diagonale Linie), die nicht
um dieses Dataset gut zu modellieren. Spätere Ebenen können dies nicht kompensieren, nein
egal wie komplex: die Informationen in den Eingabedaten irreparabel
verloren.
Was wäre, wenn wir statt eines kleinen Netzwerks viele Ebenen mit
für ein einfaches Problem wie dieses? Nun, wie wir gesehen haben,
gibt es die Möglichkeit, viele verschiedene Abhängelinien für Linien auszuprobieren. Und die zweite
können sie sich in vielen
verschiedenen Formen ansammeln,
mit vielen Formen über die nachfolgenden Ebenen hinweg.
Das Modell kann so viele verschiedene Formen durch unterschiedliche
mit verschiedenen verborgenen Neuronen, haben Sie genug Platz geschaffen,
kann leicht auf die Geräusche im Trainings-Dataset überangepasst werden.
Formen, um sie mit den Schimpfwörtern der Trainingsdaten und nicht
die allgemeine Grundwahrheit. In diesem Beispiel können größere Modelle
um den genauen Datenpunkten zu entsprechen. In extremen Fällen kann ein großes Modell
um eine Insel um einen einzelnen Lärmpunkt herum lernen.
sich die Daten zu merken. Wenn Sie das Modell so viel größer machen,
stellen Sie fest, dass die Leistung oft schlechter ist als das einfachere Modell mit
nur genügend Neuronen haben,
um das Problem zu lösen.