ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

52
ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA UN SISTEMA DE POSICIONAMIENTO EN INTERIORES BASADO EN BLUETOOTH LOW ENERGY 12 de julio de 2019 Rafael Fajardo Monzón Gabriele Salvatore de Blasio, Alexis Quesada Arencibia Universidad de Las Palmas de Gran Canaria Grado en Ingeniería Informática

Transcript of ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Page 1: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

ESTUDIO Y ANÁLISIS DE ALGORITMOS YCLASIFICADORES PARA UN SISTEMA DE

POSICIONAMIENTO EN INTERIORES BASADOEN BLUETOOTH LOW ENERGY

12 de julio de 2019

Rafael Fajardo MonzónGabriele Salvatore de Blasio, Alexis Quesada Arencibia

Universidad de Las Palmas de Gran CanariaGrado en Ingeniería Informática

Page 2: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

2

Page 3: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Índice general

1. Resumen / Abstract 4

2. Introducción 52.1. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2. Aportaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.3. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.4. Planificación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

3. Justificación de las competencias específicas cubiertas 9

4. Posicionamiento en interiores 114.1. Bluetooth Low Energy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.2. Redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3. Procesos Gaussianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

5. Tecnologías usadas 175.1. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

5.1.1. TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.1.2. Keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.1.3. MatPlotLib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.1.4. Scikit-Learn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.2. Google Colab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.3. Pycharm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195.4. Overleaf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

6. Desarrollo 206.1. Escenario de pruebas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206.2. Diseño estructura robótica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

1

Page 4: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

2

6.3. Tratamiento de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246.4. Clasificación con redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . 276.5. Regresión con redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6.5.1. Regresión en una orientación . . . . . . . . . . . . . . . . . . . . . . 286.5.2. Regresión todas las orientaciones . . . . . . . . . . . . . . . . . . . . 31

6.6. Procesos Gaussianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7. Resultados 367.1. Clasificación con redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . 367.2. Regresión con redes neuronales . . . . . . . . . . . . . . . . . . . . . . . . . . 38

7.2.1. Regresión en una orientación . . . . . . . . . . . . . . . . . . . . . . 387.2.2. Regresión todas las orientaciones . . . . . . . . . . . . . . . . . . . . 39

7.3. Procesos Gaussianos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

8. Conclusiones 46

9. Trabajos futuros 48

Page 5: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 1

Resumen / Abstract

Los métodos de análisis de datos conocidos como “Machine Learning” y las redesneuronales (RN), han tenido un gran auge en las últimas décadas, aplicándose en unaamplia variedad de campos. En nuestro estudio proponemos su uso dentro del campo delos sistemas de posicionamiento en interiores (IPS) basados en Bluetooth Low Energy(BLE). Hemos aplicado diversas arquitecturas de clasificación y regresión, basadas en RNy además hemos realizado pruebas preliminares con “Procesos Gaussianos” (PG). Trasestablecer los distintos hiperparámetros (tanto el en las RN como los PG), hemos compa-rado los resultados obtenidos tras el entrenamiento, con diferentes técnicas y algoritmosque se están usando en la actualidad en los IPS, como por ejemplo el algoritmo WKNN(Weighted K-Nearest Neighbours).

Machine Learning and Neural Networks (NN) are some of the data analysis techniquesthat have risen in popularity in the last decades, being used in a wide variety of fields.In our study we propose its use in the scope of Interior Positioning System (IPS) basedin Bluetooth Low Energy (BLE). We have applied various classification and regressionarchitectures based in NN, and we have made introductory tests with Gaussian Processes(GP). After setting every hyperparameter (in both NN and GP), we have compared theresults obtained once the models were trained, with different techniques and algorithmswhich are being used nowadays in IPSs, such as WKNN (Weighted K-Nearest Neighbors).

4

Page 6: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 2

Introducción

En esta memoria se explicará la realización de un estudio de diferentes arquitecturasde redes neuronales, además de entrenamientos básicos de procesos gaussianos, para usaren un sistema de posicionamiento en interiores (IPS). En el caso de las redes se probaránmuchas combinaciones de hiperparámetros para encontrar la mejor arquitectura. Parapoder introducir los datos en cada modelo se han realizado varios scripts para procesarlos datos de maneras distintas dependiendo si el modelo es de clasificación o de regresión.Además se han usado técnicas para arreglar problemas de datos ausentes y se han prepara-do los programas de preprocesamiento para admitir nuevas campañas de datos. Tambiénse habla del diseño de la plataforma robótica en la que, en un futuro, se implementarápara realizar tomas de datos automáticos, y se retroalimentará de esas mismas tomas.

2.1. Objetivos

Los objetivos de este trabajo son estudiar y analizar la funcionalidad que pueda tenerel uso de redes neuronales (haciendo uso del framework Keras con base en Python) yprocesos gaussianos (con la librería Scikit-Learn, también en Python) en el campo delposicionamiento en interiores con Bluetooth Low Energy. Después se escogerá el clasifi-cador que consideremos más óptimo de los utilizados, el cual será implementado en unaestructura robótica que será diseñada para que realice movimientos automáticos en loscampos de pruebas, y así ayudar a automatizar las futuras campañas de tomas de datos.Para ello, en la mayoría de los modelos de procesos gaussianos y arquitecturas de redesneuronales que se han propuesto en este trabajo, se testearán las diferentes combinacio-nes de hiperparámetros que existen y se hará un examen más intensivo de los mejoresmodelos. Además se preparará el código de los diferentes programas para que su posible

5

Page 7: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

6

implementación en la plataforma robótica sea lo más sencillo posible.

2.2. Aportaciones

La contribución de este proyecto en el ámbito técnico-científico de los sistemas deposicionamiento en interiores se basa en analizar más opciones de modelos de redes neu-ronales y procesos gaussianos, que se usarán para calcular las coordenadas de los cuerposde un sistema, a partir de unos datos previamente usados con un algoritmo tipo WKNN.Sirve como base para futuros estudiantes o investigadores que deseen indagar más a fondoen el uso de estos algoritmos, o como referencia para comparar el uso de otras nuevastecnologías en los IPS.

2.3. Metodología

Este trabajo ha sido desarrollado a partir de los datos recopilados por el InsititutoUniversitario de Ciencias y Tecnologías Cibernéticas (IUCTC) en ficheros formato Excel.Es por esto que se ha hecho uso de la librería xlrd de Python capaz de leer este tipode ficheros sin necesidad de conversión, para facilitar así tanto el preprocesamiento dedatos, como las futuras pruebas que se deseen hacer con nuevas campañas de datos.Tras hacer este procesamiento de datos, se han utilizado las librerías Keras, para redesneuronales, y Scikit-Learn, para los procesos gaussianos de Machine Learning de Pythonpara realizar y ajustar los distintos modelos y arquitecturas dichos algoritmos. Finalmente,para visualizar los diferentes resultados obtenidos se ha usado la librería, también dePython, Matplotlib, con la que se han creado las gráficas que muestran los distintos erroresde cada modelo.

Page 8: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

7

2.4. Planificación

Figura 2.1: Planificación previa sacada del TFT-01

Planificación finalFases Duración

Estimada(horas)

Tareas(nombre y descripción, obligatorio al menos una por fase)

Estudio previo / Aná-lisis

30 Tarea 1.1: Estudio de diferentes algoritmosde clasificación y regresión.

Diseño / Desarrollo /Implementación

150Tarea 2.1: Diseño, implementación y entrena-miento de redes neuronales y procesos gaus-sianos.Tarea 2.2: Diseño de estructura robótica.

Evaluación / Valida-ción / Prueba

50 Tarea 3.1: Testeo de algoritmos con puntosaleatorios y comparativa con otros algorit-mos.

