Funciones de Activación en Redes Neuronales

Las Funciones de Activación en las Redes Neuronales

Introducción

Las funciones de activación son el ingrediente secreto detrás de las notables capacidades de redes neuronales. Son los tomadores de decisiones, determinando si una neurona debería “activarse” o permanecer inactiva según la entrada que recibe. Aunque esto pueda sonar como una intrincada tecnicidad, entender las funciones de activación es crucial para cualquiera que se adentre en las redes neuronales artificiales.

En esta entrada de blog, desmitificaremos las funciones de activación de una manera fácil de entender, incluso si eres nuevo en el aprendizaje automático. Piénsalo como la clave para desbloquear el potencial oculto de las redes neuronales. Al final de este artículo, comprenderás qué son las funciones de activación y apreciarás su importancia en el aprendizaje profundo.

Así que, ya seas un científico de datos novato, un entusiasta del aprendizaje automático o simplemente alguien curioso acerca de la magia que ocurre dentro de esas redes neuronales, abróchate el cinturón. Embarquémonos en un viaje para explorar el corazón de la inteligencia artificial: las funciones de activación.

Objetivos de Aprendizaje

  1. Comprender el papel y transformación de las funciones de activación en las redes neuronales.
  2. Explorar las funciones de activación comúnmente utilizadas y sus ventajas y desventajas.
  3. Reconocer escenarios para funciones de activación específicas y su impacto en el flujo de gradientes.

Este artículo fue publicado como parte del Blogatón de Ciencia de Datos.

¿Qué es la Función de Activación?

Las funciones de activación son los tomadores de decisiones dentro de una red neuronal. Están conectadas a cada neurona y desempeñan un papel fundamental en determinar si una neurona debe activarse. Esta decisión de activación depende de si la entrada recibida por cada neurona es relevante para la predicción de la red.

Las funciones de activación actúan como guardias, permitiendo que solo cierta información pase y contribuya a la salida de la red. Añaden una capa esencial de no linealidad a las redes neuronales, permitiéndoles aprender y representar patrones complejos dentro de los datos.

Para adentrarnos más en este concepto crucial, exploremos algunas funciones de activación estándar y sus características únicas. La función de activación también juega un papel vital en normalizar la salida de cada neurona, limitándola a un rango específico, generalmente entre 0 y 1 o entre -1 y 1.

En una red neuronal, las entradas se suministran a las neuronas dentro de la capa de entrada. Cada neurona está asociada con un peso, y la salida de la neurona se calcula multiplicando la entrada por su respectivo peso. Esta salida se pasa luego a la siguiente capa.

La función de activación es una “puerta” matemática entre la entrada que ingresa a la neurona actual y la salida transmitida a la capa siguiente. Puede ser tan simple como una función escalón, que activa o desactiva la salida de la neurona según una regla o umbral definido.

Es crucial que las redes neuronales empleen funciones de activación no lineales. Estas funciones son fundamentales para permitir que la red entienda patrones complejos de datos, calcule y aprenda casi cualquier función relevante para una pregunta dada y, en última instancia, realice predicciones precisas.

Aprende más: Funciones de Activación | Fundamentos del Aprendizaje Profundo

Funciones de Activación Comúnmente Utilizadas

  • Función sigmoide
  • Función tangente hiperbólica
  • Función ReLU
  • Función ReLU con filtraciones
  • Función ELU (Exponential Linear Units)

Función Sigmoide

La fórmula y la curva de la función sigmoide son las siguientes,

La función sigmoidal es la función de activación más utilizada al comienzo del aprendizaje profundo. Es una función de suavizado que es fácil de derivar.

La función sigmoide muestra que su salida está en el intervalo abierto (0,1). Podemos pensar en probabilidades, pero en sentido estricto, no la tratamos como una probabilidad. La función sigmoide fue una vez más generalizada. Se puede pensar como la tasa de disparo de una neurona. En el punto medio, donde la pendiente es relativamente grande, es el área sensible de la neurona. El área inhibidora de la neurona se encuentra en los lados, con una pendiente suave.

