Satranç kurallarını öğrenme


11

Bir benzer soru bir bilgisayar oyunlarının binlerce analiz ederek satrançta en iyi şekilde oynamaya öğrenebilirsiniz sorar.

Bir makine başlangıçta ve her hareketten sonra birkaç satranç oyunu (veya birkaç dama oyunu) için tahtanın durumuna bakabilirse, oyunun kurallarını öğrenmek için programlanabilir mi?

Eğer yapabilirse, (örn., Döküm veya terfi için hesap verebilir mi) bu işe yarar? Hangi makine öğrenme algoritmaları bunu mümkün kılar?


3
Makine "Bu hareketin yapıldığını gördüm, bu yüzden benzer şartlar altında gerçekleştirebileceğimi varsayacağım" diyebilecek bir duruma gelebilmelidir. Bunun "kuralları öğrenmek" olup olmadığı neredeyse felsefi bir sorudur. ;)
deceze

@deceze Tamamen haklı değilsin. Kuralları öğrenerek, daha önce programa hiç gelmemiş bir düzen göz önüne alındığında hareketi yapabilmek anlamına gelir. Aksi takdirde kuralları öğrenmez, hareketleri ezberler.

2
@Max Bilgisayar daha önce hiç görmediği hareketleri doğru bir şekilde yapabilir mi? Diyelim ki, şövalyenin iki kez ileri ve bir yana birçok kez hareket ettiğini gördü, ama asla iki geri, bir yana değil. Şövalyelerin hareketi ile ilgili kuralların ne olduğunu güvenle nasıl söyleyebilirdi? Belki kurallarda "şövalyelerin sadece ileriye doğru hareket edemeyeceğini" (piyonlar gibi) belirten özel bir madde vardır. Dolayısıyla kuralları kesin olarak çıkarmak imkansız bir şey gibi görünüyor. Bu insanlar için de geçerli.
deceze

8
@Max olarak gerçeği orada olabilir bilgisayar olamaz kurallar sonsuz sayıda olabilir anlamak . On the 8th turn the knight may not turn right. On a sunny day the pawns may jump over bishops.Bilgisayar diyemeyiz neden bu piyon vermedi belirli bir dönüş hareket. Belki bu durumda hareket etmesine karşı bir kural vardı. Bu nedenle, bilgisayar sadece benzer (aslında kesin) kalıpları üretebilmeli, ancak kuralları hiçbir zaman % 100 güvenle çıkaramaz.
deceze

@deceze Evet, bu kuralı bir şekilde gösterdiyseniz yapabilir. İnsanlara kuralları öğretmeniz gerektiği gibi (örneğin ona okumak için kuralların çıktısını verin) bir şekilde bu kuralları makineye vermeniz gerekir. En kolay yol, makinenin öğrenmesi için bazı kurallarda TÜM kuralları tekrar oynamaktır. Aynı şey insanlarda da geçerlidir - On a sunny day the pawns may jump over bishops.bunu ona hiç göstermezseniz insan bunu bilemez .

Yanıtlar:


10

Bir makine başlangıçta ve her hareketten sonra birkaç satranç oyunu (veya birkaç dama oyunu) için tahtanın durumuna bakabilirse, oyunun kurallarını öğrenmek için programlanabilir mi?

Kesinlikle birkaç satranç oyunu için değil ; geçersiz hamleler yapmasını engellemek için inanılmaz sayıda sayıyı analiz etmeniz gerekir. Ne kadar bilmiyorum; bu problem hesaplamalı öğrenme teorisi, PAC öğrenme ve sınırdaki öğrenilebilirlik sorununa aittir .

