Nauka zasad szachowych

11

Podobne pytanie pyta, czy komputer może nauczyć się grać optymalnie w szachach analizując tysiące gier.

Jeśli maszyna może sprawdzić stan planszy na kilka gier w szachy (lub kilka gier w warcaby) na początku i po każdym ruchu, czy można ją zaprogramować do nauki zasad gry?

Jeśli tak, to w jakim stopniu (np. Czy byłby w stanie wziąć pod uwagę castling lub promocję), czy to zadziałałoby? Jakie algorytmy uczenia maszynowego umożliwiłyby to?

Yktula
źródło
3
Maszyna powinna być w stanie przejść do stanu, w którym może powiedzieć: „Widziałem wykonanie tego ruchu, więc założę, że mogę go wykonać w podobnych okolicznościach”. To, czy stanowi to „poznanie zasad”, jest niemal filozoficznym pytaniem. ;)
deceze
@deceze Cóż, nie masz całkowitej racji. Poznanie zasad oznacza możliwość wykonania ruchu, biorąc pod uwagę układ, który nigdy wcześniej nie miał miejsca w programie. W przeciwnym razie nie uczy się zasad, ale zapamiętuje ruchy.
2
@Max Czy komputer byłby w stanie poprawnie wykonywać ruchy, których nigdy wcześniej nie widział? Powiedzmy, że widział wiele razy rycerza poruszającego się dwa do przodu i jednego na bok, ale nigdy dwóch do tyłu, jednego na bok. Jak mógł śmiało powiedzieć, jakie są zasady dotyczące ruchu rycerzy? Może w regułach znajduje się specjalna klauzula, która mówi, że „rycerze nie mogą się cofać, tylko do przodu” (podobnie jak pionki). Stąd dedukowanie reguł z pewnością wydaje się rzeczą niemożliwą. Dotyczy to również ludzi.
deceze
8
@Max W rzeczywistości może istnieć nieskończona liczba reguł, których komputer nie może wydedukować . On the 8th turn the knight may not turn right. On a sunny day the pawns may jump over bishops.Komputer nie może powiedzieć, dlaczego ten pionek nie poruszał się w określonym momencie. Może istniała reguła, by nie poruszać się w tej konkretnej sytuacji. Dlatego komputer powinien być w stanie odtworzyć tylko podobne (właściwie dokładne) wzorce, ale nigdy nie będzie w stanie wydedukować reguł ze 100% pewnością.
deceze
@deceze Tak, może, jeśli jakoś mu to pokazałeś. W taki sam sposób, w jaki musisz nauczyć człowieka zasad (na przykład dać mu wydruk reguł do przeczytania), musisz jakoś przekazać te zasady maszynie. Najłatwiejszym sposobem jest odtworzenie WSZYSTKICH zasad w pewnej liczbie gier, aby maszyna mogła się ich nauczyć. To samo dotyczy ludzi - człowiek nie będzie tego wiedział, On a sunny day the pawns may jump over bishops.jeśli nigdy mu tego nie pokazałeś.

Odpowiedzi:

10

Jeśli maszyna może sprawdzić stan planszy na kilka gier w szachy (lub kilka gier w warcaby) na początku i po każdym ruchu, czy można ją zaprogramować do nauki zasad gry?

Z pewnością nie dla kilku gier w szachy; musisz przeanalizować niewiarygodnie dużą ich liczbę, aby powstrzymać się od wykonywania nieprawidłowych ruchów. Ile nie wiem; problem ten należy do obszaru teorii uczenia obliczeniowego, uczenia się PAC i problemu uczenia się na granicy .

Algorytmy klasyfikacji sugerowane przez inne plakaty mogą być w stanie dyskryminacyjnie nauczyć się zasad szachowych: biorąc pod uwagę dwie konfiguracje planszy, mogą odpowiedzieć „tak” lub „nie” na pytanie, czy prawidłowy ruch przekształca jeden w drugi. Z pewnym wysiłkiem można je również wykorzystać do generowania ruchów. Będą jednak wtedy generować tylko ruchy, które widzieli w grach, w których zostali przeszkoleni, lub kombinację ruchów prawidłowych i nieprawidłowych, każdy z wynikiem określającym prawdopodobieństwo, że uważają dany ruch za niewłaściwe reguły mam nadzieję, że dostanie bardzo małe prawdopodobieństwo.

