Presentacion proyecto final de carrera grado sistemas informática Valencia

38
Proyecto de Fin de Carrera Implementación de redes neuronales artificiales en sistemas empotrados para predicción de temperaturas Universidad CEU Cardenal Herrera Francisco José Marín Pino Directores de proyecto: Dr. D. Juan Pardo Albiach Dr. D. Francisco Zamora Martínez Moncada, Valencia 2013

description

Implementación de redes neuronales artificiales en sistemas empotrados para predicción de temperaturas http://www.uchceu.es/gradosistemas

Transcript of Presentacion proyecto final de carrera grado sistemas informática Valencia

Page 1: Presentacion proyecto final de carrera grado sistemas informática Valencia

Proyecto de Fin de CarreraImplementación de redes neuronales artificiales en sistemas empotrados para predicción de temperaturas

Universidad CEU Cardenal Herrera

Francisco José Marín PinoDirectores de proyecto:

Dr. D. Juan Pardo AlbiachDr. D. Francisco Zamora Martínez

Moncada, Valencia 2013

Page 2: Presentacion proyecto final de carrera grado sistemas informática Valencia

2

Contenidos

• Contexto

• Propuesta de proyecto

• Definición de redes neuronales

• Usos de las redes neuronales

• Definición de las redes inalámbricas de sensores

• Usos de las redes inalámbricas de sensores

• Librería de redes neuronales para sistemas empotrados

• Experimentos realizados

• Conclusiones

• Trabajo futuro

Page 3: Presentacion proyecto final de carrera grado sistemas informática Valencia

3

Contexto

• Redes neuronales.

• Redes inalámbricas de sensores.

• Integración de ambos.

• Experimentos para comprobar eficiencia.

Page 4: Presentacion proyecto final de carrera grado sistemas informática Valencia

4

Propuesta de proyecto

• El propósito del proyecto es desarrollar una librería de redes neuronales optimizada en tamaño y requisitos para poder ser integrada en diferentes sistemas empotrados.

• También se busca integrar esta librería en una red inalámbrica de sensores en la medida de lo posible, con el propósito de predecir temperaturas.

• Realización de experimentos para comprobar el funcionamiento correcto de la red neuronal y para optimizar los parámetros de configuración de la red de medida de temperaturas.

Page 5: Presentacion proyecto final de carrera grado sistemas informática Valencia

5

Definición de redes neuronales

• Las redes neuronales artificiales son unos sistemas de inteligencia artificial que implementan aprendizaje automático a partir de patrones.

• Su nombre viene dado por su comparación con las neuronas del sistema nervioso.

• Una red neuronal está compuesta por elementos llamados neuronas y conexiones entre ellas llamados pesos.

Page 6: Presentacion proyecto final de carrera grado sistemas informática Valencia

6

Definición de redes neuronales

• Al fin y al cabo, una red neuronal es un grafo dirigido.

• Las neuronas de las redes neuronales se agrupan, para facilitar su comprensión y estructura, en capas.

• Existen tres procedimientos pricipales en una red neuronal feed-forward: procesamiento de entradas, propagación hacia atrás del error, y entrenamiento.

Page 7: Presentacion proyecto final de carrera grado sistemas informática Valencia

7

Definición de redes neuronales

Page 8: Presentacion proyecto final de carrera grado sistemas informática Valencia

8

Neurona

• Las neuronas de una red neuronal toman su entrada del exterior si se tratan de neuronas de entrada o de las salidas de otras neuronas si se tratan de neuronas ocultas o de salida.

• Cada neurona puede dividirse en dos partes. Durante el procesamiento de una serie de entradas, la primera se encarga de sumar las entradas. La segunda aplica la función de activación a dicho sumatorio. (Ver lado derecho de cada parte)

Page 9: Presentacion proyecto final de carrera grado sistemas informática Valencia

9

Función de activación

• Cada neurona dispone de una función de activación, que consiste en una función matemática, normalmente una función sigmoidal, que evita que los valores de las neuronas excedan los límites de un umbral.

Page 10: Presentacion proyecto final de carrera grado sistemas informática Valencia

10

Cálculo de errores y entrenamiento

• Para entrenar una red neuronal es necesario conocer la salida deseada para una entrada.

• La red neuronal evalúa la entrada y genera una salida. Después calcula un error producido mediante una función de error que compara la salida obtenida y la deseada.

• Este error se propaga hacia atrás asignando un valor de error a cada neurona. A partir de estos y de las entradas de cada neurona, se calcula un gradiente que modifica los pesos para realizar el aprendizaje.

Page 11: Presentacion proyecto final de carrera grado sistemas informática Valencia

11

Cálculo de errores y entrenamiento

• Dicho gradiente es multiplicado por un factor de aprendizaje que regula la velocidad a la que aprende la red neuronal. Un factor de aprendizaje demasiado pequeño puede causar que la red neuronal necesite muchos casos o muchas iteraciones para aprender, mientras que uno demasiado grande puede causar desviaciones en los pesos demasiado grandes, aumentando el resultado de la función de error en lugar de disminuirlo.

