Pregunta

Estoy construyendo un automóvil autónomo con control remoto por diversión.Estoy usando una Raspberry Pi como computadora integrada;y estoy usando varios complementos, como una cámara Raspberry Pi y sensores de distancia, para obtener información sobre el entorno del automóvil.Estoy usando OpenCV para convertir los cuadros de video en tensores y estoy usando TensorFlow de Google para construir una red neuronal complicada para conocer los límites y obstáculos de las carreteras.Mi pregunta principal es: ¿debería utilizar el aprendizaje supervisado para enseñarle a conducir el automóvil o debería proporcionar objetivos y sanciones y realizar un aprendizaje por refuerzo (es decir, llegar al punto B lo más rápido posible sin chocar contra nada y permanecer dentro de los límites de la carretera)?A continuación se muestra una lista de los pros y los contras que se me han ocurrido.

Profesionales del aprendizaje supervisado:

  • Las entradas al algoritmo de aprendizaje son bastante sencillas.El automóvil aprende a asociar las lecturas de distancia del sensor y del tensor de cuadros de video con el desplazamiento de las ruedas hacia adelante, hacia atrás y en ángulo.
  • Más o menos puedo enseñar al coche a conducir exactamente como quiero (sin sobreajustarlo, por supuesto)
  • He resuelto toneladas de problemas de aprendizaje supervisado antes y este enfoque parece adaptarse cómodamente a mi conjunto de habilidades existentes.

Contras del aprendizaje supervisado:

  • No está claro cómo enseñar velocidad, y la velocidad correcta es bastante arbitraria siempre y cuando el automóvil no vaya tan rápido como para desviarse de la carretera.Supongo que podría conducir rápido durante el entrenamiento, pero parece un enfoque tosco.¿Quizás podría agregar manualmente una variable constante durante el entrenamiento que corresponda a la velocidad de esa sesión de entrenamiento y luego, cuando se implemente el algoritmo de aprendizaje, configuro esta variable de acuerdo con la velocidad que quiero?

Profesionales del aprendizaje por refuerzo:

  • Si construyo mi automóvil con el propósito específico de competir con los autos autónomos de otras personas, el aprendizaje por refuerzo parece ser la forma natural de decirle a mi automóvil que "llegue lo más rápido posible".
  • He leído que RL a veces se usa para drones autónomos, por lo que en teoría debería ser más fácil en automóviles porque no tengo que preocuparme por subir y bajar.

Contras del aprendizaje por refuerzo:

  • Siento que el aprendizaje por refuerzo requeriría muchos sensores adicionales y, francamente, mi auto de un pie de largo no tiene tanto espacio en el interior considerando que también necesita una batería, la Raspberry Pi y una placa de pruebas.

  • El coche se comportará de forma muy errática al principio, hasta el punto de que tal vez se destruya.También puede llevar un tiempo excesivamente largo aprender (por ejemplo, meses o años).

  • No puedo incorporar reglas explícitas más adelante, por ejemplo, detenerme en un semáforo en rojo de juguete.Con el aprendizaje supervisado, podría incorporar numerosos algoritmos SL (por ejemplo, un clasificador Haar Cascade para identificar semáforos) en un motor de reglas configurable que se evalúa entre cada cuadro de video.Por lo tanto, el motor de reglas podría anular el algoritmo SL de conducción si viera un semáforo en rojo, aunque el semáforo no hubiera sido parte del entrenamiento del algoritmo de conducción.RL parece demasiado continuo para hacer esto (es decir, detenerse sólo en el estado terminal)
  • No tengo mucha experiencia con el aprendizaje por refuerzo aplicado, aunque definitivamente quiero aprenderlo de todos modos.
¿Fue útil?

Solución

Te sugeriría que pruebes un enfoque híbrido:

  • Primero, Entrena tu auto de manera supervisada por manifestación. Simplemente controllo y use sus comandos como etiquetas. Esto le permitirá obtener todos los profesionales de SL.
  • Luego, ajuste su red neuronal usando el aprendizaje de refuerzo. No necesita sensores adicionales para eso: las recompensas se pueden obtener de los sensores de distancia (distancias más grandes = mejor) y desde la velocidad en sí. Esto le dará los pros de RL y entrenará su NN al objetivo correcto de conducir rápido mientras evita los obstáculos en lugar del objetivo de imitarlo.
  • La combinación de ambos enfoques le dará los pros de SL y RL mientras evita sus contras. RL no comenzará por un comportamiento aleatorio, solo pequeñas desviaciones graduales de lo que tocó el NN. Google DeepMind aplicado con éxito con un enfoque similar Alfago.
  • Siempre puede incluir reglas explícitas además de esto. Impléntelos con alta prioridad y llame al NN solo cuando no haya una regla explícita para la situación actual. Esto es una reminiscencia del Arquitectura de subsunción.
Licenciado bajo: CC-BY-SA con atribución
scroll top