Programando un robot para que se enseñe a sí mismo a moverse

Articulos tematica Microsoft

Uno de los desarrollos más impresionantes de los últimos años ha sido la producción de sistemas de inteligencia artificial que pueden aprender a dominar las reglas de un sistema más grande.

Los éxitos notables han incluido experimentos con ajedrez y Starcraft . Dada esa capacidad de autoaprendizaje, es tentador pensar que los sistemas controlados por computadora deberían poder enseñarse por sí mismos todo lo que necesitan saber para operar. Obviamente, para un sistema complejo como un automóvil autónomo, todavía no hemos llegado a ese punto. Pero debería ser mucho más fácil con un sistema más simple, ¿verdad?

Tal vez no. Un grupo de investigadores en Ámsterdam intentó tomar un robot móvil muy simple y crear un sistema que aprendería a optimizar su movimiento a través de un proceso de aprendizaje práctico. Si bien el sistema que desarrollaron los investigadores era flexible y podría ser eficaz, tuvo problemas debido a algunas características básicas del mundo real, como la fricción.

Robots itinerantes

Los robots del estudio eran increíblemente simples y se formaron a partir de un número variable de unidades idénticas. Cada uno tenía un controlador, una batería y un sensor de movimiento integrados. Una bomba controlaba un trozo de tubería inflable que conectaba una unidad a una unidad vecina. Cuando se infló, el tubo generó una fuerza que separó las dos unidades. Cuando se desinfla, la tubería vuelve a juntar las unidades.

Al vincular estas unidades, se creó un tren autopropulsado. Dada la serie adecuada de inflación y deflación, las unidades individuales podrían arrastrarse y empujarse entre sí de manera coordinada, proporcionando un movimiento direccional que empujara al sistema como un gusano. Sería relativamente sencillo averiguar la serie óptima de comandos enviados a la bomba que controla el inflado; simple, pero no especialmente interesante. Entonces, los investigadores detrás del nuevo trabajo decidieron ver si el sistema podía optimizar su propio movimiento.

A cada unidad se le permitió actuar de forma independiente y se le dio un conjunto simple de reglas. La inflación / deflación se configuró para que se realizara un ciclo cada dos segundos, y el único parámetro ajustable era cuándo, dentro de esa ventana de 2 segundos, la bomba se encendería (permanecería encendida durante menos de un segundo). Cada unidad de la cadena elegiría una hora de inicio al azar, la usaría durante algunos ciclos y luego usaría el sensor integrado del sistema para determinar qué tan lejos se movió el robot. La hora de inicio se eligió al azar durante el período de aprendizaje, y siguió un período de refinamiento, durante el cual se muestrearon las áreas alrededor de los momentos de mejor desempeño.

Fundamentalmente, cada unidad de la cadena operaba de forma completamente independiente, sin saber qué estaban haciendo las otras unidades. La coordinación necesaria para el movimiento hacia adelante surgió espontáneamente.

Los investigadores comenzaron uniendo dos robots y un bloque inerte en un tren y colocando el sistema en una vía circular. Algunos de los trenes solo tardaron unos 80 segundos en alcanzar la máxima velocidad posible, un ritmo majestuoso de poco más de dos milímetros por segundo. No hay forma de que este hardware vaya más rápido, como lo confirman las simulaciones en un sistema modelo.

No tan rapido

Pero los problemas se hicieron evidentes de inmediato. Algunos de los sistemas se atascaron en un mínimo local, optimizando una velocidad que era solo una cuarta parte de la máxima posible. Las cosas salieron mal de una manera diferente cuando el equipo agregó un tercer robot al tren.

Aquí nuevamente, el sistema tardó solo unos minutos en acercarse a la velocidad máxima observada en las simulaciones. Pero una vez que alcanzaron esa velocidad, la mayoría de los sistemas parecieron comenzar a desacelerarse. Eso no debería ser posible, ya que las unidades siempre guardaron el tiempo de inicio del ciclo asociado con la velocidad máxima que alcanzaron. Dado que nunca deben elegir intencionalmente una velocidad más baja, no hay ninguna razón por la que deban reducir la velocidad, ¿verdad?

Afortunadamente, alguien del equipo notó que los sistemas no experimentaban una desaceleración uniforme. En cambio, se detuvieron casi en lugares específicos de la pista, lo que sugiere que estaban teniendo problemas de fricción en esos puntos. Aunque los robots siguieron realizando las acciones asociadas con la velocidad máxima en otras partes de la pista, lo estaban haciendo en un lugar donde una serie diferente de acciones podría impulsar la fricción de manera más efectiva.

Para solucionar este problema, los investigadores hicieron un poco de reprogramación. Originalmente, el sistema solo buscaba la velocidad máxima y la almacenaba y el tiempo de inicio del ciclo de inflación asociado con ella. Después del cambio, el sistema siempre guardaba la velocidad más reciente, pero solo actualizaba la hora de inicio si la velocidad almacenada era más lenta que la más reciente. Si el sistema llega a un punto difícil y se ralentiza drásticamente, podría encontrar un medio óptimo para pasar y luego volver a optimizar para obtener la velocidad óptima.

Este ajuste consiguió que el sistema de cuatro coches se moviera a una velocidad media de dos milímetros por segundo. No tan bueno como el tren de tres vagones, pero bastante cerca.

Más giros

Las desventuras entre las expectativas y la realidad no terminaron ahí. Para probar si el sistema podía aprender a recuperarse de una falla, los investigadores bloquearon la válvula de liberación en una de las unidades, forzándola a un estado siempre inflado. El algoritmo se volvió a optimizar, pero los investigadores descubrieron que funcionaba incluso mejor cuando la bomba aún se encendía y apagaba, incluso si la bomba no impulsaba aire. Aparentemente, las vibraciones ayudaron a limitar la fricción que, de otro modo, podría atascar todo el sistema.

El sistema de refinamiento, que probó tiempos de inicio cercanos al máximo, también resultó ser problemático una vez que el tren se alargó lo suficiente. Con un ejemplo de siete coches, el sistema alcanzaría regularmente la velocidad máxima pero volvería a reducir la velocidad rápidamente. Aparentemente, las ligeras variaciones probadas durante el refinamiento podrían tolerarse cuando un tren era pequeño, pero desajustaron demasiados autos una vez que el tren se alargó lo suficiente.

Aún así, el sistema general fue bastante efectivo, incluso si se usaba en un sistema simple. Tomó dos propiedades simples y las convirtió en un sistema de autoaprendizaje que podría responder a cambios ambientales como la fricción. El sistema era escalable en el sentido de que funcionaba bien para sistemas con una variedad de longitudes de tren. Y fue resistente al daño, como cuando los investigadores bloquearon una válvula. En un experimento diferente, los investigadores cortaron el tren a la mitad y ambas mitades volvieron a optimizar sus velocidades.

Fecha actualización el 2021-05-15. Fecha publicación el 2021-05-15. Categoria: computadoras Autor: Oscar olg Mapa del sitio Fuente: arstechnica