(Tj. Albo program nie rozpoznaje niektórych ważnych ruchów, którymi może dysponować; możesz być w stanie oszukiwać, nie zauważając tego; albo będziesz musiał trenować tak długo, aby stracić zainteresowanie grą.)

Aby poznać techniki, które potrafią nauczyć się zasad, sprawdź programowanie logiki indukcyjnej i programowanie genetyczne . Nie jestem pewien, czy ktokolwiek kiedykolwiek próbował zastosować je do nauki gry w szachy; ponieważ reguły szachowe są ustalone, o wiele bardziej interesujące (nawet dla środowisk akademickich) jest budowanie dobrych programów szachowych niż tych, które muszą uczyć się podstawowych zasad od zera.

Fred Foo
źródło
4

Zasady gry w szachy są dość złożone, a niektóre bardzo rzadko wykonywane w grze.

Na przykład zasada en passant . Ile gier musisz obserwować, aby wywnioskować, że dozwolony jest tylko pierwszy ruch po ruchu dwustopniowym?

Inny przykład. Kwadrat b można atakować podczas długiej roszady. Ile gier widzisz, gdzie to się dzieje?

Innymi słowy, będziesz potrzebował wielu, wielu gier, aby poprawnie wyprowadzić wszystkie reguły.

Być może jednak Google znajdzie „chmurkę” pełnego archiwum gier szachowych „wkrótce” ...


źródło
„Kwadrat b może zostać zaatakowany podczas długiej roszady”. Co to za ruch? Czy możesz mi to wyjaśnić lub połączyć?
CaffGeek
@ czad, zwany także castling queenside - używany jest zapis „0-0-0”. Tylko trzy pola, których „dotykają” królowie, mogą nie być atakowane.
2
Ponadto kwadrat d nie może zostać zaatakowany podczas roszowania królowej (lub kwadrat f podczas roszowania królowej) ; po przeniesieniu króla nie możesz również zamkuć. Skąd masz wiedzieć, że czegoś nie da się zrobić, obserwując gry, w których nie zostało to zrobione? Jak wspomina Lars, komputer może przypisywać prawdopodobieństwa, że ​​ruch jest prawidłowy, ale ustalenie tej konkretnej reguły poprzez obserwowanie gier jest niemożliwe.
BlueRaja - Danny Pflughoeft
Były też gry, nawet arcymistrzowie w ustawieniach turniejowych, w których zasady zostały złamane i żaden z graczy nie zauważył! Zgodnie z zasadami turniejowymi, jeśli żaden z graczy nie zauważy w ciągu 10 ruchów, gra jest ważna i trwa. (Bardzo dobrze pamiętam grę, w której arcymistrz przeniósł swojego króla, a następnie przeniósł go z powrotem, a później zamienił w zamek. Jednak nie mogę go teraz znaleźć)
BlueRaja - Danny Pflughoeft,
1
en passant jest dość rzadki, ale istnieją pewne zasady wymuszonego losowania, które są DALEJ rzadsze. Gram od 40 lat i nigdy nie widziałem gry, w której możesz mieć wymuszony remis z powodu 50 ruchów bez ruchów pionkiem i bez chwytów. Myślę, że jest jeszcze jedna taka zasada, której nawet nie pamiętam. W praktyce gracze zgodzą się na losowanie przed ich wywołaniem. (Istnieją po to, aby zapewnić, że nie możesz „wygrać” wylosowanej pozycji, przeciągając ją, dopóki przeciwnik nie
zrezygnuje
2

Tak i nie

Nie jestem pewien, czy pytasz, czy można nauczyć się zasad gry w szachy za pomocą uczenia maszynowego / sieci neuronowych, czy też można trenować maszynę do gry w szachy na poziomie „wielkiego mistrza”.

Korzystając z nich, z pewnością możesz nauczyć komputer zasad i pewnego poziomu szachów. Nie sądzę jednak, aby można było z niego korzystać na wyższym poziomie. Informatyka do tej pory nie zdołała wyprodukować maszyny, która „rozumie” szachy z pozycyjnego / intuicyjnego punktu widzenia. Wszystkie obecne komputery szachowe korzystają z obszernej bazy danych, obliczeń brutalnej siły i ewentualnie uczenia maszynowego.

Zgadnij, czy zależy to od tego, czy liczysz, że korzystasz z referencyjnej bazy danych jako oszustwo, czy nie :) Trudno też stwierdzić, czy naprawdę potrafisz oddzielić wiedzę od wielu gier od bycia w tym dobrym. Ludzie, którzy są dobrzy w szachach, są dobrzy właśnie dlatego, że widzieli tyle gier, do których odwołuje się część mózgu, która zazwyczaj rozpoznaje twarze. Z tego przypomnienia wydaje się, że ludzcy szachy są w stanie rozwinąć „intuicję” siły pozycji.

