Dla zabawy buduję zdalnie sterowany samochód. Używam Raspberry Pi jako komputera pokładowego; i używam różnych wtyczek, takich jak kamera Raspberry Pi i czujniki odległości, aby uzyskać informacje zwrotne na temat otoczenia samochodu. Używam OpenCV do przekształcania klatek wideo w tensory i używam Google TensorFlow do zbudowania zwiniętej sieci neuronowej do nauki granic drogowych i przeszkód. Moje główne pytanie brzmi: czy powinienem stosować nadzorowaną naukę do nauki prowadzenia samochodu, czy też powinienem zapewniać cele i kary oraz uczyć się wzmacniania (tj. Jak najszybciej dotrzeć do punktu B, nie uderzając niczego i pozostając w granicach drogi)? Poniżej znajduje się lista zalet i wad, które wymyśliłem.
Nadzorowani naukowcy:
- Dane wejściowe do algorytmu uczenia się są dość proste. Samochód uczy się kojarzyć odczyty tensora ramki wideo i odległości czujnika z przemieszczeniem koła do przodu, do tyłu i pod kątem
- Mogę mniej więcej nauczyć samochód prowadzić dokładnie tak, jak chcę (oczywiście bez nadmiernego wyposażenia)
- Wcześniej miałem mnóstwo nadzorowanych problemów z uczeniem się i wydaje się, że takie podejście wygodnie pasuje do mojego istniejącego zestawu umiejętności
Nadzór nad uczeniem się:
- Nie jest jasne, jak uczyć prędkości, a właściwa prędkość jest dość dowolna, o ile samochód nie jedzie tak szybko, że zjeżdża z drogi. Podejrzewam, że mógłbym szybko jeździć podczas treningu, ale wydaje się, że to surowe podejście. Może mógłbym ręcznie dodać stałą zmienną podczas treningu, która odpowiada prędkości dla tej sesji treningowej, a następnie, gdy zostanie wdrożony algorytm uczenia się, ustawiam tę zmienną zgodnie z żądaną prędkością?
Zalety nauki zbrojenia:
- Jeśli buduję swój samochód w konkretnym celu, jakim jest ściganie się samochodami innych ludzi, uczenie się przez wzmocnienie wydaje się być naturalnym sposobem, aby powiedzieć mojemu samochodowi, aby „dotarł tam tak szybko, jak to możliwe”
- Czytałem, że RL jest czasem używany do autonomicznych dronów, więc teoretycznie powinno być łatwiej w samochodach, ponieważ nie muszę się martwić o górę i dół
Wady uczenia się zbrojenia:
Wydaje mi się, że nauka wzmacniania wymagałaby wielu dodatkowych czujników, a szczerze mówiąc, mój długi samochód nie ma tak dużo miejsca w środku, biorąc pod uwagę, że musi również zmieścić akumulator, Raspberry Pi i płytkę
Samochód będzie początkowo zachowywał się bardzo nieobliczalnie, tak bardzo, że może sam się zniszczy. Nauka może również zająć zbyt dużo czasu (np. Miesiące lub lata)
- Nie mogę później wdrożyć wyraźnych zasad, np. Zatrzymać się na zabawkowym czerwonym świetle. Dzięki nadzorowanemu uczeniu się mogłem włączyć wiele algorytmów SL (np. Klasyfikator Cascade Haar do identyfikowania świateł stop) w konfigurowalnym silniku reguł, który jest oceniany między każdą klatką wideo. Silnik reguł byłby zatem w stanie zastąpić algorytm jazdy SL, gdyby zobaczył czerwone światło stopu, mimo że światło to mogło nie być częścią szkolenia algorytmu sterowania. RL wydaje się zbyt ciągły, aby to zrobić (tzn. Zatrzymaj się tylko w stanie terminalnym)
- Nie mam dużego doświadczenia w stosowaniu uczenia wzmacniającego, chociaż zdecydowanie chcę się go uczyć niezależnie od tego
źródło
Odpowiedzi:
Proponuję wypróbować podejście hybrydowe:
źródło