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.

Ya 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.

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