Inhaltsverzeichnis

Neuronale Netze

Viele Probleme sind nicht linear separierbar, d.h. man kann keine Trennlinie zwischen den unterschiedlichen Klassen von Punkten finden. In diesen Fällen verschaltet man mehrere Neuronen zu einem neuronalen Netz.

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

(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

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.

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.

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,

Hier die Problemstellungen

Lösungsvorschlag