Podemos pensar en la función sigmoide como una forma de describir qué tan activa o “activada” está una neurona en una red neuronal. Imagina que tienes una neurona, como un interruptor, en tu red.

  • Cuando la salida de la función sigmoide se acerca a 1, puedes imaginar que la neurona es altamente sensible, como si estuviera lista para responder fuertemente a una entrada.
  • En el punto medio, donde la pendiente es pronunciada, es donde la neurona es más sensible. Si cambias ligeramente la entrada, la salida de la neurona cambiará significativamente.
  • En los lados, donde la pendiente es suave, es como si la neurona estuviera en un área inhibidora. Aquí, incluso si cambias ligeramente la entrada, la neurona no reacciona mucho. No es muy sensible en estas áreas.

La función misma tiene ciertos defectos.

  1. Cuando la entrada se aleja ligeramente del origen de coordenadas, el gradiente de la función se vuelve muy pequeño, casi cero.
  • ¿Por qué los valores son cero o insignificantes?
  • El intervalo de salida de la función sigmoide es 0 o 1. La fórmula de la función sigmoide es F(x) = 1 / (1 + e^-z), por lo que ponemos el valor z = 0 o 1. (1 + e^-z) siempre es mayor. pero este término está presente en el denominador, por lo que el cálculo general es muy pequeño.
  • Por lo tanto, los valores de la función del gradiente son muy pequeños o casi cero.
  • En la retropropagación en una red neuronal, confiamos en la regla de la cadena de la diferenciación para calcular los gradientes de cada peso (w). Sin embargo, cuando la retropropagación pasa a través de la función sigmoide, el gradiente en esta cadena puede volverse extremadamente pequeño. Además, si esto ocurre en varias capas con funciones sigmoidales, puede llevar a que el peso (w) tenga un impacto mínimo en la función de pérdida. Esta situación no es favorable para la optimización del peso y comúnmente se llama “saturación del gradiente” o “desvanecimiento del gradiente”.
  • Considera una capa…

2. La función de salida no se centra en 0, lo cual puede reducir la eficiencia de la actualización del peso.

3. La función sigmoide involucra operaciones exponenciales, lo cual puede ser computacionalmente más lento para las computadoras.

Ventajas y desventajas de la función sigmoide

Función Tanh

La fórmula y la curva de la función tanh son las siguientes,

Tanh, que significa tangente hiperbólica, es una función de activación estrechamente relacionada con la función sigmoide. Si bien las curvas de la función tanh y la función sigmoide comparten similitudes, hay diferencias destacables. Veámoslas.

Una característica común es que ambas funciones producen salidas casi suaves con gradientes pequeños cuando los valores de entrada son muy grandes o muy pequeños. Esto puede plantear desafíos para actualizaciones eficientes de peso durante el entrenamiento. Sin embargo, la distinción clave radica en sus intervalos de salida.

El intervalo de salida de tanh va de -1 a 1, y toda la función está centrada en cero, lo que la distingue de la función sigmoide.

En muchos escenarios, la función tanh encuentra su lugar en las capas ocultas de las redes neuronales. En contraste, la función sigmoide se emplea a menudo en la capa de salida, especialmente en tareas de clasificación binaria. Sin embargo, estas elecciones no son definitivas y deben adaptarse al problema específico o determinarse mediante experimentación y ajuste.

Ventajas y desventajas de la función tanh

Función ReLU

La fórmula y la curva de la función ReLU son las siguientes,

La función ReLU, abreviatura de Rectified Linear Unit, es una función de activación relativamente reciente y altamente influyente en el aprendizaje profundo. A diferencia de otras funciones de activación, ReLU es notablemente directa. Simplemente devuelve el valor máximo entre cero y su entrada. Aunque ReLU carece de plena diferenciabilidad, podemos utilizar un enfoque de subgradiente para manejar su derivada, como se ilustra en la figura anterior.

ReLU ha ganado popularidad en los últimos años, y con razón. Se destaca en comparación con funciones de activación tradicionales como la sigmoidal y la tangente hiperbólica.

Ventajas y Desventajas de la Función ReLU

Función Leaky ReLU

La fórmula y la curva de la función Leaky ReLU son las siguientes,

Para abordar el “Problema de la ReLU Muerta”, los investigadores han propuesto varias soluciones. Un enfoque intuitivo es establecer la mitad inicial de ReLU en un pequeño valor positivo como 0.01x en lugar de un estricto 0. Otro método, la ReLU Paramétrica, introduce un parámetro aprendible, alpha. La función de ReLU Paramétrica es f(x) = max(alpha * x, x). A través de la retropropagación, la red puede determinar el valor óptimo de alpha. (Para seleccionar un valor de alpha, elija el valor más pequeño).

