Học có giám sát và học tăng cường cho một chiếc xe RC tự lái đơn giản


12

Tôi đang chế tạo một chiếc xe tự lái điều khiển từ xa để giải trí. Tôi đang sử dụng Raspberry Pi làm máy tính trên máy bay; và tôi đang sử dụng nhiều plugin khác nhau, chẳng hạn như camera Raspberry Pi và cảm biến khoảng cách, để phản hồi về môi trường xung quanh xe. Tôi đang sử dụng OpenCV để biến các khung hình video thành các tenxơ và tôi đang sử dụng TensorFlow của Google để xây dựng một mạng lưới thần kinh phức tạp để tìm hiểu các ranh giới và chướng ngại vật trên đường. Câu hỏi chính của tôi là, tôi có nên sử dụng học có giám sát để dạy lái xe hay tôi nên cung cấp mục tiêu và hình phạt và học tăng cường (tức là đến điểm B càng nhanh càng tốt trong khi không đâm vào bất cứ thứ gì và ở trong phạm vi đường)? Dưới đây là danh sách những ưu và nhược điểm mà tôi đã đưa ra.

Giám sát học tập ưu:

  • Các đầu vào cho thuật toán học tập khá đơn giản. Chiếc xe học cách liên kết các thang đo khung hình video và đọc khoảng cách cảm biến với chuyển vị bánh xe tiến, lùi và góc
  • Tôi ít nhiều có thể dạy chiếc xe lái chính xác như tôi muốn (dĩ nhiên không cần quá nhiều)
  • Tôi đã thực hiện hàng tấn vấn đề học tập có giám sát trước đây và cách tiếp cận này có vẻ phù hợp với bộ kỹ năng hiện có của tôi

Nhược điểm học tập giám sát:

  • Không rõ làm thế nào để dạy tốc độ, và tốc độ chính xác là khá tùy tiện miễn là chiếc xe không đi quá nhanh đến nỗi nó cản đường. Tôi cho rằng tôi có thể lái xe nhanh trong quá trình đào tạo, nhưng đây có vẻ là một cách tiếp cận thô thiển. Có lẽ tôi có thể tự thêm một biến không đổi trong quá trình đào tạo tương ứng với tốc độ cho buổi đào tạo đó, và sau đó khi thuật toán học được triển khai, tôi đặt biến này theo tốc độ tôi muốn?

Củng cố học tập ưu điểm:

  • Nếu tôi chế tạo chiếc xe của mình với mục đích cụ thể là đua xe tự lái của người khác, học tăng cường dường như là cách tự nhiên để nói với chiếc xe của tôi "đến đó nhanh nhất có thể"
  • Tôi đã đọc rằng RL đôi khi được sử dụng cho máy bay không người lái tự trị, vì vậy về mặt lý thuyết, nó sẽ dễ dàng hơn trong xe hơi vì tôi không phải lo lắng về việc lên xuống

Nhược điểm học tập củng cố:

  • Tôi cảm thấy việc học tăng cường sẽ cần rất nhiều cảm biến bổ sung, và thật lòng mà nói, chiếc xe dài của tôi không có nhiều không gian bên trong khi xem xét rằng nó cũng cần lắp pin, Raspberry Pi và bảng điều khiển

  • Chiếc xe sẽ hoạt động rất thất thường lúc đầu, đến mức có thể nó tự hủy. Nó cũng có thể mất một thời gian dài vô lý để học (ví dụ: tháng hoặc năm)

  • Tôi không thể tạo ra các quy tắc rõ ràng sau này, ví dụ: dừng lại ở đèn đỏ đồ chơi. Với việc học có giám sát, tôi có thể kết hợp nhiều thuật toán SL (ví dụ: trình phân loại Haar Cascade để xác định đèn chiếu) vào một công cụ quy tắc có thể định cấu hình được đánh giá giữa mỗi khung hình video. Do đó, công cụ quy tắc sẽ có thể ghi đè thuật toán lái xe SL nếu nó nhìn thấy đèn dừng màu đỏ mặc dù đèn dừng có thể không phải là một phần của việc đào tạo thuật toán lái xe. RL dường như quá liên tục để làm điều này (tức là, chỉ dừng lại ở trạng thái cuối)
  • Tôi không có nhiều kinh nghiệm với việc học tăng cường ứng dụng, mặc dù tôi chắc chắn muốn học nó bất kể

Đây thực sự không phải là một câu trả lời, tôi thực sự đang thực hiện cùng một dự án, một chiếc xe tự lái với Q-learning (RL) (vẫn đang ở giai đoạn đầu), và tôi muốn hỏi liệu mã dự án của bạn có sẵn ở đâu đó không, trực tuyến sẽ rất hữu ích cho tôi Đây là dự án tôi đang theo dõi ngay bây giờ: Medium.com/@harvitronix/ nam anh ấy sử dụng RL với NN như google deep Q learning (bài báo Atari), nhưng anh ấy không sử dụng phương pháp học có giám sát. Mã của anh ấy có sẵn ở đây: github.com/harvitronix/reinfo
Mahmoud Hossam

@MahmoudHossam bạn có vị trí thay thế cho mã không? Liên kết bạn đưa ra đã chết.
Homunculus Reticulli

@MahmoudHossam Có vẻ như repo đã đổi thành: github.com/harvitronix/rl-rc-car
Ryan Zotti

Câu trả lời:


12

Tôi khuyên bạn nên thử một phương pháp lai:

  • Đầu tiên, đào tạo chiếc xe của bạn trong thời trang có giám sát bằng cách trình diễn . Chỉ cần kiểm soát nó và sử dụng các lệnh của bạn như là nhãn. Điều này sẽ cho phép bạn có được tất cả các ưu điểm của SL.
  • Sau đó, tinh chỉnh mạng lưới thần kinh của bạn bằng cách học tăng cường. Bạn không cần thêm cảm biến cho điều đó: phần thưởng có thể nhận được từ cảm biến khoảng cách (khoảng cách lớn hơn = tốt hơn) và từ chính tốc độ. Điều này sẽ cung cấp cho bạn những ưu điểm của RL và huấn luyện NN của bạn đến mục tiêu chính xác là lái xe nhanh trong khi tránh chướng ngại vật thay vì mục tiêu bắt chước bạn.
  • Kết hợp cả hai cách tiếp cận sẽ giúp bạn có được những ưu điểm của cả SL và RL trong khi tránh được nhược điểm của chúng. RL sẽ không bắt đầu từ hành vi ngẫu nhiên, chỉ là những sai lệch nhỏ dần so với những gì bạn nghĩ về NN. Một cách tiếp cận tương tự đã được Google DeepMind áp dụng thành công với AlphaGo .
  • Bạn luôn có thể bao gồm các quy tắc rõ ràng trên đầu trang này. Thực hiện chúng với mức độ ưu tiên cao và chỉ gọi NN khi không có quy tắc rõ ràng cho tình huống hiện tại. Điều này gợi nhớ đến Kiến trúc dự phòng .

DeepMind thậm chí đã hạ gục Matthew Lai, làm mới kết quả Cờ vua Hươu cao cổ thú vị của anh ta: bo mạch
chủ.vice.com / en_us / article / ám
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.