Artículos originales
Clasificador de estrellas de Neutrones con una red neuronal multicapa utilizando R
Neutron star classifier with a multilayer neural network using R
Clasificador de estrellas de Neutrones con una red neuronal multicapa utilizando R
Innovación y Software, vol. 2, núm. 1, pp. 33-42, 2021
Universidad La Salle

Recepción: 02 Noviembre 2020
Aprobación: 22 Enero 2021
Publicación: 30 Marzo 2021
Resumen: En este trabajo lo que se realizará es analizar el ejercicio “Clasificador de estrellas de Neutrones” para ello lo primero se expondrá una breve introducción de nuestro ejercicio planteado seguidamente realizaremos los conceptos básicos de un red neuronal ya que es el escogido para la resolución del presente ejercicio, pero este está clasificado por redes neuronales artificiales según la topología red y redes según el método de aprendizaje, donde se ha visto por conveniente realizarlo con la red neuronal multicapa – perceptrón multicapa, después se tendrá la limpieza de datos, transformación de casos, selección de casos, selección de un lenguaje de datos así mismo los paquetes, librerías framework que se utilizará, para seguidamente realizar la ejecución de la técnica de entrenamiento, modelo entrenado fase de comprobación , análisis de los resultados y análisis del cliente; finalmente llegar a las conclusiones.
Palabras clave: estrellas, multicapa, neuronas, perceptrón, red.
Abstract: In this work what will be done is to analyze the exercise "Neutron star classifier" for this, the first thing will be presented a brief introduction of our proposed exercise, then we will carry out the basic concepts of a neural network since it is the one chosen for the resolution of this exercise, but this is classified by artificial neural networks according to the network topology and networks according to the learning method, where it has been seen to be convenient to do it with the multilayer neural network - multilayer perceptron, then you will have the data cleaning, transformation of cases, selection of cases, selection of a data language as well as the packages, framework libraries that will be used, to then carry out the execution of the training technique, trained model, verification phase, analysis of the results and analysis of the client; finally come to conclusions.
Keywords: multilayer, neurons, network, perceptron, stars..
Introducción
Un púlsar del acrónimo en inglés de pulsating star (estrella que emite radiación muy intensa a intervalos cortos y regulares) es una estrella de neutrones que emite radiación periódica. Los púlsares poseen un intenso campo magnético que induce la emisión de estos pulsos de radiación electromagnética a intervalos regulares relacionados con el periodo de rotación del objeto. Las estrellas de neutrones pueden girar sobre sí mismas hasta varios cientos de veces por segundo; un punto de su superficie puede estar moviéndose a velocidades de hasta 70 000 km/s. Se pretende realizar un software que incluirá en el próximo telescopio que lance al espacio con el objetivo de identificar a las estrellas de neutrones de este tipo. Para esto cuenta con una base de datos histórica de 17 898 observaciones de estrellas en las que se clasifican en pulsares o no. En dicha base de datos se tiene como atributos de cada observación:
Promedio de la radiación emitida.
Desviación estándar de la radiación emitida.
Índice de expansión de su masa.
Índice del aumento de la radiación emitida.
Promedio de la velocidad de rotación.
Desviación estándar de la velocidad de rotación.
Índice de ruido que posee la emisión de radio frecuencia.
Fuerza centrífuga generada durante la rotación.
Materiales y métodos o Metodología computacional
Redes Neuronales Artificiales
Como lo menciona [1], las redes neuronales artificiales han recibido un interés particular como una tecnología para minería de datos, puesto que ofrece los medios para modelar de manera efectiva y eficiente problemas grandes y complejos. Son modelos computacionales inspirados en las neuronas biológicas, y que están conformadas por un conjunto de unidades de cómputo básico (neuronas) las cuales están conectadas entre ellas de múltiples maneras. Estas conexiones estarán definidas por unos pesos los cuales determinarán la fuerza o importancia de dichas conexiones, y durante el proceso de aprendizaje o entrenamiento de la red, serán estos pesos los que se ajustarán con el fin de producir la salida adecuada según la entrada que se aplique a la red.
Estructura de los modelos de redes neuronales: Las unidades de procesamiento se organizan en capas. Hay tres partes normalmente en una red neuronal: una capa de entrada, con unidades que representan los campos de entrada; una o varias capas ocultas; y una capa de salida, con una unidad o unidades que representa el campo o los campos de destino. Las unidades se conectan con fuerzas de conexión variables (o ponderaciones). Los datos de entrada se presentan en la primera capa, y los valores se propagan desde cada neurona hasta cada neurona de la capa siguiente. al final, se envía un resultado desde la capa de salida [2].

Clasificación de redes neuronales artificiales según la topología red: Existen varios como lo menciona [3] en este caso solo se nombrarán a algunos:
Red neuronal Monocapa-Perceptrón simple: Esto corresponde a una red neuronal más simple, está compuesta por una capa de neuronas que proyectan las entradas a una capa de neuronas de salida donde se realizan los diferentes cálculos.

Red neuronal Multicapa- Perceptrón multicapa: Es una generalización de la red neuronal monocapa, la diferencia reside en que mientras la red neuronal monocapa está compuesta por una capa de neuronas de entrada y una capa de neuronas de salida, esta dispone de un conjunto de capas intermedias (capas ocultas) entre la capa de entrada y la de salida. Dependiendo del número de conexiones que presente la red esta puede estar total o parcialmente conectada.

Red neuronal recurrente: No tienen una estructura de capas, sino que permiten conexiones arbitrarias entre las neuronas, incluso pudiendo crear ciclos, con esto se consigue crear la temporalidad, permitiendo que la red tenga memoria.