Documentación / Pre-sentación

60 Tarea 4.1: Memoria final con realización degráficas.

Los cambios más significativos de la planificación han sido la adición de los procesosgaussianos como algoritmos alternativo a las redes neuronales y la no implementación de

Page 9: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

8

estos modelos con la estructura robótica debido a problemas de materiales y retraso enla construcción de la misma.

Page 10: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 3

Justificación de las competenciasespecíficas cubiertas

CP04: Capacidad para conocer los fundamentos, paradigmas y técnicas propias de lossistemas inteligentes y analizar, diseñar y construir sistemas, servicios y aplicacionesinformáticas que utilicen dichas técnicas en cualquier ámbito de aplicación.

Se ha realizado un sistema basado en redes neuronales para calcular la posición deun receptor de señales Bluetooth Low Energy. Además se estudió el uso de procesosGaussianos, un tipo de algoritmo usado principalmente en regresiones, para el cálculo de laposición. En ambos estudios se han analizado como afectan los diferentes hiperparámetrosal resultado final de los distintos modelos mediante la comparativa de errores.

CP05: Capacidad para adquirir, obtener, formalizar y representar el conocimiento hu-mano en una forma computable para la resolución de problemas mediante un sistemainformático en cualquier ámbito de aplicación, particularmente los relacionados con as-pectos de computación, percepción y actuación en ambientes o entornos inteligentes.

Se han tenido que analizar los datos recolectados en el IUCTC y sacar las variables quenos interesaran para los modelos a usar. Además, el sistema construido se puede integraren un vehículo robótico para que se sitúe y circule por lugares cerrados en los que no tienecobertura GPS, y se podría usar como sustitutivo genérico del GPS en lugares interioreso subterráneos, donde no se pueda usar el mismo.

CP07: Capacidad para conocer y desarrollar técnicas de aprendizaje computacional ydiseñar e implementar aplicaciones y sistemas que las utilicen, incluyendo las dedicadasa extracción automática de información y conocimiento a partir de grandes volúmenes dedatos.

Para poder realizar los modelos, tanto de redes como de procesos Gaussianos, se ha

9

Page 11: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

10

necesitado hacer un preprocesamiento de los datos provistos por el IUCTC, solucionandoproblemas como los datos ausentes y el balanceado de clases, y realizando diferentesmetodologías para las modelos de clasificación y los de regresión.

Page 12: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 4

Posicionamiento en interiores

Los sistemas de posicionamiento en interiores (IPS, por sus siglas en inglés), sonsistemas de localización de objetos o personas en entornos interiores, donde la señal GPSes débil o inexistente. Está convirtiéndose en un tema de investigación importante debidoa su utilización en el internet de las cosas (IoT).

En la actualidad existen varios sistemas de posicionamiento en interiores, incluso anivel comercial, aunque la mayoría usan IEEE 802.11 (WiFi), lo que significa que no sonde baja potencia [1]. En la figura 4.1 podemos ver una comparación de los distintos tiposde sistemas de posicionamiento tanto en interior como en exterior, con su potencia y suprecisión.

Figura 4.1: Comparativa de tecnologías de posicionamiento (Fuente: [1]).

Como se puede observar en la figura 4.1, el sistema que menos potencia usa es elBluetooth Low Energy (a partir de ahora llamado BLE). Debido a ello, este protocolose está empezando a usar en dispositivos como los teléfonos móviles o las balizas BLE(dispositivo de pila de botón), y lo hace ideal para crear redes de dispositivos (para usaren un IPS, por ejemplo) en espacios que no tengan mucha superficie.

11

Page 13: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

12

4.1. Bluetooth Low Energy

El BLE (también llamado Bluetooth Smart) se introdujo en 2009, como una extensióndel Bluetooth 4.0 Classic, y fue diseñado para apoyar al IoT. Tanto el BLE como elBluetooth Classic operan en la banda de radio de 2.4 GHz, pero, mientras que el BluetoothClassic usa 79 canales de 1 MHz de ancho, el BLE, usa 40 de 2 MHz de ancho, de loscuáles 3 son canales de difusión principales. Estos 3 canales de difusión son el canal37, 38 y 39, que son de los que se disponían datos para este trabajo. Al emitir menosdatos, y a un rango menor que el Bluetooth Classic, el BLE tiene un consumo energéticoconsiderablemente menor, por lo que se puede usar para dispositivos móviles o para balizaspequeñas, como las usadas para la recopilación de datos de este trabajo [6] [7].

Figura 4.2: Bluetooth Low Energy

Las balizas BLE envían paquetes con ligeras diferencias de formato dependiendo delprotocolo que use y en este trabajo se dispone de datos del protocolo Eddystone (pro-piedad de Google) y el protocolo iBeacon (propiedad de Apple). Además tienen distintasmaneras de enviar estos paquetes, como la conexión individual o el envío tipo Advertising,que simplemente envía paquetes indiscriminadamente a todos los dispositivos que esténescuchando. Este último modo es el que se usa en mayor medida para los IPS, ya que sepuede elegir un intervalo de envío de mensajes para que la baliza envíe 6 paquetes (unopor canar y protocolo) por cada intervalo de tiempo.

Para este trabajo se escogieron los datos recogidos con el protocolo iBeacon en el canal37 y con un intervalo de emisión de 500 ms, ya que el parámetro de intervalo fue uno delos que mejor resultado ha dado en las investigaciones realizadas por de Blasio et al [8].

4.2. Redes neuronales

Las redes neuronales artificiales son un modelo computacional inspirado en el funcio-namiento de las neuronas biológicas. Una red está compuesta, generalmente, y como sepuede observar en varias arquitecturas de la figura 4.3, por una capa de entrada, unacapa de salida y una o más capas intermedias, llamadas ocultas. Cada una de estas capas

Page 14: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

13

tiene un número de neuronas escogido por el diseñador de la arquitectura, teniendo comoúnicas restricciones que el número de neuronas de la capa de entrada tiene que ser igualal número de dimensiones de los datos de entrada, y que la capa de salida tiene que tenertantas neuronas como outputs querramos para nuestro modelo.

Figura 4.3: Distintas arquitecturas de redes neuronales (Fuente: [3]).

Todos los valores que podamos modificar en la arquitectura de la red tienen el nombrede hiperparámetros, y hoy en día no existen reglas que puedan inferir que valores tenemosque escoger para que el rendimiento de nuestra red sea el óptimo. Algunos de estoshiperparámetros son: el número de capas ocultas, el número de neuronas por capa oculta,el learning rate, el optimizador, la función de coste o el tipo de capa oculta, entre otros.

Las redes neuronales usan como método de optimización el descenso del gradiente, enlugar de por ejemplo el método de los mínimos cuadrados ordinarios, ya que normalmenteel volumen de datos usado en el deep learning (algoritmos de aprendizaje automático,

Page 15: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

14

principalmente redes neuronales con varias capas) es bastante alto, y el descenso delgradiente permite dividir los datos a la hora de entrenar en batches o lotes sin que elresultado de la optimización varíe, haciéndolo más eficiente en memoria. Este algoritmo,como su nombre indica, optimiza el error (función de coste) descendiendo por la superficie(o hipersuperficie en la mayoría de los casos) que se genera. Esto se consigue a partir dela derivación de la función de coste, la cual nos indica la pendiente en cada punto, paradecidir en que dirección tenemos que avanzar si queremos reducir el error.

Figura 4.4: Visualización del descenso del gradiente

