Tujuan kebisingan Dirichlet di kertas AlphaZero


10

Dalam makalah DeepGoGo AlphaGo Zero dan AlphaZero , mereka menggambarkan menambahkan Dirichlet noise ke probabilitas sebelumnya dari tindakan dari simpul akar (board state) di Pencarian Pohon Monte Carlo:

Eksplorasi tambahan dicapai dengan menambahkan Dirichlet noise ke probabilitas sebelumnya di simpul akar , khususnya , di mana dan ; kebisingan ini memastikan bahwa semua gerakan dapat dicoba, tetapi pencarian mungkin masih mengesampingkan gerakan buruk. P ( s , a ) = ( 1 - ε ) p a + ε η a η Dir ( 0,03 ) ε = 0,25s0P(s,a)=(1ε)pa+εηaηDir(0.03)ε=0.25

(AlphaGo Zero)

Dan:

Dirichlet noise telah ditambahkan ke probabilitas sebelumnya di simpul root; ini diskalakan dalam proporsi terbalik dengan jumlah perkiraan langkah hukum dalam posisi tipikal, ke nilai untuk catur, shogi, dan Go masing-masing.α = { 0,3 ,Dir(α)α={0.3,0.15,0.03}

(AlphaZero)

Dua hal yang saya tidak mengerti:

  1. P(s, a)adalah vektor dimensi. Apakah singkatan untuk distribusi Dirichlet dengan parameter, masing-masing dengan nilai ?Dir ( α ) n αnDir(α)nα

  2. Saya hanya menemukan Dirichlet sebagai konjugat sebelum distribusi multinomial. Mengapa diambil di sini?

Untuk konteks, P(s, a)hanya satu komponen perhitungan PUCT (polynomial upper confidence tree, varian pada batas kepercayaan atas) untuk keadaan / tindakan tertentu. Ditekan oleh konstanta dan metrik untuk berapa kali tindakan yang diberikan telah dipilih di antara saudara kandungnya selama MCTS, dan ditambahkan ke nilai tindakan yang diperkirakan Q(s, a):

  • PUCT(s, a) = Q(s, a) + U(s, a).
  • U(s,a)=cpuctP(s,a)bN(s,b)1+N(s,a) .

1
Oke jadi Dir (a) memang berarti Dir (a, a, ...). Untuk a <1, ini akan terkonsentrasi di dekat vektor basis standar R ^ n (semakin kecil, semakin erat). Jadi Dirichlet (a) membantu (1) memegang jumlah parameter konstan, (2) berkonsentrasi dekat vektor basis, dan (3) lebih memilih tidak satupun dari mereka.
biarawan

Jawaban:


6

Pertanyaan 1 langsung, di sini adalah vektor pengulangan dari nilai yang diberikan. (Sebagaimana dijawab oleh Max S.)α

Pertanyaan 2 lebih menarik: Distribusi Dirichlet memiliki interpretasi berikut yang relevan dalam konteks ini: Ketika adalah vektor yang diamati dari hasil-hitungan yang diambil dari beberapa distribusi kategori (tidak diketahui) dengan probabilitas hasil , kemudian adalah kemungkinan bahwa adalah distribusi yang mendasari sebenarnya mengingat Anda mengamati sebagai jumlah. (Ini pada dasarnya adalah definisi distribusi ganda.)απDir(α)(π)Cat(π)α

Sekarang P(s,a)memperkirakan probabilitas bahwa seorang pemain yang baik akan bermain adi s, yang merupakan parameter dari distribusi kategoris, yang AlphaZero ingin belajar. Jadi akan mencicipi taksiran yang masuk akal untuk jika kami mengamati pergerakan pemain yang baik kali. Tetapi jika beberapa , maka semua memiliki , mencegah eksplorasi. Dengan menambahkan suara, mereka menganggap bahwa mereka telah mengamati setiap gerakan yang dimainkan beberapa kali (di sini dipilih 0,3, 0,15, 0,03).Dir(α)pi=α α i = 0 π D i r ( α ) π i = 0 αP(s,a)ααi=0πDir(α)πi=0α

Adapun cara mereka mendapatkan konstanta, tebakan saya adalah bahwa mereka menganggap telah mengamati ~ 10 permainan acak di setiap pertandingan: Dalam catur, mengasumsikan bahwa Anda telah melihat setiap gerakan dimainkan 0,3 kali. Mengingat ada ~ 35 gerakan yang tersedia menurut Allis , penulis menganggap Anda telah melihat ~ 10 gerakan acak di setiap node. Dalam Go, jika kita mengasumsikan ~ 270 gerakan hukum rata-rata (3/4 dari 361 posisi dewan), kita melihat setara dengan mengamati ~ 8 gerakan acak. (Saya tidak punya data untuk Shogi.)Dir(0.3)


3

Untuk pertanyaan nomor 1 jawabannya adalah ya, adalah vektor, tetapi dalam hal ini semua nilainya sama. Menurut wikipedia ini disebut distribusi Dirichlet simetris, dan digunakan ketika "tidak ada pengetahuan sebelumnya yang lebih menyukai satu komponen daripada yang lain". Dalam hal ini ini berarti Anda tidak ingin menambahkan lebih banyak suara ke komponen tertentu.α

Untuk pertanyaan 2, sampel yang diambil dari distribusi Dirichlet memiliki properti yang elemen-elemennya akan berjumlah 1. Saya menganggap mereka menggunakan ini untuk memastikan bahwa setelah menambahkan kebisingan, dan elemen-elemen masih akan berjumlah 1.


Terima kasih. Selain menjumlahkan satu (yang mungkin juga kita lakukan dengan menskalakan beberapa set distribusi sewenang-wenang), ia lebih memilih vektor basis standar. Itu sepertinya berguna.
biarawan
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.