No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Cómo son las derivadas en las funciones de activación?

11/12
Recursos

En este notebook de Google Colab exploramos las derivadas de distintas funciones de activación.

Derivadas de funciones de activación

Mediante la función derivada discreta que programamos en clases anteriores, podemos obtener una derivada aproximada de las funciones de activación.

def df(f):
  h=0.000001
  return (f(x+h)-f(x))/h

Derivada de una función lineal

Las funciones lineales también pueden servir como funciones de activación de una red neuronal. Por esto es importante entender que la derivada de una función lineal es simplemente su pendiente. Es decir

"""Sea
f(x) = mx+b
f'(x) = m
"""

def f(x):
  return x

plt.plot(x, f(x), 'b')
plt.plot(x,df(f), 'r')
plt.grid()
Derivada lineal

Derivada de la función de Heaviside

Recordemos que la función de Heavyside está dada por partes, de la siguiente forma:
1.PNG

Gráfica función de heavyside

Si vemos la gráfica de la función, nos damos cuenta que para x=0 la función “crece” completamente vertical hasta y=1. Es decir, la recta tangente en x=0 tiene pendiente infinita. Se puede demostrar que la derivada de la función de Heavyside corresponde a la “Delta de Dirac”. Te invito a investigar la Delta de Dirac por tu cuenta, pero en resúmen, esta función tiende a infinito cuando x tiende a cero (en este caso), y vale cero para todos los demás valores.

Derivada de la función sigmoide

La función sigmoide es usada tanto en redes neuronales como en regresión logística. Esta función se expresa como:
2.PNG
Y su derivada:
3.PNG

Optimizar esta función en redes neuronales puede llevar a un problema conocido como “vanishing gradient”, debido a la complejidad de la función. Te invito a investigarlo. Por ahora, te dejo el código y el gráfico de esta función con su derivada.

def f(x):
  return 1/(1 + np.exp(-x))
   
plt.plot(x, f(x), 'b')
plt.plot(x,df(f), 'r')
plt.grid()
función sigmoide y su derivada

Derivada de la función tangente hiperbólica

Con esta función ocurre algo similar que con la sigmoide. La complejidad de su derivada puede causar problemas durante la optimización. La función tangente hiperbólica está dada por:4.PNG

Y su derivada

5.PNG
tanh y su derivada

Derivada de la función ReLU

La función ReLU es especialmente útil en las capas intermedias de una red neuronal, gracias a su relativa sencillez. La función ReLu está definida como $R(x)=max(0,x)$, o bien:
7.PNG
Y su derivada está dada por
8.PNG
Nota: ReLu no tiene derivada en cero
relu

Conclusión

Entender estas funciones y sus derivadas nos ayudará a comprender los fundamentos necesarios para desarrollar algoritmos de machine learning y redes neuronales. Esto no se trata de una receta de cocina, y sino de pensar de manera analítica usando dichos fundamentos.

Contribución creada por Ciro Villafraz con los aportes de: Joan Blanco, RubenSH y Faustino Correa Muñoz.

Aportes 7

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Hay algunas gráficas que no me gustan nada. Presentan conflicto en x=0. Me refiero a esas funciones por partes como la de Heaviside. Hay una linea vertical de color azul en x=0, lo que daría a entender que para ese valor de x la función toma TODOS los valores de y entre el 0 y el 1, y eso no es correcto. Solo hay un valor. En el caso de Heaviside, para x=0, y=1.

Para Heaviside, existe un cambio en el punto x=0, donde pasa de valer 0 a 1, en ese momento si hay una “pendiente” que es infinita, y hay una función para representar su derivada que es la delta de dirac, una función de distribución de densidad
https://es.wikipedia.org/wiki/Delta_de_Dirac

Las funciones de activación

Son un componente clave de las redes neuronales artificiales
Su función es determinar la salida de una neurona dado un conjunto de entradas


Las funciones de activación más comunes son:

  • Función sigmoide
  • Función tangente hiperbólica (tanh)
  • Función ReLU (Rectified Linear Unit)
  • Función Leaky ReLU
HIII There!!!!, lo que El Profesor habla de Muerte Neuronal refierese al proceso de Aprendizaje por el Algoritimo del BackPropagation. a traves del Descenso del Grandeinte . la siguiente formula MultiParametrica. en la![](https://static.platzi.com/media/user_upload/image-53448425-565e-4c3d-9aa3-f1630d48e6c6.jpg) cual , utilizamoslas derivadas de los n\_parametros de nuestra red newuronal incluso bias tambien, l uego si la derivada de estoas parametros tiende a '0.0' porque nuestra Funcion d'Activacion se satura en valores muy Negativos/Muy Positivos no habra un cambio significativo en L'Ecuacion del Descenso del Gradiente, pues esta depende de las derivadas parciales para actualizara parametros en minimizar la funcion del Error Cuadratico Medio, esto se conoce co Gradient Vanishing "desvanesimiento del gradiente" --> Muerte Neuronal , por lo que Nuestra red neuronal dejar'a de aprender porque ya no existe una derivada != 0.0 para actualizar parametros, luego tambien el learning\_rate --> 0..0 por definicion de hiperparametro, luego nuestras neuronas tristemente nunca llegaran al minimo del error cuadratico medio y nunca aprenderan nada, por tanto es muy importante escoger una buena funcion de activacion entre caapas conectadas que no desvanezca el gradiente durante las derivadas sucesivas en capas neuronales durante el Training Process. Algo que si es bueno que sepan desde ya es . Descenso Gradiente != Dsevanecimiento del Gradiente. No son lo mismo . LO Ideal seria evitar el desvanecimiento del gradiente durante el Descenso del Gradiente, El Objetivo es llegar al minimo posible de ECM usando el Algoritmo del Descenso del Gradiente en pendiente negativa hacia abajo en busca de un minimo relativo de una Gran Funcion MultiDimencional con miles de parametros en un HiperEspacio Infinito.

Este video me ayudo a profundizar en el tema:video

Las derivadas de las funciones de activación son importantes en el contexto de las redes neuronales y el aprendizaje automático, ya que se utilizan en el proceso de retropropagación del error para calcular los gradientes y actualizar los pesos de la red durante el entrenamiento.