El problema más típico al que hay que enfrentarse es que prácticamente nunca existeun único mínimo en la función de coste, y podríamos quedarnos estancados en un mínimolocal cuando lo que buscamos es el mínimo absoluto. Ahora es cuando entra en juego ellearning rate, que es el parámetro que controla cuanto vamos a avanzar al descender porel gradiente por cada época (una época es una iteración del entrenamiento una vez hemosvisto todos los datos, ya que entrenamos por lotes hay que diferenciar entre iteración purao step y época). Si ponemos un learning rate muy grande avanzaremos con más celeridadhacia abajo, pero corremos mucho más riesgo de cometer overshooting, esto es, saltarnoslos mínimos continuamente sin llegar nunca a converger en ningún sitio, mientras que sicogemos uno muy pequeño lo más probable es que nos quedemos atrapados en el primermínimo que encontremos, probablemente local, y sin posibilidad de seguir convergiendoa un valor óptimo. Por este motivo, el learning rate es probablemente el parámetro másimportante de una red, y en algunos casos el más difícil de encontrar, sin embargo existen

Page 16: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

15

optimizadores que se ocupan de que no perjudique al entrenamiento de la red, como puedeser el optimizador Adam, el cual usa un learning rate variable que depende de cuandohaya descendido (o en algunos casos ascendido).

Figura 4.5: Fórmula del descenso del gradiente

En los últimos años las redes neuronales han resurgido (ya que este tipo de modeloexiste, en su forma simplificada, desde la década de los 50 con el perceptrón de Rosenblatt[2]), debido principalmente a 3 motivos importantes: la evolución del hardware (en espe-cial de las GPUs) ha permitido a los equipos actuales realizar un volumen de operacionesaltísimo y ha hecho que los cálculos que se realizan en una red neuronal (cálculos matricia-les) se puedan automatizar y llevar a cabo a velocidades muy altas; en segundo lugar, elaumento del volumen de datos que no solo existe a nivel de empresas, sino a nivel de usua-rios, hace que podamos introducir una cantidad muy alta de valores de entrada a estasredes para que aprendan con mayor facilidad; y por último la evolución de los algoritmos,tanto a nivel de cálculo, como en las diferentes arquitecturas que se diseñan, como pue-den ser las redes generativas adversarias (Generative Adversary Networks, GANs), quese están usando para generación de imágenes, o las redes convolucionales (CNNs), paraanálisis y clasificación de imágenes en el campo de la visión por computador.

4.3. Procesos Gaussianos

Los procesos gaussianos son un modelo de aprendizaje supervisado, usado principal-mente en regresiones (aunque también se puede aplicar a problemas de clasificación), ycuya predicción es probabilística (basada en la distribución gaussiana o normal, comosu nombre indica) y puede devolver una incertidumbre de la misma predicción. Esto esmuy útil, ya que se podrían identificar los intervalos de valores cuyas predicciones tienenmayor incertidumbre, para fortalecer los datos que cubren esos rangos, y hacer que nues-tro modelo sea más robusto. El lado negativo de este tipo de modelos es que requiere latotalidad de los datos para el entrenamiento, y es un algoritmo de orden O(n3), por lo

Page 17: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

16

que el coste computacional aumenta exponencialmente cuanto mayor sea el conjunto dedatos, lo que hace más complicado el probar diferentes combinaciones de hiperparámetrospara comparar modelos.

El entrenamiento en los procesos gaussianos hace uso de una función de covarianza,que es un hiperparámetro más, también llamado kernel, que se le pasa al proceso conciertos valores previos (arbitrarios en este trabajo) que el algoritmo irá optimizando almaximizar el log-marginal-likelihood (logaritmo de la probabilidad marginal), acabandocon una función de covarianza con distintos parámetros a los que se indicaron como kernelen el modelo.

Figura 4.6: Ejemplo de gráfica usando procesos gaussianos

En la figura 4.6 podemos ver un ejemplo de una regresión hecha con procesos gaus-sianos con scikit-learn, donde la zona gris es dónde se encuentra el 95% por ciento de laspredicciones (2 desviaciones típicas), las líneas verdes son 5 muestras de predicciones delmodelo regresor, y la línea azul (que es el resultado real de la regresión) es la media detodas las regresiones.

Page 18: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 5

Tecnologías usadas

5.1. Python

Python es un lenguaje de programación que está en auge hoy en día no solo en el campode la educación, sino también en el de la investigación. Con el uso de librerías como Numpy,Scikit-Learn o Tensorflow se pueden realizar cálculos y procesos muy complejos sin que elusuario programador tenga que realizar muchos modelos desde cero. Además, el lenguajeen sí simplifica mucho el aprendizaje y el uso a personas que no están familiarizadas conla programación, como por ejemplo al no tener que definir el tipo de una variable a lahora de usarla, permitiéndo que una misma variable pueda tener varios tipos distintos ala hora de la ejecución del programa, e incluso tener listas con distintos tipos de valores(enteros , cadenas de texto, e incluso objetos) dentro de la misma lista.

Todo el código de este TFG se ha realizado en Python.

5.1.1. TensorFlow

TensorFlow1 es una librería de Python desarrollada por Google, que funciona comoun optimizador de cálculos genéricos, aunque principalmente se conozca por su uso enMachine Learning y Deep Learning. Funciona creando grafos con las operaciones y lasvariables vacías a las que después alimenta los valores correspondientes. Además permitela paralelización con tarjetas gráficas sin que suponga un problema para el programador,lo que hace que el uso de aprendizaje con redes neuronales sea muy eficiente.

1https://www.tensorflow.org/

17

Page 19: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

18

5.1.2. Keras

Keras2 es una API (Application Programming Interface, interfaz de programación deaplicaciones) de alto nivel para el uso de redes neuronales. Recientemente fue absorbidapor Google y en el futuro TensorFlow 2.0 estará integrado en el mismo. Keras facilitamuchísimo el diseño de arquitecturas de redes, así como los procesos de aprendizaje yevaluación de las mismas, simplificándolos en muchos casos a una sola línea de código,en lugar de tener que usar TensorFlow puro, que en ocasiones puede resultar confuso.Además tiene integradas multiples funciones de activación de neuronas, optimizadores,funciones de pérdida y métricas entre otros.

Todos los scripts de entrenamiento y testeo de los modelos generados con redes neu-ronales se han realizado con Keras.

5.1.3. MatPlotLib

Matplotlib3 es una librería de graficado en 2 dimensiones (aunque tiene alguna funcio-nalidad para graficado en 3 dimensiones) con visualizaciones altamente personalizables.Como la mayoría de librerías usadas, su principal funcionalidad es simplificar al usuarioel resultado esperado. Facilita tanto el mostrado de gráficas tipo plot, scatter, entre otras,como el guardado de las mismas en formato de imagen.

Todos los gráficos de este TFG han sido realizados con Matplotlib.

5.1.4. Scikit-Learn

Scikit-Learn4 es otra librería de Python que tiene incorporada modelos y herramientascuyo foco es principalmente el análisis de datos y el data mining. Con esta librería sepueden realizar tanto preprocesamiento de datos (normalización, PCA) como el uso demodelos tipo regresión (lineal, procesos gaussianos), clusterización (KNN), entre otros.Permite el uso de todos estos modelos de una manera sencilla pero completa, ya que davarias opciones de parametrización de los distintos modelos.

2https://www.tensorflow.org/guide/keras3https://matplotlib.org/4https://scikit-learn.org/stable/

Page 20: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

19

5.2. Google Colab

Google Colab es una plataforma online de Google que permite la ejecución de scriptsde Python de manera remota, en unos servidores con GPUs potentes, que ayudan arealizar cálculos sin necesitar un equipo de alta gama en casa o en el laboratorio. Alestilo de los Jupyter Notebooks, se programa por celdas, y las variables se compartenentre las celdas, permitiendo el uso de variables calculadas con anterioridad sin tener querepetir la ejecución del código. No se puede usar para entrenamientos muy largos, ya queel entorno de trabajo se reinicia cada 24 horas, pero para entrenamientos pequeños oparciales no da ningún problema.