Homde
źródło
najlepsi arcymistrzowie zapamiętują obszerne książki otwierające i to nie jest uważane za oszustwo. W każdym razie zdarza się cały czas, że coś, co kiedyś uważano za dobrą odmianę otwierającą, zostaje zepsute przez nowy pomysł. Tak więc „oszukiwanie” podczas grania ruchów książek może nawet nie być optymalnym sposobem grania na komputerze.
Kevin
2

Jak napisano w wielu komentarzach, jest to niemal filozoficzne pytanie dotyczące definicji „uczenia się”. Większość programów sztucznej inteligencji polega na ustalaniu racjonalnych rozwiązań. Biorąc pod uwagę wystarczającą ilość danych, program do nauki szachów ai określi listę ruchów, które można racjonalnie wykonać w określonych sytuacjach. Nie oznacza to, że zna zasady gry w szachy, po prostu rozumie, które ruchy są korzystne, a które nie. Nawet jeśli zestaw danych obejmuje graczy wykonujących nielegalne ruchy, nielegalny ruch spowoduje natychmiastową stratę, więc ai zignoruje go i nigdy nie użyje tego ruchu, ponieważ nigdy nie jest to korzystne.

Nie ma znaczenia, czy używane są sieci neuronowe, algorytmy ewolucyjne, czy jakikolwiek inny algorytm uczenia się, ai nigdy nie może wyraźnie nauczyć się reguł na podstawie oglądania czegoś, może jedynie ustalić listę racjonalnie korzystnych opcji.

SC Ghost
źródło
2

Jeśli myślisz o regułach szachowych jako o silniku fizyki gry, a prawach fizyki jako o stałych i nieugiętych przyjętych regułach wszechświata, pomyśl o tym, jak mało rzeczywistych „praw” istnieje w naszym wszechświecie naturalnym. TWORZENIE twardej i szybkiej ZASADY jest BARDZO trudne, jeśli nie niemożliwe, ale możemy opracować szereg sprawdzonych i zaakceptowanych teorii na określony moment.

MOŻE BYĆ możliwe, zakładając, że komputer obserwuje i rejestruje ruchy, ale NIE czyni bezpośrednich stwierdzeń dotyczących prawidłowych ruchów.

Na przykład obserwowałby pionka poruszającego się o jeden kawałek do przodu i wysuwał nowe hipotezy, że wszystkie pionki mogą poruszać się tylko o jedno pole do przodu, a drugi, że pionek może poruszać się tylko o jedno pole do przodu. Będzie tworzyć tyle restrykcyjnych hipotez, ile to możliwe, dopóki nie pojawi się następny ruch, a wiele z nich można rzucić naszym lub uczynić bardziej liberalnymi.

Ostatecznie po tylu ruchach będziesz miał zestaw solidnych teorii, ale będzie to żywy zestaw danych stale zbliżający się do 0, ale nigdy go nie osiągający.

