Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Schichten eines neuronalen Netzes

Nach dieser Lektion: Ich kann beschreiben, was die Schichten eines neuronalen Netzes tun.

Lektion, 50 Min.2 BefehleJupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Was ein neuronales Netz im Inneren rechnet

Ein neuronales Netz ist ein Programm aus vielen kleinen Rechenstellen, den Neuronen, die in Schichten liegen. Wer versteht, was die Schichten tun, versteht den Kern von Deep Learning, dem tiefen Lernen.

Ein Fahrradverleih will wissen, ob morgen viele Räder gebraucht werden. Ein Netz kann das aus Temperatur und Regen schätzen. Zuerst sehen wir, wie ein einzelnes Neuron rechnet.

Am Ende dieser Lektion

Notiz

Ich kann beschreiben, was die Schichten eines neuronalen Netzes tun.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Neuroneine Rechenstelle, die gewichtete Eingaben addiert
Gewichtwie stark eine Eingabe zählt
Biaseine addierte Zahl, die die Summe verschiebt
Aktivierungsfunktionentscheidet, was ein Neuron weitergibtReLU
Schichteine Reihe von Neuronen mit denselben Eingaben
Parameterein Gewicht oder ein Bias, den das Netz lernt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Neuron addiert gewichtete Eingaben

Ein Neuron bekommt Zahlen als Eingaben. Jede Eingabe wird mit ihrem Gewicht multipliziert. Dann addiert das Neuron alle Produkte und noch den Bias. Das Ergebnis heißt Summe.

Ein großes positives Gewicht heißt: Diese Eingabe treibt die Summe nach oben. Ein negatives Gewicht drückt sie nach unten. Beim Lernen verändert das Netz genau diese Gewichte.

Beispiel: zwei Tage durch ein Neuron

TagTemperatur (in 10 Grad), Regen (in cm)Rechnung, Gewichte 1,5 und -2, Bias 0,5Summe
Warmer, fast trockener Tag2,0 und 0,53,0 - 1,0 + 0,52,5
Kalter, nasser Tag0,5 und 2,50,75 - 5,0 + 0,5-3,75

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Aktivierungsfunktion macht das Ergebnis biegsam

Nach der Summe wendet das Neuron eine Aktivierungsfunktion an. Sie entscheidet, was weitergegeben wird.

Die bekannteste heißt ReLU. Ist die Summe negativ, gibt sie 0 aus. Ist die Summe positiv, gibt sie die Summe selbst aus. Die Stufe gibt nur 1 oder 0 aus. Das schwache ReLU lässt Negatives verkleinert durch.

Beispiel: drei Funktionen, drei Summen

SummeReLUStufeSchwaches ReLU (Faktor 0,5)
-200-1
0000
3313

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Drei Funktionen im Vergleich

Code: python
# Drei Aktivierungsfunktionen für dieselbe Summe.
summe = -1.5
relu = 0
if summe > 0:
    relu = summe
stufe = 0
if summe > 0:
    stufe = 1
schwach = summe
if summe < 0:
    schwach = summe * 0.5
print("ReLU:", relu, "Stufe:", stufe, "Schwaches ReLU:", schwach)
# Ändern Sie summe auf 2.5 und starten Sie erneut.

Schichten ordnen Neuronen in Reihen

Eine Schicht ist eine Reihe von Neuronen, die alle dieselben Eingaben bekommen. Ein Netz hat drei Arten von Schichten.

Die Eingabeschicht nimmt die Zahlen auf. Die versteckten Schichten rechnen dazwischen. Die Ausgabeschicht liefert die Antwort. Ein Netz mit mehreren versteckten Schichten heißt tief. Daher kommt der Name Deep Learning.

Parameter zählen

Tipp

Jede Verbindung hat ein Gewicht, jedes Neuron einen Bias. Im Bild sind das 3 mal 2 und 2 mal 1 Gewichte, dazu 3 Biases. Das sind 11 Parameter.

Die Parameter nachrechnen

Befehl
docker exec jupyter python3 -c "print(3 * 2 + 2 * 1 + 2 + 1)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Ein häufiger Fehler

Warnung

Viele denken, mehr Schichten machen ein Netz immer klüger. Ohne Aktivierungsfunktion stimmt das nicht: Zwei Schichten, die nur multiplizieren, rechnen wie eine einzige. Erst die Aktivierungsfunktion dazwischen lässt ein Netz Kurven lernen.

Zweimal malnehmen oder einmal

Befehl
docker exec jupyter python3 -c "print(2 * (3 * 4), 6 * 4)"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Über dieses Lab und seinen Quellcode: JupyterLab-Lab für Data Science: pandas, Matplotlib und scikit-learn im Browser

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.