Se ha usado Google Colab para todas las ejecuciones de scripts en remoto.

5.3. Pycharm

Pycharm es un IDE (Integrated Development Environment) para programar en Pyt-hon y R que hace uso de entornos virtuales para la instalación de librerías, haciendo queno se tengan que instalar en el equipo. Da facilidades en cuanto a atajos, autocompletadoy resto de características clásicas de un IDE.

Se ha usado Pycharm para todas las ejecuciones de scripts locales.

5.4. Overleaf

Overleaf es un editor de LaTeX online que, al estar basado en servidores y ser accedidoa través de un navegador, permite acceder a los mismos ficheros desde distintos equipos,facilitando la edición tanto en equipos de sobremesa como portátiles.

Se ha usado Overleaf para la redacción de esta memoria.

Page 21: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 6

Desarrollo

El desarrollo de este trabajo se divide en múltiples partes. Desde el diseño de unaestructura robótica que se usará en el futuro para las campañas de medidas hasta losdiferentes algoritmos que se han empleado para calcular las posiciones en el plano depruebas a partir de la lectura de las frecuencias de los beacons BLE.

6.1. Escenario de pruebas

Este plano de pruebas se compone en la mayoría de los casos por un grid de 5 por 2metros, formado por 10 puntos, separados a una distancia de 1 metro con el punto máscercano. Además se colocarán 4 beacons (situados en columnas a la derecha de los puntosde referencia), de los cuales se tomarán medidas en cada uno de los puntos a calcular.

20

Page 22: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

21

Figura 6.1: Zona de pruebas

Figura 6.2: Puntos de referencia.

Además de los puntos de la figura 6.2 se tomaron medidas de 8 puntos aleatoriossituados tanto dentro como fuera del grid.

Page 23: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

22

Figura 6.3: Puntos de referencia y aleatorios.

Durante el transcurso de este trabajo se llevó a cabo una segunda campaña de datos,en la que los puntos de referencia tomados se encontraban en línea recta, como se apreciaen la figura 6.4. Además se aumentó el número de puntos de 10 a 12.

Figura 6.4: Puntos de referencia de la nueva campaña

Al igual que con los puntos de referencia, también se aumentó la cantidad de puntosaleatorios de 8 a 10.

Page 24: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

23

Figura 6.5: Puntos de referencia y aleatorios de la nueva campaña

6.2. Diseño estructura robótica

La necesidad de diseñar una plataforma personalizada nace de la ausencia de unproducto en el mercado que tuviera las características aptas para el uso en este problema.Dichas características eran:

1. Peso menor de 20kg.

2. Facilidad de transporte, que sea desmontable y modular.

3. Solo necesita recorrer superficies planas.

4. Capacidad de carga de como mínimo 15kg.

5. Dimensiones de plataforma de 40x50 cm.

6. Altura extensible entre 1 m y 1,30 m.

7. Precisión de movimiento del orden de 1 cm.

8. Que se pudieran aislar los motores para que no hagan interferencias con Bluetooth.

9. No debe alterar el entorno en el que va a moverse (por ejemplo con raíles).

10. Facilidad de repuesto de componentes.

Page 25: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

24

Se comprobaron distintas estructuras prefabricadas que cumplieran algunas de lascaracterísticas propuestas, pero muy pocas cumplían todas, y las que lo cumplían teníanun coste económico muy alto. Es por ello que se propuso el realizar un diseño de unaestructura de aluminio, y comprar unos motores que se le insertarían posteriormente. Parael diseño de la estructura se realizaron algunos bocetos con las dimensiones propuestas yse acordó tras reuniones de grupo con los tutores coger el diseño de la figura 6.6.

Figura 6.6: Boceto del diseño de la estructura

Para la elección de los motores se miraron distintas alternativas, como pueden sermotores sencillos tipo NEMA, pero teniendo en cuenta que se necesitaba cierta precisión,se optó por la adquisición de unos motores especializados en precisión robótica, los moto-res DYNAMIXEL de la marca ROBOTIS, en concreto el modelo XM430-W350-R. Estosmotores destacan por la precisión de movimiento con pesos superiores a los 15 kilos y suAPI de control integrada, que se puede usar a partir de un adaptador USB.

6.3. Tratamiento de datos

En la campaña de recolecta de datos se usó un dispositivo formado por un móduloLego EV3 con un dongle nRF51 BLE de Nordic Semiconductor (como se puede ver enla imagen de la derecha en la figura 6.7) que se conectaba a un portátil que tenía un

Page 26: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

25

programa Sniffer que se ocupa de recibir los paquetes BLE y con la ayuda de Wireshark(software que analiza protocolos y muestra información sobre los distintos paquetes quetranscurren por las redes) recoge los valores de fuerza de señal de estos paquetes [8].

Figura 6.7: Estructura de recolecta de datos con el dongle incorporado

Para un procesamiento correcto de los datos tomados, hay que realizar un análisisprevio para detectar errores en la toma, o valores anómalos, además de formatearlospara los modelos de clasificación y regresión. Para cada uno de estos casos se programa-ron cuatro scripts distintos: data.py, data_regression.py, new_data_regression.pyy all_dir_data_regression.py; donde los dos primeros programas procesarán los datosde entrada para los modelos de clasificación y regresión unidireccional, el tercero realizaráun procesamiento diferente para los datos de la segunda campaña y el último prepararálos datos de la primera campaña para la regresión multidireccional.

Al analizar los datos de la primera campaña se puede observar que hay aproximada-mente 100 lecturas de cada baliza para cada punto, pero también existen algunos casoscon datos incompletos, como se muestra en la figura 6.8, que hacen que no se llegue a las100 lecturas en todas las balizas.

Figura 6.8: Ejemplo de datos ausentes en la primera campaña

Para solucionar este problema y mantener un volumen de datos mayor hay que com-

Page 27: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

26

pletar esos valores indeterminados; esto se conoce como data augmentation (aumento dedatos), y para esta campaña de datos se completan los datos calculando la media de losvalores anteriores y usándola en lugar de los valores vacíos.

En la segunda campaña, los datos son mucho mas escasos, llegando a una mediaoptimista de 35 lecturas por baliza y punto, pero nos encontramos con un nuevo problemade datos ausentes, y es que en algunos casos no tenemos ninguna lectura de baliza paralos puntos, tal y como se ver en la figura 6.9.

Figura 6.9: Ejemplo de datos ausentes en la segunda campaña

Es por ello por lo que tenemos que elegir como rellenar esos valores, ya que el cálculode la media aritmética ahora es imposible. Al ver columnas en los que los valores estánincompletos, vemos que los valores alrededor de los -90 dB son los que empiezan a faltar,por lo que podemos deducir que el dongle receptor empieza a tener problemas con fre-cuencias en ese rango. Para solucionar el problema se buscó el máximo absoluto (ya quelas medidas son siempre negativas) y se rellenaron los valores ausentes con ese máximomás uno. El problema que tiene este método es que no discrimina la distancia a partir dela cual la señal deja de detectarse; por ejemplo, se pondrá el mismo valor para una señalque falla por 10 centímetros que para el que falla por 3 metros, haciendo que la relaciónde frecuencia y distancia deje de tener sentido.

