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.
Tabla de contenido
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.
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:
- “1”: presencia de señal (posiblemente una partícula)
- “0”: ruido de fondo (no corresponde a una partícula)
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).
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.