Putar Ulang yang Diprioritaskan, apa arti pentingnya Pengambilan Sampel?

10

Saya tidak dapat memahami tujuan bobot sampel-penting (IS) di Putar Ulang Prioritas (halaman 5) .

Transisi lebih mungkin disampel dari pengalaman memutar ulang semakin besar "biaya" -nya. Pemahaman saya adalah bahwa 'IS' membantu dengan lancar meninggalkan penggunaan replay yang diprioritaskan setelah kami berlatih cukup lama. Tapi apa yang kita gunakan sebagai contoh, sampling seragam?

Saya kira saya tidak dapat menyadari bagaimana setiap komponen dalam koefisien seperti itu mempengaruhi hasil. Bisakah seseorang menjelaskannya dengan kata-kata?

wi=(1N1P(i))β

Ini kemudian digunakan untuk mengurangi gradien, yang kami coba dapatkan dari transisi.

Dimana:

  • wi adalah "IS"
  • N adalah ukuran buffer Replay Pengalaman
  • P (i) adalah kesempatan untuk memilih transisi i, tergantung pada "seberapa besar biayanya".
  • β mulai dari 0 dan diseret semakin dekat ke 1 dengan setiap zaman baru.

Apakah pemahaman saya tentang parameter ini juga benar?

Sunting Beberapa saat setelah jawaban diterima, saya menemukan sumber tambahan, sebuah video yang mungkin berguna untuk pemula - Simulasi MC: 3.5 Pengambilan Sampel Penting


Sunting As @avejidah katakan dalam komentar untuk jawabannya "1/N digunakan untuk meratakan sampel dengan probabilitas bahwa mereka akan dijadikan sampel " .

Untuk menyadari mengapa ini penting, anggaplah βditetapkan ke 1, kami memiliki 4 sampel, masing-masing memilikiP(i) sebagai berikut:

0.1  0.2   0.3     0.4

Artinya, entri pertama memiliki 10% dari yang dipilih, kedua adalah 20% dll. Sekarang, membalikkan mereka, kita mendapatkan:

 10   5    3.333   2.5

Rata-rata melalui 1/N (yang dalam kasus kami adalah 1/4) kita mendapatkan:

2.5  1.25  0.8325  0.625     ...which would add up to '5.21'

Seperti yang dapat kita lihat mereka lebih dekat ke nol daripada versi yang hanya terbalik (10,5,3.333,2.5). Ini berarti gradien untuk jaringan kami tidak akan diperbesar sebanyak ini, menghasilkan varians yang jauh lebih sedikit saat kami melatih jaringan kami.

Jadi, tanpa ini 1Nkami beruntung memilih sampel yang paling tidak mungkin (0.1), gradien akan diskalakan 10 kali. Akan lebih buruk dengan nilai yang lebih kecil, katakanlah0.00001 kebetulan, jika replay pengalaman kami memiliki ribuan entri, yang cukup biasa.

Kari
sumber

Jawaban:

11

DQN secara intrinsik menderita ketidakstabilan. Dalam implementasi awal, beberapa teknik digunakan untuk meningkatkan stabilitas:

  1. jaringan target digunakan dengan parameter yang tertinggal dari model yang dilatih;
  2. hadiah dipotong ke kisaran [-1, 1];
  3. gradien dipotong ke kisaran [-1, 1] (menggunakan sesuatu seperti Huber Loss atau gradient clipping);
  4. dan yang paling relevan dengan pertanyaan Anda, buffer replay besar digunakan untuk menyimpan transisi.

Melanjutkan pada poin 4, menggunakan sampel acak penuh dari buffer replay besar membantu untuk menghiaskan sampel, karena sama-sama mungkin untuk sampel transisi dari ratusan ribu episode di masa lalu karena untuk sampel yang baru. Tetapi ketika sampel prioritas ditambahkan ke dalam campuran, sampel murni acak ditinggalkan: jelas ada bias terhadap sampel prioritas tinggi. Untuk mengoreksi bias ini, bobot yang sesuai dengan sampel prioritas tinggi disesuaikan sangat sedikit, sedangkan bobot yang sesuai dengan sampel prioritas rendah adalah relativitas yang tidak berubah.

Secara intuitif ini harus masuk akal. Sampel yang memiliki prioritas tinggi cenderung digunakan dalam pelatihan berkali-kali. Mengurangi bobot pada sampel yang sering dilihat ini pada dasarnya memberitahu jaringan, "latih sampel ini, tetapi tanpa banyak tekanan; sampel akan segera terlihat lagi." Sebaliknya, ketika sampel berprioritas rendah terlihat, bobot IS pada dasarnya memberitahu jaringan, "sampel ini kemungkinan tidak akan pernah terlihat lagi, jadi perbarui sepenuhnya." Perlu diingat bahwa sampel prioritas rendah ini memiliki kesalahan TD rendah, dan karenanya mungkin tidak banyak yang dapat dipelajari dari sampel tersebut; Namun, mereka masih berharga untuk tujuan stabilitas.

Dalam praktiknya, parameter beta dianil hingga 1 selama durasi pelatihan. Parameter alfa dapat dianil secara bersamaan, sehingga pengambilan sampel yang diprioritaskan lebih agresif sementara pada saat yang sama lebih kuat mengoreksi bobot. Dan dalam praktiknya, dari makalah yang Anda tautkan, menjaga alfa tetap (0,6) sementara anil beta dari 0,4 ke 1 tampaknya menjadi titik manis untuk pengambilan sampel berbasis prioritas (halaman 14).

Sebagai catatan, dari pengalaman pribadi saya sendiri, mengabaikan bobot IS (yaitu tidak mengoreksi sama sekali) menghasilkan jaringan yang awalnya terlatih dengan baik, tetapi kemudian jaringan tersebut tampak sesuai, lupa apa yang dipelajari (alias lupa bencana) , dan tank. Di Atari Breakout, misalnya, rata-rata meningkat selama 50 juta frame pertama, kemudian rata-rata tangki sepenuhnya. Makalah yang Anda tautkan membahas ini sedikit, dan menyediakan beberapa bagan.

avejidah
sumber
Terima kasih! Saya memiliki keprihatinan mengapa penulis perlu menyeimbangkan1N ketika mereka sudah punya 1P(i)(di dalam berat 'IS'). Bukan1P(i)sudah berdasarkan ukuran koleksinya sih?
Kari
2
Sama-sama. Untuk menjawab pertanyaan dalam komentar, tidak,1N tidak digulung ke dalam 1P(i). P(i)adalah probabilitas memilih sampel i. Itu dihitung menggunakanprioikpriok Yaitu prioritas sampel i daripada jumlah semua prioritas. (Di mana prioritas umumnya dihitung sebagai(td_error+ε)α). Tanpa terlalu banyak detail,1Nada rata-rata (kata kunci) sampel dengan probabilitas bahwa mereka akan dijadikan sampel.
avejidah
1
@ user3180 Titik kepentingan sampel bukanlah untuk mendapatkan penaksir yang tidak bias dari pengembalian yang diharapkan - itu bias karena sifatnya. Intinya adalah bahwa beberapa sampel memiliki dampak lebih pada pelatihan daripada yang lain, dan karenanya harus disampel lebih sering. The bobot mengoreksi untuk bias dengan mengurangi penyesuaian berat badan relatif terhadap prioritas sampel. Bobot ini menjadi semakin penting ketika jaringan mulai menyatu, sehingga digunakan anil. Mengabaikan bobot atau mengoreksi sepenuhnya untuk bias adalah sesuatu yang kertas PER mencakup (lihat gambar 12).
avejidah
2
@ user3180 Sehubungan dengan pertanyaan kedua Anda tentang menggunakan bobot penuh (β = 1): Saya menduga bahwa dalam hal ini Anda umumnya masih akan melihat manfaatnya untuk PER, tetapi umumnya pelatihan akan lebih lambat daripada dengan anil beta. Perlu diingat bahwa ada dua parameter, α dan β, dan bahkan jika Anda memperbaiki β ke 1, parameter α menentukan berapa banyak sampel yang diprioritaskan. Artinya, sampel masih ditarik secara bias, dan, bahkan bias sepenuhnya diperbaiki, solusi di mana jaringan Anda konvergen akan berbeda dari kasus yang seragam. Sekali lagi, lihat gambar 12 di kertas PER.
avejidah
1
@ user3180 Saya tidak yakin bisa memberikan jawaban matematika yang bagus; Namun, alasan praktisnya adalah dengan memprioritaskan jaringan kereta pada dataset yang berbeda dari kasus seragam. Dengan 0 <α <= 1, sampel diprioritaskan, sehingga tidak seragam dan bias. Tentu, Anda dapat menyesuaikan bobot untuk mengoreksi bias itu, tetapi sampel masih berbeda secara drastis dari kasus seragam. Pelatihan pada set sampel yang berbeda menghasilkan solusi yang berbeda, terlepas dari penyesuaian berat.
avejidah
0

Saya ragu. Sebagai kertas PER,

Untuk alasan stabilitas, kami selalu menormalkan bobot dengan 1 / maxi sehingga mereka hanya menurunkan skala pembaruan

Jadi bukankah faktor 1 / N menjadi tidak efektif? misalnya, perhatikan sampel terakhir,

case 1 without N : 0.25/10 = 0.25
case 2 with N=4; 0.625/2.5 = 0.25.

begitu,

Wi = pow(N,-beta) * pow(Pi, -beta)
Wmax = pow(N,-beta) * pow(Pmin,-beta)

dengan menormalkan,

Wi/Wmax will cancel out the pow(N, -beta).

Tolong bantu saya jika pemahaman saya salah.

Karthikeyan Nagarajan
sumber
Anda masih membutuhkannya. Misalnya, pertimbangkan untuk memiliki 100 entri, dan nilai maksimum beberapa entri adalah, katakanlah, 5. Sekarang bayangkan beralih ke 1 triliun entri.
Kari
Maaf, saya tidak mengerti Anda. Saya telah memperbarui dengan formula. Silakan periksa dan beri tahu saya tanggapan Anda.
Karthikeyan Nagarajan