Tras arreglar los datos ausentes tenemos que preparar las salidas de los datos deentrada para los entrenamientos de las redes y de los procesos gaussianos. Para ello hayque aclarar que los datos de cada punto (tanto de referencia como de testeo aleatorio)se encuentran separados en un fichero Excel cada uno, así que podemos asignar a cadauno de estos ficheros una etiqueta para que referencie a cada uno de los puntos. En elcaso de la clasificación (exclusivo de las redes neuronales en este trabajo), la etiquetacorresponderá con una neurona de salida del modelo, al ser 10 puntos de referencia seusarán 10 neuronas de salida, así que se usarán etiquetas desde el 0 hasta el 9. Sin embargopara la regresión, tendremos 2 neuronas de salida, una por cada eje de coordenadas delplano, y las etiquetas de cada punto serán sus coordenadas (X e Y).

En todos los casos, los scripts que realizan todo este preprocesamiento hacen uso dela librería xlrd, la cual facilita la lectura de ficheros tipo Excel. Se usa este tipo de ficherosporque en la campaña de datos, los programas usados para la lectura de datos vuelcan

Page 28: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

27

esas lecturas en ficheros Excel con un cierto formato. Al dejar preparados los scripts depreprocesamiento de esta forma, aceleramos el proceso de conversión de las lecturas alos formatos de regresión o clasificación para pasar no solo a redes neuronales y procesosgaussianos, sino a cualquier tipo de algoritmo o técnica que se prefiera usar. Además, lospasa a un fichero csv ya formateado y procesado, el cual es más rápido de leer para elordenador, y más fácil de manejar en el código.

6.4. Clasificación con redes neuronales

El primer tipo de modelo que se realizó es una red neuronal de clasificación, en laque cada uno de los 10 puntos de referencia se simboliza como una neurona de salida.Para que funcione correctamente una red de clasificación hay que tratar las etiquetascon lo que se conoce onehot encoding, que convierte una etiqueta entera en un vectorde binarios (la etiqueta 9 en onehot encoding sería [0, 0, 0, 0, 0, 0, 0, 0, 0, 1], haciendoque solo se active la última neurona en la salida), para que a la hora de calcular el errorcuadrático medio (MSE ), no tenga más peso un fallo que otro, ya que el MSE de dosvectores onehot no coincidentes siempre será igual, independientemente de qué neuronase active, mientras que si usáramos una neurona y etiquetas enteras el que la soluciónesperada sea 2 y la solución del modelo sea 6, afectaría más que si fuera 3, ya que ladiferencia entre ellos es mayor (siendo 4 en el primer caso y 1 en el segundo), y en unproblema de clasificación, aunque existan varias clases, el error máximo siempre deberíaser 1 (o acierta o se equivoca). Keras trae en sus librerías la función to_categorical lacuál convierte un array de etiquetas enteras en su correspondiente onehot. El cálculo delerror cuadrático medio se define de la siguiente forma:

MSE = 1

N

N∑i=1

(yi − y pi )2

Dónde y es la salida real e y p es la salida predicha. La función de activación usadapara la capa de salida es la función softmax, la cual devuelve las posibilidades de aciertopara cada neurona, sumando 1 el total de todas las neuronas. La función de activaciónsoftmax tiene esta forma:

σ(x j ) = ex j

Σi exi

El desarrollo del script de entrenamiento se basó en el testeo manual de arquitecturas y

Page 29: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

28

guardado de esos modelos para el posterior testeo. Posteriormente, el script fue modificadocon el fin de probar diferentes combinaciones, pese a que nunca se llegó a ejecutar coneste propósito por los motivos expuestos en el apartado de resultados.

6.5. Regresión con redes neuronales

Después de comprobar los resultados y los puntos débiles de la clasificación con redesneuronales, procedemos a usar modelos de tipo regresión. En este caso la codificaciónonehot no es necesaria, y además al estar usando números no enteros no tiene sentidousarla. Para convertir una arquitectura de clasificación en otra de regresión lo que tenemosque hacer es, además de procesar los datos de entrada para que den una salida en formatode coordenadas, cambiar el número de neuronas de la capa de salida de 10 a 2 (una porcoordenada) y su función de activación no puede ser una softmax. Para este estudio seescogió una activación lineal. Para la regresión analizaremos su eficacia tanto para unaorientación cardinal de recepción de datos, como para las 4 orientaciones disponibles enlos datos de entrada (norte, este, oeste y sur).

6.5.1. Regresión en una orientación

Para el entrenamiento de regresión primero se comenzó por ver si era posible unmodelo que funcionara igual o mejor que el de clasificación, por lo que probamos algunosmétodos de forma manual, igual que para los modelos de clasificación, además solo se tieneen cuenta las lecturas en la orientación ’norte’. En este caso los resultados fueron aúnmejores para los puntos dentro de la cuadrícula y algo peores para los puntos exteriores,como se puede apreciar en la figura 6.10. Era de esperar que los puntos interiores denmejor resultado que los exteriores, ya que como cualquier regresión, es más fácil para elmodelo predecir los puntos internos a la serie que los externos.

Page 30: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

29

Figura 6.10: Error del modelo de regresión configurado manualmente

Lo que más llama la atención es el error de los puntos internos, ya que es menorque en el caso de la clasificación. Tras ver estos prometedores resultados el siguientepaso es realizar un script que pruebe distintos hiperparámetros de manera automática,manteniendo estáticos tanto la función de coste como las funciones de activación, ya queexplotaría exponencialmente el número de iteraciones necesarias para comprobar todaslas combinaciones posibles. Para este entrenamiento se ha usado el optimizador Adam,que en vez de usar un learning rate constante durante el entrenamiento, va variándolo enfunción de la media y la varianza del gradiente [4, 5].

Para un entrenamiento masificado y automático, se modificó el programa para queiterara distintas combinaciones de neuronas en cada una de las 5 capas que se eligieron.Las posibles cantidades de neuronas de cada capa eran 0, 4, 8, 16, 32 o 64 neuronas(lógicamente en el caso de que la iteración diera el valor 0, esa capa no se añadiría almodelo) y se pretendía probar todas las combinaciones posibles entre estos valores.

Page 31: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

30

Figura 6.11: Estructura del código para multiples arquitecturas

Además se guardarían los modelos cuyo error cuadrático medio es menor a 1’5 (empezósiendo 2, pero tras ver que la amplia mayoría de modelos tenían un error inferior a estevalor, se redujo para realizar un mejor filtrado). La duración prevista de ejecución delscript era 9 días, sin embargo surgieron problemas que ralentizaron mucho este proceso.El primer problema era que después de aproximadamente 36 horas, el programa dejabade ejecutarse y saltaba un error muy críptico, pero que indicaba que se había superadoel límite de ficheros escritos (al menos en la misma carpeta en la que se encuentra elfichero que se está ejecutando), ya que cada modelo entrenado se guarda en un ficherodistinto. Para solucionar este problema se creó una carpeta aparte en la que se guardabantodos los modelos, para no guardarla en la carpeta raíz del proyecto, y el error dejó deaparecer. Otro problema que derivó de este fue el controlar la reanudación del programaen caso de interrupción involuntaria, ya que de alguna manera habría que guardar elestado de las iteraciones para no repetir el entrenamiento de 0, sino continuarlo a partirdel último modelo entrenado, y tras no encontrar una solución mejor, al estar guardándoselos ficheros con los modelos de las redes con un nombre equivalente a la arquitectura delmismo (teniendo el número de neuronas por capa en el nombre del fichero) se modificabael programa cada interrupción para que comenzara desde el último modelo guardado.Tras resolver estos primeros problemas, y después de que pasaran 12 días desde que seejecutó el programa sin errores, solamente se habían entrenado el 20% de los modelosesperados, por lo que se detuvo manualmente la ejecución del programa y se comenzarona probar los modelos entrenados (este problema se soluciona en la regresión de todas lasorientaciones). Por la estructura del código del programa, los modelos entrenados erantodas las combinaciones posibles cuya primera capa tuviera 4 neuronas y algunas de lascombinaciones cuando la primera capa tiene 8 neuronas. Por cuestiones de tiempo, yteniendo en cuenta que la regresión unidireccional no tiene un uso práctico (ya que en uncaso real no se puede predecir en que orientación se encuentra el receptor BLE, tener unmodelo dependiente de la orientación reduce bastante la precisión del sistema) se decidióno reanudar el entrenamiento, sino directamente calcular los resultados de los modelos

