Saya sedang membangun mobil self-controlled yang dikendalikan jarak jauh untuk bersenang-senang. Saya menggunakan Raspberry Pi sebagai komputer internal; dan saya menggunakan berbagai plug-in, seperti kamera Raspberry Pi dan sensor jarak, untuk umpan balik tentang lingkungan mobil. Saya menggunakan OpenCV untuk mengubah bingkai video menjadi tensor, dan saya menggunakan Google TensorFlow untuk membangun jaringan saraf yang berbelit-belit untuk mempelajari batasan dan rintangan jalan. Pertanyaan utama saya adalah, haruskah saya menggunakan pembelajaran terawasi untuk mengajar mobil mengemudi atau haruskah saya memberikan tujuan dan hukuman dan melakukan pembelajaran penguatan (yaitu, sampai ke titik B secepat mungkin tanpa memukul apa pun dan tetap berada dalam batas-batas jalan)? Di bawah ini adalah daftar pro dan kontra yang telah saya buat.
Pro pembelajaran yang diawasi:
- Input ke algoritma pembelajaran sangat mudah. Mobil itu belajar mengasosiasikan pembacaan frame tensor dan jarak sensor dengan perpindahan roda depan, belakang, dan sudut
- Saya bisa kurang lebih mengajarkan mobil untuk mengemudi persis seperti yang saya inginkan (tanpa overfitting, tentu saja)
- Saya telah melakukan banyak masalah pembelajaran yang diawasi sebelumnya, dan pendekatan ini tampaknya cocok dengan keahlian saya yang ada
Kontra pembelajaran yang diawasi:
- Tidak jelas bagaimana cara mengajarkan kecepatan, dan kecepatan yang tepat cukup sewenang-wenang asalkan mobil tidak melaju begitu cepat sehingga membelok dari jalan. Saya kira saya bisa mengemudi cepat selama latihan, tetapi ini sepertinya pendekatan yang kasar. Mungkin saya bisa secara manual menambahkan variabel konstan selama pelatihan yang sesuai dengan kecepatan untuk sesi pelatihan itu, dan kemudian ketika algoritma pembelajaran digunakan, saya mengatur variabel ini sesuai dengan kecepatan yang saya inginkan?
Pro pembelajaran penguatan:
- Jika saya membangun mobil saya dengan tujuan khusus balap mobil self-driving orang lain, pembelajaran penguatan tampaknya menjadi cara alami untuk memberitahu mobil saya untuk "sampai di sana secepat mungkin"
- Saya pernah membaca bahwa RL kadang-kadang digunakan untuk drone otonom, jadi secara teori seharusnya lebih mudah di mobil karena saya tidak perlu khawatir tentang naik turun
Kontra pembelajaran penguatan:
Saya merasa seperti pembelajaran penguatan akan membutuhkan banyak sensor tambahan, dan terus terang mobil kaki panjang saya tidak memiliki banyak ruang di dalamnya mengingat itu juga harus sesuai dengan baterai, Raspberry Pi, dan papan tempat memotong roti
Mobil itu akan berperilaku sangat tidak menentu pada awalnya, sedemikian rupa sehingga mungkin itu menghancurkan dirinya sendiri. Mungkin perlu waktu lama untuk belajar (mis., Berbulan-bulan atau bertahun-tahun)
- Saya tidak bisa memasukkan aturan eksplisit nanti, misalnya, berhenti di lampu merah mainan. Dengan pembelajaran yang diawasi, saya dapat menggabungkan banyak algoritma SL (misalnya, pengklasifikasi Haar Cascade untuk mengidentifikasi lampu latar) ke dalam mesin aturan yang dapat dikonfigurasi yang akan dievaluasi antara setiap bingkai video. Mesin aturan dengan demikian akan dapat mengesampingkan algoritma SL mengemudi jika melihat lampu merah meskipun lampu merah mungkin tidak menjadi bagian dari pelatihan algoritma mengemudi. RL tampaknya terlalu berkelanjutan untuk melakukan ini (mis., Berhenti hanya pada kondisi terminal)
- Saya tidak punya banyak pengalaman dengan pembelajaran penguatan terapan, meskipun saya pasti ingin mempelajarinya
sumber
Jawaban:
Saya sarankan Anda untuk mencoba pendekatan hybrid:
sumber