Page 12: Presentacion proyecto final de carrera grado sistemas informática Valencia

12

Neurona (continuación)

• Durante la propagación hacia atrás del error, se aplica la derivada de la función de activación a la entrada (que en este caso viene por la derecha) y no es necesario aplicar ninguna otra operación por parte de la parte de sumatorio, puesto que la derivada de la función de sumatorio es 1 con respecto a cada una de las entradas.

• De esta forma se calculan las derivadas del error para cada una de las neuronas.

Page 13: Presentacion proyecto final de carrera grado sistemas informática Valencia

13

Tipos de redes neuronales

• Uno de los tipos más comunes de redes neuronales es el Feed-forward o de alimentación hacia adelante. La librería creada en este proyecto ha sido diseñada para generar este tipo de redes neuronales.

• Existen también redes neuronales de tipo recurrente, en las cuales las salidas de algunas capas se alimenta como entrada a capas anteriores.

Page 14: Presentacion proyecto final de carrera grado sistemas informática Valencia

14

Usos de las redes neuronales

• Las redes neuronales artificiales se pueden utilizar para multitud de tareas en las que se necesita la detección de patrones.

• Algunos ejemplos incluyen:

– Reconocimiento de voz

– Reconocimiento de caracteres escritos

– Detección de acciones fraudulentas en cuentas bancarias

– Guía de misiles

Page 15: Presentacion proyecto final de carrera grado sistemas informática Valencia

15

Definición de redes inalámbricas de sensores

• Las redes inalámbricas de sensores son, como su nombre indica, redes de dispositivos con sensores de pequeño tamaño que se comunican inalámbricamente y trabajan en conjunto para realizar una tarea específica.

http://www.purelink.ca/

Page 16: Presentacion proyecto final de carrera grado sistemas informática Valencia

16

Red inalámbrica de sensores utilizada

• La red inalámbrica de sensores que se ha utilizado en este proyecto consiste en una red con varios nodos capaces de obtener temperaturas cada cierto intervalo de tiempo, y un sumidero responsable de recoger los paquetes inalámbricos y transmitirlos a un PC.

• Para las pruebas y experimentos se ha utilizado un único nodo sensor de temperaturas.

Page 17: Presentacion proyecto final de carrera grado sistemas informática Valencia

17

Red inalámbrica de sensores utilizada

Nodo Sumidero y debugger

Page 18: Presentacion proyecto final de carrera grado sistemas informática Valencia

18

Usos de las redes inalámbricas de sensores

• Las redes inalámbricas de sensores cuentan con la ventaja de ser comúnmente fáciles de transportar y situar, debido a su pequeño tamaño. Esto las hace útiles para una gran variedad aplicaciones en diferentes campos.

• Algunos ejemplos:

– Monitorización médica de pacientes

– Aplicaciones militares

– Control de procesos industriales

– Seguridad y vigilancia

Page 19: Presentacion proyecto final de carrera grado sistemas informática Valencia

19

Librería de redes neuronales

• La librería de redes neuronales ha sido implementada en ANSI C, para aumentar su compatibilidad con diferentes dispositivos y por el tamaño reducido de sus ejecutables binarios respecto a otros lenguajes de programación.

Page 20: Presentacion proyecto final de carrera grado sistemas informática Valencia

20

Librería de redes neuronales

• Consiste en una serie de estructuras de datos y funciones. Está preparada para poder construir redes neuronales feed-forward a partir de llamadas a funciones específicas para:

– Creación de capas

– Creación de conexiones entre capas

– Asignación de funciones de activación a capas

• También es capaz de generar redes a partir de topologías descritas en ficheros, en formato April-ANN.

Page 21: Presentacion proyecto final de carrera grado sistemas informática Valencia

21

Pruebas de librería

• Para comprobar el funcionamiento correcto de la librería de redes neuronales se implementaron una serie de pruebas unitarias para comprobar diferentes funciones, y una prueba final para comprobar el funcionamiento total.

Page 22: Presentacion proyecto final de carrera grado sistemas informática Valencia

22

Prueba de reconocimiento de dígitos

• Como prueba final para comprobar el funcionamiento general de la red neuronal se ha realizado un experimento en el cual la red neuronal aprende a reconocer dígitos en formato de imagen.

Page 23: Presentacion proyecto final de carrera grado sistemas informática Valencia

23

Prueba de reconocimiento de dígitos

• En este experimento se utilizan 100 dígitos. Los primeros 800 se utilizan para entrenar la red neuronal. Cada imagen de dígito tiene una dimensión de 16x16 píxeles con valores blancos o negros. Esta es la entrada de la red neuronal, y la salida es un vector de diez probabilidades: la de que sea cada uno de los diez dígitos. Las 800 imágenes de dígitos se introducen en orden aleatorio en la red neuronal y después se le proporciona el vector de probabilidades correcto para su entrenamiento.

