Memprogram robot yang mengikuti garis dengan pembelajaran penguatan


15

Saya sedang mempertimbangkan pemrograman robot garis berikut menggunakan algoritma pembelajaran penguatan. Pertanyaan yang saya renungkan adalah bagaimana saya bisa mendapatkan algoritma untuk belajar menavigasi melalui jalur sembarang?

Setelah mengikuti Buku Sutton & Barto untuk pembelajaran penguatan, saya menyelesaikan masalah olahraga yang melibatkan arena pacuan kuda di mana agen mobil belajar untuk tidak keluar jalur dan mengatur kecepatannya. Namun, masalah latihan itu membuat agen belajar bagaimana menavigasi trek yang dilatihnya.

Apakah itu dalam lingkup penguatan pembelajaran untuk mendapatkan robot untuk menavigasi jalan sewenang-wenang? Apakah agen benar - benar harus memiliki peta sirkuit atau jalur balapan? Parameter apa yang bisa saya gunakan untuk ruang keadaan saya?


1
Saya tidak tahu caranya, tetapi saya yakin bahwa adalah mungkin untuk mengajarkannya agar tetap berada di jalur, terlepas dari bentuknya. Tujuan pengajaran dalam kasus ini adalah keputusan lokal yang diambil robot berdasarkan input langsungnya (atau mungkin beberapa sejarah). Dengan cara ini, tidak masalah apa bentuk jalannya, karena semua keputusan bersifat lokal.
Shahbaz

@ Shahbaz - Apa yang akan Anda sarankan saya gunakan untuk ruang negara?
Tuan Loh.

Saya sebenarnya tidak yakin. Meskipun saya telah belajar AI di universitas, itu tidak pernah menjadi bidang pekerjaan / penelitian saya. Jawaban yang Anda terima tampaknya masuk akal!
Shahbaz

Apakah Anda menggunakan jawaban untuk menguji penurunan harga? Anda bisa menulis apa yang Anda inginkan dan melihat rendering langsung di bawahnya, dan kemudian tidak mempostingnya.
Shahbaz

Jawaban:


8

Salah satu langkah kunci dari setiap algoritma pembelajaran mesin adalah kemampuannya untuk menggeneralisasi (yaitu menerapkan apa yang telah dipelajari untuk skenario yang sebelumnya tidak terlihat). Pembelajar penguatan (RL) dapat menggeneralisasi dengan baik tetapi kemampuan ini sebagian merupakan fungsi dari formulasi ruang-ruang dalam pengalaman saya. Ini berarti bahwa jika Anda dapat menemukan pengaturan yang tepat maka pelajar RL tidak perlu peta sirkuit balapan.

Ini meninggalkan pertanyaan tentang parameter mana yang digunakan. Tanpa mengetahui lebih lanjut tentang sensor yang tersedia pada robot Anda, saya hanya bisa berspekulasi. Kecenderungan pertama saya adalah mencoba menyandikan orientasi relatif dari garis dan robot (yaitu robot yang cenderung ke kanan, kiri, atau hanya bergerak sejajar dengan garis). Melakukannya akan menghasilkan ruang-negara kecil yang bagus. Meskipun tidak sepenuhnya diperlukan itu akan membuat implementasi yang cepat dan sederhana. Lebih jauh, jika robot tidak akan bergerak dengan kecepatan konstan maka dapat membantu untuk menyandikan kecepatan robot karena robot harus bereaksi lebih cepat ketika bergerak dengan kecepatan lebih tinggi.


Tanpa peta, ruang keadaan hanyalah apa yang dapat dirasakan robot dari posisi terdekatnya. Jadi sampai batas tertentu, peta hanyalah cara untuk "melihat ke depan". Perilaku yang dipelajari dalam skenario tanpa peta pada dasarnya adalah "melakukan hal yang sama seperti sebelumnya tetapi menjadi lebih lambat karena kita tidak tahu di mana belokan saat ini". (Agaknya, Anda akan dapat mengetahui di mana tepi trek berada.)
Ian

Suatu kebijakan memberi tahu kita kendali apa yang harus diterapkan pada suatu negara. Jika ruang-negara diformulasikan dengan baik untuk agen RL maka skenario yang berbeda mungkin terlihat sama di ruang-negara dan menghasilkan perilaku yang sama. Ini disebut generalisasi dan diinginkan bila dilakukan dengan benar. Robot akan memiliki kecepatan maksimum berdasarkan kecepatan loop kontrolnya. Perilaku yang dipelajari tidak harus melambat. Jika hadiah berbanding terbalik dengan lamanya waktu lari maka agen akan cenderung untuk memaksimalkan kecepatannya sehubungan dengan kecepatan loop kontrol itu.
DaemonMaker

0

Saya tidak yakin apa jenis robot yang Anda miliki tetapi saya telah melakukan jalur penyelamatan robocup selama beberapa tahun sekarang. Saya menyadari bahwa jika Anda ingin mengikuti garis dengan baik menggunakan PID adalah pilihan yang baik. Biarkan saya memperluas ini. Jika Anda membayangkan dua sensor cahaya di kedua sisi garis, Anda ingin mereka memiliki nilai yang sama sehingga garis berada di tengah. Anda kemudian dapat menggunakan perbedaan antara nilai kedua sensor untuk mengubah persentase putaran robot. Dengan teknik ini dimungkinkan untuk mendapatkan robot untuk mengikuti garis dengan kecepatan luar biasa. Saya hanya seperti Anda telah merenungkan membuat robot belajar untuk meningkatkan kemampuan pelacakan garisnya. Apa yang saya hasilkan adalah mulai dengan nilai PID awal Anda lebih tinggi dari yang Anda inginkan dan menggunakan sensor gyroscopic untuk mengukur frekuensi osilasi robot saat melacak garis. Anda dapat dari sana membuat fungsi Anda sendiri untuk menentukan berapa banyak untuk menurunkan nilai-nilai Anda dengan untuk mendapatkan sistem yang stabil, ini bukan kecerdasan buatan lebih seperti algoritma optimasi otomatis, tapi hei 18 dan saya belajar bagaimana kode dari Internet. Saya harap ini membantu. Jika Anda memiliki pertanyaan email saya ini bukan alamat email utama saya jadi saya tidak akan memeriksanya secara teratur. 69darkeagle@sigaint.org

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.