2.16 - Práctica 5: detección de partículas con Redes Neuronales

Lección 16 de la sección “Redes Neuronales” del curso Fundamentos de Deep Learning con Python.

Introducción

En la lección anterior hablamos del entrenamiento de una Red Neuronal, y con esto tenemos todos los elementos necesarios para implementar nuestra primera Red Neuronal en Python haciendo uso de la librería Keras.

Así que en esta práctica veremos cómo implementar una Red Neuronal capaz de clasificar diferentes tipos de partículas sub-atómicas.

Contenido exclusivo suscriptores

Suscríbete y accede al set de datos, código fuente y video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

El problema a resolver

Los físicos usan aceleradores de partículas, como el Gran Colisionador de Hadrones para descubrir nuevas partículas subatómicas.

La detección de estas partículas usualmente es un problema de clasificación, para determinar si el dato observado corresponde a la señal de interés o al ruido de fondo.

La idea es desarrollar un modelo de Deep Learning capaz de realizar esta clasificación.

El set de datos

El set de datos fue desarrollado por investigadores del Departamento de Física y Astronomía de la Universidad de California Irvine.

En total contiene 11 millones de datos, cada uno representado por 28 características (features). Cada dato está etiquetado en una de dos posibles características:

Teniendo en cuenta el elevado número de datos que contiene este set, para esta práctica se trabajará con una versión reducida del mismo que contiene un total de 100.000 datos.

Lectura del set de datos

La lectura la realizamos usando el módulo drive de Google Colab junto con la librería Pandas.

Creación y entrenamiento del modelo

Usando los módulos Sequential y Dense de Keras, crearemos nuestra Red Neuronal que contendrá 28 neuronas en la capa de entrada, 15 en la capa oculta y 1 en la capa de salida.

Usaremos Adam como algoritmo de optimización, así como el método compile de Keras para definir la pérdida a usar (entropía cruzada) y la métrica de desempeño (accuracy).

Finalmente, para el entrenamiento haremos uso del método fit.

Desempeño del modelo entrenado y sugerencias adicionales

Al entrenar el modelo podemos ver que alcanza una exactitud cercana al 70% al momento de la clasificación.

Sin embargo, se sugiere intentar mejorar este desempeño intentanto modificar diferentes hiperparámetros del modelo y de su entrenamiento (como el número de capas ocultas y/o el número de neuronas por capa, así como el tamaño del lote y el número de epochs).

Contenido exclusivo suscriptores

Recuerda suscribirte para acceder al set de datos, código fuente y video con la explicación detallada de esta lección. Además podrás disfrutar de todos los cursos de la Academia Online

Conclusión

A pesar de que hemos logrado entrenar una Red Neuronal con un desempeño aceptable, quedan algunas preguntas de fondo por responder. Por ejemplo: ¿cómo saber si el modelo entrenado funcionará bien con nuevos datos, diferentes a los de entrenamiento? o ¿cómo contar con una estrategia más confiable para estimar adecuadamente los hiperparámetros del modelo?

Las respuestas a estas preguntas las tendremos en las próximas lecciones, comenzando con los sets de entrenamiento, prueba y validación de los cuales hablaremos en detalle en la próxima lección.

Ver todas las lecciones de este curso