Diğer posterler tarafından önerilen sınıflandırma algoritmaları, satranç kurallarını ayırt edici bir şekilde öğrenebilir: iki tahta düzeni göz önüne alındığında, geçerli bir hareketin diğerine dönüşüp dönüşmediği sorusuna "evet" veya "hayır" yanıtı verebilirler. Bazı çaba ile, onlar da kullanılmış olabilir oluşturmak hamle. Bununla birlikte, ya sadece eğitildikleri oyunlarda gördükleri hamleleri oluşturacaklar ya da geçerli ve geçersiz hamlelerin bir kombinasyonunu oluşturacaklar, her biri söz konusu hareketi ne kadar olası düşündüklerini geçersiz kurallarla belirleyecekler. umarım çok küçük olasılıklar elde eder.

(Yani, program elindeki bazı geçerli hamleleri tanımayacaktı; ya da fark etmeden hile yapabilirsin; ya da oyuna olan ilgini kaybetmek için o kadar uzun süre eğitmen gerekirdi.)

Kuralları öğrenebilen teknikler için tümevarımsal mantık programlama ve genetik programlamaya göz atın . Kimse bunları satranç öğrenimine uygulamaya çalışıp çalışmadığından emin değilim; satranç kuralları sabit olduğundan, temel kuralları sıfırdan öğrenmek zorunda olanlar yerine iyi satranç oyun programları oluşturmak çok daha ilginçtir (akademi için bile) .


4

Satranç kuralları oldukça karmaşıktır ve bazıları bir oyunda nadiren uygulanır.

Örneğin en geçiş kuralı. Sadece iki adımlı ileri hamleden sonra ilk hamleye izin vermek için kaç oyun gözlemlemeniz gerekir ?

Başka bir örnek. B-kare uzun dökümde saldırıya uğrayabilir. Bunun nerede olduğunu kaç oyun görüyorsunuz?

Başka bir deyişle, tüm kuralları doğru bir şekilde elde etmek için çok, çok, çok oyuna ihtiyacınız olacak.

Ancak, Google, "yakında" satranç oyunlarının tam bir arşivi için bulutlarının bir köşesini bulacak ...


"B-kare uzun dökümde saldırıya uğrayabilir" bu ne hareket? Bunu açıklayabilir veya benim için bağlayabilir misiniz?
CaffGeek

@chad, döküm queenside olarak da adlandırılır - "0-0-0" gösterimi kullanılır. Saldırıya uğramayan yalnızca kralların “temas ettiği” üç alan.

2
Ayrıca, d-kare olamaz Queenside rok saldırıya edilebilir (veya f-kare şah rok olduğunda) ; kralını taşıdıktan sonra da kale yapamazsın. Bunu nasıl bir şey bileceğiz olamaz o oyunları gözlemleyerek yapılabilir değildi yapılır? Lars'ın belirttiği gibi, bilgisayar bir hareketin geçerli olduğu olasılıklarını atayabilir, ancak oyunları gözlemleyerek belirli bir kuralın imkansız olduğunu saptamak.
BlueRaja - Danny Pflughoeft

Ayrıca, kuralların ihlal edildiği bir turnuva ortamında büyükanneler tarafından bile oyunlar yapıldı ve her iki oyuncu da fark etmedi! Turnuva kurallarına göre, her iki oyuncu da 10 hamle içinde fark etmezse, oyun geçerlidir ve devam eder. (Bir büyük yöneticinin kralını taşıdığı, sonra geri taşıdığı ve daha sonra attığı bir oyunu çok net hatırlıyorum. Yine de bulamıyorum)
BlueRaja - Danny Pflughoeft

