Ultralytics YOLO27: Únete a la lista de espera.
Licencia YOLO
Volver al glosario de Ultralytics

Dropout Layer

Una capa de dropout pone aleatoriamente a cero una parte de las activaciones durante el entrenamiento para que la red no dependa de ninguna unidad concreta, lo que reduce el sobreajuste.

Una capa de dropout es un componente de regularización de una red neuronal que establece aleatoriamente en cero una fracción p de sus entradas en cada paso de entrenamiento y deja pasar todos los valores sin cambios durante la inferencia. Como cualquier unidad puede desaparecer en cualquier paso, la red no puede depender de unas pocas neuronas concretas ni de coadaptaciones frágiles entre ellas, por lo que aprende características redundantes que generalizan mejor y reducen el sobreajuste a los datos de entrenamiento. Geoffrey Hinton y sus colegas introdujeron la técnica en 2012, y Srivastava, Hinton, et al. la describieron en detalle en 2014. Es una capa integrada en PyTorch, TensorFlow y la mayoría de los demás frameworks de aprendizaje profundo, y se utiliza en arquitecturas que van desde las capas clasificadoras totalmente conectadas hasta los transformers.

Cómo funciona el dropout#

Durante el entrenamiento, la capa toma una nueva máscara aleatoria en cada pasada hacia delante: conserva cada elemento con una probabilidad de 1 − p y lo pone a cero con una probabilidad p. Por tanto, cada paso entrena una subred reducida distinta, y la red completa que se utiliza durante las pruebas aproxima el promedio de las innumerables subredes que comparten sus pesos; por eso, el dropout suele describirse como entrenamiento de ensambles de bajo coste. Para mantener la misma activación esperada en ambas fases, los frameworks modernos utilizan dropout invertido: durante el entrenamiento, los valores que se conservan se multiplican por 1 / (1 − p), de modo que la capa no hace nada durante la inferencia. En PyTorch, nn.Dropout sigue el modo de entrenamiento o evaluación del módulo:

import torch
from torch import nn

torch.manual_seed(0)
dropout = nn.Dropout(p=0.5)
x = torch.ones(10)

# Modo de entrenamiento: aproximadamente la mitad de los valores se ponen a cero y los restantes se escalan por 1 / (1 - p) = 2
dropout.train()
print("Train:", dropout(x))

# Modo de evaluación: la capa deja pasar todos los valores sin cambios
dropout.eval()
print("Eval: ", dropout(x))

En modo de entrenamiento se descartan seis de los diez valores y los cuatro restantes pasan a ser 2.0, por lo que el valor esperado se mantiene en 1.0; en modo de evaluación, los diez valores siguen siendo 1.0.

Variantes habituales de dropout#

  • Dropout espacial: nn.Dropout2d de PyTorch pone a cero canales enteros de mapas de características, lo que resulta adecuado para las redes convolucionales porque los píxeles vecinos de un canal están muy correlacionados y descartar píxeles individuales apenas los regulariza.
  • Profundidad estocástica (DropPath): En lugar de activaciones individuales, se omiten aleatoriamente ramas residuales completas para cada muestra; es un componente habitual del entrenamiento de Vision Transformers y CNN modernas.
  • Dropout de Monte Carlo: El dropout permanece activo durante la inferencia y el modelo realiza varias pasadas hacia delante con la misma entrada. La dispersión de las predicciones proporciona una estimación de bajo coste de la incertidumbre del modelo para sistemas críticos para la seguridad; Gal y Ghahramani interpretaron este método como una inferencia bayesiana aproximada.
  • DropConnect: Se ponen a cero pesos individuales aleatorios en lugar de activaciones, de modo que cada conexión tiene su propia máscara.

El dropout en la práctica#

Las tasas de dropout se ajustan como cualquier otro hiperparámetro. Srivastava et al. observaron que descartar unidades ocultas con una probabilidad de 0.5 funcionaba bien en una amplia variedad de redes y tareas, mientras que las unidades de entrada funcionan mejor con una probabilidad de conservación más cercana a 1; el Transformer original utilizaba p = 0.1. Una tasa demasiado alta ralentiza la convergencia y puede causar subajuste, y aplicar dropout justo antes de la normalización por lotes puede perjudicar la precisión debido a un cambio de varianza entre entrenamiento y prueba. Muchas redes neuronales convolucionales se basan principalmente en la normalización por lotes, el aumento de datos y la disminución de peso, y reservan el dropout para la capa clasificadora. Los modelos de clasificación de Ultralytics YOLO26 siguen ese patrón: incluyen una capa de dropout entre las características agrupadas de 1,280 canales y el clasificador lineal final; la tasa se define con el argumento de entrenamiento dropout (0.0 de forma predeterminada).

from ultralytics import YOLO

