Camadas ocultas e parâmetros

Introdução ao Aprendizado Profundo com o PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Empilhar camadas com 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)
)
  • A entrada é passada pelas camadas lineares
  • As camadas em nn.Sequential() são camadas ocultas
Introdução ao Aprendizado Profundo com o PyTorch

Empilhar camadas com 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  
)
  • A entrada é passada pelas camadas lineares
  • As camadas em nn.Sequential() são camadas ocultas
  • n_features e n_classes são definidos pelo conjunto de dados
Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

Ilustração de uma rede neural com duas camadas ocultas

Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

Ilustração de uma rede neural com quatro camadas ocultas

Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

Ilustração de uma rede neural com quatro camadas ocultas

Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

Ilustração de uma rede neural com quatro camadas ocultas

Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

# 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)
)
  • Entrada 10 ➡ Saída 18 ➡ Saída 20 ➡ Saída 5
Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

# 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)
)
  • Entrada 10 ➡ Saída 18 ➡ Saída 20 ➡ Saída 5
Introdução ao Aprendizado Profundo com o PyTorch

Adição de camadas

# 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
)
  • Entrada 10 ➡ Saída 18 ➡ Saída 20 ➡ Saída 5
Introdução ao Aprendizado Profundo com o PyTorch

Camadas são feitas de neurônios

$$

  • Totalmente conectado: cada neurônio conectado a todos neurônios da camada anterior

Uma ilustração de uma camada de entrada e saída com setas conectando as camadas

Introdução ao Aprendizado Profundo com o PyTorch

Camadas são feitas de neurônios

$$

  • Totalmente conectado: cada neurônio conectado a todos neurônios da camada anterior

$$

  • Neurônio em uma camada linear:

Uma ilustração de uma camada de entrada e saída com setas conectando as camadas e um círculo ao redor de um neurônio de saída

Introdução ao Aprendizado Profundo com o PyTorch

Camadas são feitas de neurônios

$$

  • Totalmente conectado: cada neurônio conectado a todos neurônios da camada anterior

$$

  • Neurônio em uma camada linear:
    • Executa uma operação linear usando todos os neurônios da camada anterior

Uma ilustração de uma camada de entrada e saída com setas conectando as camadas e um círculo ao redor de um neurônio de saída e setas destacadas

Introdução ao Aprendizado Profundo com o PyTorch

Camadas são feitas de neurônios

$$

  • Totalmente conectado: cada neurônio conectado a todos neurônios da camada anterior

$$

  • Neurônio em uma camada linear:
    • Executa uma operação linear usando todos os neurônios da camada anterior
    • Tem parâmetros N+1: N de entradas e 1 para o viés

N+1

Introdução ao Aprendizado Profundo com o PyTorch

Parâmetros e capacidade do modelo

  • Mais camadas ocultas = mais parâmetros = maior capacidade do modelo

$$

Bloco de código para uma rede de duas camadas

Introdução ao Aprendizado Profundo com o PyTorch

Parâmetros e capacidade do modelo

  • Mais camadas ocultas = mais parâmetros = maior capacidade do modelo

$$

Bloco de código para uma rede de duas camadas

$$

Cálculo manual de parâmetros:

  • A primeira camada tem 4 neurônios, cada um com 8+1 parâmetros. 9 vezes 4 = 36 parâmetros
Introdução ao Aprendizado Profundo com o PyTorch

Parâmetros e capacidade do modelo

  • Mais camadas ocultas = mais parâmetros = maior capacidade do modelo

$$

Bloco de código para uma rede de duas camadas

$$

Cálculo manual de parâmetros:

  • A primeira camada tem 4 neurônios, cada um com 8+1 parâmetros. 9 vezes 4 = 36 parâmetros
Introdução ao Aprendizado Profundo com o PyTorch

Parâmetros e capacidade do modelo

  • Mais camadas ocultas = mais parâmetros = maior capacidade do modelo

$$

Bloco de código para uma rede de duas camadas

$$

Cálculo manual de parâmetros:

  • A primeira camada tem 4 neurônios, cada um com 8+1 parâmetros. 9 vezes 4 = 36 parâmetros
  • A segunda camada tem 2 neurônios, cada um com 4+1 parâmetros. 5 vezes 2 = 10 parâmetros
Introdução ao Aprendizado Profundo com o PyTorch

Parâmetros e capacidade do modelo

  • Mais camadas ocultas = mais parâmetros = maior capacidade do modelo

$$

Bloco de código para uma rede de duas camadas

$$

Cálculo manual de parâmetros:

  • A primeira camada tem 4 neurônios, cada um com 8+1 parâmetros. 9 vezes 4 = 36 parâmetros
  • A segunda camada tem 2 neurônios, cada um com 4+1 parâmetros. 5 vezes 2 = 10 parâmetros
  • 36 + 10 = 46 parâmetros treináveis
Introdução ao Aprendizado Profundo com o PyTorch

Parâmetros e capacidade do modelo

  • Mais camadas ocultas = mais parâmetros = maior capacidade do modelo

$$

Bloco de código para uma rede de duas camadas

$$

Usando PyTorch:

  • .numel(): retorna o número de elementos no tensor
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Introdução ao Aprendizado Profundo com o PyTorch

Equilíbrio de complexidade e eficiência

Equilíbrio entre complexidade e eficiência

Introdução ao Aprendizado Profundo com o PyTorch

Vamos praticar!

Introdução ao Aprendizado Profundo com o PyTorch

Preparing Video For Download...