1
tr Yolcu yeterince nadirdir, ancak FAR daha nadir olan bazı zorunlu çekme kuralları vardır . 40 yıldır oynuyorum ve hiç piyon hareketi ve yakalama olmadan 50 hamle yapmak zorunda kaldığınız bir oyun görmedim. Hatırlamıyorum bile öyle bir kural daha var. Pratikte oyuncular çağrılmadan önce berabere kalmayı kabul edeceklerdir. (Rakibiniz çıkana kadar sürükleyerek çizilmiş bir pozisyonu "kazanamayacağınızdan emin olmak için
varlar

2

Evet ve hayır

Makine öğrenimi / sinir ağlarını kullanarak satranç kurallarını öğrenip öğrenemeyeceğinizi veya bunu kullanarak “büyük usta” seviyeli satranç makinesini eğitmenin mümkün olup olmadığını sormadığınızdan emin değilim.

Bunları kullanarak bir bilgisayara satranç kurallarını ve bazı seviyelerini kesinlikle öğretebilirsiniz. Bununla birlikte, onu kullanarak daha yüksek bir seviyeye geliştirebileceğini düşünmüyorum. Bilgisayar Bilimi henüz afaik satranı konumsal / sezgisel bir bakış açısıyla "anlayabilen" bir makine üretemedi. Mevcut tüm satranç bilgisayarları, kapsamlı bir veritabanı, kaba kuvvet hesaplamaları ve bunun üzerine muhtemelen bir makine öğrenimi kullanır.

Hile olarak ya da değil bir referans veritabanı kullanarak saymak bağlıdır sanırım :) Ayrıca, aslında çok iyi bilerek oyunların bilerek ayırabilirsiniz olmadığını bilmek zor. Satrançta iyi olan insanlar tam olarak iyidir, çünkü beynin genellikle yüzleri tanıdığı bilinen bir çok oyun gördüler. Bu hatırlamadan, insan satranç oyuncuları bir pozisyonun gücünün bir "sezgisini" geliştirebilirler.


en iyi büyükanneler büyük açılış kitaplarını ezberler ve bu hile olarak kabul edilmez. Her neyse, bir zamanlar iyi bir açılış varyasyonu olarak kabul edilen şey yeni bir fikirle yakalanır. Bu nedenle, kitap hareketlerini oynamanın "hilesi", bir bilgisayarın oynaması için en uygun yol olmayabilir.
Kevin

2

Yorumların çoğunun söylediği gibi, bu neredeyse 'öğren' tanımını tartışan felsefi bir sorudur. Çoğu yapay zeka programı rasyonel çözümlerin belirlenmesine dayanır. Yeterli veri verildiğinde, bir öğrenme satrancı ai programı, belirli durumlarda rasyonel olan hareketlerin bir listesini belirleyecektir. Bu satrancın kurallarını bildiği anlamına gelmez, sadece hangi hareketlerin faydalı olduğunu ve hangilerinin yararlı olmadığını anlar. Veri seti yasadışı hamle yapan oyuncuları içeriyor olsa bile, yasadışı hamle anında kayba neden olur, bu yüzden AI onu görmezden gelir ve asla bu yararı kullanmaz çünkü asla faydalı olmaz.

Sinir ağlarının veya evrimsel algoritmaların veya başka bir tür öğrenme algoritmasının kullanılıp kullanılmadığı önemli değildir, AI hiçbir zaman kuralları bir şey izlemekten açıkça öğrenemez, sadece rasyonel olarak faydalı seçeneklerin bir listesini belirleyebilir.


2

Eğer satranç kurallarını oyunun fizik motoru olarak ve Fizik Kanunlarını evrenin kalıcı ve sınırsız kabul edilen kuralları olarak düşünüyorsanız, o zaman doğal evrenimizde ne kadar az gerçek "Yasa" olduğunu düşünün. Zor ve hızlı bir KURAL yapmak imkansız değilse bile son derece zordur, ancak belirli bir noktadan itibaren bir dizi test edilmiş ve kabul edilmiş teori yapabiliriz.

Bilgisayarın hareketleri gözlemlediğini ve günlüğe kaydettiğini varsayarsak, ancak geçerli hareketler hakkında doğrudan iddiada bulunmazsa.

Örneğin, bir piyonun bir parça ilerlediğini gözlemler ve tüm parçaların sadece bir boşluk ileri gidebileceğini ve diğerinin bir piyonun sadece bir boşluk ilerleyebileceğini yeni hipotezler yapar. Bir sonraki hamle gerçekleşinceye kadar mümkün olduğunca çok kısıtlayıcı hipotez oluşturacak ve bunların bir kısmı bizim atılabilecek veya daha liberal hale getirilebilecektir.

