En los ejercicios interactivos a continuación, explorarás más a fondo el funcionamiento interno de las redes neuronales. Primero, verás cómo los cambios en los parámetros e hiperparámetros afectan las predicciones de la red. Después, usarás lo aprendido para entrenar una red neuronal que se ajuste a datos no lineales.
Ejercicio 1
El siguiente widget configura una red neuronal con la siguiente configuración:
- Capa de entrada con 3 neuronas que contienen los valores
0.00 , 0.00 y 0.00 - Capa oculta con 4 neuronas
- Capa de salida con 1 neurona
- Función de activación de ReLU aplicada a todos los nodos de la capa oculta y al nodo de salida
Revise la configuración inicial de la red (nota: no haga clic en los botones ▶️ o >| todavía) y luego complete las tareas debajo del widget.
Tarea 1
Los valores de las tres características de entrada del modelo de red neuronal son 0.00 . Haga clic en cada nodo de la red para ver todos los valores inicializados. Antes de pulsar el botón de reproducción ( ▶️ ), responda a esta pregunta:
¿Qué tipo de valor de salida cree usted que se producirá: positivo, negativo o 0?
Valor de salida positivo
Has seleccionado un valor de salida positivo . Sigue las instrucciones a continuación para realizar una inferencia con los datos de entrada y comprobar si has acertado.
Valor de salida negativo
Has seleccionado un valor de salida negativo . Sigue las instrucciones a continuación para realizar una inferencia con los datos de entrada y comprobar si estás en lo cierto.
Valor de salida de 0
Elegiste el valor de salida 0. Sigue las instrucciones a continuación para realizar una inferencia sobre los datos de entrada y comprobar si tienes razón.
Ahora haz clic en el botón Reproducir (▶️) sobre la red y observa cómo se completan todos los valores de la capa oculta y del nodo de salida. ¿Tu respuesta anterior fue correcta?
Haga clic aquí para obtener una explicación
El valor de salida exacto que se obtiene varía según cómo se inicialicen aleatoriamente los parámetros de ponderación y sesgo. Sin embargo, dado que cada neurona en la capa de entrada tiene un valor de 0, las ponderaciones utilizadas para calcular los valores de los nodos de la capa oculta se pondrán a cero. Por ejemplo, el primer cálculo del nodo de la capa oculta será:
y = ReLU(w 11 * 0,00 + w 21 * 0,00 + w 31 * 0,00 + b)
y = ReLU(b)
Por lo tanto, el valor de cada nodo de la capa oculta será igual al valor ReLU del sesgo (b), que será 0 si b es negativo y b mismo si b es 0 o positivo.
El valor del nodo de salida se calculará de la siguiente manera:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
Tarea 2
Antes de modificar la red neuronal, responda la siguiente pregunta:
Si agrega otra capa oculta a la red neuronal después de la primera capa oculta y le da a esta nueva capa 3 nodos, manteniendo todos los parámetros de entrada y peso/sesgo iguales, ¿qué otros cálculos de nodos se verán afectados?
Todos los nodos de la red, excepto los nodos de entrada
Seleccionaste todos los nodos de la red, excepto los de entrada . Sigue las instrucciones a continuación para actualizar la red neuronal y comprobar si es correcto.
Sólo los nodos en la primera capa oculta
Seleccionaste solo los nodos de la primera capa oculta . Sigue las instrucciones a continuación para actualizar la red neuronal y comprobar si es correcto.
Sólo el nodo de salida
Seleccionaste solo el nodo de salida . Sigue las instrucciones a continuación para actualizar la red neuronal y comprobar si es correcto.
Ahora modifique la red neuronal para agregar una nueva capa oculta con 3 nodos de la siguiente manera:
- Haga clic en el botón + a la izquierda del texto 1 capa oculta para agregar una nueva capa oculta antes de la capa de salida.
- Haga clic en el botón + encima de la nueva capa oculta dos veces para agregar 2 nodos más a la capa.
¿Fue correcta tu respuesta anterior?
Haga clic aquí para obtener una explicación
Solo cambia el nodo de salida. Dado que la inferencia en esta red neuronal es de tipo "feed-forward" (los cálculos avanzan de principio a fin), la adición de una nueva capa a la red solo afectará a los nodos posteriores a la nueva capa, no a los anteriores.
Tarea 3
Haga clic en el segundo nodo (desde arriba) de la primera capa oculta del gráfico de red. Antes de realizar cualquier cambio en la configuración de red, responda a la siguiente pregunta:
Si cambia el valor del peso w 12 (que se muestra debajo del primer nodo de entrada, x 1 ), ¿los cálculos de qué otros nodos podrían verse afectados para algunos valores de entrada?
Ninguno
Seleccionaste "ninguno" . Sigue las instrucciones a continuación para actualizar la red neuronal y comprobar si es correcto.
El segundo nodo de la primera capa oculta, todos los nodos de la segunda capa oculta y el nodo de salida.
Seleccionaste el segundo nodo de la primera capa oculta, todos los nodos de la segunda capa oculta y el nodo de salida . Sigue las instrucciones a continuación para actualizar la red neuronal y comprobar si es correcto.
Todos los nodos de la primera capa oculta, la segunda capa oculta y la capa de salida.
Seleccionaste todos los nodos de la primera capa oculta, la segunda capa oculta y la capa de salida . Sigue las instrucciones a continuación para actualizar la red neuronal y comprobar si es correcto.
Ahora, haga clic en el campo de texto para el peso w 12 (que se muestra debajo del primer nodo de entrada, x 1 ), cambie su valor a 5.00 y presione Enter. Observe las actualizaciones del gráfico.
¿Fue correcta tu respuesta? Ten cuidado al verificarla: si el valor de un nodo no cambia, ¿significa que el cálculo subyacente no cambió?
Haga clic aquí para obtener una explicación
El único nodo afectado en la primera capa oculta es el segundo nodo (en el que hizo clic). Los cálculos de los demás nodos de la primera capa oculta no contienen w 12 como parámetro, por lo que no se ven afectados. Todos los nodos de la segunda capa oculta se ven afectados, ya que sus cálculos dependen del valor del segundo nodo de la primera capa oculta. De igual forma, el valor del nodo de salida se ve afectado porque sus cálculos dependen de los valores de los nodos de la segunda capa oculta.
¿Pensaste que la respuesta era "ninguno" porque ninguno de los valores de los nodos de la red cambió al modificar el valor de ponderación? Ten en cuenta que un cálculo subyacente para un nodo puede cambiar sin cambiar su valor (p. ej., ReLU(0) y ReLU(–5) producen un resultado de 0). No supongas cómo se vio afectada la red simplemente observando los valores de los nodos; asegúrate de revisar también los cálculos.
Ejercicio 2
En los ejercicios de cruces de características del módulo Datos categóricos , construiste manualmente cruces de características para ajustar datos no lineales. Ahora, verás si puedes construir una red neuronal que aprenda automáticamente a ajustar datos no lineales durante el entrenamiento.
Su tarea: configurar una red neuronal que pueda separar los puntos naranjas de los puntos azules en el diagrama a continuación, logrando una pérdida de menos de 0,2 en los datos de entrenamiento y de prueba.
Instrucciones:
En el widget interactivo a continuación:
- Modifique los hiperparámetros de la red neuronal experimentando con algunas de las siguientes configuraciones:
- Agregue o elimine capas ocultas haciendo clic en los botones + y - a la izquierda del encabezado CAPAS OCULTAS en el diagrama de red.
- Agregue o elimine neuronas de una capa oculta haciendo clic en los botones + y - encima de una columna de capa oculta.
- Cambie la tasa de aprendizaje eligiendo un nuevo valor en el menú desplegable Tasa de aprendizaje sobre el diagrama.
- Cambie la función de activación eligiendo un nuevo valor en el menú desplegable Activación sobre el diagrama.
- Haga clic en el botón Reproducir (▶️) sobre el diagrama para entrenar el modelo de red neuronal utilizando los parámetros especificados.
- Observe la visualización del modelo que se ajusta a los datos a medida que avanza el entrenamiento, así como los valores de Pérdida de prueba y Pérdida de entrenamiento en la sección Salida .
- Si el modelo no logra una pérdida inferior a 0,2 en los datos de prueba y entrenamiento, haga clic en "Restablecer" y repita los pasos 1 a 3 con una configuración diferente. Repita este proceso hasta obtener los resultados deseados.
Haga clic aquí para ver nuestra solución
Logramos reducir la pérdida tanto en pruebas como en entrenamiento por debajo de 0,2 mediante:
- Añadiendo 1 capa oculta que contiene 3 neuronas.
- Elegir una tasa de aprendizaje de 0,01.
- Elección de una función de activación de ReLU.