Page 24: Presentacion proyecto final de carrera grado sistemas informática Valencia

24

Prueba de reconocimiento de dígitos

• Después se utilizan los últimos 200 dígitos para comprobar que el reconocimiento de dígitos funciona para casos con los que no ha entrenado. Efectivamente, la red neuronal es capaz de reconocer estos otros dígitos.

Page 25: Presentacion proyecto final de carrera grado sistemas informática Valencia

25

Experimentos

• La red neuronal para la predicción de temperaturas tiene la siguiente topología:

– Capa de entrada de 24 neuronas

– Capa oculta de 8 neuronas

– Capa de salida de 8 neuronas

• Cada una de las 24 entradas es una media de 15 temperaturas, una obtenida cada minuto, que se corresponden con los cuarto de hora de reloj.

Page 26: Presentacion proyecto final de carrera grado sistemas informática Valencia

26

Experimentos

• El programa que entrena y utiliza la red neuronal es capaz de interpolar valores de temperaturas en caso de realizarse pérdidas de datos o desfases en las recepciones de las temperaturas. Por ejemplo, un desfase de un segundo puede causar que se obtengan temperaturas a las 12:01:59 y 12:03:00.

Page 27: Presentacion proyecto final de carrera grado sistemas informática Valencia

27

Experimentos

• Para comprobar qué tasa de aprendizaje es la mejor para este entrenamiento se han realizado experimentos con temperaturas obtenidas del SMLsystem durante un periodo de tiempo de un mes. Se ha ejecutado la misma red neuronal con los mismos datos y diferentes tasas de aprendizaje, y se han comparado los resultados para averiguar cuál es la que más eficientemente entrena la red neuronal.

Page 28: Presentacion proyecto final de carrera grado sistemas informática Valencia

28

Primer experimento

• En el primer experimento se ha buscado encontrar qué factor de aprendizaje ha conseguido la menor media de errores. Para esto se ha ejecutado el programa con diferentes factores de aprendizaje y realizado una media aritmética de los errores.

Page 29: Presentacion proyecto final de carrera grado sistemas informática Valencia

29

Page 30: Presentacion proyecto final de carrera grado sistemas informática Valencia

30

Page 31: Presentacion proyecto final de carrera grado sistemas informática Valencia

31

Segundo experimento

• Este experimento se diseñó para averiguar qué tasa de aprendizaje disminuye el error de la red neuronal con mayor velocidad.

• La diferencia con el experimento anterior consiste en que la media de errores que ha producido un factor de aprendizaje es una medida significativa de cuán buena es esta, pero en este experimento se mide la velocidad a la que se ha reducido ese error en general. Es decir, el número de entrenamientos.

Page 32: Presentacion proyecto final de carrera grado sistemas informática Valencia

32

Page 33: Presentacion proyecto final de carrera grado sistemas informática Valencia

33

Page 34: Presentacion proyecto final de carrera grado sistemas informática Valencia

34

Experimentos

• En cuanto a la integración de la librería de redes neuronales con la red inalámbrica de sensores, se ha logrado lo siguiente:

– Introducir una red neuronal simple (cálculo de XOR) en el sumidero.

– Introducir la librería de redes neuronales en el sumidero, generando datos falsos necesarios de temperaturas y tiempos dentro del mismo.

• La generación de un prototipo final que obtenga las temperaturas en tiempo real y se ejecute en el sumidero no ha sido posible debido a no haber sido posible establecer envío de datos necesarios (como la fecha y la inicialización de los pesos de la red neuronal) desde el PC al sumidero.

Page 35: Presentacion proyecto final de carrera grado sistemas informática Valencia

35

Resultados

• La programación de una librería de redes neuronales artificiales capaz de ser embebida en sistemas empotrados.

• La integración de esta librería en un dispositivo de la red inalámbrica de sensores con una red neuronal simple, si bien los datos no se obtuvieron en tiempo real.

• Experimentos para la obtención del mejor factor de aprendizaje para la red neuronal con la topología indicada.

Page 36: Presentacion proyecto final de carrera grado sistemas informática Valencia

36

Trabajo futuro

• En cuanto a la librería de redes neuronales, sería posible añadir dos parámetros más para dar más opciones a los usuarios de esta:

– Weight decay (Decadencia de los pesos)

– Momentum (Inercia)

• En cuanto a la integración de esta con los dispositivos, el siguiente paso sería establecer correctamente la conexión para la recepción de datos desde el PC para poder general un prototipo que se ejecute en el sumidero de la red inalámbrica de sensores.

Page 37: Presentacion proyecto final de carrera grado sistemas informática Valencia

37

Agradecimientos

• A mis directores de proyecto:

– Dr. D. Juan Pardo Albiach

– Dr. D. Francisco Zamora Martínez

• A todos los profesores de Ingeniería Informática de la Universidad CEU Cardenal Herrera.

Page 38: Presentacion proyecto final de carrera grado sistemas informática Valencia

38

Preguntas