Perzeptron: Aufbau, Lernen und XOR-Grenze
Du berechnest Entscheidungen eines Perzeptrons und erklärst, wie es aus Beispielen lernt und wo eine einzelne Schicht an Grenzen stößt.
Kurz gesagt
Ein Perzeptron mit einer einzelnen Ausgabe ordnet Eingaben mit einstellbaren Faktoren einer von zwei Gruppen zu. Beim Lernen passt es Faktoren und einen Zusatzwert an. Eine einzelne Schicht scheitert an XOR: Bei zwei Eingaben aus 0 und 1 soll die Ausgabe genau dann 1 sein, wenn genau eine Eingabe 1 ist.
Ein künstliches Neuron ist hier ein einfaches Rechenmodell: Es wandelt mehrere Zahlen in die Ausgabe 0 oder 1 um. Du untersuchst zunächst ein solches Neuron und danach Netze, in denen mehrere dieser Recheneinheiten verbunden sind. Alle Zahlenbeispiele sind frei erfunden und beschreiben keine gemessenen Daten. Wir rechnen mit Zahlen ohne Einheit.
Deine Lernziele
Wir betrachten zunächst ein Perzeptron mit einem einzelnen künstlichen Neuron. Es ordnet seine Eingaben einer von zwei Klassen zu, also einer von zwei Gruppen. Die Ausgabe 0 bezeichnet die eine Klasse, die Ausgabe 1 die andere. Jede Eingabe wird mit einem Gewicht multipliziert. Ein Gewicht ist ein einstellbarer Faktor: Sein Betrag bestimmt die Stärke des Beitrags, sein Vorzeichen dessen Richtung. Der Bias ist ein zusätzlicher Zahlenwert, den das Neuron zur Summe der Produkte addiert.
Für zwei Eingaben heißen die Eingabewerte x_1 und x_2, die zugehörigen Gewichte w_1 und w_2 und der Bias b. Die kleinen Zahlen unterscheiden die beiden Eingaben und Gewichte. Berechne zuerst die Summe s=w_1\cdot x_1+w_2\cdot x_2+b. Danach bestimmst du die Ausgabe y: Für s>0 gilt y=1. Für s\leq 0 gilt y=0. Insbesondere ergibt eine Summe von genau 0 die Ausgabe 0. Bei mehr Eingaben kommt für jede weitere Eingabe ein weiteres Produkt aus Gewicht und Eingabe hinzu. Diese Regel beschreibt unser mathematisches Modell, kein ausführbares Programm.
Gewicht und Bias
Das Gewicht multipliziert eine Eingabe. Der Bias wird nach dem Addieren der Produkte hinzugefügt. Beide beeinflussen, ob die fertige Summe größer als 0 ist.
Beispiel: Eine Ausgabe aus zwei Eingaben berechnen
- 1Gegeben sind x_1=1, x_2=0, w_1=3, w_2=-2 und b=-1.
- 2Die Produkte sind 3\cdot1=3 und -2\cdot0=0.
- 3Mit dem Bias ergibt sich s=3+0-1=2.
- 4Weil 2>0 gilt, ist die Ausgabe y=1.
Teste dich
Beim Lernen bekommt das Neuron Trainingsbeispiele: Zu jeder Eingabe ist die gewünschte Ausgabe bekannt. Sie heißt Zielwert t. Wir verwenden Eingaben und Zielwerte aus 0 und 1. Zuerst berechnet das Neuron mit seinen bisherigen Gewichten und seinem bisherigen Bias die Ausgabe y. Die Differenz t-y beschreibt den Fehler. Sie ist 1 bei einer gewünschten 1 und einer berechneten 0, −1 im umgekehrten Fall und 0 bei einer richtigen Ausgabe. Die Lernrate \eta ist eine positive Zahl, die die Größe des Lernschritts bestimmt. Das Zeichen \eta heißt Eta.
Wir verwenden folgende übliche Variante der Perzeptron-Lernregel: w_i^{\mathrm{neu}}=w_i^{\mathrm{alt}}+\eta\cdot(t-y)\cdot x_i. Der Index i nummeriert die Eingabe und ihr zugehöriges Gewicht; „alt“ und „neu“ unterscheiden die Werte vor und nach dem Schritt. Bei x_i=1 steigt das Gewicht um die Lernrate, wenn der Zielwert 1 und die Ausgabe 0 ist. Es sinkt um die Lernrate, wenn der Zielwert 0 und die Ausgabe 1 ist. Bei x_i=0 bleibt dieses Gewicht auch bei einer falschen Ausgabe unverändert. Bei einer richtigen Ausgabe bleiben alle Gewichte unverändert.
In unserer Variante wird auch der Bias gelernt: b^{\mathrm{neu}}=b^{\mathrm{alt}}+\eta\cdot(t-y). Für sämtliche Änderungen eines Lernschritts verwenden wir dieselbe zuvor berechnete Ausgabe y. Erst danach wird mit den neuen Werten erneut gerechnet. Ein einzelner Lernschritt muss die falsche Ausgabe noch nicht beheben.
Beispiel: Ein Lernschritt, der noch keine richtige Ausgabe liefert
- 1Gegeben sind x_1=0, x_2=1, w_1=-1, w_2=1, b=-2, t=1 und \eta=0{,}25.
- 2Zunächst gilt s=-1\cdot0+1\cdot1-2=-1. Daher ist y=0 und t-y=1.
- 3Das erste Gewicht bleibt -1, denn seine Eingabe ist 0. Das zweite wird 1+0{,}25\cdot1\cdot1=1{,}25.
- 4Der neue Bias ist -2+0{,}25\cdot1=-1{,}75.
- 5Mit den neuen Werten ergibt sich s=-1\cdot0+1{,}25\cdot1-1{,}75=-0{,}5. Die Ausgabe ist weiterhin 0.
Merke: Eine falsche Ausgabe verändert nicht zwangsläufig jedes Gewicht. In der Lernregel wird die Änderung mit der zugehörigen Eingabe multipliziert.
Teste dich
Stelle dir Beispiele mit zwei Eingaben als Punkte vor: x_1 gibt die waagerechte und x_2 die senkrechte Lage an. Zwei Klassen heißen linear separierbar oder linear trennbar, wenn eine Gerade sie vollständig trennt: Die Punkte der einen Klasse liegen auf der einen Seite, die der anderen Klasse auf der anderen Seite. Kein Punkt liegt dabei auf der Geraden. Bei mehr als zwei Eingaben übernimmt eine entsprechend höherdimensionale ebene Grenze diese Aufgabe. Für unser Neuron mit zwei Eingaben bildet w_1\cdot x_1+w_2\cdot x_2+b=0 eine gerade Entscheidungsgrenze, sofern mindestens ein Gewicht ungleich 0 ist. Auf dieser Grenze gibt das Neuron 0 aus. Sind beide Gewichte 0, hängt die Ausgabe allein vom Bias ab und ist für sämtliche Eingaben gleich.
XOR ist das exklusive Oder für zwei Eingaben aus 0 und 1: Die Ausgabe soll genau dann 1 sein, wenn genau eine Eingabe 1 ist. Die beiden Punkte mit Zielwert 1 liegen an gegenüberliegenden Ecken eines Quadrats. Die beiden anderen Ecken haben den Zielwert 0. Keine Gerade trennt diese beiden Klassen. Ein einzelnes Ausgabeneuron ohne verborgene Schicht kann XOR deshalb nicht darstellen. Auch andere Gewichte oder ein anderer Bias beseitigen diese Grenze nicht.
Das lässt sich ohne Zeichnung begründen. Schreibe s(x_1,x_2) für die gewichtete Summe einschließlich Bias zum jeweiligen Eingabepaar. Für beliebige Gewichte und jeden Bias gilt s(1,0)+s(0,1)=s(0,0)+s(1,1): Beide Seiten ergeben w_1+w_2+2b. Für XOR müssten links zwei positive Werte addiert werden, rechts dagegen zwei Werte, die höchstens 0 sind. Links wäre die Summe somit positiv, rechts höchstens 0. Das widerspricht der Gleichheit. Ein Lernverfahren kann daher für diese vier Eingabepaare keine fehlerfreie Lösung mit einem einzelnen solchen Neuron finden.
| Erste Eingabe | Zweite Eingabe | Zielwert von XOR |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Merke: Die XOR-Grenze ist eine Grenze der darstellbaren Einteilung. Mehr Lernschritte können eine unmögliche gerade Trennung nicht herstellen.
Teste dich
Eine Schicht ist eine Gruppe künstlicher Neuronen auf derselben Verarbeitungsstufe. Beim einlagigen Perzeptron gibt es eine Schicht rechnender Neuronen: die Ausgabeschicht. Jedes ihrer Neuronen erhält die gesamten ursprünglichen Eingaben. Auch mehrere Ausgabeneuronen machen daraus noch kein mehrlagiges Perzeptron. Die bloße Bereitstellung der Eingaben zählt in dieser Bezeichnung nicht als zusätzliche Schicht rechnender Neuronen.
Ein mehrlagiges Perzeptron besitzt zusätzlich zur Ausgabeschicht mindestens eine verborgene Schicht. „Verborgen“ bedeutet hier, dass ihre Ausgaben Zwischenergebnisse sind und noch nicht die endgültige Ausgabe des Netzes. Diese Zwischenergebnisse werden von nachfolgenden Neuronen verarbeitet. Dadurch lassen sich Einteilungen darstellen, die ein einzelnes Ausgabeneuron direkt aus den ursprünglichen Eingaben nicht bilden kann.
So kann ein mehrlagiges Perzeptron XOR darstellen: Ein verborgenes Neuron prüft, ob mindestens eine der beiden Eingaben 1 ist. Ein zweites prüft, ob beide Eingaben 1 sind. Das Ausgabeneuron liefert 1, wenn die erste Prüfung 1 und die zweite 0 ergibt. Damit ist genau eine ursprüngliche Eingabe 1. Die Gewichte und Biaswerte müssen für diese Prüfungen passend gewählt sein. Das Vorhandensein einer verborgenen Schicht bedeutet daher noch nicht, dass ein beliebig eingestelltes Netz XOR bereits richtig berechnet. Die zuvor erklärte Lernregel für unser einzelnes Neuron ist auch keine Zusage, dass damit ein mehrlagiges Netz erfolgreich gelernt wird.
Beispiel: Zwei erfundene Netzaufbauten vergleichen
- 1Netz A leitet seine Eingaben direkt an drei Ausgabeneuronen weiter. Es ist einlagig.
- 2Netz B leitet seine Eingaben an zwei verborgene Neuronen und deren Ausgaben anschließend an ein Ausgabeneuron weiter. Es ist mehrlagig.
- 3Entscheidend ist die zusätzliche Verarbeitungsstufe im Netz B, nicht die Gesamtzahl der Neuronen.
Teste dich
Alles auf einen Blick
Perzeptron
Multipliziere Eingaben mit Gewichten, addiere den Bias und vergleiche die fertige Summe mit 0.
Bei einer Summe von genau 0 ist die Ausgabe nach der hier verwendeten Regel 0.
Die Gewichtsänderung hängt von Lernrate, Fehler und zugehöriger Eingabe ab. Bei Eingabe 0 bleibt dieses Gewicht unverändert.
Die Ausgabe soll bei genau einer Eingabe 1 den Wert 1 haben. Diese Einteilung ist mit einer geraden Grenze nicht darstellbar.
Einlagige Perzeptrons haben keine verborgene Schicht. Mehrlagige besitzen mindestens eine zusätzliche verborgene Schicht.
Eine falsche Ausgabe mit einem Lernschritt korrigieren
- 1Für dieses erfundene Beispiel gelten x_1=1, x_2=1, w_1=2, w_2=0, b=-1, t=0 und \eta=0{,}5.
- 2Berechne mit den alten Werten s=2\cdot1+0\cdot1-1=1. Die Ausgabe ist deshalb y=1.
- 3Bestimme den Fehler: t-y=0-1=-1.
- 4Ändere die Gewichte: w_1^{\mathrm{neu}}=2+0{,}5\cdot(-1)\cdot1=1{,}5 und w_2^{\mathrm{neu}}=0+0{,}5\cdot(-1)\cdot1=-0{,}5.
- 5Ändere den Bias: b^{\mathrm{neu}}=-1+0{,}5\cdot(-1)=-1{,}5.
- 6Prüfe erneut: s=1{,}5\cdot1-0{,}5\cdot1-1{,}5=-0{,}5. Die neue Ausgabe 0 stimmt für dieses Beispiel mit dem Zielwert überein.
Fehler finden
Fehler in Zeile 3Die Änderung des zweiten Gewichts wurde trotz seiner Eingabe 0 angesetzt. Richtig: w_2^{\mathrm{neu}}=4+1\cdot(1-0)\cdot0=4. Das zweite Gewicht bleibt unverändert.
Lückentext
Die vollständige gewichtete Summe einschließlich Bias beträgt genau 0. Nach der hier verwendeten Ausgaberegel ist die Ausgabe . Ein Gewicht hat den Wert 4. Seine Eingabe ist 0, die Lernrate 0,5, der Zielwert 1 und die berechnete Ausgabe 0. Nach einem Lernschritt hat dieses Gewicht den Wert . Ein Netz verarbeitet die Eingaben zuerst in zwei verborgenen Neuronen und danach in einem Ausgabeneuron. Dieser Aufbau ist .