Mejor respuesta
ReLU se define como f (x) = max (0, x). El softplus es su sustituto diferencial y se define como f (x) = ln (1 + e ^ x).
Tanto ReLU como Softplus son muy similares, excepto cerca de 0, donde el softplus es tentadoramente suave y diferenciable. Es mucho más fácil y eficiente calcular ReLU y su derivada que para la función softplus que tiene log (.) Y exp (.) En su formulación. Curiosamente, la derivada de la función softplus es la función logística: f «(x) = \ frac {1} {1 + e ^ {- x}}.
En el aprendizaje profundo, calcular la función de activación y su derivada es tan frecuente como la suma y la resta en aritmética. Al cambiar a ReLU, las pasadas hacia adelante y hacia atrás son mucho más rápidas y, al mismo tiempo, retienen la naturaleza no lineal de la función de activación requerida para que las redes neuronales profundas sean útiles.
Respuesta
El objetivo de una función de activación es ser no lineal.
Déjame explique por qué. Si tiene una red de varias capas (la denominada «profunda» contra una red «superficial»), entonces su modelo podría aprender a detectar o manejar ejemplos mucho más sofisticados. Al operar, su red utilizaría más interconexiones entre pesos (y probablemente más pesos). Al hacer los cálculos, mucho de eso significa en realidad multiplicar y sumar números, como:
y = f (W x + b).
con f (\ cdot) como una función de activación.
Cuando «colocas en cascada» las capas, la salida de cada capa se convierte en una entrada para la siguiente. Para 2 capas, por ejemplo:
y = x\_2 = f (W\_2 x\_1 + b\_2) = f (W\_2 f (W\_1 x\_0 + b\_1) + b\_2).
Sin embargo, si f (\ cdot) era una función lineal f (x) = \ alpha x + \ beta, entonces toda la red se «colapsaría» en una red de una sola capa, simplemente porque cualquier La combinación lineal de funciones lineales es una función lineal en sí misma.
La ecuación anterior representaría:
x\_2 = \ alpha (W\_2 (\ alpha (W\_1 x\_0 + b\_1) + \ beta) + b\_2) + \ beta = \ alpha ^ 2 W\_1 W\_2 x\_0 + \ alpha ^ 2 W\_1 W\_2 b\_1 + \ alpha ^ 2 W\_2 \ beta + \ alpha W\_2 b\_1 + \ beta = \ alpha «x\_0 + \ beta «.
Esto es como si tuvieras una red de una sola capa con pesos ligeramente diferentes.
Ahora, ReLU introduce la no linealidad, lo que significa que la declaración anterior ya no es válida, por lo que el optimizador tiene que «esforzarse más» para entrenar realmente los pesos y hacer que todo funcione. Por supuesto, también hay otras funciones no lineales (por ejemplo, sigmoide, tanh, etc.), pero el punto es que deben ser no lineales.
Finalmente, el ejemplo que acabo de escribir se basa en una red simple densamente conectada, pero supongo que también se extiende a otros casos.