Presentacion proyecto final de carrera grado sistemas informática Valencia

Post on 08-Jul-2015

332 views 2 download

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

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

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

3

Contexto

• Redes neuronales.

• Redes inalámbricas de sensores.

• Integración de ambos.

• Experimentos para comprobar eficiencia.

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.

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.

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.

7

Definición de redes neuronales

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)

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.

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.

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.

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.

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.

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

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/

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.

17

Red inalámbrica de sensores utilizada

Nodo Sumidero y debugger

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

29

30

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.

32

33

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.

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.

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.

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.

38

Preguntas