Dalam makalah DeepMind tentang video game Deep Q-Learning untuk Atari (di sini ), mereka menggunakan metode epsilon-serakah untuk eksplorasi selama pelatihan. Ini berarti bahwa ketika suatu tindakan dipilih dalam pelatihan, tindakan tersebut dapat dipilih sebagai tindakan dengan nilai q tertinggi, atau tindakan acak. Memilih antara keduanya adalah acak dan berdasarkan pada nilai epsilon, dan epsilon dianil selama pelatihan sehingga pada awalnya, banyak tindakan acak diambil (eksplorasi), tetapi saat pelatihan berlangsung, banyak tindakan dengan nilai q maksimum diambil (eksploitasi).
Kemudian, selama pengujian, mereka juga menggunakan metode epsilon-serakah ini, tetapi dengan epsilon pada nilai yang sangat rendah, sehingga ada bias yang kuat terhadap eksploitasi dibandingkan eksplorasi, lebih memilih memilih tindakan dengan nilai q tertinggi daripada tindakan acak. Namun, tindakan acak masih terkadang dipilih (5% dari waktu).
Pertanyaan saya adalah: Mengapa eksplorasi diperlukan pada saat ini, mengingat pelatihan telah dilakukan? Jika sistem telah mempelajari kebijakan optimal, lalu mengapa tindakan tidak dapat selalu dipilih sebagai tindakan dengan nilai q tertinggi? Bukankah eksplorasi harus dilakukan hanya dalam pelatihan, dan kemudian setelah kebijakan optimal dipelajari, agen hanya bisa berulang kali memilih tindakan optimal?
Terima kasih!
sumber
Jawaban:
Dalam makalah alam mereka menyebutkan:
Saya pikir apa yang mereka maksudkan adalah 'untuk meniadakan efek negatif dari over / under fitting'. Menggunakan epsilon 0 adalah pilihan yang sepenuhnya eksploitatif (seperti yang Anda tunjukkan) dan membuat pernyataan yang kuat.
Misalnya, pertimbangkan permainan labirin di mana perkiraan-Q agen saat ini dikonvergensi dengan kebijakan optimal kecuali untuk satu kisi, di mana ia dengan rakus memilih untuk bergerak menuju batas yang membuatnya tetap berada di kisi yang sama. Jika agen mencapai keadaan seperti itu, dan ia memilih tindakan Max Q, itu akan terjebak di sana untuk selamanya. Namun, menjaga elemen eksploratif / stokastik samar-samar dalam kebijakannya (seperti sejumlah kecil epsilon) memungkinkannya untuk keluar dari keadaan tersebut.
Karena itu, dari implementasi kode saya telah melihat (dan mengkodekan sendiri) dalam kinerja praktek sering kali diukur dengan kebijakan serakah untuk alasan yang tepat Anda daftar dalam pertanyaan Anda.
sumber
sumber
Saya pikir tujuan pengujian adalah untuk mengetahui bagaimana sistem merespons dalam situasi dunia nyata.
Opsi 2:
Jika mereka khawatir akan rapuh, bermain melawan pemain yang kurang "rasional", maka mereka mungkin "menganil" skor pelatihan mereka agar tidak terlalu memperkirakan mereka.
Opsi 3:
Ini adalah asap ajaib mereka. Akan ada potongan-potongan yang tidak bisa dan tidak ingin mereka bagikan. Mereka dapat menerbitkan ini untuk mengaburkan sesuatu yang merupakan hak milik atau sangat relevan untuk bisnis mereka yang tidak ingin mereka bagikan.
Opsi 4:
Mereka dapat menggunakan tes berulang, dan berbagai nilai epsilon untuk menguji berapa banyak "lemak" yang tersisa dalam sistem. Jika mereka memiliki pengacakan yang lemah, atau begitu banyak sampel yang bahkan pengacakan yang adil pun mulai terulang kembali, maka metode tersebut dapat "mempelajari" perilaku yang tidak benar dilakukan terhadap bias pseudo-acak. Ini memungkinkan pemeriksaan itu dalam fase pengujian.
Saya yakin ada setengah lusin alasan penting lainnya, tetapi ini adalah apa yang dapat saya pikirkan.
EDIT: note to self, saya sangat suka pemikiran "rapuh". Saya pikir ini mungkin merupakan kelemahan eksistensial dari AI tingkat menengah generasi pertama.
sumber
Terutama karena input yang telah diproses mengandung riwayat keadaan yang ditemui sebelumnya, kekhawatirannya adalah, alih-alih menyamaratakan gameplay yang mendasari, agen hanya menghafal lintasan optimal untuk game tertentu dan memutar ulang mereka selama fase pengujian; inilah yang dimaksud dengan "kemungkinan overfitting selama evaluasi" . Untuk lingkungan deterministik ini jelas tetapi juga untuk menghafal transisi keadaan stokastik (yaitu overfitting) dapat terjadi. Menggunakan pengacakan selama fase pengujian, dalam bentuk no-op mulai dari panjang acak serta sebagian tindakan acak selama permainan, memaksa algoritma untuk berurusan dengan keadaan yang tidak terduga dan karenanya memerlukan beberapa derajat generalisasi.
Namun, jika Anda menjalankan dalam lingkungan dengan dinamika sistem yang berkembang (yaitu transisi keadaan dasar atau penghargaan berubah dari waktu ke waktu) maka Anda harus mempertahankan beberapa tingkat eksplorasi dan memperbarui kebijakan Anda sesuai untuk mengikuti perubahan.
sumber