Clasificación de redes según el método de aprendizaje: Existen varios como lo menciona [4] pero en este caso solo se mencionarán algunos:
Aprendizaje por corrección de error: Consiste en ajustar los pesos de las conexiones de la red en función de la diferencia entre los valores deseados y los obtenidos en la salida. Ejemplos de algoritmos:
Perceptrón
Delta o Mínimo error cuadrado (LMS Error: Least Mean Squared)
Backpropagation o Programación hacia atrás (LMS multicapa)
Aprendizaje estocástico: Consiste básicamente en realizar cambios aleatorios en los valores de los pesos y evaluar su efecto a partir del objetivo deseado y de distribuciones de probabilidad. Una red que utiliza este tipo de aprendizaje es la red Boltzman Machine, ideada por Hinton, Ackley y Sejnowski en 1984 y la red Cauchy Machine desarrollada por Szu en 1986 [4].
Resultados y discusión
Se utilizó como lenguaje de programación R a través del entorno de desarrollo como RStudio [5] o RStudioCloud [6]. Lo primero que se realizara es cargar el dataset con el siguiente comando:

El proceso de limpieza de datos permite identificar datos incompletos, incorrectos, inexactos, no pertinentes, etc. y luego substituir, modificar o eliminar estos datos sucios. Después de haber realizado el ingreso de datos se prosigue a analizar que las variables de entrada influyen en el resultado final, las imágenes analizadas son:








Entonces se puede decir que las variables de entrada si influyen en el resultado final. No se cuenta con ninguna columna vacía ni fila vacía, tampoco se tiene que sustituir ninguna columna ya que todas son influyentes en el resultado final, para ello se comprueba que todas las columnas están totalmente llenas. A continuación, se muestran los datos estadísticos de cada una nuestras variables de entrada.
Una vez preparados los datos se procedió a utilizar la red neuronal artificial, para esto fue necesario descargar el paquete “h2o” [7], el cual es una librería de análisis predictivo y machine learning que incorpora la funcionalidad para crear RNA así como modelos de deep learning. Ahora podemos hacer uso de nuestro objeto clasificador mediante la función h2o.deeplearning.

En esta función el parámetro activation hace referencia a la función de activación que utilizará cada una de las neuronas que en este caso es Rectifier (rectificador). Mientras que hidden hace referencia a la cantidad de capas ocultas, así como neuronas en cada capa de ellas, en este caso se usaron dos capas ocultas con 7 neuronas en cada una de ellas. Por último, epoch hace referencia a la cantidad de veces que se le pasaran los datos de entrenamiento a fin de aplicar el algoritmo de aprendizaje.

Una vez finalizado el entrenamiento, podemos realizar predicciones sobre el conjunto de validación de la siguiente manera:

Obteniendo así una matriz que nos indicará cuantos datos han sido predichos de manera correcta, dándonos las respuestas obtenidas vs las respuestas operadas, en este caso se obtuvieron 4388 respuestas correctas y 87 respuestas erradas, teniendo así un modelo que tiene una efectividad del 98.017%.

Conclusiones
Después de desarrollar la investigación y la experimentación de este caso de estudio se llegó a las siguientes conclusiones:
Las redes neuronales multicapa son muy útiles para problemas de clasificación.
El lenguaje de programación R cuenta con muchas librerías muy útiles para el procesamiento de datos.
Todas las variables de entrada influyen en la decisión de clasificar una estrella en pulsar o no, por ende, no pueden ser eliminadas.
La efectividad obtenida con una red neural con una sola neurona en la capa oculta es mejor que con dos neuronas.
El error menor lo presenta la red neuronal con una sola neurona en la capa oculta.
La red neuronal falla más con al momento de clasificar a las que si son pulsares.
Referencias
[1] C. C. Aggarwal, “Neural networks and deep learning,” Springer, vol. 10, pp. 978–3, 2018.
[2] J. Schmidhuber, “Deep learning in neural networks: An overview,” Neural networks, vol. 61, pp. 85–117, 2015.
[3] V. Kreinovich, “From traditional neural networks to deep learning: towards mathematical foundations of empirical successes,” in Recent Developments and the New Direction in Soft-Computing Foundations and Applications, Springer, 2021, pp. 387–397.
[4] S. R. Young, D. C. Rose, T. P. Karnowski, S.-H. Lim, and R. M. Patton, “Optimizing deep learning hyper-parameters through an evolutionary algorithm,” in Proceedings of the Workshop on Machine Learning in High-Performance Computing Environments, 2015, pp. 1–5.
[5] J. Allaire, “RStudio: integrated development environment for R,” Boston, MA, vol. 770, p. 394, 2012.
[6] J. M. Elias, “Webinar sobre la docencia en línea con RStudio Cloud,” IDP: revista d’Internet, dret i política, no. 31, 2020.
[7] S. Aiello, E. Eckstrand, A. Fu, M. Landry, and P. Aboyoun, “Machine Learning with R and H2O,” H2O booklet, vol. 550, 2016.
Notas de autor
laliagam@unsa.edu.pe
Información adicional
Tipo de artículo: Artículos originales
Temática: Inteligencia Artificial
Enlace alternativo
https://revistas.ulasalle.edu.pe/innosoft/article/view/36 (html)
https://revistas.ulasalle.edu.pe/innosoft/article/view/36/32 (html)
https://revistas.ulasalle.edu.pe/innosoft/article/view/36/31 (pdf)