Salah satu pertanyaan yang lebih populer yang diajukan di situs ini mengenai prospek AI catur murni yang dilatih sendiri.
Hari ini, ChessBase teralihkan dari liputannya pada turnamen Kandidat FIDE untuk melaporkan bahwa AI baru, untuk pertama kalinya, mengalahkan pemimpin terkemuka dari permainan permainan yang agak berbeda, yang telah menentang AI gaya catur selama bertahun-tahun. Pembacaan awal laporan menunjukkan bahwa AI go baru tidak seperti AI catur, tetapi lebih mirip AI general-game-playing (GGP). Namun artikel ChessBase tidak menggunakan istilah GGP, tetapi tampaknya mengatakan bahwa go AI dapat menang di video game sederhana.
Apakah ada alasan AI kemenangan seperti itu tidak bisa dengan penyesuaian kecil juga menang di catur? Jika demikian, apakah AI seperti itu menjanjikan untuk mencapai pelatihan mandiri murni beberapa jawaban bagus untuk pertanyaan sebelumnya yang telah dibahas sebelumnya, yang pada saat itu belum memungkinkan? Mengapa atau mengapa tidak?
Saya menduga bahwa belum ada jawaban yang lengkap dan terinformasi lengkap untuk pertanyaan saya, sehingga jawaban parsial berdasarkan keahlian yang terkait akan dihargai.
Untuk referensi tambahan, lihat juga pertanyaan dan jawaban terkait ini.
MEMPERBARUI
Ketika pertanyaan di atas pertama kali diposting lima hari yang lalu dan ketika beberapa jawaban bagus di bawah ini diberikan, berita pertama tentang kemenangan go AI baru saja muncul. Sejak itu, informasi dan komentar tambahan telah muncul.
Sangat menarik sejak saat itu adalah diskusi meja bundar lima sisi yang cukup mudah dibaca, di mana Jonathan Schaeffer berkomentar:
Belajar dari permainan manusia membantu mempercepat pembelajaran program. AlphaGo bisa belajar menjadi pemain yang kuat sendiri, tanpa menggunakan permainan manusia. Proses pembelajaran hanya akan memakan waktu lebih lama.
Menurut tuan rumah meja bundar, Schaeffer adalah "[c] profesor ilmu komputer di Universitas Alberta dan orang yang memecahkan biji"; jadi, mungkin, dia mungkin memenuhi syarat untuk berkomentar.
Untuk informasi lebih lanjut, berikut ini adalah catatan diskusi terbuka lainnya, yang banyak di antara para pesertanya tampak lebih berpengetahuan daripada biasanya. Diskusi berlangsung selama pertandingan.
Pembaruan lebih lanjut, satu setengah tahun kemudian: commenter @MarkS. menulis:
Ini hanya komentar karena ini tentang Go, bukan Chess, tetapi AlphaGo Zero mencapai "pelatihan mandiri murni" hanya dari diberitahu siapa yang menang (dan bukan skor akhir) dan lebih kuat dan jauh lebih efisien daripada AI yang mengalahkan Lee Sedol . Untuk informasi lebih lanjut, lihat deepmind.com/blog/alphago-zero-learning-scratch
Jawaban:
Baik, baik, baik! DeepMind telah menerbitkan sebuah makalah di mana mereka mengatakan telah memprogram dan melatih komputer jaringan saraf untuk mengalahkan Stockfish.
Dengan waktu berpikir 1 menit per gerakan, komputer AlphaZero mereka mengalahkan Stockfish sebesar +25, = 25, -0 dengan warna putih dan + 3, = 47,0- berwarna hitam.
Mereka "melatih" 3 komputer terpisah untuk bermain catur, shogi, dan Go serta mengalahkan saingan silikon mereka dengan meyakinkan.
Berikut adalah bagaimana makalah ini menjelaskan pelatihan dan evaluasi -
Komputer mereka menggunakan bentuk chip baru yang disebut "TPU" ( Tensor Processing Unit ) yang dikembangkan oleh Google untuk tugas pembelajaran mesin.
Mereka juga mengklaim algoritma pencarian pohon Monte Carlo mereka lebih baik dan lebih "mirip manusia" daripada algoritma pencarian alpha-beta tradisional -
Berikut ini beberapa game -
Permainan
Putih: AlphaZero Black: Stockfish
sumber
Ok, saya harus mengakui bahwa saya salah. Meskipun saya berpendapat bahwa itu karena pengetahuan tentang pendapat ahli, bukan kebodohan umum: Mengutip makalah : "Namun, program catur menggunakan MCTS tradisional jauh lebih lemah daripada program pencarian alpha-beta, (4, 24); sedangkan alpha -beta program yang didasarkan pada jaringan saraf sebelumnya tidak mampu bersaing dengan fungsi evaluasi yang lebih cepat dan dibuat-buat. "
Rupanya, catur cukup strategis, sehingga Anda bisa membuat strategi seseorang, yang akan bisa menghitung Anda. Bagi saya itu kejutan besar karena pengembangan mesin catur telah berjalan berlawanan arah. (Rupanya masih ada sedikit peringatan apakah AlphaZero benar-benar lebih kuat daripada Stockfish: Stockfish bermain dengan hanya 1GB untuk hashtable dan 64 core mungkin tidak benar-benar cocok untuk empat TPU)
Ini juga merupakan hal yang sangat, sangat menarik untuk terjadi, karena AlphaZero sangat mungkin memiliki kekuatan yang sangat berbeda dari mesin tradisional.
Ini juga berarti bahwa saya memperbarui kepercayaan saya tentang pentingnya AlphaGo sebagai terobosan teknologi. Pada dasarnya menghancurkan shogi, Pergi dan catur dengan satu pengaturan tunggal benar-benar luar biasa, belum lagi lusinan game lain yang mungkin bisa dimainkan pada tingkat manusia super oleh AlphaZero.
Ada penjelasan yang bagus tentang mengapa MCTS sebenarnya adalah ide yang layak bahkan untuk catur dibandingkan dengan pencarian alpha-beta (dari kertas): "AlphaZero mengevaluasi posisi menggunakan perkiraan fungsi non-linear berdasarkan jaringan saraf yang dalam, daripada linier perkiraan fungsi yang digunakan dalam program catur biasa. Ini memberikan representasi yang jauh lebih kuat, tetapi juga dapat memperkenalkan kesalahan perkiraan palsu. MCTS rata-rata mengatasi kesalahan perkiraan ini, yang karenanya cenderung membatalkan ketika mengevaluasi subtree besar. Sebaliknya, pencarian alpha-beta menghitung mini-max eksplisit, yang menyebarkan kesalahan aproksimasi terbesar ke akar subtree. " (penekanan oleh saya)
Inilah jawaban lama saya, masih mengandung beberapa poin yang valid, meskipun kesimpulan digantikan oleh kenyataan.
Pertama-tama, Alphago bukan sistem bermain game umum. Ini adalah program yang dirancang murni untuk bermain dan tidak ada yang lain. Namun itu dibangun dari blok bangunan tertentu yang memiliki penerapan yang jauh lebih luas, seperti jaringan saraf convolutional , yang telah digunakan dalam pengenalan gambar dan yang memiliki aplikasi langsung dalam diagnosa medis, dan pembelajaran penguatan yang digunakan untuk menguasai permainan Atari yang disebutkan dalam artikel.
Juga, mesin saat ini melakukan "belajar" dengan bermain sendiri : "Semalam, enam komputer Lefler bermain melalui lebih dari 14.000 game masing-masing selama periode delapan jam." Enam mesin kali 14.000 game adalah banyak permainan, "katanya. Dan dengan setiap permainan dimainkan, basis data semakin dalam dan lebih kaya. Bahkan ada minat olahraga untuk menonton komputer bermain satu sama lain. Hasil dari mesin pengocok Lefler yang sibuk adalah kecakapan yang terus meningkat dari Komodo. "
Untuk menjawab sebagian besar pertanyaan Anda:
Ada perbedaan penting antara catur dan pergi, setidaknya dari perspektif programmer. Catur lebih merupakan permainan taktis, sedangkan go lebih merupakan permainan strategis. Ini berarti bahwa dalam penghitungan catur, kedalaman mengalahkan evaluasi posisi. Itu pada dasarnya wawasan kunci yang membedakan mesin "lama" seperti Fritz, Shredder, Junior dan generasi yang lebih baru seperti Fruit, Rybka, Houdini, Stockfish, Komodo. Karena pada akhir setiap baris Anda harus mengevaluasi posisi dan Anda ingin menghitung garis lot dan kualitas evaluasi tidak sepenting kedalaman pencarian, mesin catur memiliki fungsi evaluasi yang ramping dan cepat.
Di sisi lain kompleksitas taktis terlalu besar bahkan untuk komputer. Karenanya, mengevaluasi posisi dan gerakan secara akurat adalah kuncinya. Apa yang Alphago bawa baru ke permainan adalah kekuatan evaluasi ini, yang didasarkan pada jaringan saraf convolutional .
Untuk akhirnya sampai ke poin saya: Sementara fungsi evaluasi catur ramping dan cepat, jaringan saraf memiliki jutaan, kadang-kadang miliaran parameter. Karena "belajar" dalam konteks ini berarti mengutak-atik parameter, ada banyak kemungkinan kemajuan untuk program self learning go.
Jadi, ya Anda bisa menggunakan pengaturan seperti Alphago untuk membuat mesin catur, tapi itu tidak terlalu bagus. Menjalankan fungsi evaluasi akan memakan banyak waktu, sehingga Anda harus menggunakan sekelompok besar GPU untuk mencapai kedalaman pencarian yang diperlukan (yang dilakukan Alphago). Anda dapat membuat fungsi evaluasi yang sangat baik , tetapi pengorbanan kecepatan tidak sepadan.
sumber
Ada sebuah proyek bernama spawkfish yang mencoba melakukan ini. Ini adalah mesin berbasis jaringan saraf yang tujuannya "adalah untuk mengeksplorasi bagaimana kemajuan terbaru dalam komputer Go dapat diterapkan ke dunia Catur komputer".
Ini adalah proyek muda dan mesinnya masih cukup lemah. Bermain itu menarik, karena permainan posisionalnya lebih baik daripada taktiknya.
sumber
Jawaban singkatnya adalah "Tidak!"
Chess and go secara radikal berbeda dalam kesederhanaan relatif dan kompleksitas relatif yang berasal dari geometri mereka dan bagaimana Anda menang. Ini bergabung untuk membuat program yang bagus di satu sama lain tidak berguna.
Dalam catur Anda menang dengan melakukan checkmating pada lawan, poin tidak masuk hitungan. Tentu saja lawan yang masuk akal akan sering mengundurkan diri sebelum Anda memberikan skakmat tetapi prinsipnya sama. Dalam perjalanan Anda menang dengan memiliki lebih banyak poin di akhir pertandingan. Jika saya memiliki raja dan ratu dan Anda memiliki raja, benteng dan pion tetapi Anda telah membangun benteng maka tidak masalah bahwa saya memiliki 9 poin untuk ratu dan Anda hanya memiliki 6 poin untuk benteng dan pion Anda. Game ini seri.
Ini membuat perbedaan mendasar dalam kompleksitas antara catur dan pergi. Dalam perjalanan Anda hanya bisa menjaga skor dan Anda akan tahu siapa yang menang. Dalam catur, satu-satunya cara Anda bisa tahu siapa yang menang adalah dengan perhitungan murni. Dalam hal ini catur jauh lebih kompleks daripada pergi.
Pada saat yang sama, karena geometri dari dua permainan, ada urutan besarnya lebih banyak kemungkinan di dalam daripada di catur. Dalam hal ini, go jauh lebih kompleks daripada catur.
Program catur bekerja dengan perhitungan brute force dari semua kemungkinan pergerakan hingga kedalaman tertentu yang menentukan kekuatannya. Program go tidak dapat bekerja seperti ini dan memainkan sesuatu yang lebih maju daripada level pemula.
Tujuan dasar go adalah untuk mengontrol lebih banyak wilayah daripada lawan Anda. Di akhir pertandingan, tidak masalah apakah selisihnya 1 batu atau 100 batu, keduanya menang. Setiap kali Anda meletakkan batu, Anda melakukan dua hal. Anda meningkatkan wilayah Anda, baik potensial atau aktual, dan Anda mengurangi lawan Anda.
Kadang-kadang, ketika itu sebenarnya kenaikan atau penurunan di wilayah, mudah untuk menghitung nilai bergerak, tetapi ketika itu berpotensi, sangat sulit untuk mengevaluasi. Sebagai pemain go yang lemah, saya memahami "sebenarnya" jauh lebih baik daripada "potensi" dan pemain yang lebih kuat akan mengalahkan saya dengan membangun wilayah potensial yang jauh lebih besar di tengah sementara saya membangun wilayah aktual yang lebih kecil di tepi dan di sudut. Pemain yang lebih kuat akan membangun kemampuan untuk menilai melalui intuisi dan perasaan dari bermain banyak permainan dan mengenali bagaimana membangun wilayah "potensial".
Sebelumnya saya mengatakan bahwa setiap kali saya menempatkan batu itu meningkatkan wilayah saya (aktual atau potensial) dan mengurangi milik lawan saya (sebenarnya jika itu adalah tindakan bodoh, itu akan melakukan yang sebaliknya!). Dalam posisi tertentu tidak semua gerakan sama. Sebuah batu yang ditempatkan di satu posisi bisa bernilai jauh lebih atau kurang dari batu yang ditempatkan di posisi lain.
Biasanya dalam permainan akan ada "perkelahian" kecil di mana pemain menempatkan batu mereka di dekat satu sama lain, menandai wilayah mereka dan membatasi milik lawan mereka. Sementara itu ada kemungkinan untuk mulai mengintai wilayah di bagian lain dari papan atau beralih ke perkelahian di tempat lain di mana kedua pemain sudah memiliki batu.
Apa yang sangat penting dalam situasi ini adalah mengetahui kapan harus menghentikan satu pertarungan, karena keuntungan potensial telah berkurang, dan untuk beralih ke pertarungan lain atau mungkin menyerang ke wilayah perawan. Kadang-kadang ini tergantung pada perhitungan keras tetapi seringkali jauh lebih samar dan tidak dikenakan perhitungan. Sebagai pemain yang lemah, di sinilah pembayar yang kuat akan menghancurkan saya setiap saat.
Apa yang dilakukan komputer dalam situasi ini adalah menggunakan metode probabilistik untuk menghasilkan skor yang diharapkan untuk suatu gerakan tertentu. Kadang-kadang nilai aktual akan berubah menjadi sedikit lebih sedikit, kadang-kadang sedikit lebih tetapi dalam jangka panjang bahkan akan lebih atau kurang. Ini akan terus memilih langkah dengan nilai yang diharapkan tertinggi dengan harapan bahwa dalam jangka panjang dari permainan kesalahan kecil akan dibatalkan dan strateginya akan menang.
Ini bukan strategi yang terdengar asing bagi pemain catur dan bukan strategi yang akan bekerja dalam catur. Itu adalah sesuatu yang terdengar asing bagi siapa saja yang mengikuti apa yang terjadi di pasar saham. Kedengarannya sangat mirip dengan sesuatu yang disebut "perdagangan frekuensi tinggi" di mana komputer akan membuat ribuan taruhan kecil atau hanya mengajukan taruhan setiap detik untuk "nikel dan uang receh" pasar dan mungkin bahkan untuk memindahkannya secara sangat marjinal demi keuntungan mereka selama periode milidetik.
Sudah pasar keuangan didominasi oleh jenis perdagangan algoritmik yang menunjukkan bahwa program semacam ini telah menang di bidang yang jauh lebih menguntungkan daripada permainan papan.
sumber
(Siapa pun yang menginginkan diskusi teknis yang mendalam untuk AlphaGo dapat melihat posting saya )
Jawaban singkat : Tidak
Jawaban panjang :
Pertama, kita perlu memahami mengapa Google tidak menerapkan alpha-beta ke AlphaGo. Stockfish dan Komodo (dan semua mesin catur) memiliki alpha-beta, mengapa tidak AlphaGo?
Alasan : tidak ada cara mudah dan murah yang secara akurat dapat mengevaluasi posisi Go secara statis.
Di Catur, kita selalu dapat menghitung materi, cara yang sangat efektif untuk mengevaluasi posisi secara statis. Meskipun tidak sempurna, ini sangat cepat dan proxy yang sangat baik untuk catur.
Mencari ruang negara dengan Monte-Carlo adalah metode yang lebih rendah daripada alpha-beta. Google akan menerapkan alpha-beta jika mereka bisa, tetapi mereka tidak bisa. Dengan demikian, mereka terpaksa menggunakan sesuatu yang jauh lebih lambat.
Mesin catur tidak akan bermain lebih baik dengan Monte-Carlo.
sumber
Saya tidak setuju dengan jawaban lain. Saya seorang ilmuwan komputer yang bekerja secara profesional di bidang kecerdasan buatan dan saya juga seorang kandidat master dalam catur dan 3 dan dalam igo.
Saya pikir tidak jelas saat ini apakah metode Deep Mind dapat diterapkan pada catur, tetapi saya pikir itu mungkin.
Saat ini, program bermain catur terbaik semakin mengandalkan heuristik dan berusaha menggunakan arsitektur AlphaGo untuk catur dalam beberapa hal akan berada di jalur pemikiran yang sama.
Salah satu fitur arsitektur utama dari AlphaGo yang harus diubah adalah metode untuk mengidentifikasi kotak kunci (atau peta panas), yang khusus untuk permainan seperti igo dan tidak secara langsung berlaku untuk catur. Beberapa analog dari metode ini harus dikembangkan untuk membuat arsitektur AlphaGo relevan dengan catur. Sebagai contoh, kita bisa memiliki konsep "potongan kunci" daripada kotak kunci.
Saya pikir argumen bahwa arsitektur AlphaGo tidak relevan dengan catur karena catur lebih taktis bukanlah klaim yang sangat baik karena pada akhirnya keduanya memiliki pohon pencarian yang bentuknya cukup mirip sehingga AlphaGo pasti dapat disesuaikan dengan catur.
sumber
Jawabannya iya! Google baru membuktikan ini kemarin, ketika AlphaZero mengalahkan program catur terbaik hanya menggunakan pengetahuan tentang aturan dan pelatihan mandiri murni tanpa pengetahuan catur manusia yang digunakan. Jawaban yang diterima salah. Tautan ke artikel ada di sini: tautan
sumber
Untuk melihat AlphaZero beraksi, ikuti http://lczero.org/ atau mainkan di http://play.lczero.org/
sumber