Sonunda çok fazla hareketten sonra bir dizi sağlam teoriye sahip olacaksınız, ancak kalıcı olarak 0'a yaklaşan ama asla ulaşamayan canlı bir veri kümesi olacak.

Bu sorunun cevabı, bir bilgisayarın gerçekten iyi bir tahminde bulunabileceğidir, ancak (EDIT: NOT) kuralları kesin olarak bilecektir.


1

Teoride - evet olabilir. Hatta satrançta büyük usta olabilir. Aradığınız cevap sinir ağlarıdır . Sinir ağları özünde beynimizin içinde olanla aynıdır. Dahası, mükemmel (okuma - imkansız olarak mükemmel) tasarlanmış sinir ağı ve mükemmel bir donanım göz önüne alındığında, bir insanın aynı veya daha iyi bir şekilde öğrenebileceği her şeyi öğrenebilir.

Bununla ilgili daha fazla bilgi edinin:


2
Bu "cevap", ikisi de aynı kavramı tanımlayan, biri son derece geniş olan ve birisinin eldeki sorunla ilgisi olmayan bir grup Wikipedia bağlantısıdır. Lütfen satranç kurallarını etkili bir şekilde öğrenmek için bir Kohonen haritasının nasıl kullanılacağını gösterin.
Fred Foo

1
YSA ve NN, gerçek bir nöron / insan beyninin karmaşıklığına yakın değildir, YSA en iyi ihtimalle iğrenç bir kaba yaklaşımdır.
Darknight

"teoride, teori ve pratik aynıdır, fakat pratikte asla değildir." Satranç programları büyük ustalar gibi oynayabilir, ancak bunun sinir ağları veya makine öğrenmesi nedeniyle olduğunu sanmıyorum. Çoğu iyi program, geniş açılış kitapları, oyunsonu masa tabanları ve derinlemesine bir ilk arama ("alfa beta budama ile negamax") ve muhtemelen çok karmaşık bir değerlendirme işlevini (büyük olasılıkla büyükannelerin yardımıyla yazılır) kullanır.
Kevin

Sinir ağları sadece ne yapmak için eğitildiklerini öğrenebilir. Satranç çok nadiren uygulanan bazı kurallara sahiptir, ancak oyunun bir parçasıdır. Piskoposluk yapmak yasal mıdır? Krala terfi ettirmek yasal olur mu?

2
Ha ... krala terfi etmek şahmatı biraz zorlaştırır!
Kevin

1

Bence sadece analiz ederek yapmasına izin verilen hareketleri öğrenebilir, ama yapmasına izin verilmeyen hareketleri nasıl öğrenirdi? Örneğin, karşıt bir parça önündeyken piyon asla bir kare ilerlemez. Bilgisayar bunun oyuncu seçimine göre olup olmadığını veya yapmasına izin verilmediğini nasıl biliyor? Zamanın% 99,99'unun veya daha büyük bir olayın gerçekleşmediği anlamına gelen bir algoritma bulabilirsin, o zaman bunu yapmanıza izin verilmez, ancak aynı zamanda% 99,99 kötü hamle, ama zamanın% 0.01'i oyunu kazanan hamledir. Yani, cevabım hayır, sadece oyunları analiz ederek tüm kuralları öğrenemez, ama muhtemelen bir oyun oynamak için yeterince öğrenebilir.


1

Bu felsefi bir sorudur. Ayrıca, bir kişinin sadece satranç oynarken insanları gözlemleyerek satranç oynamayı öğrenip öğrenemeyeceğini de sorabilirsiniz. Aslında bu, Nelson Goodman'ın Fact, Fiction ve Forecast adlı büyük kitabında sorduğu aynı türden bir soru : zaten yapılmış olan sonlu gözlem setinden gelecekteki gözlemlerin tahminine nasıl geçebiliriz. Yapılan gözlemler şimdiye kadar gözlemlenen satranç hamleleri ve gelecekteki gözlemler henüz gerçekleşmemiş tüm satranç hamleleri olacaktır. Sorular, geçmiş gözlemler ile gelecekteki gözlemler arasında (geçmiş olaylar ve gelecekteki olaylar arasındaki tamamen nedensel ilişkinin aksine) nomolojik bir ilişki var mıdır?

