Explora el papel de la función sigmoidea en el aprendizaje automático. Descubre cómo esta función de activación permite la clasificación binaria en modelos como Ultralytics .
La función sigmoide es un componente matemático fundamental que se utiliza ampliamente en los campos del aprendizaje automático (ML) y el aprendizaje profundo (DL). A menudo denominada «función de aplastamiento», toma cualquier número real como entrada y lo asigna a un valor entre 0 y 1. Esta característica curva en forma de «S» la hace increíblemente útil para convertir los resultados brutos del modelo en probabilidades interpretables. En el contexto de una red neuronal (NN), la función sigmoide actúa como una función de activación, introduciendo no linealidad que permite a los modelos aprender patrones complejos más allá de las simples relaciones lineales. Aunque ha sido sustituida en gran medida por otras funciones en capas ocultas profundas, sigue siendo una opción estándar para las capas de salida en tareas de clasificación binaria .
En esencia, la función sigmoide transforma los datos de entrada —a menudo denominados logits— en un rango normalizado. Esta transformación es crucial para tareas cuyo objetivo es predecir la probabilidad de que se produzca un evento. Al limitar la salida entre 0 y 1, la función proporciona una puntuación de probabilidad clara.
Aunque Sigmoid fue en su momento el valor predeterminado para todas las capas, los investigadores descubrieron limitaciones como el problema del gradiente de desaparición, en el que los gradientes se vuelven demasiado pequeños para actualizar los pesos de manera efectiva en redes profundas. Esto llevó a la adopción de alternativas para las capas ocultas .
La utilidad de la función sigmoide se extiende a diversos sectores en los que se requiere la estimación de probabilidades.
Puede observar cómo Sigmoid transforma los datos utilizando PyTorch, una popular biblioteca para crear modelos de aprendizaje profundo. Este sencillo ejemplo muestra el efecto de «aplastamiento» en un rango de valores de entrada.
import torch
import torch.nn as nn
# Create a Sigmoid layer
sigmoid = nn.Sigmoid()
# Define input data (logits) ranging from negative to positive
input_data = torch.tensor([-5.0, -1.0, 0.0, 1.0, 5.0])
# Apply Sigmoid to squash values between 0 and 1
output = sigmoid(input_data)
print(f"Input: {input_data}")
print(f"Output: {output}")
# Output values near 0 for negative inputs, 0.5 for 0, and near 1 for positive inputs
Para aquellos que deseen entrenar modelos que utilicen estos conceptos sin escribir código de bajo nivel, la Ultralytics ofrece una interfaz intuitiva para gestionar conjuntos de datos y entrenar modelos de última generación como YOLO26. Al gestionar automáticamente las complejidades arquitectónicas, permite a los usuarios centrarse en recopilar datos de entrenamiento de alta calidad para sus aplicaciones específicas de visión artificial.