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
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| Neuron | eine Rechenstelle, die gewichtete Eingaben addiert | |
| Gewicht | wie stark eine Eingabe zählt | |
| Bias | eine addierte Zahl, die die Summe verschiebt | |
| Aktivierungsfunktion | entscheidet, was ein Neuron weitergibt | ReLU |
| Schicht | eine Reihe von Neuronen mit denselben Eingaben | |
| Parameter | ein 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
| Tag | Temperatur (in 10 Grad), Regen (in cm) | Rechnung, Gewichte 1,5 und -2, Bias 0,5 | Summe |
|---|---|---|---|
| Warmer, fast trockener Tag | 2,0 und 0,5 | 3,0 - 1,0 + 0,5 | 2,5 |
| Kalter, nasser Tag | 0,5 und 2,5 | 0,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
| Summe | ReLU | Stufe | Schwaches ReLU (Faktor 0,5) |
|---|---|---|---|
| -2 | 0 | 0 | -1 |
| 0 | 0 | 0 | 0 |
| 3 | 3 | 1 | 3 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Drei Funktionen im Vergleich
# 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
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
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.