martes, 13 de noviembre de 2012

[REDES NEURONALES] Resumen


Real-time Analysis of Data from Many Sensors with Neural Networks

Kristof Van Laerhoven, Kofi A. Aidoo and Steven Lowette 
Starlab Research 
Englandstraat 555 
B-1180 Brussels, Belgium 
{kristoJ  kofi} @starlab.net, slowette@vub.ac. be


Este resumen trata sobre una investigación para utilizar varios sensores de distintos tipos para analizar datos en tiempo real.

Se hablan de distintos tipos de sensores tales como camaras, GPS, microfonos, etc, y la forma que reconocen datos (contexto). Este contexto se obtiene mediante 2 metodos dependiendo de la complejidad del sensor.

El primer metodo es done el sensor (o varios de ellos) es combinado con un algoritmo que normalmente se especifica en el sensor.

El segundo metodo esta basado en un gran número de de pequeños sensores sencillos. En el cual se combinan todos ellos para dar informacion de pequeñas caracteristicas del contexto. Que en conjunto dan información clara.

La diferencia entre ellos es explicada en la siguiente imagen:

Mientras que un chip procesador de datos puede recibir varias entradas y dar varias salidas para su posterior analisis, pequeños sensores tienen una entrada sencilla y una salida, pero en conjunto entregan  un numero e datos igual al numero de chips utilizados con gran detalle.


  • Los beneficios del primer método se mencionan:
  • Barato: los sensores sencillos son mucho más baratos que sensores más complejos como camaras o GPS.
  • Robusto: Ya que son pequeños sensores, se pueden distribuir en grandes áreas para cubrir, lo que lo hace menos probable a tener errores. Si uno se daña, aun se puede btener informacion de los restantes.
  • Distribuido: Se pueden integrar en casi cualquier cosa por su tamaño.
  • Flexible: La cantidad de datos es proporcional a la cantidad de sensores utilizados. Agregando, quitando o moviendo sensores puede mejorar (o empeorar) el analisis.
Combinando sensores

Las caracteristicas de un sensor sencillo no son que sea pequeño, barato y de una entrada y salida especificamente. Sencillo se refiere a que su hardware no es tan complejo y realiza una tarea sencilla. Como las celulas del cuerpo, trabajan en conjunto. Estos recogen pequeños datos aparentemente triviales, pero en conjunto son cantidades de información generosas en cuanto a datos procesables.

Los algoritmos utilizados tienen ciertas características y requerimientos para funcionar. En este caso se habla del proecto TEA (Technology for Enabling Awareness). Estos funcionan de la siguiente manera:
  • La red neuronal es personalizable, esto quiere decir que el usuario puede poner los sensores en modo entrenamiento facilmente, en lugar de tener un entrenamiento fijo permanente. Son dispositivos pequeños por lo que los cambios bruscos pueden no ser percibidos por estos.
  • Su aprendizaje es de tipo cluster. Tienen un sistema adaptativo para guardar información relevante, por lo que el entrenamiento es con datos casi siempre relevantes.
  • La cantidad de preprocesamiento es minima, puesto que solo toman lo más relevante. Un sensor complejo recoge una cantidad indefinida de datos, sean o no relevantes. mientras que un sensor cencillo está programado para recoger lo más relevante.
  • Es posible "etiquetar" los datos de varias formas posibles, si el sensor recoge información y la clasifica de varias formas posibles. Varios sensores pueden tener un contexto y una clasificación diferente con respecto a los demas.
La red neuronal correcta

La categorización en tiempo real de datos hace de las redes neuronales una forma de programación muy avanzada para sistemas como robots que tratan de aprender a realizar sus tareas. Pero pueden ser una o varias redes las que intervienen el este proceso. Pero ¿cuál o cuales son las correctas?

Para este caso se utiliza una red con un entrenamiento no supervizado, es decir, los sensores recogen datos y aprenden a clasificarlos por su cuenta. Debido a que no hay complejidad en ellos, sus tareas son fáciles y la probabilidad de que aprendan correctamente es alta.

Se habla del termino "preservación de la topología" que significa que los datos altamente relacionados se agrupan, mediante un algoritmo adaptativo. En algunos casos se reemplazan los datos irrelevantes o con demediadas coincidencias.

Un ejemplo es mostrado en la siguiente imagen (Kohonen self-organizing map). Permite hacer debug y visualizar el estado de el algoritmo.
La anterior es una captura de un mapa 2 dimencional de un algoritmo de preservación de topología, se puede notar como se agrupan entre más parecidas las gráficas.

Cada vez que la red recibe una nueva entrada de datos, debe recalcular la representación interna del contexto. para evitar tener que esperar a recibir un número de datos y adaptarse a cada uno. Esto es un ahorro de recursos para pequeños sistemas como PDA's en los que se enfoca el proyecto.

Se presenta una comparación de algoritmos de clustering.


Mapa estable auto-organizable

El algoritmo anteriormente mencionado (Kohonen self-organizing map) es un algoritmo que ha sido usado en muchas aplicaciones, usualmente para clustering o visualización de datos n-dimencionales dentro de 2 o 3 dimenciones.

Es computacionalmente eficiente, esta localizado entre un algoritmo de escala multidimencional y un algoritmo de clustering/vectorización. Además trata de preservar la topología, anteriormente mencionado.

El gran problema de este algoritmo es que si un error ocurre y se hace inestable, los datos de aprendizaje se corrompen, y por lo tanto queda olvidado, por eso se utiliza en conjunto con varios algoritmos que lo mantienen estable.

Estos algoritmos "enfrían" el proceso estabilizándolo, en las siguientes gráficas se muestran como funcionan estos algoritmos.
Se puede apreciar como se va estabilizando el sistema en la gráfica de arriba, donde los contextos son bien organizados. Mientras que en la de abajo, los contextos son sobreescritos constantemente con datos "corruptos".

Concluciones

Como se puede ver en el resumen, el tema de redes neuronales van de la mano con los temas de sistemas adaptativos y optimización de estos.

La mayoría de los procesos consiste en tomar datos, hacer comparaciones y adaptar un sistema para el aprendizaje, pero se utilizan algoritmos de optimización para no tomar datos redundantes.

Así mismo se utilizan los adaptativos para evitar la corrupción de datos.

1 comentario: