API para entrenamiento de redes neuronales profundas evolucionadas a través de algoritmos genéticos

Resumen

Los algoritmos de clasificación supervisada resuelven un tipo de problemas específicos donde se cuenta con una serie de datos previamente clasificados. Para poder decidir la clase de una muestra, se tiene en cuenta toda la información que se pueda extraer del conjunto de datos inicial, cuya clase es conocida por el clasificador.

En este trabajo se implementa una aplicación web, que permite al usuario interactuar a través de una API (Application Programming Interface), capaz de entrenar y aproximar muy bien un óptimo global de una red neuronal profunda mediante algoritmos genéticos, con las funcionalidades de entrenamiento, evaluación y clasificación.

Tecnologías

La aplicación es construida sobre una arquitectura de tres capas, contando con una interfaz web diseñada en ReactJS, que permitirá al usuario interactuar con las funcionalidades del software de clasificación.

Se aborda el diseño del Core utilizando técnicas de clasificación supervisada bajo entrenamiento de redes neuronales profundas, optimizándolas a través de backpropagation y evolucionándolas con algoritmos genéticos. La API es construida en Python con Flask a nivel de Controlador y PyTorch y DEAP como frameworks en el Core. Este último será el responsable de entrenar la red neuronal y hacerla evolucionar hasta lograr una aproximación muy cercana al óptimo global (Castillo Valdivieso et al., 2000).

El uso de metaheurísticas permite a la red modificar sus pesos y crecer o reducir, tanto en número de nodos como de capas de manera dinámica, en función de lo que ella misma considere necesaria para su propio entrenamiento.

Keywords

servicios web, react framework, redes neuronales, algoritmos genéticos, algoritmos evolutivos, problemas de optimización, aprendizaje automático, minería de datos.

Redes Neuronales Artificiales

En el estudio de Alonso Romero (s. f.), se define una Red Neuronal Artificial (RNA) como un grafo dirigido, cuyos nodos se llaman elementos de proceso (EP), que pueden tener cualquier número de conexiones y memoria local, y poseen una función de transferencia que -en función de las señales de entrada y la información de su memoria local- producen una señal de salida o altera su propia información local. Estos enlaces se llaman conexiones y funcionan como caminos unidireccionales instantáneos.

Podemos afirmar que una Red Neuronal Artificial es una estructura que permite aprender de la información que se le proporciona, generando una respuesta acorde al contexto que busca resolver.

Algoritmos genéticos

La metaheurística que se conoce como Algoritmos Genéticos (AG), son métodos utilizados para búsqueda y optimización que, simulando la evolución natural de los seres vivos, parten de poblaciones para evolucionar, reproduciéndose y mutando bajo ciertas condiciones, siguiendo la teoría de Darwin. Tal y como sugiere Calegari (2002), es una herramienta de mucha utilidad de cara a atacar problemas de tipo NP-completos, puesto que ofrecen soluciones flexibles a problemas complejos.