Cómo implementar el algoritmo de aprendizaje de refuerzo para tareas de robótica, que incluye control y planificación de rutas

Tres meses es menos, pero es suficiente para comenzar y leer cosas nuevas por su cuenta.

Puedo contarte sobre el aprendizaje por refuerzo.

  1. Le sugiero que lea este http://people.inf.elte.hu/lorinc… y al mismo tiempo resuelva (principalmente el código) los ejercicios. Este libro es muy básico y al leerlo no podrá crear agentes de control porque no cubre los problemas del mundo real que surgen durante la implementación real, pero se le presentará cuál es la idea central detrás de estos agentes geniales. Por lo que recuerdo, hay soluciones disponibles (código también).
  2. Después de leer 7–8 capítulos (¿enorme?), Puede tomar este CS 294 Deep Reinforcement Learning, Spring 2017 and Teaching. Te recomiendo que resuelvas las tareas, es la única forma. Al hacer el primer curso podrás hacer algunas cosas reales.
  3. También puede comenzar a aplicar sus conocimientos aquí OpenAI Gym: un juego de herramientas para desarrollar y comparar algoritmos de aprendizaje de refuerzo. También tienen un foro gitter, realmente deberías unirte a él.
  4. Siga el aprendizaje de refuerzo en reddit y aikorea / awesome-rl son los mejores lugares si está cavando algo relacionado con RL.

Espero que esto ayude (mucho quizás 🙂).

Las respuestas hasta ahora parecen ser más para el aprendizaje profundo, por lo que voy a intervenir en el lado del aprendizaje por refuerzo.

Debe comenzar por comprender sus algoritmos de aprendizaje de refuerzo CS típicos, como la programación dinámica, el aprendizaje Q, el aprendizaje TD, Dyna-Q y el actor crítico. De lo que se dará cuenta rápidamente es que extender estos algoritmos a la robótica se vuelve intratable (grandes espacios de acción de estado continuo). Un recurso fantástico para la robótica RL + es “Aprendizaje de refuerzo para la robótica: una encuesta”. Enumera todas las dificultades y cómo las personas intentan resolverlas. Personalmente, soy un fanático del aprendizaje de refuerzo basado en modelos, ya que es más práctico para la robótica. Esto también conduce a un control óptimo / optimización de trayectoria ya que los dos campos comparten mucho.

Comenzaría con la simulación ya que aprender RL y depurar un robot al mismo tiempo es difícil. Si desea probar la investigación de vanguardia de RL, consulte la biblioteca de búsqueda de políticas guiadas en el sitio web de laboratorios de aprendizaje de refuerzo (berkeley). Puede crear un “agente” ROS y que aprenda utilizando la búsqueda guiada de políticas.

Recursos:

“Aprendizaje de refuerzo para la robótica: una encuesta”

Gimnasio OpenAI

Curso de aprendizaje de refuerzo profundo (Berkeley todos los videos en línea)

Cursos de RL sobre udacity (otros enlaces de introducción en el sitio web de arriba)

Control óptimo / Optimización de trayectoria – Robótica no activada (edX)

Si planea usar ROS, tiene 2 opciones, puede ir con un nodo opencv en ROS o escribir un contenedor para Tensorflow (crear un nodo).

También puedes aprender sobre ROS de sus documentos y muchos libros electrónicos sobre el mismo.

Aquí está Yann LeCun usando RNNs con opencv

Redes neuronales recurrentes I

y aquí hay un tipo que usa el reconocedor de dígitos NIST escrito con TF como un nodo en ROS

shunchan0677 / Tensorflow_in_ROS

Había un automóvil controlado por RPi que usaba TF para aprender a conducir alrededor de una pista, puede usarlo para controlarlo y modificarlo adecuadamente para planificar la ruta. No encontrará que TF componga automáticamente A * y los gustos, será algo completamente diferente.

El aprendizaje profundo es el tema candente en este momento en robótica. Te recomendaría que leas tantos trabajos de investigación como puedas. Esto lo ayudará a obtener información sobre las brechas en el trabajo actual que se está realizando. La mejor manera de aprender algo es practicando. Puede probar los algoritmos de aprendizaje de refuerzo en MATLAB. MATLAB también le permitirá verificar su código de planificación de ruta en un entorno simulado.

Para ROS, hay un libro que recomiendo encarecidamente: Programming Robots with ROS. Además, hay una gran cantidad de contenido de código abierto disponible que sería útil para usted.