Un helicóptero que aprende a volar por sí solo

helicopter00

Una red neuronal y un helicóptero de radio control son usados para demostrar un algoritmo fascinante de aprendizaje en las máquinas,  desarrollado por dos estudiantes de Cornell. El entorno es muy simple: un helicóptero en el centro, atado a un brazo. El brazo restringe el movimiento del helicóptero hacia arriba y hacia abajo (un grado de libertad), de manera que solamente puede despegar o aterrizar sin poderse move diagonalmente.

La meta es enseñarle al helicóptero a aprender por sí mismo cómo llegar a una altura específica en el menor tiempo posible. Una serie de sensores infrarrojos son usados para decirle a un microcontrolador ATmega644 qué tan alto está el aparato volador. El genio de todo esto está en el firmware. Los estudiantes están usando un algoritmo evolucionado adaptado de una idea de Floreano (y otros), un conocido autor de paradigmas biológicos inspirados en la inteligencia artificial. La idea es que el helicóptero crea “corridas” al azar y verifica entonces los datos. Las corridas que están cerca de la meta se refinan mientas que otras se eliminan, imitando la evolución y selección natural.

helicopter02Ya hemos visto antes redes neuronales, pero ésta parece ser muy peculiar. Considérese que la meta del helicóptero es ir del punto A al punto C y regresar. Se da un tiempo de 10 segundos por corrida. El helicóptero tiene que aprender a hacer esto lo más rápidamente posible. Recuérdese que sabe en donde está gracias a los sensores infrarrojos. Los estudiantes desarrollaron una ecuación para determinar cual de las corridas está más cerca del punto C para el tiempo más largo.

helicopter03

Cada uno de los puntos en la ecuación se conoce gracias al voltaje en los sensores infrarrojos, con 0.1 volts para el punto A y 3.7 volts para el punto D. La ecuación está diseñada para dar el mayor valor para el tiempo que más tardó en estar en el punto C. Este valor es el que se conoce como el más apropiado y se denomina “Fitness Value”.

Se usa una red neural para determinar en qué nivel el rotor logrará el mayor valor de Fitness. La red neuronal es aparte del algoritmo evolucionario que corre en el firmware. Básicamente empieza con valores al azar y empieza a refinar sus datos de acuerdo a los resultados obtenidos.

Referencias:

Algoritmo evolucionario 
HackADay

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s