Page 32: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

31

que ya se hayan entrenado y continuar con la regresión multidireccional.También se realizaron entrenamientos con la nueva campaña de datos, pero para ello

no se realizó la combinatoria, sino que se entrenaron modelos cuya arquitectura coincidecon los modelos que dieron los mejores resultados del entrenamiento anterior, reduciendoel tiempo de ejecución. Con el objetivo de automatizar la recopilación de las arquitecturasdeseadas se creó una función que leía las carpetas con los ficheros que contienen losmodelos con mejor resultado y a partir del nombre del fichero, devolvía una lista con elnúmero de neuronas de cada capa, para luego usarla en una estructura similar a la delentrenamiento anterior.

6.5.2. Regresión todas las orientaciones

El último punto para las redes neuronales es el entrenamiento multidimensional, en elque se usan los datos recopilados en las cuatro orientaciones cardinales principales: norte,sur, este y oeste. Por lo tanto el número de datos para el entrenamiento se multiplica por4, al igual que los datos de validación. Cogemos como base el script de entrenamiento dela regresión unidireccional, y cambiamos las variables dependientes del número de datospara que coincidieran con el nuevo volumen de lecturas.

Al igual que para la regresión unidireccional se realizaron unos entrenamientos ma-nuales de arquitecturas de 5 capas ocultas con números de neuronas aleatorios para ver sise podía obtener un modelo con resultados coherentes, y tras ver que el error cuadráticomedio era de media menor que con la regresión de una orientación se procedió a realizarlas gráficas de los errores con los puntos de testeo (que recordamos que no aparecen en lafase de entrenamiento) para ver si realmente la precisión había aumentado. Hay que teneren cuenta que al ser las lecturas dependientes de la orientación, sólo podemos comprobarlos errores en cada orientación, y en el caso de las pruebas preliminares se decidió optarpor la orientación ’este’ sin atender a ninguna razón especial.

Page 33: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

32

Figura 6.12: Error del modelo regresión multidireccional configurado manualmente

Como se puede observar en la figura 6.12 la forma de las barras es similar a la regresiónen una orientación, pero el error aumenta ligeramente. Sin embargo al no estar compa-rando los modelos óptimos no podemos sacar aún ninguna conclusión sobre la mejora oel empeoramiento al usar varias orientaciones.

Una vez sabemos que los resultados eran coherentes con lo esperado hay que realizar elentrenamiento genérico con todas las combinaciones posibles de neuronas para encontrarque modelo es el óptimo. En este caso, y a diferencia del entrenamiento unidireccional, seencontró una solución a la ralentización del entrenamiento. Por cómo está estructuradoTensorflow, el cuál optimiza cálculos haciendo uso de tensores (de ahí su nombre), queson básicamente grafos a los que va añadiendo operaciones, para después inyectar losvalores con los que necesita operar; Keras va creando los modelos añadiendo operacionesa esos grafos, pero cada vez que crea un modelo nuevo con la instrucción Sequential()

no limpia los tensores añadidos anteriormente, por lo que se genera un grafo de inmensotamaño. Pese a que sólo opere con una fracción minúscula de ese grafo, Keras tieneque hacer hueco en memoria para que pase el grafo completo, por lo que provoca variosfallos de página que ralentizan altamente la ejecución del programa de entrenamiento. Lasolución de este problema es prácticamente trivial, ya que Keras provee de un método

Page 34: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

33

que elimina el grafo actual para así solo trabajar con el grafo que se va a operar y noocupar memoria innecesaria. Este método se encuentra en el paquete backend de Kerasy se llama clear_session(), y al ponerlo al final de una iteración de entrenamiento demodelo conseguimos que este bloque de entrenamiento multidireccional tardara 4 días,incluso menos de lo previsto para el entrenamiento en una orientación. Otro factor quediferencia esta etapa del anterior entrenamiento es que en las primeras ejecuciones delentrenamiento se observó que, en general, el error cuadrático medio se reducía a la mitad,por lo que en lugar de guardar los modelos con un MSE de 1’5, se optó por un valor másagresivo y así hacer un filtrado más exigente, poniendo ese valor a 0’6.

6.6. Procesos Gaussianos

Para este punto se ha hecho uso de la librería sklearn (scikit-learn), la cual tieneclases con las que se pueden crear modelos de varios tipos de algoritmos y métodos demachine learning, como es el caso de los procesos gaussianos. Al tener ya como baseesta herramienta sólo tenemos que preocuparnos de los hiperparámetros del kernel quele pongamos a nuestro regresor, pero esto no es una tarea trivial. El kernel (o función decovarianza) es el parámetro que calcula la relación entre los datos que se le introducenal modelo en la fase de entrenamiento, y existen varios kernels que se pueden usar enlos procesos gaussianos, además dentro de un mismo kernel existen distintos operadoresque hacen de hiperparámetros en este tipo de modelos. Sklearn nos permite usar lossiguientes kernels: RBF (función de base radial), Rational Quadratic, Exp-Sine-Squared,Dot Product (producto escalar) y Matérn.

El entrenamiento de los procesos gaussianos se realizó en las 4 orientaciones cardinales,ya que al tener un resultado previo con redes neuronales en esas mismas condiciones, lomás óptimo era comparar los errores de las redes con los que se pudieran obtener conestos modelos, para comprobar la coherencia de los resultados obtenidos.

El primer filtro que queríamos obtener es saber qué kernel da mejor resultado paranuestros datos, por lo que se realizó un bucle en el que entrenamos los distintos modeloscon los kernels RationalQuadratic, Matérn y RBF. Sklearn da unos parámetros predeter-minados para cada kernel, así que se usaron dichos parámetros y se comprobó qué kernelsdaban mejores resultados. Al ser en las 4 orientaciones, de nuevo había que escoger unapara el testeo, y por consistencia se usa la orientación ’este’.

Page 35: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

34

Figura 6.13: Error coherente de los procesos gaussianos

Figura 6.14: Error incoherente de los procesos gaussianos

Page 36: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

35

Podemos ver en las figuras 6.13 y 6.14 un ejemplo de gráfica de errores en una escalasimilar a la de las redes y unos errores totalmente inflados respectivamente. De hecho, elúnico kernel cuyos resultados son parecidos a los anteriores es el del Rational Quadratic.Debido a ello, se decidió probar varios hiperparámetros con este kernel para ver comoevolucionaba el error con las distintas combinaciones. Sin embargo este programa fuecancelado durante su ejecución debido a los resultados que se estaban obteniendo, y porla larga duración de entrenamiento.

Page 37: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 7

Resultados

En este capítulo comentaremos los resultados obtenidos tras realizar los entrenamien-tos de las redes en los casos de clasificación y regresión (de una y todas las orientaciones)y de los procesos gaussianos. Además compararemos el error calculado con los métodosWKNN y KNN, cuyos resultados se presentan en los trabajos de G. de Blasio et al [8] yde J. Larsson [1] respectivamente.

7.1. Clasificación con redes neuronales

Para hacer una primera comprobación de los diferentes hiperparámetros se hicieronunos entrenamientos básicos a mano, usando distintas configuraciones de capas y learningrate y se entrenaron 4 modelos de prueba. Al testearlos se encontraron unos resultadospositivos para los puntos aleatorios internos al grid, obteniendo errores por debajo de1.25 metros. El mejor modelo entrenado tenía tres capas ocultas (de 16, 32 y 64 neuronasrespectivamente), y se usó el optimizador SGD (Stochastic Gradient Descent) con unlearning rate de 0.01 y con la función de error categorical_crossentropy.

36

Page 38: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

37

Figura 7.1: Resultado de la mejor red de clasificación

A partir de la salida de la red, y teniendo en cuenta las propiedades de la funciónsoftmax podemos calcular las coordenadas resultantes haciendo una suma ponderada decada salida de las neuronas con las coordenadas del punto que representan, cogiendocomo valores significantes aquellos mayores a 0,001. En la figura 7.1 podemos ver esasuma ponderada en funcionamiento, cada fila de valores representa la salida de cadaneurona redondeada hasta el segundo decimal, y se multiplicaría en la primera columnade cada punto por la coordenada X que representa a dicha neurona, y en la segundacolumna por la coordenada Y. Cada uno de estos productos se sumarán para obtenerlas coordenadas finales. Finalmente con las coordenadas predichas podemos calcular loserrores de cada coordenada y el error como distancia euclídea. En la figura 7.2 se muestranlas predicciones como puntos de color rojo.

Page 39: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

38

Figura 7.2: Plano de puntos reales y predichos por clasificación

El mayor problema que tiene una red de clasificación en este caso particular, es quelos puntos que se encuentren fuera del grid de puntos de referencia nunca podrán serpredichos con precisión, ya que todas las predicciones que realiza esta red, debido a comose calculan las coordenadas, darán puntos dentro de la cuadrícula, es por esto que sólo sepueden testear 2 puntos de los 8 aleatorios que tenemos disponibles. Se ha consideradoque no es correcto comparar la exactitud de este modelo con los demás modelos a partirde 2 puntos, ya que el resto de modelos usan los 8 puntos de testeo al completo y unamuestra de solo 2 puntos es demasiado escasa.

Para poder aprovechar el máximo potencial de este tipo de red se tendrían que tomarlos puntos de referencia tal que rodeen toda la superficie practicable, así todos los posiblespuntos aleatorios estarán dentro, o en el peor de los casos, justo en el límite del grid,permitiendo que el cálculo de las coordenadas predichas sea válido para cualquier caso.

7.2. Regresión con redes neuronales

7.2.1. Regresión en una orientación

De los modelos que finalmente se terminaron de entrenar, se decidió filtrar por el errormáximo de todos, y se encontraron 3 modelos con un error máximo menor a 1,5 metros,y con estos 3 modelos se calculó el error medio para saber cual era el óptimo. El modelocon menor error medio tiene la siguiente arquitectura: 4-16-32-8, y tiene un error mediode 0.96m. Se muestra en la figura 7.3 el error por punto aleatorio.

Page 40: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

39

Figura 7.3: Mejor modelo de regresión unidireccional

Sorprende el error por debajo de un metro, pero hay que tener en cuenta que sólo se hatenido en cuenta una orientación para tanto el entrenamiento como el testeo, por lo que esun modelo muy sesgado. Sería ideal realizar un sistema con varios modelos (por ejemplo 4modelos, uno por orientación cardinal) y que de alguna forma detectara la orientación deldispositivo receptor BLE para así poder testear los modelos de regresión unidireccional.Mientras tanto, podemos decir que aunque la exactitud sea bastante buena, no tienen unpotencial de uso generalizado.

7.2.2. Regresión todas las orientaciones

Al plantear este entrenamiento, y teniendo en cuenta la variación de los datos depen-diendo de su orientación pensamos en un principio que el resultado iba a empeorar engran medida, sin embargo también hay que tener en cuenta que al multiplicar la cantidadde datos por 4, debería mejorar el resultado del entrenamiento. Además al tener que tes-tear cada orientación de manera individual podríamos tener el problema de no encontrarun modelo válido para las 4 orientaciones a la vez.

Se realiza un primer filtrado al igual que en la regresión unidireccional, desestimandolos modelos que con algún punto aleatorio tengan un error mayor de 2 metros, y se guar-

Page 41: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

40

darán los modelos válidos en una carpeta cuyo nombre sea la orientación en la que seha testeado. Después, con los modelos que hayan superado el último filtro, se generaránlas gráficas de error por punto y orientación. Finalmente, tras ejecutar todos los tests,tenemos que buscar los modelos que hayan pasado el último filtro en todas las orienta-ciones, o en la mayoría de ellas en el caso de que no haya ninguno en las 4 orientaciones.Para encontrar los modelos que tenían mayor frecuencia dentro de los filtrados se realizóun método que recorría todos los ficheros en las carpetas de orientación y devolviera elnúmero de veces que se encuentra en los mismos, de esta forma se encontró que paralos valores máximos absolutos de frecuencia había un modelo que pasó el filtro en las 4orientaciones. Este modelo tiene la siguiente arquitectura: 8-4-64-8-64. A continuación semostrarán los errores en dos de las orientaciones.

Figura 7.4: Error del mejor modelo usando el máximo absoluto en la orientación norte

Page 42: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

41

Figura 7.5: Error del mejor modelo usando el máximo absoluto en la orientación sur

Podemos observar varias cosas a partir de las gráficas de las figuras 7.4 y 7.5. Enprimer lugar se puede ver como el error máximo de este modelo es mayor que en el casode la regresión unidireccional, sin embargo hay que tener en cuenta que este modelo no esnecesariamente el mejor de cada orientación, simplemente es el más consistente, ya quetiene menos de 2 metros de error máximo en todas las orientaciones. Podemos encontrarmodelos que mejoran el error máximo, sin llegar al nivel del monodireccional.

Page 43: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

42

Figura 7.6: Modelo con menor error para la orientación norte

Otro factor que estamos viendo en las 3 gráficas anteriores es como se magnifica ladiferencia de exactitud de los puntos dentro del grid (4 y 5) con los externos al mismo,lo que indica que probablemente cuanto más amplio sea el grid (sin ser necesariamentemás denso) reduciría el error global del sistema.

Ahora compararemos los resultados de este modelo con el KNN de Larsson y, másimportante, al estar usando los mismos datos y tener las mismas condiciones experimen-tales, el WKNN de de Blasio et al. Al tener la exactitud en esos artículos como la mediase ha calculado la media de exactitud de todos los puntos en las 4 dimensiones para estemodelo, y su resultado a sido 1,29 metros de exactitud. Podemos afirmar que este valores coherente con el resto de experimentos ya que como podemos ver en la figura de errorde Larsson, su error medio mínimo es aproximadamente igual (1,3m).

Figura 7.7: Exactitudes usando KNN (Fuente: [1]).

A la hora de comparar con el WKNN podemos observar como con el protocolo iBeacony en el canal 37 (tenemos que comparar con la columna 4 CD, que significa 4 orientaciones

Page 44: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

43

cardinales), que es el que estamos usando, nuestra exactitud es escasamente mejor, porsólo 10 centímetros, pero si comparamos con los dos últimos protocolos y canales, vemoscomo se queda un poco por detrás.

Figura 7.8: Exactitudes usando WKNN (Fuente: [8])

A partir de estos resultados inciales podemos afirmar que el uso de redes neuronalespara la regresión multidireccional puede tener resultados prometedores en el ámbito delos IPS. Sin embargo, cabe destacar que el proceso de entrenamiento en un nuevo entornofísico (cambiando la estructura de la zona en la que se vaya a implementar el IPS) esmucho más largo y tedioso que para el KNN o el WKNN.

7.3. Procesos Gaussianos

Tras realizar los entrenamientos de los modelos con el kernel RationalQuadratic, cam-biando los diferentes hiperparámetros podemos ver que los resultados son coherentes(incluso sigue el patrón de exactitud con los puntos internos al grid y los externos) peroson peores que los de las redes neuronales.

