Swish (SiLU)

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

f(x)=xσ(x)f(x)=x\cdot\sigma(x)
Swish (SiLU)

👉 donde σ(x)\sigma(x) 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

PropiedadReLUSwish
Suavidadno
Negativos0valores pequeños
Derivadadiscontinuacontinua
Expresividadmediaalta

Propiedad importante: auto-modulación

f(x)=xσ(x)f(x) = x \cdot \sigma(x)

👉 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

Python
import numpy as np
def 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

Python
import torch
import torch.nn as nn
swish = nn.SiLU()
x = torch.tensor([-2.0, -1.0, 0.0, 1.0, 2.0])
print(swish(x))

Ejemplo en modelo

Python
import torch.nn as nn
model = 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.

Related Concepts