Aktivierungsfunktionen entdecken

Einführung in Deep Learning mit PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Aktivierungsfunktionen

$$

  • Aktivierungsfunktionen fügen dem Netz Nichtlinearität hinzu
    • Sigmoid für binäre Klassifizierung
    • Softmax für Mehrklassen-Klassifizierung
  • Ein Netz kann komplexere Beziehungen mit Nicht-Linearität erlernen
  • "Voraktivierungs"-Ausgang, der an die Aktivierungsfunktion übergeben wird

Darstellung eines neuronalen Netzes mit linearen Schichten und einer Aktivierungsfunktion

Einführung in Deep Learning mit PyTorch

Die Sigmoid-Funktion

Darstellung eines Teils eines neuronalen Netzes mit Eingabe, linearen Schichten und Aktivierungsfunktion

  • Säugetier oder nicht?

Eine Illustration eines Lemurs

Einführung in Deep Learning mit PyTorch

Die Sigmoid-Funktion

Darstellung eines Teils eines neuronalen Netzes mit Eingängen und linearen Schichten

  • Säugetier oder nicht?

Eine Illustration eines Lemurs

  • Eingabe:
    • Gliedmaßen: 4
    • Eier: 0
    • Haare: 1
Einführung in Deep Learning mit PyTorch

Die Sigmoid-Funktion

Darstellung eines Teils eines neuronalen Netzes mit Eingängen und der Zahl 6 als Ausgang für die linearen Schichten

  • Säugetier oder nicht?

Eine Illustration eines Lemurs

  • Die Ausgabe an die linearen Schichten ist 6
Einführung in Deep Learning mit PyTorch

Die Sigmoid-Funktion

Diagramm eines Teils eines neuronalen Netzes mit Eingängen, der Zahl 6 als Ausgabe für die linearen Schichten und einer sigmoidalen Aktivierungsfunktion

  • Säugetier oder nicht?

Eine Illustration eines Lemurs

  • Wir geben den Ausgang der Voraktivierung (6) an die Sigmoid-Funktion weiter
Einführung in Deep Learning mit PyTorch

Die Sigmoid-Funktion

Darstellung eines Teils eines neuronalen Netzes mit Eingängen, der Zahl 6 als Ausgang für die linearen Schichten, einer Sigmoid-Aktivierungsfunktion und einem Ausgang

  • Säugetier oder nicht?

Eine Illustration eines Lemurs

  • Wir geben den Ausgang der Voraktivierung (6) an die Sigmoid-Funktion weiter
  • Wir erhalten einen Wert zwischen 0 und 1

  • Wenn der Ausgang > 0,5 ist, ist das Klassenlabel = 1 (Säugetier)

  • Wenn der Ausgang <= 0,5 ist, ist das Klassenlabel = 0 (kein Säugetier)
Einführung in Deep Learning mit PyTorch

Die Sigmoid-Funktion

import torch
import torch.nn as nn

input_tensor = torch.tensor([[6]])
sigmoid = nn.Sigmoid()

output = sigmoid(input_tensor) print(output)
tensor([[0.9975]])
Einführung in Deep Learning mit PyTorch

Aktivierung als letzte Schicht

model = nn.Sequential(
  nn.Linear(6, 4), # First linear layer
  nn.Linear(4, 1), # Second linear layer
  nn.Sigmoid() # Sigmoid activation function
)

Sigmoid als letzter Schritt in einem Netzwerk aus linearen Schichten entspricht der traditionellen logistischen Regression

Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

  • Drei Klassen:
Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

  • Drei Klassen:

Ein Lemur mit der Option "Vogel"

Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

  • Drei Klassen:

Ein Lemur mit den Optionen "Vogel" und Säugetier

Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

  • Drei Klassen:

Ein Lemur mit drei Optionen: Vogel, Säugetier oder Reptil

Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

Darstellung eines Teils eines neuronalen Netzes mit Eingängen

  • Wählt dreidimensional als Eingabe und gibt die gleiche Form aus
Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

Darstellung eines Teils eines neuronalen Netzes mit Eingängen, einem Vektor als Ausgang für die linearen Schichten, einer Softmax-Aktivierungsfunktion und einem Ausgang

  • Wählt dreidimensional als Eingabe und gibt die gleiche Form aus
  • Gibt eine Wahrscheinlichkeitsverteilung aus:
    • Jedes Element ist eine Wahrscheinlichkeit (sie liegt zwischen 0 und 1)
    • Die Summe des Ausgangsvektors ist gleich 1
Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

Darstellung eines Teils eines neuronalen Netzes mit Eingängen, einem Vektor als Ausgang für die linearen Schichten, einer Softmax-Aktivierungsfunktion und einem Ausgang

  • Wählt dreidimensional als Eingabe und gibt die gleiche Form aus
  • Gibt eine Wahrscheinlichkeitsverteilung aus:
    • Jedes Element ist eine Wahrscheinlichkeit (sie liegt zwischen 0 und 1)
    • Die Summe des Ausgangsvektors ist gleich 1
Einführung in Deep Learning mit PyTorch

Softmax kennenlernen

import torch
import torch.nn as nn

# Create an input tensor
input_tensor = torch.tensor(
    [[4.3, 6.1, 2.3]])

# Apply softmax along the last dimension

probabilities = nn.Softmax(dim=-1) output_tensor = probabilities(input_tensor) print(output_tensor)
tensor([[0.1392, 0.8420, 0.0188]])
  • dim = -1 gibt an, dass Softmax auf die letzte Dimension des Eingangstensors angewendet wird
  • nn.Softmax() kann als letzter Schritt in nn.Sequential()genutzt werden
Einführung in Deep Learning mit PyTorch

Lass uns üben!

Einführung in Deep Learning mit PyTorch

Preparing Video For Download...