14 de abril de 2020

Tipos de neuronas en redes profundas

Hola,
en esta segunda entrada sobre redes profundas hablaré sobre las neuronas.

En este contexto, una neurona es una función de activación que recibe información (input) de otras neuronas y emite una salida que significa si se activa o no.

El primer modelo de neurona es el perceptrón de Frank Rosenblatt, que agrega sus entradas por medio de una suma ponderada y se activa si el total supera un cierto umbral. El siguiente ejemplo muestra un perceptrón con tres entradas binarias con pesos 3, 2 y 6 y umbral de activación 4:

Figura 6.5 de Krohn J (2019) Deep Learning Illustrated
Esta función de activación z podemos expresarla así, siendo b = -umbral (usando https://www.codecogs.com/latex/eqneditor.php):



Si la representamos gráficamente veremos que la activación de 0 a 1 es abrupta y por tanto parece el margen para cambiar los valores de los pesos (w) es muy pequeño:

Figura 6.8 de Krohn J (2019) Deep Learning Illustrated
Por esta razón se utilizan otros tipos de neuronas donde la función de activación es gradual.

La activación sigmoidea es:


donde



Esta activación tiene como ventajas que pequeños cambios en los parámetros w y b producen cambios graduales de z :
Figura 6.9 de Krohn J (2019) Deep Learning Illustrated
Valores extremos producen valores de z de 0 o de 1, como puedes comprobar en el siguiente cuaderno: https://github.com/the-deep-learners/deep-learning-illustrated/blob/master/notebooks/sigmoid_function.ipynb

Otra función de activación frecuente es la tangente hiperbólica (tanh), que produce valores de activación entre 1 y -1 y centrados en el 0, y se expresar así:



Finalmente tenemos la neurona ReLU, que representa el mejor compromiso entre tiempo de entrenamiento y capacidad de aprendizaje:




Figura 6.11 de Krohn J (2019) Deep Learning Illustrated

La elección del tipo de neurona es importante porque determina la capacidad de aprender de la red. En este contexto aprender equivale a determinar los pesos (w) y los umbrales (b) para obtener un  output esperado.

Hasta pronto,
Bruno

Siguiente entrada: Capas de una red neuronal

2 comentarios: