Red neuronal feed-forward con ejemplo (serie de redes neuronales) — Parte 2

May 10 2022
Este artículo se basará en la parte anterior de esta serie. Cubriremos las redes neuronales Feed-Forward (FF-NN), centrando la discusión en los cálculos realizados por NN.

Este artículo se basará en la parte anterior de esta serie. Cubriremos las redes neuronales Feed-Forward (FF-NN), centrando la discusión en los cálculos realizados por NN.

Parte anterior de la serie: Los fundamentos de las redes neuronales (Serie de redes neuronales) — Parte 1

Diseño de redes neuronales (resumen)

Red neuronal es un sistema compuesto por muchas neuronas apiladas en capas. La primera capa, la capa de entrada (la llamaremos capa 0) no realiza ningún cálculo excepto para pasar los valores de entrada. Por esta razón, al contar el número de capas en un NN, ignoramos la capa de entrada. La figura 1 a continuación, por lo tanto, es una red de 2 capas.

La capa de salida calcula la salida final de la red. Las capas entre la entrada y la capa de salida se denominan capas ocultas. El NN en la Figura 1 a continuación se describe como una red 3–4–1 para 3 unidades en la capa de entrada, 4 unidades en la capa de entrada y salida de un valor.

El número de capas en una NN determina la profundidad de la red. En base a esto, las NN con muchas capas ocultas se denominan redes neuronales profundas (DNN).

El diseño de NN explicado por la cantidad de capas y neuronas en cada capa, a menudo se denomina Arquitectura de NN . Usamos estos términos (diseño NN y arquitectura NN) indistintamente en el futuro de la serie.

Figura 1: una red neuronal con 3 características de entrada, una capa oculta con 4 nodos cada una y salida de un valor. Los nodos están densamente conectados, cada nodo está conectado a todas las neuronas en la capa anterior inmediata. Cada conexión tiene pesos que expresan la fuerza de la conexión entre dos nodos cualesquiera (Fuente: Autor).

Red neuronal de avance (FF-NN)

La red de alimentación hacia adelante, también llamada paso hacia adelante, aproxima alguna función
y=f( x |θ) para los valores de entrada, x , y la salida conocida, y. La red aprende los parámetros en θ que mejor se aproximan a la función f para establecer un buen mapeo ŷ=f( x |θ). ŷ es una predicción del modelo. En NN, w , b ∈ θ, es decir, los parámetros que optimizamos durante el entrenamiento del modelo son2 pesos ( w ) y sesgos ( b ).

Característica clave de Feed-forward NN : la red feed-forward permite que la información fluya solo en una dirección (sin bucle de retroalimentación ni conexión).

Definición: Perceptrón multicapa (MLP)
MLP es un caso especial de Feed-forward NN. En MLP, todos los nodos están densamente conectados, es decir, cada neurona/nodo está conectado a todos los nodos de la capa inmediatamente anterior. De hecho, el NN en la Figura 1 es un perceptrón multicapa.

Red neuronal de avance (FF-NN): ejemplo

Esta sección mostrará cómo realizar el cálculo realizado por FF-NN. Los conceptos esenciales que se deben comprender en esta sección son las notaciones que describen diferentes parámetros y variables, y cómo se realiza el cálculo real. Usaremos la arquitectura de NN que se muestra en la Figura 1.

1. La Arquitectura y las Notaciones

Redibujemos la Figura 1 para mostrar las variables y parámetros esenciales de la NN. Tenga en cuenta que en esta figura (Figura 2 a continuación), se eliminan otras conexiones entre nodos solo para que la trama esté menos abarrotada; de lo contrario, este NN es un perceptrón multicapa (todos los nodos en dos capas adyacentes están interconectados).

Figura 2: Una red neuronal 3–4–1 con variables y parámetros que necesitamos para calcular la salida ŷ dados los valores de entrada (Fuente: autor).

donde:

  • x⁰ᵢ — valor de entrada iᵗʰ. Valor para la característica i en la capa de entrada (capa 0),
  • wˡⱼᵢ — El peso proviene de la neurona i en la capa l-1 a ​​la neurona j en la capa actual l,
  • fˡⱼ — Salida de la unidad j en la capa l. Esto se convierte en la entrada de las unidades en la siguiente capa, la capa l+1,
  • zˡⱼ — entrada ponderada para la neurona jᵗʰ en la capa l,
  • bˡⱼ — El sesgo en la neurona jᵗʰ de la capa l,
  • nˡ — Número de neuronas en la capa l,
  • f ˡ = gˡ(zˡⱼ+bˡⱼ) — gˡ es la función de activación en la capa l. Como siempre en la práctica, aplicaremos una función de activación a todas las neuronas en una capa dada, por lo tanto, no necesitamos especificar la función de activación para cada neurona, por lo tanto, no hay subíndice para g.
  • l — una capa dada. Para, l =0, 1, …, L. En nuestro caso, la red neuronal tiene 2 capas, por lo tanto, L=2 (recuerde que dijimos que no contamos la capa de entrada)
  • x⁰₂ — segundo valor de entrada,
  • w¹₄₃ — peso de la conexión de la neurona 3 en la capa 0 a la neurona 4 en la capa 1,
  • z¹₃ — entrada ponderada de la unidad 3 en la capa 1,
  • g¹(z¹₃) — aplicando la función de activación g¹ en z¹₃.
  • Número de unidades en cada capa: capa de entrada como 3 unidades (n⁰=3), la capa oculta tiene 4 unidades (n¹=4) y la última capa como una neurona (n²=1), y
  • b²₁ — sesgo sujeto a la neurona 1 en la capa 2 (capa de salida en nuestro caso).

