La función de activación Softplus
Índice de contenidos
La función Softplus se define como softplus(x) = ln(1 + eˣ): una aproximación suave y siempre positiva de ReLU cuya derivada es exactamente la sigmoide. Es derivable en todo su dominio, evita el vértice anguloso de ReLU y su salida nunca llega a cero del todo.
La función Softplus se define como softplus(x) = ln(1 + eˣ): una versión suavizada de ReLU cuya derivada es, exactamente, la función sigmoide. La propusieron Dugas y sus colaboradores en 2001 y desde entonces sirve como el ejemplo de libro de una activación derivable en todo su dominio. Siempre devuelve un valor positivo, se dobla poco a poco en lugar de quebrarse en un vértice y nunca sufre el corte abrupto de ReLU en el origen. Esta guía la desmonta pieza a pieza. La misma explicación está disponible en inglés.
Puntos clave
- La función Softplus se define como
softplus(x) = ln(1 + eˣ), una aproximación suave de ReLU introducida por Dugas y otros en 2001. - Su derivada es exactamente la sigmoide,
σ(x) = 1 / (1 + e⁻ˣ), lo que garantiza un gradiente continuo y acotado entre 0 y 1. - Su salida es siempre estrictamente positiva: el rango es
(0, ∞)y en el origen valeln(2) ≈ 0,693, no cero. - Es derivable en todo su dominio, sin el vértice anguloso que ReLU tiene en
x = 0. - En la práctica ReLU suele igualarla o superarla, por lo que Softplus se reserva para casos donde importa forzar salidas positivas y suaves.
¿Qué es Softplus?
Softplus es una función de activación: la operación no lineal que se aplica a la suma ponderada z = Wx + b de una neurona para producir su salida a = f(z). Sin esa no linealidad, apilar capas no aportaría nada, porque la composición de funciones lineales sigue siendo lineal.
El nombre resume su intención. Es una versión «blanda» (soft) de la función plus, es decir, de la parte positiva max(0, x) que define a la unidad rectificada ReLU. Donde ReLU corta de golpe en el origen, Softplus describe la misma tendencia general con una curva continua que se dobla despacio. Dugas y sus colaboradores la presentaron en el artículo Incorporating Second-Order Functional Knowledge for Better Option Pricing[1], donde necesitaban una función creciente y suave para modelar precios de opciones.
Fórmula y derivada (la sigmoide)
La definición es una sola línea:
$$\operatorname{softplus}(x) = \ln(1 + e^{x})$$
Conviene retener tres valores concretos. En $x = 0$, la función vale $\ln(1 + 1) = \ln(2) \approx 0{,}693$. Para valores muy negativos, $e^{x}$ tiende a 0 y la función se acerca suavemente a 0 sin llegar a tocarlo. Para valores muy positivos, $e^{x}$ domina y $\ln(1 + e^{x}) \approx x$, así que la curva se pega asintóticamente a la recta identidad. Esa es la clave de su parecido con ReLU.
Lo más elegante aparece al derivar. La derivada de $\ln(1 + e^{x})$ es $e^{x} / (1 + e^{x})$, que reescrita es $1 / (1 + e^{-x})$, es decir, la función sigmoide:
$$\operatorname{softplus}'(x) = e^{x} / (1 + e^{x}) = 1 / (1 + e^{-x}) = \sigma(x)$$
Ver la derivación
Derivamos $\ln(1 + e^{x})$ con la regla de la cadena. Si $u = 1 + e^{x}$, entonces $u’ = e^{x}$ y $\frac{d}{dx}\ln(u) = u’/u = e^{x}/(1 + e^{x})$. Al dividir numerador y denominador entre $e^{x}$ resulta $1/(1 + e^{-x}) = \sigma(x)$, la sigmoide.
Como la derivada de Softplus es la sigmoide, su gradiente nunca es cero exacto: por eso, a diferencia de ReLU, ninguna neurona con Softplus «muere» del todo durante el entrenamiento.
Dicho al revés, Softplus es la primitiva de la sigmoide. El gradiente hereda entonces las propiedades de $\sigma$: es siempre positivo, continuo y queda acotado en el intervalo $(0, 1)$, lo que aporta un flujo de gradiente estable durante la retropropagación.
Softplus como ReLU suave
Comparar ambas curvas aclara qué gana y qué pierde Softplus. ReLU es max(0, x): exactamente 0 para entradas negativas y la identidad para positivas, con un pliegue no derivable en el origen. Softplus dibuja esa misma silueta pero redondeada. La mayor diferencia entre las dos funciones se da precisamente en x = 0, donde el hueco vale ln(2) ≈ 0,693, y se estrecha rápido al alejarnos: en x = 4 la separación ya es inferior a 0,02.
Existe una versión con parámetro de temperatura, softplus(x) = (1/β)·ln(1 + eᵝˣ). Al aumentar β, la curva se ciñe cada vez más a ReLU; en el límite β → ∞ se recupera exactamente max(0, x). Como resumen Goodfellow, Bengio y Courville en Deep Learning[2], «el uso de softplus generalmente se desaconseja», porque, pese a ser derivable en todas partes, en la práctica no mejora a la rectificada. La suavidad, que parecía una ventaja obvia, no se traduce en mejor rendimiento empírico.
Ventajas e inconvenientes
Las ventajas de Softplus son tres, y todas derivan de su suavidad. Primero, es derivable en todo ℝ, sin el punto anguloso de ReLU, lo que puede convenir a métodos de optimización de segundo orden que necesitan curvatura continua. Segundo, su salida es siempre estrictamente positiva, propiedad muy útil cuando la red debe predecir una magnitud que no puede ser negativa, como una varianza, una tasa o un parámetro de escala. Tercero, no padece el problema de las «neuronas muertas»: como el gradiente σ(x) nunca es exactamente 0, ninguna neurona deja de aprender del todo.
Los inconvenientes explican por qué no destronó a ReLU. El coste es mayor, ya que cada evaluación exige una exponencial y un logaritmo, frente a la simple comparación de ReLU. Además, al no producir ceros exactos, Softplus no genera la representación dispersa (sparsity) que hace atractiva a ReLU. Y, como comprobaron Glorot, Bordes y Bengio en Deep Sparse Rectifier Neural Networks[3], la rectificada iguala o supera a Softplus en las tareas de clasificación que ensayaron, pese a no ser derivable en el origen.
Implementación estable
La fórmula ingenua ln(1 + exp(x)) es una trampa numérica. Para x grande, exp(x) desborda: en coma flotante de 32 bits el resultado es infinito ya alrededor de x = 88, y entonces ln(inf) devuelve infinito en lugar del valor correcto, que es aproximadamente x. La solución estándar reescribe la función de forma equivalente pero segura:
$$\operatorname{softplus}(x) = \max(0, x) + \ln(1 + e^{-|x|})$$
Así el argumento de la exponencial nunca es positivo, e^-|x| queda siempre en (0, 1] y no hay desbordamiento. Los marcos de trabajo aplican además un umbral: PyTorch implementa torch.nn.Softplus[4] con los parámetros beta=1 y threshold=20, de modo que por encima de ese punto sustituye la fórmula por la recta x, indistinguible ya de la curva real y sin riesgo de perder precisión. Si programas la función a mano, parte de la variante estable y no de la definición directa.
Preguntas frecuentes
¿Cuál es la derivada de Softplus?
La derivada de softplus(x) = ln(1 + eˣ) es la función sigmoide, σ(x) = 1 / (1 + e⁻ˣ). Dicho de otro modo, Softplus es la primitiva o integral de la sigmoide. Por eso su gradiente es continuo, siempre positivo y acotado entre 0 y 1.
¿En qué se diferencia Softplus de ReLU?
Ambas comparten la misma forma general, pero ReLU corta de golpe en 0 con un vértice no derivable, mientras que Softplus la aproxima con una curva suave. Softplus nunca vale cero exacto (en el origen vale ln(2) ≈ 0,693) y es más cara de calcular, ya que necesita una exponencial y un logaritmo.
¿Cuándo conviene usar Softplus?
Es útil cuando la red debe emitir un valor obligatoriamente positivo, como una varianza o una tasa, o cuando el algoritmo de optimización requiere una función derivable en todo su dominio. Para capas ocultas de propósito general, ReLU o sus variantes suelen rendir igual o mejor con menos coste.
Conclusión
La función Softplus condensa una idea clara: suavizar ReLU con ln(1 + eˣ) para que la curva se doble en lugar de quebrarse y su derivada sea la sigmoide. Ese refinamiento la hace derivable en todas partes y siempre positiva, pero rara vez mejora a la rectificada en la práctica, así que su sitio está en los casos donde la positividad o la suavidad son un requisito. Puedes situarla junto al resto de activaciones dentro de el mapa de las matemáticas de las redes neuronales.