Capas y parámetros ocultos

Introducción al aprendizaje profundo con PyTorch

Jasmin Ludolf

Senior Data Science Content Developer, DataCamp

Apilar capas con nn.Secuencial()

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

nn.Linear(n_features, 8),
nn.Linear(8, 4), nn.Linear(4, n_classes)
)
  • La entrada pasa por las capas lineales
  • Las capas dentro de nn.Sequential() son capas ocultas
Introducción al aprendizaje profundo con PyTorch

Apilar capas con 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  
)
  • La entrada pasa por las capas lineales
  • Las capas dentro de nn.Sequential() son capas ocultas
  • n_features y n_classes están definidos por el conjunto de datos
Introducción al aprendizaje profundo con PyTorch

Añadir capas

Ilustración de una red neuronal con dos capas ocultas

Introducción al aprendizaje profundo con PyTorch

Añadir capas

Ilustración de una red neuronal con cuatro capas ocultas

Introducción al aprendizaje profundo con PyTorch

Añadir capas

Ilustración de una red neuronal con cuatro capas ocultas

Introducción al aprendizaje profundo con PyTorch

Añadir capas

Ilustración de una red neuronal con cuatro capas ocultas

Introducción al aprendizaje profundo con PyTorch

Añadir capas

# Create network with three linear layers
model = nn.Sequential(
    nn.Linear(10, 18),
    nn.Linear(18, 20),
    nn.Linear(20, 5)
)
Introducción al aprendizaje profundo con PyTorch

Añadir capas

# 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 ➡ Salida 18 ➡ Salida 20 ➡ Salida 5
Introducción al aprendizaje profundo con PyTorch

Añadir capas

# 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 ➡ Salida 18 ➡ Salida 20 ➡ Salida 5
Introducción al aprendizaje profundo con PyTorch

Añadir capas

# 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 ➡ Salida 18 ➡ Salida 20 ➡ Salida 5
Introducción al aprendizaje profundo con PyTorch

Las capas están formadas por neuronas

$$

  • Totalmente conectado cuando cada neurona enlaza con todas las neuronas de la capa anterior

Ilustración de una capa de entrada y otra de salida con flechas que conectan las capas

Introducción al aprendizaje profundo con PyTorch

Las capas están formadas por neuronas

$$

  • Totalmente conectado cuando cada neurona enlaza con todas las neuronas de la capa anterior

$$

  • Una neurona en una capa lineal:

Ilustración de una capa de entrada y salida con flechas que conectan las capas y un círculo alrededor de una neurona de salida

Introducción al aprendizaje profundo con PyTorch

Las capas están formadas por neuronas

$$

  • Totalmente conectado cuando cada neurona enlaza con todas las neuronas de la capa anterior

$$

  • Una neurona en una capa lineal:
    • Realiza una operación lineal utilizando todas las neuronas de la capa anterior

Ilustración de una capa de entrada y salida con flechas que conectan las capas y un círculo alrededor de una neurona de salida y flechas resaltadas

Introducción al aprendizaje profundo con PyTorch

Las capas están formadas por neuronas

$$

  • Totalmente conectado cuando cada neurona enlaza con todas las neuronas de la capa anterior

$$

  • Una neurona en una capa lineal:
    • Realiza una operación lineal utilizando todas las neuronas de la capa anterior
    • Tiene N+1 parámetros: N de las entradas y 1 para el sesgo

N+1

Introducción al aprendizaje profundo con PyTorch

Parámetros y capacidad del modelo

  • Más capas ocultas = más parámetros = mayor capacidad del modelo

$$

Bloque de código para una red de dos capas

Introducción al aprendizaje profundo con PyTorch

Parámetros y capacidad del modelo

  • Más capas ocultas = más parámetros = mayor capacidad del modelo

$$

Bloque de código para una red de dos capas

$$

Cálculo manual de parámetros:

  • La primera capa tiene 4 neuronas, cada neurona tiene 8+1 parámetros. 9 por 4 = 36 parámetros
Introducción al aprendizaje profundo con PyTorch

Parámetros y capacidad del modelo

  • Más capas ocultas = más parámetros = mayor capacidad del modelo

$$

Bloque de código para una red de dos capas

$$

Cálculo manual de parámetros:

  • La primera capa tiene 4 neuronas, cada neurona tiene 8+1 parámetros. 9 por 4 = 36 parámetros
Introducción al aprendizaje profundo con PyTorch

Parámetros y capacidad del modelo

  • Más capas ocultas = más parámetros = mayor capacidad del modelo

$$

Bloque de código para una red de dos capas

$$

Cálculo manual de parámetros:

  • La primera capa tiene 4 neuronas, cada neurona tiene 8+1 parámetros. 9 por 4 = 36 parámetros
  • La segunda capa tiene 2 neuronas, cada neurona tiene 4+1 parámetros. 5 por 2 = 10 parámetros
Introducción al aprendizaje profundo con PyTorch

Parámetros y capacidad del modelo

  • Más capas ocultas = más parámetros = mayor capacidad del modelo

$$

Bloque de código para una red de dos capas

$$

Cálculo manual de parámetros:

  • La primera capa tiene 4 neuronas, cada neurona tiene 8+1 parámetros. 9 por 4 = 36 parámetros
  • La segunda capa tiene 2 neuronas, cada neurona tiene 4+1 parámetros. 5 por 2 = 10 parámetros
  • 36 + 10 = 46 parámetros que se pueden aprender
Introducción al aprendizaje profundo con PyTorch

Parámetros y capacidad del modelo

  • Más capas ocultas = más parámetros = mayor capacidad del modelo

$$

Bloque de código para una red de dos capas

$$

Utilizando PyTorch:

  • .numel(): devuelve el número de elementos del tensor
total = 0
for parameter in model.parameters():
    total += parameter.numel()
print(total)
46
Introducción al aprendizaje profundo con PyTorch

Equilibrio entre complejidad y eficacia

Equilibrio entre complejidad y eficacia

Introducción al aprendizaje profundo con PyTorch

¡Vamos a practicar!

Introducción al aprendizaje profundo con PyTorch

Preparing Video For Download...