Kelimesini yorumlamak ise nomolojik olarak doğa ya mantık kanunla ve şimdiye kadar bu yasaya disaccord gerçekleşebilir şey daha sonra çapraz bir kale hareket ilk kişi, doğanın kanunu kırmak ve olacağından, böyle bir ilişki kesinlikle yoktur bildiğimiz gibi evren çökecekti.

Ama aslında, doğanın bir ucube kazasıyla, dünyadaki herhangi bir satranç oyuncusunun bundan sonra yapacağı her hareket geçerliyse bile (hiç kimse hata yapmayacak veya hile yapmaya çalışmayacak ve hatta insanlar satranç kuralları hakkında clueless) satranç taşlarını tahta üzerinde rastgele bir şekilde itmeye başlayacaktı, ama yanlışlıkla her zaman kurallara göre), bu da bizi tüm bunları zorlayan bir doğa yasası (veya mantık yasası) olduğuna ikna etmeyecekti. Tamamen kazara olduğunu düşünüyoruz.

Ludwig Wittgenstein Felsefi Soruşturmaları'nda da benzer bir zemin izledi . Herhangi bir gözlem setinin keyfi olarak birçok ve hatta çelişkili kurallara uygun olduğu konusunda ısrar ediyor. Örneğin, gözlemlediğim tüm satranç oyunları öğleden sonra gerçekleşirse, kuralım öğleden sonra olabilir , fil sadece çapraz olarak hareket ettirilebilir . Günün zamanının oyun için önemsiz olması, günün farklı saatlerinde satranç oyunlarını gözlemlemediğim için gözlemleyemediğim bir şey. Ya da, bu arada, satranç oynayan bir kadını hiç görmediysem, o zaman piskopos sadece erkekler tarafından hareket ettirilebilir. Bir gözlemle ilgili olan ve olmayan, gözlemin ön şartı olarak belirlenir ve gözlemin kendisinin bir parçası olamaz.

BTW: Wittgenstein'ın soruna çözümü Goodman'ın çözümüne oldukça benziyor. Yine de sürprizleri bozmayacağım;-)

Zeyilname:

Sussman'ın acemi olduğu günlerde Minsky, PDP-6'da hacklendiğinde bir zamanlar ona geldi.

"Ne yapıyorsun?" Diye sordu Minsky. "Tic-tac-toe oynamak için rastgele kablolu bir sinir ağı eğitimi alıyorum", diye cevapladı Sussman. "Ağ neden rastgele bağlandı?", Diye sordu Minsky. "Nasıl oynanacağı konusunda herhangi bir önyargıya sahip olmasını istemiyorum", dedi Sussman.

Minsky sonra gözlerini kapadı. "Neden gözlerini kapatıyorsun?" Sussman öğretmenine sordu. "Böylece oda boş olacak." O anda Sussman aydınlandı.


-4

Hayır

Çünkü basitçe öğrenme kalıpları (hangi yöntemle olursa olsun) "satrancı en iyi şekilde oynamayı öğrenmek" ile aynı değildir.

Bu sadece öğrenme seti kalıplarından çok farklı olan planlama ve Strateji gerektirir.


1
Aslında bunu bilmiyorsunuz; bunun yanı sıra soru, satrançtaki gerçek kuralları sadece örnek oyunları analiz ederek öğrenmenin mümkün olup olmadığıdır (bir bilgisayar için, fakat aynı kısıtlamalar muhtemelen insanlar için de geçerlidir).
tdammers

1
Sanırım soruyu yanlış
anladınız

Yapay zeka (sinir ağları) ile çalıştıktan sonra (yüksek lisans tezi), emin olamıyorum. Aksi söyleyecek kanıtınız yoksa, sadece "bunu bilmiyorsunuz" diyemezsiniz
Darknight
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.