Activación suave y auto-modulada para deep learning moderno
La Swish, también conocida como SiLU (Sigmoid Linear Unit), es una función de activación que multiplica la entrada por su propia probabilidad (Sigmoid).
👉 Introduce una transición suave y auto-regulada que mejora el flujo de gradiente.
Definición corta
La Swish es una función de activación suave que combina identidad y Sigmoid.
Definición matemática

👉 donde es la función Sigmoid.
Intuición
Swish responde:
👉 “Activo una entrada en función de su propia importancia”
Entrada grande → activación alta
Entrada pequeña → activación parcial
Entrada negativa → atenuada, no eliminada
Interpretación geométrica
- curva suave y continua
- no monótona en negativos
- crecimiento casi lineal en positivos
Comparación conceptual
ReLU → corte brusco
Swish → transición suave
Diferencia clave con ReLU
| Propiedad | ReLU | Swish |
|---|---|---|
| Suavidad | no | sí |
| Negativos | 0 | valores pequeños |
| Derivada | discontinua | continua |
| Expresividad | media | alta |
Propiedad importante: auto-modulación
👉 la función regula su propia activación.
Interpretación
Valor × probabilidad
↓
Activación adaptativa
Ventajas
- gradiente suave
- mejor flujo de información
- mayor expresividad
- rendimiento superior a ReLU en algunos modelos
Desventajas
- más costosa que ReLU
- no siempre mejora resultados
- menos estándar que GELU en Transformers
Swish vs GELU
- Swish → basada en Sigmoid
- GELU → basada en distribución normal
- comportamiento similar
Swish vs Mish
- ambas suaves
- Mish más compleja
- Swish más eficiente
📊 Ejemplo conceptual
Entrada
↓
Swish
↓
Activación suave
↓
Representación rica
Uso en arquitecturas modernas
🔹 EfficientNet
- activación principal
🔹 Redes profundas avanzadas
- mejora rendimiento en algunos casos
Ejemplo en Python
import numpy as npdef sigmoid(x): return 1 / (1 + np.exp(-x))def swish(x): return x * sigmoid(x)x = np.array([-2, -1, 0, 1, 2])print(swish(x))
Ejemplo en PyTorch
import torchimport torch.nn as nnswish = nn.SiLU()x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])print(swish(x))
Ejemplo en modelo
import torch.nn as nnmodel = nn.Sequential( nn.Linear(10, 20), nn.SiLU(), nn.Linear(20, 1))
🧠 Qué muestra este ejemplo
- activación suave
- comportamiento adaptativo
- alternativa moderna a ReLU
Errores comunes
Pensar que siempre supera a ReLU
Depende del modelo.
Usarla en hardware limitado
Más costosa.
Confundirla con GELU
Son similares pero diferentes.
📊 Ejemplo conceptual en ML
Entrada
↓
Swish
↓
Activación probabilística suave
↓
Mejor aprendizaje
Interpretación profunda
Swish introduce una idea poderosa:
👉 La activación puede depender del propio valor de entrada
Esto permite:
- comportamiento más flexible
- decisiones suaves
- mejor modelado de datos complejos
Conclusión
La Swish (SiLU) es una función de activación moderna que combina suavidad, continuidad y auto-modulación, siendo una alternativa eficaz a ReLU en ciertos modelos.
👉 Representa la transición hacia activaciones más expresivas.