Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Neuronale Netze
Beispielaufgabe
Konstruieren Sie ein möglichst einfaches neuronales Netz, das als Ausgangswert genau dann 1 liefert, wenn der Eingangsvektor $(x_1\ x_2)$ im grün dargestellten Dreieck liegt (einschließlich der Punkte auf den Dreiecksseiten). Als Aktivierungsfunktionen stehen die Heaviside-Funktion und die Identität zur Verfügung.
Lösung
Plan:
Wir konstruieren zunächst
- ein Neuron, das genau dann feuert (d.h. 1 ausgibt), wenn der Eingangsvektor auf der Halbebene rechts von der blauen Gerade liegt,
- eines, das genau dann feuert, wenn der Eingangsvektor auf der Halbebene unter der roten Gerade liegt und
- eines, das genau dann feuert, wenn der Eingangsvektor auf der Halbebene über der gelben Gerade liegt.
(Die Geraden werden jeweils mit zur Halbebene gerechnet.)
Wir fügen dann ein weiteres Neuron hinzu, das genau dann feuert, wenn die drei anderen Neuronen feuern. Das ist genau dann der Fall, wenn ein Punkt in der Schnittmenge der drei Halbebenen liegt, also im grünen Dreieck.
Los geht's!
Die Halbebene rechts von der blauen Gerade besteht aus genau den Punkten $(x_1/x_2)$, für die gilt, $x_2 \ge -3x_1 + 6$, also
$$3x_1 + x_2 - 6 \ge 0$$
Das Neuron, das bei genau diesen Punkten feuert, sieht so aus:
Die Halbebene unter der roten Gerade besteht aus genau den Punkten $(x_1/x_2)$, für die gilt, $x_2 \le -0,4x_1 + 4$, also
$$-0,4x_1 - x_2 + 4 \ge 0$$
Das Neuron, das bei genau diesen Punkten feuert, sieht so aus:
Die Halbebene über der gelben Gerade besteht aus genau den Punkten $(x_1/x_2)$, für die gilt, $x_2 \ge 2$
Das Neuron, das bei genau diesen Punkten feuert, sieht so aus:
Wir ergänzen diese drei Neuronen jetzt noch um
- eine Eingabeschicht, die die Daten verteilt (beachten Sie die Identität als Aktivierungsfunktion!)
- ein Neuron in der Ausgabeschicht, das genau dann feuert, wenn alle drei Neuronen der Zwischenschicht feuern.
Probe
Der Punkt $(1,5/3)$ liegt offenbar im grünen Dreieck. Wir geben ihn ins neuronale Netz und führen eine forward propagation durch, um die Ausgabe zu berechnen.
- Ausgabe des blauen Neurons: $H(3\cdot x_1 + 1\cdot x_2 - 6) = H(1,5) = 1$
- Ausgabe des roten Neurons: $H(-0,4\cdot x_1 - 1\cdot x_2 - (-4)) = H(0,4) = 1$
- Ausgabe des gelben Neurons: $H(1\cdot x_2 - 2) = H(1) = 1$
- Ausgabe des Neurons in der Ausgabeschicht: $H(1 \cdot 1 + 1 \cdot 1 + 1 \cdot 1 - 3) = H(0) = 1$
Passt!
Der Punkt $(4/3)$ liegt offenbar nicht im grünen Dreieck. Wir geben ihn ins neuronale Netz und führen eine forward propagation durch, um die Ausgabe zu berechnen.
- Ausgabe des blauen Neurons: $H(3\cdot x_1 + 1\cdot x_2 - 6) = H(9) = 1$
- Ausgabe des roten Neurons: $H(-0,4\cdot x_1 - 1\cdot x_2 - (-4)) = H(-0,6) = 0$
- Ausgabe des gelben Neurons: $H(1\cdot x_2 - 2) = H(1) = 1$
- Ausgabe des Neurons in der Ausgabeschicht: $H(1 \cdot 1 + 1 \cdot 0 + 1 \cdot 1 - 3) = H(-1) = 0$
Passt!
Erinnerung: $H(x)$ ist die Heavyside-Funktion: $H(x) = \begin{cases} 0 & \text{für } x < 0 \\ 1 & \text{für } x \ge 0 \end{cases}$.
Ein neuronales Netz besteht aus einer Vielzahl von Neuronen, die üblicherweise in Schichten angeordnet sind:
- In der Eingabeschicht befinden sich genau so viele Neuronen wie es Eingabedaten gibt. Die Neuronen nutzen die Identität als Aktivierungsfunktion und 0 als Schwellenwert, sodass sie die Daten nur unverändert "durchleiten".
- Es folgen ein- oder mehrere Zwischenschicht(en) (auch verdeckte Schichten genannt).
- In der Ausgabeschicht gibt es üblicherweise so viele Neuronen, wie es Klassen an Daten gibt, die unterschieden werden sollen.
Aufgabe 2
Konstruieren Sie ein möglichst einfaches neuronales Netz, das als Ausgangswert genau dann 1 liefert, wenn der Eingangsvektor $(x_1\ x_2)$ im grün dargestellten Dreieck liegt (einschließlich der Punkte auf den Dreiecksseiten). Als Aktivierungsfunktionen stehen die Heaviside-Funktion und die Identität zur Verfügung.
Aufgabe 3
Diskutieren Sie für die folgenden Problemstellungen,
- welche Eingangsdaten benötigt werden,
- welche Aktivierungsfunktion sich für die Neuronen der Ausgabeschicht eignet,
- wie viele Eingangs- bzw. Ausgangsneuronen das neuronale Netz haben sollte und
- wie die Eingabe- und Ausgabedaten kodiert werden könnten.
Hier die Problemstellungen
- Vorhersage der Temperatur an einem einzelnen Ort zu einem bestimmten Zeitpunkt (Wetterbericht)
- Vorhersage des Rohölpreises zu einem bestimmten Zeitpunkt
- Steuerung des Lenkrades eines autonomen Fahrzeugs
- Einteilung von Äpfeln in verschiedene Güteklassen