Odpowiedź brzmi: komputer może zgadywać, ale na pewno (EDYCJA: NIE) z pewnością zna reguły.

wałek klonowy
źródło
1

Teoretycznie - tak, może. Może nawet zostać arcymistrzem w szachach. Odpowiedź, której szukasz, to sieci neuronowe . Sieci neuronowe to w zasadzie to samo, co dzieje się w naszym mózgu. Co więcej, biorąc pod uwagę doskonale (odczytywaną - niemożliwie idealną) zaprojektowaną sieć neuronową i doskonały sprzęt - może nauczyć się wszystkiego, czego człowiek może się nauczyć w ten sam lub nawet lepszy sposób.

Przeczytaj więcej na ten temat:

bezmax
źródło
2
Ta „odpowiedź” to tylko kilka linków z Wikipedii, z których dwa opisują tę samą koncepcję, z których jedna jest bardzo szeroka, a jedna z nich nie ma nic wspólnego z danym problemem. Pokaż, w jaki sposób mapa Kohonen zostanie wykorzystana do skutecznego uczenia się zasad gry w szachy.
Fred Foo,
1
ANN i NN nie są w żaden sposób bliskie złożoności rzeczywistego neuronu / ludzkiego mózgu, ANN jest w najlepszym razie ohydnym przybliżeniem.
Darknight
„w teorii teoria i praktyka są takie same, ale w praktyce nigdy nie są”. Programy szachowe mogą grać jak arcymistrzowie, ale nie sądzę, że dzieje się tak z powodu sieci neuronowych lub uczenia maszynowego. Większość dobrych programów korzysta z obszernych książek otwierających, baz tabel końcowych i pierwszego wyszukiwania dogłębnego („negamax z alfa alfa przycinaniem”) oraz prawdopodobnie bardzo skomplikowanej funkcji oceny (która najprawdopodobniej jest napisana z pomocą arcymistrzów).
Kevin
Sieci neuronowe mogą nauczyć się tylko tego, do czego są przeszkolone. Szachy mają pewne zasady, które są bardzo rzadko stosowane, ale stanowią część gry. Czy awansowanie na biskupa byłoby legalne? Czy awansowanie na króla byłoby legalne?
2
Ha ... awans na króla sprawia, że ​​mat jest trochę trudniejszy!
Kevin
1

Wydaje mi się, że może nauczyć się ruchów, które może wykonywać tylko poprzez analizę, ale w jaki sposób może nauczyć się ruchów, których nie wolno wykonywać? Na przykład pionek nigdy nie przesuwa się o jedno pole do przodu, gdy przed nim stoi element przeciwny. Skąd komputer wie, czy dzieje się tak z wyboru gracza, czy nie wolno tego robić? Możesz wymyślić jakiś algorytm, który mówi, że jeśli 99,99% czasu lub dłużej wydarzenie się nie wydarzy, oznacza to, że nie możesz tego zrobić, ale może to być również 99,99% czasu, który jest uważany za zły ruch, ale w 0,01% przypadków wygrywa ten ruch. Tak więc, moja odpowiedź brzmi: nie, nie może nauczyć się wszystkich zasad po prostu analizując gry, ale prawdopodobnie może nauczyć się wystarczająco dużo, aby grać w grę.

Maczać
źródło
1

To jest pytanie filozoficzne. Równie dobrze możesz zapytać, czy dana osoba może nauczyć się grać w szachy, obserwując ludzi podczas gry w szachy. W rzeczywistości jest to w zasadzie to samo pytanie, jakie zadaje Nelson Goodman w swojej wielkiej książce Fakt, fikcja i prognoza : w jaki sposób możemy przejść od skończonego zestawu już poczynionych obserwacji do przewidywania przyszłych obserwacji. Dotychczasowe obserwacje byłyby obserwowanymi ruchami szachowymi, a przyszłe obserwacje byłyby wszystkimi ruchami szachowymi, które jeszcze się nie wydarzyły. Pytanie brzmi: czy istnieje związek nomologiczny między obserwacjami z przeszłości a obserwacjami w przyszłości (w przeciwieństwie do czysto przyczynowego związku między przeszłymi wydarzeniami a przyszłymi wydarzeniami)?

