El objetivo general de este Trabajo Fin de Grado ha sido ampliar la funcionalidad de la aplicación Kafka-ML desarrollada por el Grupo de Investigación ERTIS, la cual gestiona y trabaja con redes neuronales. Concretamente, se ha dotado al sistema con la capacidad de trabajar con redes neuronales artificiales que son distribuidas, es decir, un conjunto de redes ordenadas que cooperan entre sí produciendo flujos de datos entre ellas.
El ciclo de uso de la aplicación consiste en: 1) el registro de redes neuronales distribuidas, pudiendo establecer todas sus características y modificarlas en cualquier momento; 2) creación de configuraciones para un conjunto de redes determinadas; 3) creación de despliegues para preparar una configuración concreta con ciertos parámetros junto con todas las redes neuronales que ésta engloba; 4) fase de entrenamiento de las redes desplegadas y obtención de las métricas del resultado; y por último, 5) la fase de inferencia en la que se obtienen los resultados de las predicciones de las redes neuronales.
El hecho de trabajar con redes neuronales que son distribuidas surge de la necesidad de obtener respuestas y resultados más rápidos en sistemas que así lo requieren, de manera que en vez de tener un dispositivo IoT que recopila información del entorno y la envía a la nube para que se procese, con todos los problemas de latencia y ancho de banda que puede haber de por medio, se pretende que haya varios dispositivos IoT dotados de inteligencia y conectados entre sí (puede haber varios niveles de dispositivos, tales como Fog y Edge), que sean capaces de procesar la información que recolectan y de esta manera obtener predicciones de forma más rápida aunque puedan ser menos precisas.