Introduccion

Las funciones de activacion son una componente importante para la inteligencia artificial en la parte de aprendizaje como son las redes neuronales.Su principal funcion es crear no linealidad en el modelo, permitiendo que la red aprenda relaciones complejas entre los datos. Sin las funciones activacion ,las redes neuronales no serioan idicadas para apreder a resolover patrones no lineales que no son triviales.

A continuacion se explicaran cicno funciones de activacion con sus formulas ,derivadas y graficas.

1.Funcion sigmoidal

Esta funcion de activacion toma cualquier rango de valores de entrada y los mapea al rango de 0 a 1 a la salida. Esta funcion se usa en modelos probailisticos es muy util en modelos bayesianos y de desicision. Ademas son los perceptrones de la multicapa de las redes neuronales.

\[ f(x) = \frac{1}{1 + e^{-x}} \]

sigmoid <- function(x) {
  1 / (1 + exp(-x))
}
x <- seq(-10, 10, 0.1)
plot(x, sigmoid(x), type = "l", col = "blue", lwd = 2, main = "Sigmoide", ylab = "f(x)", xlab = "x")

Derivada de funcion sigmodial

Entonces su derivada es: \[ f'(x) = f(x)(1 - f(x)) \]

sigmoid <- function(x) {
  1 / (1 + exp(-x))
}

sigmoid_deriv <- function(x) {
  s <- sigmoid(x)
  s * (1 - s)
}

x <- seq(-10, 10, 0.1)

plot(x, sigmoid_deriv(x), 
     type = "l", 
     col = "red", 
     lwd = 2, 
     main = "Derivada de la función sigmoide", 
     ylab = "f'(x)", 
     xlab = "x")

Explicacion:Esta funcion su principal uso es para la clasificacion binaria. Porque solo puede tomar dos valores 1 o 0.

2.La Funcion Tangente hiperbolica

Formula:

\[ \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}} \]

Sea:

Su grafica es la siguente:

x <- seq(-10, 10, 0.1)

plot(x, tanh(x), 
     type = "l", 
     col = "darkred", 
     lwd = 2, 
     main = "Función Tangente Hiperbólica", 
     ylab = "f(x)", 
     xlab = "x", 
     ylim = c(-1, 1))

Su derivada es esta :

\[ \frac{d}{dx}\tanh(x) = 1 - \tanh^2(x) \]

El grafico es el siguente:

x <- seq(-10, 10, 0.1)

# Derivada de tanh: f'(x) = 1 - tanh(x)^2
tanh_deriv <- function(x) {
  1 - tanh(x)^2
}

# Graficar derivada
plot(x, tanh_deriv(x), 
     type = "l", 
     col = "orange", 
     lwd = 2, 
     main = "Derivada de la función tanh", 
     ylab = "f'(x)", 
     xlab = "x", 
     ylim = c(0, 1))

Explicacion: La funcion tanh se usa en las redes neuronales en las capas ocultas se usan antes del uso de la funcion ReLu que veremos a continuacion.Esta esta centrada en cero lo cual meiora el aprendizaje al facilitar la propagacion de gradientes. Permite respuestas suaves, evitando decisiones abruptas. Es ideal para ecuaciones diferenciales y funciones de enrgia.

3.Funcion ReLU

Formula:

\[ f(x) = \max(0, x) = \begin{cases} x & \text{si } x > 0 \\ 0 & \text{si } x \leq 0 \end{cases} \]

La grafica es la siguente:

x <- seq(-10, 10, 0.1)


relu <- function(x) {
  ifelse(x > 0, x, 0)
}

# Graficar
plot(x, relu(x), 
     type = "l", 
     col = "darkgreen", 
     lwd = 2, 
     main = "Función ReLU", 
     xlab = "x", 
     ylab = "f(x)", 
     ylim = c(0, 10))

Derivada:

