Memahami AlphaZero

29

Baru-baru ini, muncul berita bahwa tim peneliti DeepMind Alphabet telah memperluas mesin pembelajaran mesin mereka untuk bermain Shogi dan catur. Rupanya, setelah hanya beberapa jam belajar mandiri, artinya dengan hanya bermain melawan dirinya sendiri mengingat aturan permainan, kinerjanya dalam catur telah melampaui mesin unggulan saat ini seperti Stockfish 8. Saya pribadi belum tahu bagaimana tepatnya pertandingan itu diatur, seperti dalam kondisi apa Stockfish ditetapkan untuk melakukan, karena jika waktu perhitungan mesin terbatas mampu melakukan sangat buruk. Bagaimanapun, ini adalah pencapaian yang sangat mengesankan, karena bahkan jika ternyata seseorang bisa membuat Stockfish lebih optimal, dengan beberapa jam pelatihan tambahan, AlphaZero akan melampaui lagi tingkat permainan, yang berarti AlphaZero secara fundamental lebih kuat daripada yang ada saat ini mesin catur standar berdasarkan fungsi evaluasi heuristik.

Sekarang dalam terang berita ini, akan lebih baik jika seseorang bisa menguraikan perbedaan utama dalam cara kerja mesin catur yang dipelajari mesin dibandingkan dengan mesin standar yang kita semua gunakan. Lebih konkret:

  1. Bukankah fungsi evaluasi yang digunakan AlphaZero, dilatih oleh metode pembelajaran mesin, pada akhirnya hanyalah fungsi evaluasi heuristik lainnya? Jika ya, apakah akan adil untuk mengatakan bahwa perbedaan mendasar antara fungsi evaluasi dari dua mesin, adalah fakta bahwa Stockfish memiliki fungsi evaluasi yang dioptimalkan yang disesuaikan dengan tangan manusia, artinya definisi fungsi untuk mengoptimalkan tetap, sedangkan untuk AlphaZero, fungsi evaluasi target terus-menerus didefinisikan ulang melalui pelatihan tambahan (misalnya melalui permainan mandiri)? Menjadikan yang terakhir pendekatan yang jauh lebih dinamis.
  2. Pada akhirnya, secara samar-samar, sebuah mesin seperti Stockfish, menerapkan fungsi evaluasinya pada pohon gerakan yang mungkin, memutuskan cabang mana yang akan disimpan dan mana yang akan dijatuhkan, kemudian melalui beton yang lebih dalamanalisis masing-masing cabang, sekali lagi melalui fungsi evaluasinya, ia menggambarkan cabang mana yang menghasilkan nilai tertinggi, dan itu menjadi variasi utama (tentu saja ada banyak teknik canggih di sekitar proses ini untuk memangkas pohon besar ini secara efisien). Artinya, untuk setiap posisi, rutin yang sangat konkret ini harus diulangi untuk Stockfish untuk membuat keputusan. Sebaliknya, saya membayangkan AlphaZero melakukan sesuatu yang sangat berbeda, yaitu, ia tidak bergantung pada analisis konkrit dari pohon kemungkinan pergerakan pada posisi tertentu, sebaliknya fungsi evaluasinya pada dasarnya memberikan nilai pada posisi itu (yang secara intuitif mirip dengan menempatkan posisi saat ini dalam analogi dengan semua posisi lain yang telah dilatih untuk), tanpa harus melakukan konkretanalisis seperti yang dilakukan Stockfish, atau bahkan pemain manusia. Apakah ini sama sekali gambaran yang bagus tentang cara kerja AlphaZero atau mesin pembelajaran mesin yang serupa?

  3. Kita tahu bahwa ruang posisi catur cukup besar sehingga setiap upaya pengambilan sampel semua posisi di dalamnya akan pada prinsipnya sepenuhnya sia-sia (kompleksitas EXPTIME), yang akan menyarankan bahwa tidak ada jumlah pelatihan melalui permainan mandiri yang cukup untuk telah menjelajahi semua posisi, jadi bagaimana hasil akhirnya bisa baik meskipun berpotensi mengeksplorasi sebagian kecil dari posisi ruang melalui permainan mandiri? Apa ide kunci yang dimainkan di sini?

  4. Dugaan saya adalah, AlphaZero memiliki cara yang sangat optimal untuk membandingkan posisi apa pun yang diberikan, bahkan jika baru, dengan posisi yang sebelumnya dikunjungi dalam rangkaian pelatihannya, semakin dekat perbandingan, semakin valid evaluasi yang dapat diambil dari perbandingan. Misalnya, ketika memainkan langkah Bg5 di game 5 , ia harus menjelajahi struktur yang sama selama pelatihannya, yaitu ia dapat mengenali bahwa posisi ini pada dasarnya setara dengan (yang mungkin sepenuhnya) berbeda yang dipelajari dalam pelatihannya, di analogi dengan bagaimana pengenalan wajah dicapai melalui pembelajaran mesin, dan sebagai hasilnya ia menyimpulkan Bg5 harus menjadi langkah terbaik, seperti dalam (atau mereka) posisi serupa lainnya. Apakah ini tebakan yang benar? Saya tidak tahu bagaimana perbandingan ini selesai, karena pasti tidak mungkin untuk menyimpan semua posisi yang terlatih dan menguraikannya setiap kali.

Ini hanyalah upaya untuk mendapatkan wawasan tentang cara kerja AlphaZero dan bagaimana hal itu sampai pada suatu keputusan yang diberikan posisi.

pengguna929304
sumber

Jawaban:

18
  • Bagaimana cara AlphaZero memilih langkah dalam pencarian?

Ini sangat jelas dari koran.

Setiap hasil simulasi dengan memilih di setiap negara sa bergerak dengan jumlah kunjungan rendah, probabilitas langkah tinggi dan memilih ...

Apa artinya? AlphaZero telah melatih probabilitas untuk setiap gerakan (akhir halaman 2 di kertas) dari jaringan saraf yang dalam. Selama pencarian, ia mengambil langkah yang sebanding dengan probabilitas itu, dan juga simpul yang memiliki jumlah rendah (untuk memastikan ruang pengambilan sampel dieksplorasi). Ini bukan konsep baru, Pencarian Pohon Monte Carlo telah di literatur sebelum Google ada.

------ (Sangat) Contoh kasar ------

Kami memiliki posisi, dan kami memiliki dua langkah hukum.

  • Langkah 1 bagus dan masuk akal
  • Langkah 2 menempatkan raja Anda sendiri dalam bahaya tanpa kompensasi

Menurut makalah itu, model yang terlatih mungkin memperkirakan probabilitas sebagai (0,90, 0,10). Katakanlah AlphaZero menggunakan 4 iterasi di Monte Carlo. Iterasi dapat terlihat seperti:

Iterasi 1 : Pilih langkah 1 karena memiliki probabilitas tertinggi. Lakukan simulasi dari langkah 1. Iterasi 2 : Pilih langkah 1 karena memiliki probabilitas tertinggi. Lakukan simulasi dari langkah 1. Iterasi 3 : Pilih langkah 1 karena memiliki probabilitas tertinggi. Lakukan simulasi dari langkah 1.

Sekarang, kita berada di iterasi 4. Meskipun langkah 1 memiliki probabilitas estimasi lebih tinggi tetapi langkah 2 belum dicari ("jumlah kunjungan rendah" di koran), sekarang AlphaZero akan memilih langkah 2, dan melakukan simulasi.

Kedua langkah akan dipertimbangkan, tetapi AlphaZero akan menempatkan lebih banyak sumber daya komputasi pada langkah 1 (hal yang baik).

AlphaZero kemudian akan mengambil langkah dengan hasil yang diharapkan terbaik.

------------------ Pertanyaan Anda: ------------------

Bukankah fungsi evaluasi yang digunakan AlphaZero, dilatih oleh metode pembelajaran mesin, pada akhirnya hanyalah fungsi evaluasi heuristik lainnya?

Fungsi evaluasi yang terlatih adalah jaringan saraf yang dalam, itu bukan seperangkat aturan heuristik, seperti apa yang Anda lihat di Stockfish. Tidak ada yang mengerti sepenuhnya tentang (bahkan tim Google) jaringan terlatih, itu hanya berfungsi. Beginilah cara NN bekerja secara umum.

sedangkan untuk AlphaZero, fungsi evaluasi target terus-menerus didefinisikan ulang melalui fungsi evaluasi target terus-menerus didefinisikan ulang melalui pelatihan tambahan.

Fungsi evaluasi di AlphaZero adalah seperangkat neuron terlatih (bias + bobot). Tim Google menggunakan mesin yang sangat kuat untuk melatih parameter. Secara umum, semakin banyak sumber daya yang dapat Anda investasikan dalam pelatihan model pembelajaran yang mendalam, semakin baik parameter yang Anda dapatkan.

(2)

Stockfish menggunakan alpha-beta, sedangkan AlphaZero menggunakan Monte-Carlo. Mereka adalah dua algoritma yang sangat berbeda. Algoritma alpha-beta mengasumsikan batas bawah / atas, sementara Monte-Carlo membuat simulasi dari akar ke daun.

untuk menjelajahi semua posisi, lalu bagaimana hasil akhirnya bisa baik meskipun berpotensi mengeksplorasi sebagian kecil dari posisi ruang melalui permainan mandiri? Apa ide kunci yang dimainkan di sini?

Google tidak mengklaim bahwa mereka telah memecahkan catur, bahkan mesin mereka yang kuat pun tidak dapat menghitung semua posisi catur. Tetapi mereka tidak harus ... itulah gunanya belajar mesin, model "belajar" dari set pelatihan. Dalam hal ini, set pelatihan berasal dari bermain sendiri. Gagasan utamanya adalah memainkan sebanyak mungkin game berkualitas bagus melawan dirinya sendiri sebaik mungkin dan secepatnya.

Misalnya, ketika memainkan langkah Bg5 di game 5, ia harus menjelajahi struktur yang sama selama pelatihannya,

Saya tidak berpikir AlphaZero menemukan posisi yang sama persis di permainan pelatihan. Saya pikir membaca cepat tentang Monte-Carlo adalah ide yang bagus:

https://chessprogramming.wikispaces.com/Monte-Carlo+Tree+Search

AlphaZero mampu memainkan gerakan dengan mencapai kedalaman yang cukup. Algoritma memperkirakan probabilitas yang diharapkan untuk menang untuk setiap gerakan, tampaknya, langkah Bg5 memberikan probabilitas yang diharapkan tertinggi.

Anda dapat berpikir seperti, AlphaGo dapat mencari dengan sangat baik sehingga melihat kemungkinan menang tertinggi setelah Bg5, sementara Stockfish tidak menganggap langkah ini dengan serius (dan karenanya kalah).

Catur kecil
sumber
2
"Pencarian Pohon Monte Carlo telah ada dalam literatur sebelum Google ada" Saya hanya dapat melacak MCTS kembali ke sekitar tahun 2006.
CodesInChaos
2
@CodesInChaos MCTS bukan teknik baru. Google tentu saja tidak menciptakan Monte Carlo.
SmallChess
4
Brügmann 1993 jelas hanya MC. MC Go Dev. (2003) menggabungkan MC dan pohon, tetapi secara primitif. Chang (2005) cukup dekat, tetapi dalam konteks yang berbeda dan saya pikir masih kurang pilihan yang tepat dari node untuk memperluas dan menyebarkan estimasi. Selektivitas Efisien dan Operator Cadangan di MCTS Remi Coulom (2006) adalah MCTS yang tepat, sejauh yang saya tahu, yang pertama.
CodesInChaos
1
@SmallChess Bagian dari jawaban Anda tampaknya bertentangan: "sekarang AlphaZero akan memilih langkah 2, dan melakukan simulasi. Kedua langkah akan dipertimbangkan, tetapi AlphaZero akan menempatkan lebih banyak sumber daya komputasi pada langkah 1 (hal yang baik)." bertentangan dengan pernyataan. Setiap simulasi menghasilkan dengan memilih di setiap negara sa memindahkan a dengan jumlah kunjungan rendah ... seperti, dalam contoh Anda, itu akan menjadi 2 daripada 1. Jujur kertas tidak mengandung informasi berguna untuk memahami, karena mereka tidak menunjukkan cara untuk mereproduksi percobaan atau memberikan wawasan tentang cara sebenarnya mereka melatih jaringan.
gented
1
Apa yang mereka lakukan pada dasarnya menyatakan "kami menggunakan algoritma X dan bekerja" - yang memberikan sedikit atau tidak ada pemahaman tentang metode itu sendiri, jadi saya tidak akan terlalu fokus pada kertas itu sendiri untuk mencoba mencari tahu apa yang sebenarnya dilakukannya.
gented
0

Saya kira pertanyaan saya adalah bagaimana jaringan saraf "belajar" apa yang harus dilakukan dalam posisi yang belum dijumpainya. Mengatakan AZ aktual mengeksekusi MCTS menggunakan bias + bobot dari jaring saraf terlatih hanya mendorongnya kembali ke langkah bagaimana jaring saraf menghitung nilai-nilai ini. Jika itu melalui permainan mandiri secara acak, tanpa pengetahuan manusia, lalu bagaimana ia memutuskan bagaimana menentukan posisi yang belum pernah dilihatnya?

Roy Koczela
sumber
1
Saya pikir saya mungkin bisa menjawab Anda, tetapi tidak di sini. Silakan mulai pertanyaan baru.
SmallChess