# Carga un modelo de clasificación YOLO26, cuya cabeza contiene la capa de dropout
model = YOLO("yolo26n-cls.pt")

# Entrena con un 10 % de dropout en la cabeza de clasificación y un subconjunto pequeño de MNIST
results = model.train(data="mnist160", epochs=10, imgsz=64, dropout=0.1)

Aplicaciones en el mundo real#

  • Análisis de imágenes médicas: Las imágenes médicas etiquetadas son caras, así que los clasificadores de diagnóstico suelen ajustarse a partir de una red troncal preentrenada con unos pocos miles de imágenes. El dropout en la cabeza del clasificador limita cuánto memoriza esta los casos individuales de un conjunto tan pequeño.
  • Procesamiento del lenguaje natural: Los codificadores Transformer, como BERT, aplican dropout con una probabilidad de 0.1 en todas las capas, incluidos los pesos de atención, durante el preentrenamiento y el ajuste fino.
  • Normalización por lotes: La normalización por lotes estandariza las entradas de cada capa para estabilizar el entrenamiento y solo añade un ruido leve procedente de las estadísticas del lote, sin eliminar unidades.
  • Suavizado de etiquetas: El suavizado de etiquetas regulariza los objetivos de entrenamiento al suavizar las etiquetas one-hot y mantiene intactas todas las activaciones.
  • Poda: La poda elimina de forma permanente los pesos de poca importancia para reducir el tamaño del modelo, mientras que el efecto de poner valores a cero con dropout dura un solo paso de entrenamiento y no cambia el número de parámetros.

Explora las soluciones

Visión artificial en el deporte

Visión artificial en el deporte

Descubre cómo Ultralytics YOLO impulsa la visión artificial en el deporte con el seguimiento de jugadores y balones, analíticas de rendimiento, información útil para entrenadores y rehabilitación de deportistas.
Más información
Visión artificial para imágenes aéreas

Visión artificial para imágenes aéreas

Convierte imágenes aéreas y de drones en información útil en tiempo real para la agricultura, la acuicultura, la conservación y el análisis geoespacial con Ultralytics YOLO.
Más información
Visión artificial en el sector aeroespacial

Visión artificial en el sector aeroespacial

Aplica la visión artificial en el sector aeroespacial con Ultralytics YOLO para inspeccionar aeronaves, detectar objetos extraños en pistas, gestionar operaciones en tierra y detectar defectos en materiales compuestos.
Más información
Visión artificial en seguridad

Visión artificial en seguridad

Protege todas tus instalaciones con los modelos Ultralytics YOLO. La IA visual permite supervisar perímetros, detectar amenazas, reconocer matrículas y mejorar la seguridad laboral.
Más información
Visión artificial en robótica

Visión artificial en robótica

Potencia máquinas más inteligentes con los modelos Ultralytics YOLO. La IA visual en robótica impulsa la navegación autónoma, la percepción, el seguimiento de objetos y el control en tiempo real.
Más información
Visión artificial en logística

Visión artificial en logística

Agiliza la logística con modelos Ultralytics YOLO. La IA visual permite inspeccionar paquetes, clasificarlos, realizar el seguimiento de vehículos y supervisar la seguridad del almacén en tiempo real.
Más información
Visión artificial en el comercio minorista

Visión artificial en el comercio minorista

Reinventa el comercio minorista con modelos Ultralytics YOLO. La IA visual permite realizar el seguimiento del inventario, supervisar estanterías, gestionar colas y obtener información más útil sobre los clientes.
Más información
Visión artificial en el sector sanitario

Visión artificial en el sector sanitario

Desarrolla soluciones sanitarias con modelos Ultralytics YOLO. La IA visual en el sector sanitario permite acelerar el diagnóstico por imagen, mejorar los diagnósticos y supervisar a los pacientes.
Más información
Visión artificial en la fabricación

Visión artificial en la fabricación

Optimiza la fabricación con modelos Ultralytics YOLO. La IA visual mejora el control de calidad, la detección de defectos, el cumplimiento de las normas de uso de EPI y la automatización de las líneas de montaje.
Más información
Visión artificial en la automoción

Visión artificial en la automoción

Aplica la visión artificial al sector de la automoción con modelos Ultralytics YOLO. La IA visual mejora la seguridad vial, la asistencia al conductor y la automatización de vehículos para lograr carreteras más inteligentes.
Más información
Visión artificial en la agricultura

Visión artificial en la agricultura

Incorpora la IA de visión a la agricultura inteligente con modelos Ultralytics YOLO. Impulsa la monitorización de cultivos, el seguimiento del ganado y la agricultura de precisión para obtener cosechas más abundantes e inteligentes.
Más información

¡Construyamos juntos el futuro de la IA!

Inicia tu recorrido hacia el futuro del aprendizaje automático