\[ f'(x) = \begin{cases} 1 & \text{si } x > 0 \\ 0 & \text{si } x \leq 0 \end{cases} \]

Su grafico es el siguente:

x <- seq(-10, 10, 0.1)

# Derivada de la función ReLU
relu_deriv <- function(x) {
  ifelse(x > 0, 1, 0)
}

# Graficar derivada
plot(x, relu_deriv(x), 
     type = "l", 
     col = "blue", 
     lwd = 2, 
     main = "Derivada de la función ReLU", 
     xlab = "x", 
     ylab = "f'(x)", 
     ylim = c(0, 1.2))

Explicacion: La funcion ReLU (Rectified Linear Unit9 es una de las funciones activacion mas utilizadas en las redes neuronales profundas. Es buenas para entradas negativas la funcion bloquea el paso de la señal.y para entradas positivas deja pasar la señal tal como esta. Esta se utiliza para modelos de vision de computadora muy usados en arquitectura como AlexNet,VGG y etc. Tambien se usa ampliamente de procesamiento de lenguaje natural y señales. Es simple computacionalmente.

4. Funcion Softplus

Formula

\[ f(x) = \ln(1 + e^x) \]

# Dominio
x <- seq(-10, 10, 0.1)

# Función Softplus
softplus <- function(x) {
  log(1 + exp(x))
}

# Gráfico de Softplus
plot(x, softplus(x),
     type = "l",
     col = "darkorange",
     lwd = 2,
     main = "Función Softplus",
     xlab = "x",
     ylab = "f(x)")

Derivada de softplus

\[ f'(x) = \frac{1}{1 + e^{-x}} = \text{sigmoid}(x) \]

Su grafico

softplus_deriv <- function(x) {
  1 / (1 + exp(-x))
}

# Gráfico de la derivada
plot(x, softplus_deriv(x),
     type = "l",
     col = "blue",
     lwd = 2,
     main = "Derivada de la función Softplus ",
     xlab = "x",
     ylab = "f'(x)",
     ylim = c(0, 1))

Explicacion: Es usada en las redes neuronales profundas usada como funcion de activacion para evitar problemas de ReLU manteniento un comportamiento parecido.Es utilizada para modelos probabilisticos .Es util en modelos que se requiere una activacion positiva,continua y derivable.Tambien aparece en arquitecturas bayesianas o modelos de icertudumbre.Se utiliza en el aprendizaje por refuerzo.

5. ELU

Formula:

\[ f(x) = \begin{cases} x & \text{si } x \geq 0 \\ \alpha (e^x - 1) & \text{si } x < 0 \end{cases} \]

x <- seq(-5, 5, 0.1)
alpha <- 1.0

elu <- function(x, alpha = 1) {
  ifelse(x >= 0, x, alpha * (exp(x) - 1))
}

plot(x, elu(x, alpha),
     type = "l",
     col = "purple",
     lwd = 2,
     main = "Función ELU",
     xlab = "x",
     ylab = "f(x)")

La derivada de ELU es:

\[ f'(x) = \begin{cases} 1 & \text{si } x \geq 0 \\ \alpha e^x & \text{si } x < 0 \end{cases} \]

El grafico de la derivada de ELU es :

elu_prime <- function(x, alpha = 1) {
  ifelse(x >= 0, 1, alpha * exp(x))
}

plot(x, elu_prime(x, alpha),
     type = "l",
     col = "orange",
     lwd = 2,
     main = "Derivada de la función ELU",
     xlab = "x",
     ylab = "f'(x)",
     ylim = c(0, 1.2))

Explicacion ELU: Exponentional linear unit mas conocido como ELU utilizada en redes neuronales profudas como alternativa de ReLU.Se utiliza en modelos de clasificacion y regresion en tareas con datos complejos donde e sutil una activacion que maneje valores negativos.Tambien en redes de convoluciones o redes recurrentes en tareas como vison por computadora.Que es aquella tarea que recibe las imagenes de una manera grande y empieza a fragmentar los datos para identificar todos los aspectos como la vision de los seres humanos que puedes identificar diferentes objetos tan solo con una vision pero este al ser una maquina tiene un proceso de identificacion.

Referencias:

https://www.datacamp.com/es/tutorial/introduction-to-activation-functions-in-neural-networks

https://codificandobits.com/blog/funcion-de-activacion/

https://telefonicatech.com/techiepedia/funcion-activacion