Straturi ascunse și parametri

Introducere în Deep Learning cu PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Stivuirea straturilor cu 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)
)
  • Intrarea este transmisă prin straturile liniare
  • Straturile din nn.Sequential() sunt straturi ascunse
Introducere în Deep Learning cu PyTorch

Stivuirea straturilor cu 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  
)
  • Intrarea este transmisă prin straturile liniare
  • Straturile din nn.Sequential() sunt straturi ascunse
  • n_features și n_classes sunt definite de setul de date
Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

Ilustrație a unei rețele neuronale cu două straturi ascunse

Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

Ilustrație a unei rețele neuronale cu patru straturi ascunse

Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

Ilustrație a unei rețele neuronale cu patru straturi ascunse

Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

Ilustrație a unei rețele neuronale cu patru straturi ascunse

Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

# 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)
)
  • Intrare 10 ➡ ieșire 18 ➡ ieșire 20 ➡ Ieșire 5
Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

# 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)
)
  • Intrare 10 ➡ ieșire 18 ➡ ieșire 20 ➡ Ieșire 5
Introducere în Deep Learning cu PyTorch

Adăugarea straturilor

# 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
)
  • Intrare 10 ➡ ieșire 18 ➡ ieșire 20 ➡ Ieșire 5
Introducere în Deep Learning cu PyTorch

Straturile sunt formate din neuroni

$$

  • Complet conectat când fiecare neuron este legat de toți neuronii din stratul anterior

Ilustrație a unui strat de intrare și de ieșire cu săgeți care conectează straturile

Introducere în Deep Learning cu PyTorch

Straturile sunt formate din neuroni

$$

  • Complet conectat când fiecare neuron este legat de toți neuronii din stratul anterior

$$

  • Un neuron dintr-un strat liniar:

Ilustrație a unui strat de intrare și de ieșire cu săgeți care conectează straturile și un cerc în jurul unui neuron de ieșire

Introducere în Deep Learning cu PyTorch

Straturile sunt formate din neuroni

$$

  • Complet conectat când fiecare neuron este legat de toți neuronii din stratul anterior

$$

  • Un neuron dintr-un strat liniar:
    • Efectuează o operație liniară folosind toți neuronii din stratul anterior

Ilustrație a unui strat de intrare și de ieșire cu săgeți care conectează straturile, un cerc în jurul unui neuron de ieșire și săgeți evidențiate

Introducere în Deep Learning cu PyTorch

Straturile sunt formate din neuroni

$$

  • Complet conectat când fiecare neuron este legat de toți neuronii din stratul anterior

$$

  • Un neuron dintr-un strat liniar:
    • Efectuează o operație liniară folosind toți neuronii din stratul anterior
    • Are N+1 parametri: N din intrări și 1 pentru bias

N+1

Introducere în Deep Learning cu PyTorch

Parametri și capacitatea modelului

  • Mai multe straturi ascunse = mai mulți parametri = capacitate mai mare a modelului

$$

Bloc de cod pentru o rețea cu două straturi

Introducere în Deep Learning cu PyTorch

Parametri și capacitatea modelului

  • Mai multe straturi ascunse = mai mulți parametri = capacitate mai mare a modelului

$$

Bloc de cod pentru o rețea cu două straturi

$$

Calcul manual al parametrilor:

  • Primul strat are 4 neuroni, fiecare cu 8+1 parametri. 9 × 4 = 36 parametri
Introducere în Deep Learning cu PyTorch

Parametri și capacitatea modelului

  • Mai multe straturi ascunse = mai mulți parametri = capacitate mai mare a modelului

$$

Bloc de cod pentru o rețea cu două straturi

$$

Calcul manual al parametrilor:

  • Primul strat are 4 neuroni, fiecare cu 8+1 parametri. 9 × 4 = 36 parametri
Introducere în Deep Learning cu PyTorch

Parametri și capacitatea modelului

  • Mai multe straturi ascunse = mai mulți parametri = capacitate mai mare a modelului

$$

Bloc de cod pentru o rețea cu două straturi

$$

Calcul manual al parametrilor:

  • Primul strat are 4 neuroni, fiecare cu 8+1 parametri. 9 × 4 = 36 parametri
  • Al doilea strat are 2 neuroni, fiecare cu 4+1 parametri. 5 × 2 = 10 parametri
Introducere în Deep Learning cu PyTorch

Parametri și capacitatea modelului

  • Mai multe straturi ascunse = mai mulți parametri = capacitate mai mare a modelului

$$

Bloc de cod pentru o rețea cu două straturi

$$

Calcul manual al parametrilor:

  • Primul strat are 4 neuroni, fiecare cu 8+1 parametri. 9 × 4 = 36 parametri
  • Al doilea strat are 2 neuroni, fiecare cu 4+1 parametri. 5 × 2 = 10 parametri
  • 36 + 10 = 46 parametri antrenabili
Introducere în Deep Learning cu PyTorch

Parametri și capacitatea modelului

  • Mai multe straturi ascunse = mai mulți parametri = capacitate mai mare a modelului

$$

Bloc de cod pentru o rețea cu două straturi

$$

Folosind PyTorch:

  • .numel(): returnează numărul de elemente din tensor
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Introducere în Deep Learning cu PyTorch

Echilibrul dintre complexitate și eficiență

Echilibru între complexitate și eficiență

Introducere în Deep Learning cu PyTorch

Să exersăm!

Introducere în Deep Learning cu PyTorch

Preparing Video For Download...