En teoría, la función Leaky ReLU ofrece todas las ventajas de ReLU mientras elimina los problemas asociados con la “ReLU Muerta”. La Leaky ReLU permite un gradiente pequeño y no nulo para entradas negativas, evitando que las neuronas se vuelvan inactivas. Sin embargo, si la Leaky ReLU siempre supera a ReLU depende del problema específico y la arquitectura. No hay una respuesta única y la elección entre ReLU y sus variantes a menudo requiere pruebas empíricas y ajustes.

Estas variaciones de la función ReLU demuestran la búsqueda continua para mejorar el rendimiento y la robustez de las redes neuronales, adaptándose a una amplia gama de aplicaciones y desafíos en el aprendizaje profundo.

Ventajas y Desventajas de la Función Leaky ReLU

Función ELU (Exponential Linear Units)

La fórmula y la curva de la función ELU son las siguientes,

Es otra función de activación propuesta para abordar algunos de los desafíos planteados por ReLU.

Ventajas y Desventajas de la Función ELU

Entrenamiento de Redes Neuronales con Funciones de Activación

La elección de las funciones de activación en las redes neuronales impacta significativamente el proceso de entrenamiento. Las funciones de activación son cruciales para determinar cómo aprenden las redes neuronales y si pueden modelar eficazmente relaciones complejas dentro de los datos. Aquí, discutiremos cómo las funciones de activación influyen en el entrenamiento, abordaremos problemas como el desvanecimiento de los gradientes y cómo ciertas funciones de activación mitigan estos desafíos.

Impacto de las Funciones de Activación en el Entrenamiento:

  • Las funciones de activación determinan cómo las neuronas transforman las señales de entrada en activaciones de salida durante la propagación hacia adelante.
  • Durante la retropropagación, los gradientes calculados para cada capa dependen de la derivada de la función de activación.
  • La elección de la función de activación afecta la velocidad de entrenamiento global, la estabilidad y la convergencia de las redes neuronales.

Desvanecimiento de los Gradientes:

  • El desvanecimiento de los gradientes ocurre cuando las derivadas de las funciones de activación se vuelven extremadamente pequeñas, lo que provoca una convergencia lenta o estancamiento en el entrenamiento.
  • Las funciones de activación sigmoide y tangente hiperbólica son conocidas por causar desvanecimiento de los gradientes, especialmente en redes profundas.

Atenuar el Problema del Desvanecimiento de los Gradientes:

  • La Rectified Linear Unit (ReLU) y sus variantes, como Leaky ReLU, abordan el problema del desvanecimiento de los gradientes al proporcionar un gradiente no nulo para entradas positivas.
  • Las funciones ReLU resultan en una convergencia más rápida debido a la falta de desvanecimiento de los gradientes cuando las entradas son positivas.

Papel de las funciones de activación centradas en cero:

  • Las funciones de activación como ELU, que ofrecen una salida centrada en cero, ayudan a mitigar el problema del gradiente desvaneciente al proporcionar tanto gradientes positivos como negativos.
  • Las funciones centradas en cero contribuyen a actualizaciones de peso estables y optimización durante el entrenamiento.

Elección adaptativa de la función de activación:

  • La elección de la función de activación debe estar alineada con la arquitectura de la red y los requisitos específicos del problema.
  • Es esencial probar empíricamente diferentes funciones de activación para determinar la más adecuada para una tarea dada.

Ejemplos prácticos

Utilizando TensorFlow y Keras

import tensorflow as tffrom tensorflow.keras.layers import Densefrom tensorflow.keras.models import Sequential# Datos de ejemplox = [[-1.0, 0.0, 1.0], [-2.0, 2.0, 3.0]]# Activación sigmoidemodel_sigmoid = Sequential([Dense(3, activation='sigmoid', input_shape=(3,))])output_sigmoid = model_sigmoid.predict(x)# Activación tanhmodel_tanh = Sequential([Dense(3, activation='tanh', input_shape=(3,))])output_tanh = model_tanh.predict(x)# Activación ReLUmodel_relu = Sequential([Dense(3, activation='relu', input_shape=(3,))])output_relu = model_relu.predict(x)# Activación Leaky ReLUmodel_leaky_relu = Sequential([Dense(3, activation=tf.nn.leaky_relu, input_shape=(3,))])output_leaky_relu = model_leaky_relu.predict(x)# Activación ELUmodel_elu = Sequential([Dense(3, activation='elu', input_shape=(3,))])output_elu = model_elu.predict(x)print("Salida Sigmoid:\n", output_sigmoid)print("Salida Tanh:\n", output_tanh)print("Salida ReLU:\n", output_relu)print("Salida Leaky ReLU:\n", output_leaky_relu)print("Salida ELU:\n", output_elu)# importar csv