Page 45: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

44

Figura 7.9: Mejor modelo de los procesos gaussianos en la orientación ’norte’

Pese a estos errores máximos, el error medio se sitúa alrededor de 1,4 metros (1,43m),que comparado tanto con el obtenido mediante redes neuronales y con KNN y WKNN,no se aleja mucho del mejor resultado. Sin embargo, hay que tener en cuenta que no sóloel error medio es la métrica que deberíamos observar, ya que el tener 3 ó 4 de los puntospor orientación, aproximadamente, en los que la exactitud está sobre los 2 metros es undetalle a tener en cuenta a la hora de elegir el algoritmo óptimo para nuestro IPS.

Page 46: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

45

Figura 7.10: Mejor modelo de los procesos gaussianos en la orientación ’sur’

Page 47: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 8

Conclusiones

Tras la realización de este proyecto se puede comentar la versatilidad de las redesneuronales y de las herramientas de machine learning y deep learning en general, yaque los resultados finales han sido bastante positivos pese a ser un algoritmo bastantegenérico y que tiene tantas aplicaciones. Pero también existe un lado negativo a todosestos modelos y algoritmos que ahora están de moda y de los que cada vez vemos mássu uso tanto científico como comercial, y es que a la hora de desarrollarlo, en ciertosaspectos, es como jugar a la lotería. Una vez se realiza todo el trabajo de procesamientode datos y de modelado de la red o del resto de algoritmos, no se sabe qué combinación dehiperparámetros va a dar mejor resultado, e incluso dentro del mismo modelo, en el casode las redes, no se sabe, a priori, cuando parar el entrenamiento para evitar el overfitting(la red tiene alta exactitud para los datos de entrenamiento pero muy baja para los detest, por lo que la red no generaliza), pero que entrene lo suficientemente bien. Es ciertoque existen técnicas que evitan al desarrollador tener que dejar muchos de estos factoresal azar, como por ejemplo el Early Stopping (que controla las variación de métricas paraque el entrenamiento se detenga cuando dichas métricas no mejoran), o el optimizadorAdam, pero aún así, mientras se diseña una de estas arquitecturas, no existe un feedbackreal sobre si las acciones que se realicen están beneficiando o perjudicando a la mejora delmodelo. Es por esto que en este trabajo se ha hecho un entrenamiento masificado, perono siempre se tiene el tiempo para dejar un programa entrenando varios días.

En el ámbito personal, este trabajo me ha ayudado a conocer las dificultades realesque se tiene en el campo de la investigación para llevar a cabo un proyecto, y dóndela mayor parte del tiempo no se invierte desarrollando código, sino recolectando, pro-cesando y organizando datos o información para posteriormente resolver los problemascorrespondientes. Esto me hace pensar cómo los avances de la informática sobre todo de

46

Page 48: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

47

la inteligencia artificial avanzada y su aplicación en robótica, ayudará exponencialmentea los posibles avances científicos en los próximos años, tal y como se pretende hacer conla implementación de un modelo de IPS preliminar en una estructura robótica que realicela recolecta de datos automática.

Page 49: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Capítulo 9

Trabajos futuros

A partir de los resultados de las gráficas de regresión, vemos que los resultados de lospuntos aleatorios que se encuentran dentro del grid de entrenamiento tienen una precisiónmucho mayor a aquellos de los que se encuentra fuera. Es por esto que una campaña dedatos que tomara como puntos de referencia aquellos que hagan frontera del recinto en elque se vaya a aplicar el sistema de posicionamiento, haría que cualquier punto aleatorio seencuentre dentro del grid de entrenamiento, y por lo tanto podría hacer que la precisiónglobal aumentara. Tambien se podría realizar una campaña en la que el grid tuviera unmayor número de puntos para así comprobar también el rendimiento de la red con unmayor número de inputs.

Estas nuevas campañas se podrán realizar con mayor celeridad cuando se termineel montaje e integración del sistema autónomo de toma de medidas, ya que se reduciráaltamente el tiempo que se tarda en realizar dicha toma.

También hay que tener en cuenta que ahora se están empezando a sacar Firmwaresde Beacons que usen Bluetooth 5, pero todo el desarrollo de este trabajo ha sido realizadocon Beacons que usan Bluetooth 4. Es de esperar que la señal de Bluetooth 5 sea másestable que la anterior, y que por ello la precisión de cualquier método se vea aumentada.

A la hora de entrenar las redes neuronales han habido hiperparámetros que pueden sercambiados para probar los distintos resultados, como puede ser el optimizador o el númerode capas y neuronas. Además se pueden probar distintos tipos de capas, usar capas tipoDropout o BatchNormalization, o incluso cambiar el input a la red por una secuenciatemporal, como pueda ser un recorrido en lugar de puntos estáticos, y usar arquitecturastipo recurrentes o LSTM para ver que resultado se puede obtener, ya que la aplicaciónpráctica de este sistema de posicionamiento sería usada principalmente en movimientosmás que en posiciones fijas. Para los datos de entrada se podría usar otro tipo de función

48

Page 50: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

49

para el relleno de missing data en lugar de la media, o usar lo que se conoce como dataaugmentation, que son técnicas de generación de datos sin que sean reales, sino simuladoso aproximados. También se podrían normalizar los datos de entrada, que aunque sonbastante homogéneos, puede dar un resultado distinto en el entrenamiento. Además, trasver que las redes tienen una exactitud similar a otros algoritmos, se recomienda el usodel canal 39 de cualquier protocolo, ya que parece ser, al menos para los datos de estetrabajo, el canal con el menor error de los 3.

Page 51: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

Bibliografía

[1] J. Larsson. Distance Estimation and Positioning Based on Bluetooth Low EnergyTechnology. TRITA-ICT-EX-2015:27

[2] Rosenblatt, F. (1958). The Perceptron: A Probabilistic Model For Information Sto-rage And Organization In The Brain. Psychological Review 65 (6): 386-408. PMID13602029. doi:10.1037/h0042519.

[3] The Asimov Institute - The Neural Network Zoo: http://www.asimovinstitute.org/neural-network-zoo/

[4] Diederik P. Kingma, Jimmy Lei Ba. Adam: A method for stochastic optimization.arXiv:1412.6980v9 [cs.LG]

[5] J. Brownlee. Gentle Introduction to the Adam Optimization Al-gorithm for Deep Learning https://machinelearningmastery.com/adam-optimization-algorithm-for-deep-learning/

[6] Zhuang, Yuan & Yang, Jun & Li, You & Qi, Longning & El-Sheimy, Naser. (2016).Smartphone-Based Indoor Localization with Bluetooth Low Energy Beacons. Sensors.16. 596. 10.3390/s16050596.

[7] G. S. de Blasio, J. C. Rodríguez-Rodríguez, C. R. García, A. Quesada-Arencibia.Beacon-related Parameters of Bluetooth Low Energy: Development of a Semi-automatic System to Study their Impact on Indoor Positioning Systems. No publicadoaún.

[8] Blasio, G.; Quesada-Arencibia, A.; Rodríguez-Rodríguez, J.C.; García, C.R.; Jr., R.-D. Impact of Beacon-Dependent Parameters on Bluetooth Low Energy Indoor Posi-tioning Accuracy. Proceedings 2018, 2, 1223.

50

Page 52: ESTUDIO Y ANÁLISIS DE ALGORITMOS Y CLASIFICADORES PARA …

51

[9] Scikit-Learn: Gaussian Processes. https://scikit-learn.org/stable/modules/gaussian_process.html

[10] Carl Edward Rasmussen, Christopher K. I. Williams. Gaussian Processes for Machi-ne Learning. ISBN 0-262-18253-X