Los datos que usaremos en este ejemplo contienen 3 características G1, G2 y G2 (esta es la razón por la que elegimos 3 neuronas en la capa de entrada de la arquitectura, por cierto) con un objetivo, pase (lo llamaremos y) que es 0 o 1 para fallar y aprobar, respectivamente. Esto significa que estamos tratando con un problema de clasificación binaria.

Los datos originales contienen 30 características y 395 filas (puntos de datos), pero usaremos las 3 características solo para mostrar los cálculos necesarios de manera eficiente. Nos ocuparemos de todo el conjunto de datos más adelante en la serie.

Nuevamente, para que los conceptos sean fáciles de entender, mostraremos cómo pasar un solo punto de datos (ejemplo de entrenamiento) a través de la red en un solo paso hacia adelante.

En nuestro ejemplo, consideraremos el ejemplo de entrenamiento en el índice 2 (Fuente: Autor).

3. Inicialización de parámetros

Inicializaremos los pesos aleatoriamente con valores entre 0 y 1, mientras que el sesgo siempre se inicializará con 0. Discutiremos más sobre esto más adelante en la serie, solo tenga en cuenta que los pesos se inicializan mejor en 0–1, pero no en cero. y el sesgo se mantiene mejor en 0 al principio.

4. Cálculos sobre las neuronas de la capa oculta

Para la primera neurona en la capa oculta, necesitamos calcular f¹₁, lo que significa que necesitamos valores iniciales para los tres pesos w¹₁₁, w¹₁₂ y w¹₁₃.

Vamos a inicializarlos de la siguiente manera: w¹₁₁=0,3, w¹₁₂=0,8 y w¹₁₃=0,62. Y como se dijo anteriormente, estableceremos el sesgo, b¹₁=0. Introduzcamos una función de activación llamada Unidad lineal rectificada (ReLU) que usaremos como función g¹ (esta es solo una elección arbitraria). Como se dijo anteriormente, discutiremos más sobre las funciones de activación más adelante, pero por ahora, solo podemos definir ReLU y usarlo.

Función de activación ReLU.

Por lo tanto,

Cálculos sobre la primera neurona de capa=1.

Puede proceder a calcular f¹₂, f¹₃ y f¹₄ de la misma manera, dado que

  • w¹₂₁=0,9, w¹₂₂=0,1, w¹₂₃=0,1 y b¹₂=0, para el cálculo de f¹₂,
  • w¹₃₁=0.7, w¹₃₂=0.2, w¹₃₃=0.4 y b¹₃=0, para el cálculo de f¹₃, y,
  • w¹₄₁=0,01, w¹₄₂=0,5, w¹₄₃=0,2 y b¹₄=0, para el cálculo de f¹₄.

5. Cálculos en la última capa

En la capa final, inicialicemos los parámetros (pesos) y sesgos: w²₁₁=0,58, w²₁₂=0,1, w²₁₃=0,1, w²₁₄=0,42 y b²₁=0.

Sobre la función de activación en esta capa: dado que estamos tratando con la clasificación binaria, podemos usar la función sigmoidea/logística porque esta función genera valores entre 0 y 1 y, por lo tanto, puede interpretarse como una probabilidad de predicción de una clase. La función sigmoidea se define como:

función sigmoidea

Por lo tanto,

Cálculos en la última capa de la red.

Dado que la salida de la capa final es generada por Sigmoid (varía de 0 a 1), el resultado puede interpretarse como una probabilidad. y²₀=0.999997502 significa que la probabilidad de pasar es casi uno. A partir de los datos, el valor real es 1, lo que significa que el Pase hacia adelante obtuvo la predicción correcta. No obstante esto es una mera coincidencia porque no se ha realizado ningún entrenamiento. Los pesos se generaron aleatoriamente y todos los valores de sesgo se establecieron en 0.

Espero que este artículo establezca una buena base para comprender los cálculos que ocurren dentro de una red neuronal. Es una acumulación del artículo anterior sobre la serie . El próximo artículo de esta serie saldrá el 16 de mayo de 2022.

Regístrese para obtener una membresía mediana a solo 5 $ por mes para poder leer todos mis artículos en medium y los de otros escritores.

También puede suscribirse para recibir mi artículo en su bandeja de entrada de correo electrónico cuando publique.

Gracias por leer, hasta la próxima!!!

© Copyright 2021 - 2022 | unogogo.com | All Rights Reserved