Verdeckte Schichten und Parameter

Einführung in Deep Learning mit PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Schichten stapeln mit nn.Sequential()

# Create network with three linear layers
model = nn.Sequential(

nn.Linear(n_features, 8),
nn.Linear(8, 4), nn.Linear(4, n_classes)
)
  • Der Eingang wird durch die linearen Schichten geleitet
  • Schichten innerhalb von nn.Sequential() sind verdeckte Schichten
Einführung in Deep Learning mit PyTorch

Schichten stapeln mit nn.Sequential()

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(n_features, 8), # n_features represents number of input features
    nn.Linear(8, 4),
    nn.Linear(4, n_classes) # n_classes represents the number of output classes  
)
  • Der Input wird durch die linearen Schichten geleitet
  • Ebenen innerhalb von nn.Sequential() sind versteckte Ebenen
  • n_features und n_classes sind durch den Datensatz definiert
Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

Darstellung eines neuronalen Netzes mit zwei verdeckten Schichten

Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

Illustration eines neuronalen Netzes mit vier verdeckten Schichten

Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

Illustration eines neuronalen Netzes mit vier verdeckten Schichten

Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

Illustration eines neuronalen Netzes mit vier verdeckten Schichten

Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18), # Takes 10 features and outputs 18
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
  • Eingang 10 ➡ Ausgang 18 ➡ Ausgang 20 ➡ Ausgang 5
Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20), # Takes 18 and outputs 20
    nn.Linear(20, 5)
)
  • Eingang 10 ➡ Ausgang 18 ➡ Ausgang 20 ➡ Ausgang 5
Einführung in Deep Learning mit PyTorch

Hinzufügen von Schichten

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5) # Takes 20 and outputs 5
)
  • Eingang 10 ➡ Ausgang 18 ➡ Ausgang 20 ➡ Ausgang 5
Einführung in Deep Learning mit PyTorch

Die Schichten bestehen aus Neuronen

$$

  • Sind vollständig vernetzt, wenn jedes Neuron mit allen Neuronen der vorherigen Schicht verbunden ist

Eine Darstellung einer Eingabe- und Ausgabeschicht mit Pfeilen, die die Schichten verbinden

Einführung in Deep Learning mit PyTorch

Die Schichten bestehen aus Neuronen

$$

  • Sind vollständig vernetzt, wenn jedes Neuron mit allen Neuronen der vorherigen Schicht verbunden ist

$$

  • Ein Neuron in einer linearen Schicht:

Eine Darstellung einer Eingabe- und Ausgabeschicht mit Pfeilen, die die Schichten verbinden, und einem Kreis um ein Ausgangsneuron

Einführung in Deep Learning mit PyTorch

Die Schichten bestehen aus Neuronen

$$

  • Sind vollständig vernetzt, wenn jedes Neuron mit allen Neuronen der vorherigen Schicht verbunden ist

$$

  • Ein Neuron in einer linearen Schicht:
    • Führt eine lineare Operation mit allen Neuronen aus der vorherigen Schicht durch

Eine Darstellung einer Eingabe- und Ausgabeschicht mit Pfeilen, die die Schichten verbinden, und einem Kreis um ein Ausgangsneuron und hervorgehobenen Pfeilen

Einführung in Deep Learning mit PyTorch

Die Schichten bestehen aus Neuronen

$$

  • Sind vollständig vernetzt, wenn jedes Neuron mit allen Neuronen der vorherigen Schicht verbunden ist

$$

  • Ein Neuron in einer linearen Schicht:
    • Führt eine lineare Operation mit allen Neuronen aus der vorherigen Schicht durch
    • Hat N+1 Parameter: N von den Eingängen und 1 für die Verzerrung

N+1

Einführung in Deep Learning mit PyTorch

Parameter und Modellkapazität

  • Mehr verdeckte Schichten = mehr Parameter = höhere Modellkapazität

$$

Codeblock für ein zweischichtiges Netz

Einführung in Deep Learning mit PyTorch

Parameter und Modellkapazität

  • Mehr verdeckte Schichten = mehr Parameter = höhere Modellkapazität

$$

Codeblock für ein zweischichtiges Netz

$$

Manuelle Parameterberechnung:

  • Die erste Schicht hat 4 Neuronen, jedes Neuron hat 8+1 Parameter. 9 mal 4 = 36 Parameter
Einführung in Deep Learning mit PyTorch

Parameter und Modellkapazität

  • Mehr verdeckte Schichten = mehr Parameter = höhere Modellkapazität

$$

Codeblock für ein zweischichtiges Netz

$$

Manuelle Parameterberechnung:

  • Die erste Schicht hat 4 Neuronen, jedes Neuron hat 8+1 Parameter. 9 mal 4 = 36 Parameter
Einführung in Deep Learning mit PyTorch

Parameter und Modellkapazität

  • Mehr verdeckte Schichten = mehr Parameter = höhere Modellkapazität

$$

Codeblock für ein zweischichtiges Netz

$$

Manuelle Parameterberechnung:

  • Die erste Schicht hat 4 Neuronen, jedes Neuron hat 8+1 Parameter. 9 mal 4 = 36 Parameter
  • Die zweite Schicht hat 2 Neuronen, jedes Neuron hat 4+1 Parameter. 5 mal 2 = 10 Parameter
Einführung in Deep Learning mit PyTorch

Parameter und Modellkapazität

  • Mehr verdeckte Schichten = mehr Parameter = höhere Modellkapazität

$$

Codeblock für ein zweischichtiges Netz

$$

Manuelle Parameterberechnung:

  • Die erste Schicht hat 4 Neuronen, jedes Neuron hat 8+1 Parameter. 9 mal 4 = 36 Parameter
  • Die zweite Schicht hat 2 Neuronen, jedes Neuron hat 4+1 Parameter. 5 mal 2 = 10 Parameter
  • 36 + 10 = 46 lernbare Parameter
Einführung in Deep Learning mit PyTorch

Parameter und Modellkapazität

  • Mehr verdeckte Schichten = mehr Parameter = höhere Modellkapazität

$$

Codeblock für ein zweischichtiges Netz

$$

Mit PyTorch:

  • .numel()gibt die Anzahl der Elemente des Tensors zurück.
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Einführung in Deep Learning mit PyTorch

Balance zwischen Komplexität und Effizienz

Balance zwischen Komplexität und Effizienz

Einführung in Deep Learning mit PyTorch

Probier es aus!

Einführung in Deep Learning mit PyTorch

Preparing Video For Download...