19 de abril de 2020

Propagación en una red neuronal

Hola,
tras la reciente entrada sobre las capas de una red neuronal podemos ya aprender cómo se propaga la computación en la red, lo que la literatura se conoce como forward propagation. Para ello nada mejor que ver la red con salida binaria de la entrada anterior, con las neuronas numeradas:
Figura 7.2 de Krohn J (2019) Deep Learning Illustrated
Supongamos que las neuronas de input toman los siguientes valores reales, por ejemplo medidas físicas en un experimento:



Recordemos ahora que las neuronas de las capas ocultas son de tipo ReLU, que tienen la siguiente función de activación (alfa):



Ahora detallaré cómo calculamos las activaciones capa a capa, y por tanto, cómo se propaga la información en la red.

Empezaré por la neurona a1. Supongamos que sus dos pesos toman valores reales de -0.5 y 1.5 y su umbral de activación es 0.9:
z1 = -0.5 x 4.0 + 1.5 x 3.0 - 0.9  = -2 + 4.5 -  0.9 = 1.6
alfa1 = max(1.6 , 0) = 1.6

Sustituyendo los pesos y umbrales correspondientes, que son los valores que se optimizan en el periodo de entranamiento, podemos calcular de la misma manera la activación de a2 y a3. Así tendríamos ya la primera capa oculta completa y podríamos pasar a la siguiente, formada por las neuronas a4 y a5.

Finalmente llegamos a la neurona de output, que en la entrada anterior quedamos era de tipo sigmoidea. Ésta recibe las activaciones 2.5 y 2.0, con pesos respectivos de 1.0 y 0.5 y un umbral 5.5.

z(output) = 1.0 x 2.5 + 0.5 x 2.0 - 5.5 = -2.0

Ahora usaremos la función sigmoidea para calcular el estado (activación) de la neurona output:


En el contexto de un clasificador binario, para reconocer por ejemplo objetos de una cierta clase, la salida se interpreta como que la probabilidad de que la instancia (4.0, 3.0) sea de esa clase es 0.1192

Hasta pronto,
Bruno

Siguiente entrada: Entrenamiento de una red neuronal

No hay comentarios:

Publicar un comentario