Utilizando PyTorch

import torchimport torch.nn as nn# Datos de ejemplox = torch.tensor([[-1.0, 0.0, 1.0], [-2.0, 2.0, 3.0]], dtype=torch.float32)# Activación sigmoidsigmoid = nn.Sigmoid()output_sigmoid = sigmoid(x)# Activación tanhtanh = nn.Tanh()output_tanh = tanh(x)# Activación ReLUrelu = nn.ReLU()output_relu = relu(x)# Activación Leaky ReLUleaky_relu = nn.LeakyReLU(negative_slope=0.01)output_leaky_relu = leaky_relu(x)# Activación ELUelu = nn.ELU()output_elu = elu(x)print("Salida Sigmoid:\n", output_sigmoid)print("Salida Tanh:\n", output_tanh)print("Salida ReLU:\n", output_relu)print("Salida Leaky ReLU:\n", output_leaky_relu)print("Salida ELU:\n", output_elu)

Aquí están las salidas para los ejemplos de código proporcionados utilizando diferentes funciones de activación:

Salida Sigmoid:

Salida Sigmoid: [[0.26894143  0.5        0.7310586 ] [ 0.11920292  0.8807971  0.95257413]]

Salida Tanh:

Salida Tanh: [[-0.7615942  0.         0.7615942] [-0.9640276   0.9640276  0.9950547]]

Salida ReLU:

Salida ReLU: [[0. 2. 3.] [ 0. 2. 3.]]

Salida Leaky ReLU:

Salida Leaky ReLU: [[-0.01  0.    1.  ] [-0.02   2.    3.  ]]

Salida ELU:

Salida ELU: [[-0.63212055   0.   1. ] [-1.2642411     2.   3. ]]

Conclusión

Las funciones de activación son el corazón de las redes neuronales, dictando cómo estos sistemas computacionales procesan la información. Desde el clásico Sigmoid y Tanh hasta la eficiencia de ReLU y sus variantes, hemos explorado su papel en la formación del comportamiento de las redes neuronales. Cada función ofrece fortalezas y debilidades únicas, y la elección correcta depende de la naturaleza de tus datos y el problema específico que estés abordando. Con conocimientos prácticos de implementación, ahora estás equipado para tomar decisiones informadas, aprovechando estas funciones para optimizar el rendimiento de tu red neuronal y desbloquear el potencial del aprendizaje profundo en tus proyectos.

Puntos clave:

  • Las funciones de activación son fundamentales en las redes neuronales, transformando las señales de entrada y permitiendo el aprendizaje de relaciones de datos complejas.
  • Las funciones de activación comunes incluyen Sigmoid, Tanh, ReLU, Leaky ReLU y ELU, cada una con características y casos de uso únicos.
  • Comprender las ventajas y desventajas de las funciones de activación ayuda a seleccionar la más adecuada para tareas específicas de la red neuronal.
  • Las funciones de activación son fundamentales para solucionar problemas de gradiente, como la desaparición del gradiente, durante la retropropagación.

Preguntas frecuentes (FAQs)

Los medios mostrados en este artículo no son propiedad de Analytics Vidhya y se utilizan bajo la discreción del autor.

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

Desde el Internet de las Cosas hasta el Internet de Todo La Convergencia de la IA y el 6G para una Inteligencia Conectada

Aprende cómo las tecnologías de vanguardia como la Inteligencia Artificial y el 6G inaugurarán una nueva era de siste...

Inteligencia Artificial

Synapse CoR ChatGPT con un Giro Revolucionario

Conoce sobre un nuevo indicador de sistema que utilizarás junto con instrucciones personalizadas, convirtiendo ChatGP...

Inteligencia Artificial

Construyendo un Agente Conversacional con un Microservicio de Memoria con OpenAI y FastAPI

Desbloqueando Posibilidades Desarrolla Agentes Potenciados por IA con Python para Experiencias Personalizadas. Aprend...