Derivado de la función ReLU en Python

Migel Hewage Nimesha 10 octubre 2023
  1. Implementar la función ReLU en Python
  2. Derivado de la función ReLU en Python
  3. Conclusión
Derivado de la función ReLU en Python

ReLU significa Función de activación lineal rectificada, que es la alternativa más popular de función de activación en el ámbito del aprendizaje profundo. ReLU es una parte de la función lineal que generará la entrada igual si el valor de entrada es positivo; si no, dará la salida cero.

Este artículo indica cómo hacer una derivada de la función ReLU usando el lenguaje de programación Python.

Implementar la función ReLU en Python

Como función matemática, podemos definir la función ReLU de la siguiente manera:

f(x) = max(0,x)

Esta función es lineal con respecto a x y genera cero para todos los valores negativos.

El siguiente pseudocódigo representa la función ReLU.

if input > 0:
    return input
else:
    return 0

Como el pseudocódigo anterior, podemos construir nuestra implementación de la función ReLU de la siguiente manera:

import numpy as nm


def relu_func(x):
    return nm.maximum(0, x)


print(relu_func(2))
print(relu_func(0))
print(relu_func(0.1))
print(relu_func(-3))

Considerando este ejemplo, definió la función relu_func con el parámetro x. Esta función devuelve la salida considerando la función ReLU.

Pasamos un solo entero a la vez a la función relu_func como argumento.

La función maximum() devuelve el valor más alto. Si el entero es mayor que 0, imprimirá el mismo entero que la entrada; si no, imprime cero.

Entonces, la función ReLU que hemos implementado en el código anterior funcionará con cualquier número entero; también con arreglos numpy.

Podemos obtener la salida de la siguiente manera:

funcion relu

Derivado de la función ReLU en Python

La derivada de la función ReLU, en caso contrario, se llama gradiente de ReLu. La derivada de la función es la pendiente.

Si creamos un gráfico, por ejemplo, y= ReLu(x), y x es mayor que cero, el gradiente es 1.

Si x es menor que cero, el gradiente es 0. Si x = 0, la derivada no existe.

La derivada matemática de la función ReLu se puede definir de la siguiente manera:

f'(x) = 1, x >= 0
	  = 0, x < 0

Podemos aplicar la derivada de la función ReLu a la gráfica. Entonces, veamos el siguiente ejemplo.

# %matplotlib inline
import numpy as np
import matplotlib.pyplot as plt

# define relu function


def relu_func(z):
    return np.maximum(0, z)


z = np.arange(-3, 5, 1)
print(z)
Y = relu_func(z)
print(Y)
plt.plot(z, Y, "o-")
plt.xlabel("X")
plt.ylabel("F(x)")
plt.grid()

Se define como relu_func pasando el parámetro z teniendo en cuenta el código anterior. Bajo esta función, devolvemos la función relu y la variable z definida para obtener el rango del eje x.

También se definió la variable Y definida para pasar relu_func con un parámetro. La función relu_func(Z) calcula el reLU para todos los valores z.

Por lo tanto, todos los valores negativos denotarán un cero. La gráfica del eje x es X con la gráfica del eje y es F(x).

El siguiente gráfico es el resultado que obtenemos del código anterior.

función relu derivada

Como se mencionó, derivada significa la pendiente del gráfico en un punto determinado. Entonces, la pendiente de x=1 es 1.

Todos los demás puntos mayores que 0 obtienen una pendiente de 1. Sin embargo, ¿cuál es la pendiente de x=-3?

Podemos ver que no hay pendiente para ese punto.

Todos los demás puntos menores que 0 obtienen pendiente ninguno, lo que significa pendiente 0. Por lo tanto, esto se denomina el lenguaje de programación Python integrado y derivado de la función ReLu.

Conclusión

Este artículo indica cómo implementar la función ReLu en Python y analiza principalmente cómo implementar la función derivada de ReLu. La función ReLU se usa con frecuencia en el aprendizaje profundo.

Pero tiene algunos problemas. Por ejemplo, si el valor de entrada es menor que 0, la salida será 0.

Por lo tanto, la red neuronal no puede continuar con algunos trabajos. Como solución para esto, utiliza principalmente la función Leaky ReLU.

Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.