Jeśli interpretujemy słowo nomologiczne jako przez prawo natury lub logiki i nic nigdy nie może się wydarzyć w sprzeczności z tym prawem , to z pewnością nie ma takiego związku, ponieważ pierwsza osoba, która porusza zamkiem po przekątnej, złamałaby prawo natury i wszechświat, jaki znamy, upadłby.

Ale nawet jeśli w rzeczywistości przez jakiś dziwaczny wypadek natury, każdy ruch, który wykonałby każdy szachista na świecie, byłby ważny (nikt nigdy nie popełniłby żadnych błędów ani nie próbowałby oszukiwać, a nawet ludzie nie mieli pojęcia o regułach szachowych zaczną pchać szachy losowo po planszy, ale przypadkowo zawsze zgodnie z zasadami), co nie przekonałoby nas, że istnieje prawo natury (lub prawo logiki), które wymusza to wszystko. Uznalibyśmy to za przypadkowe.

Ludwig Wittgenstein opisał podobny grunt w swoich badaniach filozoficznych . Podkreśla, że ​​każdy zestaw obserwacji jest zgodny z dowolnie wieloma, a nawet sprzecznymi zasadami. Na przykład, jeśli wszystkie obserwowane przeze mnie szachy miałyby miejsce po południu, to moją zasadą może być po południu, że biskupa można przenosić tylko po przekątnej . To, że pora dnia jest nieistotna dla gry, jest czymś, czego nie mogłem zaobserwować, ponieważ nie widziałem szachów w różnych porach dnia. Lub, nawiasem mówiąc, jeśli nigdy nie widziałem kobiety grającej w szachy, zasadą może być to, że biskupa mogą poruszać tylko mężczyźni. Co jest istotne dla obserwacji, a co nie jest określone jako warunek wstępny obserwacji i nie może być częścią samej obserwacji.

BTW: Rozwiązanie problemu Wittgensteina jest dość podobne do rozwiązania Goodmana. Nie zepsuję jednak niespodzianki;-)

Uzupełnienie:

W czasach, gdy Sussman był nowicjuszem, Minsky przyszedł do niego, gdy siedział hakując przy PDP-6.

„Co robisz?”, Zapytał Minsky. „Trenuję losowo okablowaną sieć neuronową do gry w kółko i krzyżyk”, odpowiedział Sussman. „Dlaczego sieć jest podłączana losowo?”, Zapytał Minsky. „Nie chcę, żeby miał jakiekolwiek uprzedzenia, jak grać” - powiedział Sussman.

Minsky zamknął oczy. „Dlaczego zamykasz oczy?” Sussman zapytał swojego nauczyciela. „Aby pokój był pusty”. W tym momencie Sussman został oświecony.

pillmuncher
źródło
-4

Nie

Ponieważ zwyczajne uczenie się wzorców (za pomocą którejkolwiek metody) nie jest tym samym, co „uczenie się optymalnego grania w szachy”.

Wymaga to planowania i strategii, co bardzo różni się od zwykłego uczenia się ustalonych wzorców.

Ciemna noc
źródło
1
Tak naprawdę tego nie wiesz; poza tym pytanie brzmi, czy jest możliwe (dla komputera, ale te same ograniczenia prawdopodobnie dotyczyłyby także ludzi) nauczenie się rzeczywistych reguł gry w szachy jedynie poprzez analizę przykładowych gier.
tdammers
1
Myślę, że źle zrozumiałeś pytanie ...
wałek klonowy
Po pracy (praca magisterska) z AI (sieci neuronowe) jestem całkiem pewien, że nie może. O ile nie masz dowodów, by powiedzieć inaczej, nie możesz po prostu powiedzieć „nie wiesz tego”
Darknight,