간단한자가 운전 RC 자동차에 대한지도 학습과 강화 학습


12

나는 재미를 위해 원격 제어식자가 운전 차량을 만들고 있습니다. 온보드 컴퓨터로 Raspberry Pi를 사용하고 있습니다. 저는 자동차 주변 환경에 대한 피드백을 위해 Raspberry Pi 카메라 및 거리 센서와 같은 다양한 플러그인을 사용하고 있습니다. 비디오 프레임을 텐서로 전환하기 위해 OpenCV를 사용하고 있으며 Google의 TensorFlow를 사용하여 도로 경계와 장애물을 배우기 위해 복잡한 신경망을 구축하고 있습니다. 나의 주요 질문은, 자동차를 운전하도록 가르치기 위해지도 학습을 사용해야합니까, 또는 목표와 처벌을 제공하고 강화 학습을해야합니까 (즉, 아무 것도 치지 않고 도로 ​​경계 내에 머무르면서 가능한 빨리 B를 가리켜 야합니까)? 아래는 내가 생각해 낸 장단점 목록입니다.

지도 학습 전문가 :

  • 학습 알고리즘에 대한 입력은 매우 간단합니다. 자동차는 비디오 프레임 텐서 및 센서 거리 측정 값을 전진, 후진 및 각도 휠 변위와 연관시키는 방법을 배웁니다.
  • 나는 차를 내가 원하는대로 정확히 운전하도록 가르 칠 수있다.
  • 이전에 수많은지도 학습 문제를 겪어 왔으며,이 접근법은 기존 기술 세트에 편안하게 맞는 것 같습니다.

지도 학습 단점 :

  • 속도를 가르치는 방법은 명확하지 않으며, 차가 너무 빨리 이동하지 않아 도로에서 벗어나지 않는 한 정확한 속도는 임의적입니다. 나는 훈련하는 동안 빨리 운전할 수 있다고 생각하지만 이것은 거친 접근법처럼 보입니다. 어쩌면 훈련 기간 동안 해당 훈련 세션의 속도에 해당하는 상수 변수를 수동으로 추가 한 다음 학습 알고리즘이 배포 될 때 원하는 속도에 따라이 변수를 설정할 수 있습니까?

강화 학습 전문가 :

  • 다른 사람의 자율 주행 자동차를 경주하는 특정 목적으로 내 차를 만들면 강화 학습은 내 차에 "가능한 한 빨리 도착하도록"말하는 자연적인 방법 인 것 같습니다.
  • RL이 때때로 자율 드론에 사용되는 것을 읽었으므로 이론적으로는 위아래로 걱정할 필요가 없기 때문에 자동차에서 더 쉬워야합니다.

강화 학습 단점 :

  • 강화 학습에는 많은 추가 센서가 필요하다고 생각합니다. 솔직히 내 긴 자동차에는 배터리, 라즈베리 파이 및 브레드 보드를 장착해야한다는 점을 고려할 때 충분한 공간이 없습니다.

  • 자동차는 처음에는 매우 불규칙하게 작동하여 너무 많이 파괴 될 수 있습니다. 학습하는 데 시간이 오래 걸리는 경우도 있습니다 (예 : 몇 개월 또는 몇 년)

  • 나중에 장난감 등불에 멈춰서 명시 적 규칙을 수용 할 수 없습니다. 지도 학습을 통해 수많은 SL 알고리즘 (예 : 신호등을 식별하기위한 Haar Cascade 분류기)을 각 비디오 프레임 사이에서 평가되는 구성 가능한 규칙 엔진에 통합 할 수 있습니다. 따라서 정지 엔진이 주행 알고리즘 훈련의 일부가 아니 었더라도 규칙 엔진은 주행 SL 알고리즘이 적색 신호등을 본다면 주행 SL 알고리즘을 무시할 수 있습니다. RL이이를 수행하기에는 너무 연속적인 것으로 보입니다 (즉, 터미널 상태에서만 중지)
  • 적용된 강화 학습에 대한 경험이 많지 않지만 확실히 학습하고 싶습니다.

이것은 실제로 답이 아닙니다. 실제로 동일한 프로젝트를 수행하고 있습니다 .Q-learning (RL)이있는 자체 운전 차량 (여전히 시작됩니다). 귀하의 프로젝트 코드가 온라인 어딘가에서 구할 수 있는지 묻고 싶습니다. 나에게 매우 도움이 될 것입니다. 이것은 내가 지금 따르는 프로젝트입니다. medium.com/@harvitronix/… Google 딥 Q 학습 (아타리 페이퍼)과 같이 NN과 함께 RL을 사용하지만지도 학습은 사용하지 않습니다. 그의 코드는 여기에 있습니다 : github.com/harvitronix/reinfo
Mahmoud Hossam

@MahmoudHossam 코드의 대체 위치가 있습니까? 당신이 준 링크가 죽었습니다.
Homunculus Reticulli

@MahmoudHossam repo가 ​​다음과 같이 변경된 것 같습니다 : github.com/harvitronix/rl-rc-car
Ryan Zotti

답변:


12

하이브리드 방식을 시도해 보시기 바랍니다.

  • 먼저 데모를 통해 감독 된 방식으로 자동차를 훈련하십시오 . 그것을 제어하고 명령을 레이블로 사용하십시오. 이렇게하면 SL의 모든 장점을 얻을 수 있습니다.
  • 그런 다음 강화 학습을 사용하여 신경망을 미세 조정하십시오. 이를 위해 별도의 센서가 필요하지 않습니다. 거리 센서 (더 큰 거리 = 더 좋음)와 속도 자체에서 보상을 얻을 수 있습니다. 이것은 당신에게 RL의 전문가를 제공하고 당신을 모방하려는 목표 대신 장애물을 피하면서 빠른 운전의 올바른 목표로 NN을 훈련시킵니다.
  • 두 가지 접근 방식을 결합하면 SL과 RL의 장점을 얻을 수 있지만 단점을 피할 수 있습니다. RL은 임의의 동작에서 시작하지 않으며 NN을 강화한 것에서 약간의 점진적인 편차 만 있습니다. AlphaGo 와 함께 Google DeepMind도 이와 유사한 접근 방식을 성공적으로 적용했습니다 .
  • 항상 명시적인 규칙을 포함 할 수 있습니다. 우선 순위가 높은 것을 구현하고 현재 상황에 대한 명확한 규칙이없는 경우에만 NN에 전화하십시오. 이것은 Subsumption Architecture를 연상시킵니다 .

: DeepMind 심지어 자신의 흥미 진진한 기린 체스 NN 결과 오프 신선한 매튜 라이, 뽑아 motherboard.vice.com/en_us/article/...
DukeZhou을
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.