Jedno z bardziej popularnych pytań zadawanych na tej stronie dotyczy perspektywy samouczącej się szachowej sztucznej inteligencji.
Dzisiaj ChessBase jest rozproszony przez relację z turnieju FIDE Candidates, aby poinformować, że nowa sztuczna inteligencja po raz pierwszy pokonuje wiodącego mistrza dość odmiennej gry go, która od wielu lat opiera się sztucznej inteligencji szachowej. Wstępne czytanie raportu sugeruje, że nowa sztuczna inteligencja go różni się od sztucznej inteligencji szachowej, ale jest bardziej sztuczną inteligencją w grach ogólnych (GGP). Artykuł ChessBase nie używa jednak terminu GGP, ale wydaje się, że mówi, że AI go może wygrać w prostych grach wideo.
Czy jest jakiś powód, dla którego tak zwycięska sztuczna inteligencja nie mogłaby przy drobnych korektach wygrać również w szachach? Jeśli tak, to czy taka sztuczna inteligencja jest obietnicą osiągnięcia czystego samokształcenia, o którym wspominało kilka doskonałych odpowiedzi na wcześniejsze pytanie, które w tym czasie nie było jeszcze możliwe? Dlaczego lub dlaczego nie?
Podejrzewam, że żadna naprawdę kompletna, w pełni świadoma odpowiedź na moje pytanie nie jest jeszcze dostępna, więc doceniłbym nawet częściową odpowiedź opartą na powiązanej wiedzy specjalistycznej.
Aby uzyskać dodatkowe informacje, zobacz także powiązane pytanie i odpowiedzi.
AKTUALIZACJA
Kiedy powyższe pytanie zostało po raz pierwszy opublikowane pięć dni temu i kiedy podano niektóre z poniższych dobrych odpowiedzi, właśnie pojawiły się pierwsze wiadomości dotyczące zwycięstwa AI. Od tego czasu pojawiły się dodatkowe informacje i komentarze.
Szczególnie interesująca od tego czasu była dość czytelna, pięciostronna dyskusja przy okrągłym stole, w której Jonathan Schaeffer zauważa:
Uczenie się od gier ludzkich pomaga przyspieszyć naukę programu. AlphaGo może nauczyć się, jak samodzielnie stać się silnym graczem, bez korzystania z ludzkich gier. Proces uczenia się trwałby dłużej.
Według gospodarza okrągłego stołu Schaeffer jest „profesorem informatyki na uniwersytecie w Albercie i człowiekiem, który rozwiązał warcaby”; więc przypuszczalnie może mieć kwalifikacje do komentowania.
Aby uzyskać więcej informacji, oto zapis kolejnej, otwartej dyskusji, której wielu uczestników wydaje się lepiej poinformowanych niż zwykle. Dyskusja odbyła się podczas meczu.
Dalsza aktualizacja, półtora roku później: komentator @MarkS. pisze:
To tylko komentarz, ponieważ dotyczy Go, nie szachów, ale AlphaGo Zero osiągnęło „czysty trening” po tym, jak powiedziano mu, kto wygrał (a nie końcowy wynik) i jest silniejszy i znacznie wydajniejszy niż sztuczna inteligencja, która pokonała Lee Sedola . Aby uzyskać więcej informacji, zobacz deepmind.com/blog/alphago-zero-learning-scratch
Odpowiedzi:
Cóż, cóż, cóż! DeepMind opublikowało artykuł, w którym twierdzą, że zaprogramowali i przeszkolili komputer sieci neuronowej do pokonania Sztokfisz.
Przy 1 minucie myślenia na ruch ich komputer AlphaZero pokonał Sztokfisza o +25, = 25, -0 z białym i + 3, = 47,0- jako czarny.
„Wyszkolili” 3 osobne komputery do gry w szachy, shogi i Go i przekonująco pokonali swoich krzemowych rywali.
Oto, w jaki sposób artykuł opisuje szkolenie i ocenę -
W ich komputerze zastosowano nową formę układu o nazwie „TPU” ( Tensor Processing Unit ) opracowaną przez Google do zadań uczenia maszynowego.
Twierdzą także, że ich algorytm wyszukiwania drzewa Monte Carlo jest lepszy i bardziej „ludzki” niż tradycyjne algorytmy wyszukiwania alfa-beta -
Oto niektóre z gier -
Gra
Biały: AlphaZero Czarny: Sztokfisz
źródło
Ok, muszę przyznać, że się myliłem. Chociaż chciałbym twierdzić, że wynikało to ze znajomości opinii eksperta, a nie ogólnej tępoty: Cytując artykuł : „Jednak programy szachowe wykorzystujące tradycyjne MCTS były znacznie słabsze niż programy wyszukiwania alfa-beta (4, 24); podczas gdy alfa -beta Programy oparte na sieciach neuronowych wcześniej nie były w stanie konkurować z szybszymi, ręcznie wykonanymi funkcjami oceny ”.
Najwyraźniej szachy są na tyle strategicznie głębokie, że można strategować kogoś, kto byłby w stanie obliczyć cię. To dla mnie wielka niespodzianka, ponieważ rozwój silników szachowych szedł w przeciwnym kierunku. (Najwyraźniej nadal istnieje niewielkie zastrzeżenie, czy AlphaZero jest naprawdę silniejszy niż Sztokfisz: Sztokfisz grał tylko 1 GB dla tablic skrótów i 64 rdzeni może nie być tak naprawdę zgodny z czterema TPU)
To także naprawdę ekscytujące wydarzenie, ponieważ AlphaZero najprawdopodobniej ma bardzo różne moce od tradycyjnych silników.
Oznacza to również, że aktualizuję swoje przekonanie o znaczeniu AlphaGo jako przełomu technologicznego. Zasadniczo rozbijanie shogi, Go i szachów za pomocą jednego zestawu jest całkowicie niesamowite, nie wspominając o dziesiątkach innych gier, w które AlphaZero mógłby grać na nadludzkim poziomie.
Istnieje dobre wytłumaczenie, dlaczego MCTS jest naprawdę dobrym pomysłem nawet dla szachów w porównaniu do wyszukiwania alfa-beta (z artykułu): „AlphaZero ocenia pozycje za pomocą aproksymacji funkcji nieliniowej opartej na głębokiej sieci neuronowej, a nie liniowej aproksymacja funkcji stosowana w typowych programach szachowych. Zapewnia to o wiele silniejszą reprezentację, ale może również wprowadzać fałszywe błędy aproksymacji. MCTS uśrednia te błędy aproksymacji, które mają tendencję do anulowania podczas oceny dużego poddrzewa. W przeciwieństwie do wyszukiwania alfa-beta oblicza jawną wartość mini-max, która propaguje największe błędy aproksymacji do katalogu głównego poddrzewa. " (nacisk przeze mnie)
Oto moja stara odpowiedź, wciąż zawierająca pewne ważne punkty, mimo że wniosek został zastąpiony przez rzeczywistość.
Po pierwsze Alphago nie jest ogólnym systemem gry. Jest to program przeznaczony wyłącznie do grania w go i nic więcej. Jest on jednak zbudowany z pewnych bloków konstrukcyjnych, które mają znacznie szersze zastosowanie, takich jak splotowe sieci neuronowe , które zostały użyte w rozpoznawaniu obrazu i które mają natychmiastowe zastosowanie w diagnostyce medycznej, oraz nauka o wzmocnieniu, która została wykorzystana do opanowania gier Atari wymienionych w artykuł.
Ponadto obecne silniki „uczą się” poprzez samodzielne granie : „W ciągu nocy sześć komputerów Leflera gra przez ponad 14 000 gier w ciągu ośmiu godzin.„ Sześć maszyn razy 14 000 gier to dużo gier ”- mówi. z każdą grą baza danych staje się coraz głębsza i bogatsza. Istnieje nawet sportowe zainteresowanie oglądaniem, jak komputery grają ze sobą. Rezultatem ruchliwie wirujących maszyn Leflera jest stale rosnąca sprawność Komodo. ”
Aby dojść do głównej części pytania:
Istnieje ważna różnica między szachy i go, przynajmniej z perspektywy programisty. Szachy są bardziej grą taktyczną, podczas gdy go jest bardziej strategiczną. Oznacza to, że w obliczeniach szachowych głębokość przebija ocenę pozycji. Jest to w zasadzie kluczowy wgląd, który odróżnia „stare” silniki, takie jak Fritz, Shredder, Junior i nowsze generacje, takie jak Fruit, Rybka, Houdini, Sztokfisz, Komodo. Ponieważ na końcu każdej linii musisz ocenić pozycję i chcesz obliczyć wiele linii, a jakość oceny nie jest tak ważna, jak głębokość wyszukiwania, silniki szachowe mają funkcje oszczędnej i szybkiej oceny.
Z drugiej strony złożoność taktyczna jest zbyt duża nawet dla komputerów. Dlatego dokładna ocena pozycji i ruchów jest kluczowa. Nowością w grze Alphago jest ta moc oceny, która opiera się na splotowych sieciach neuronowych .
Aby w końcu przejść do mojego punktu: podczas gdy funkcje oceny szachów są wąskie i szybkie, sieci neuronowe mają miliony, czasem miliardy parametrów. Ponieważ „uczenie się” w tym kontekście oznacza modyfikowanie parametrów, istnieje znacznie więcej możliwych postępów w programach samouczących się.
Tak, możesz użyć konfiguracji takiej jak Alphago, aby stworzyć silnik szachowy, ale nie byłoby to szczególnie dobre. Uruchomienie funkcji oceny zajęłoby tak dużo czasu, że musiałbyś wykorzystać ogromny klaster gpus, aby dostać się do niezbędnych głębokości wyszukiwania (co robi Alphago). Możesz stworzyć bardzo dobrą funkcję oceny , ale kompromis prędkości nie jest tego wart.
źródło
Istnieje projekt o nazwie spawkfish, który próbuje to zrobić. Jest to oparty na sieci neuronowej silnik, którego celem jest „zbadanie, w jaki sposób najnowsze osiągnięcia w Go można zastosować w świecie szachów komputerowych”.
To młody projekt, a silnik jest nadal dość słaby. Gra w nią jest interesująca, ponieważ jej gra pozycyjna jest lepsza niż taktyka.
źródło
Krótka odpowiedź brzmi „nie!”
Szachy i gra różnią się radykalnie pod względem względnej prostoty i względnej złożoności, które wynikają z ich geometrii i sposobu wygrania. Łączą się, tworząc program, który jest dobry w jednym, bezużyteczny w drugim.
W szachach wygrywasz przez matowanie przeciwnika, punkty się nie liczą. Oczywiście rozsądny przeciwnik często rezygnuje, zanim dostarczysz mat, ale zasada jest taka sama. W drodze wygrywasz, mając więcej punktów na koniec gry. Jeśli mam króla i królową, a ty masz króla, wieżę i pionka, ale zbudowałeś fortecę, nie ma znaczenia, że mam 9 punktów za królową, a ty masz tylko 6 punktów za wieżę i pionka. Gra jest remisem.
To robi zasadniczą różnicę w złożoności między szachami i go. W biegu możesz po prostu utrzymać wynik, a będziesz wiedział, kto wygrywa. W szachach jedynym sposobem na sprawdzenie, kto wygrywa, jest czysta kalkulacja. W tym sensie szachy są znacznie bardziej złożone niż gra.
Jednocześnie, ze względu na geometrię obu gier, istnieje o rząd wielkości więcej możliwości w grze niż w szachach. W tym sensie gra jest znacznie bardziej złożona niż szachy.
Program szachowy polega na obliczeniu brutalnej siły wszystkich możliwych ruchów na pewną głębokość, która określa jego siłę. Program go nie może tak działać i grać w coś bardziej zaawansowanego niż go na poziomie początkującym.
Podstawowym celem go jest kontrolowanie większego terytorium niż przeciwnik. Na koniec gry nie ma znaczenia, czy różnica wynosi 1 kamień czy 100 kamieni, oba są wygrane. Za każdym razem, gdy kładziesz kamień, robisz dwie rzeczy. Zwiększasz swoje terytorium, potencjalne lub rzeczywiste, i zmniejszasz terytorium przeciwnika.
Czasami, kiedy jest faktyczny wzrost lub spadek terytorium, łatwo jest obliczyć wartość ruchu, ale gdy jest to potencjalne, bardzo trudno jest ocenić. Jako słaby gracz rozumiem „rzeczywisty” znacznie lepiej niż „potencjał”, a silniejszy gracz pokona mnie, budując znacznie większe potencjalne terytorium w centrum, podczas gdy ja buduję mniejsze rzeczywiste terytorium na krawędziach i rogach. Silniejszy gracz zbuduje umiejętność osądzania intuicyjnie i wyczuwania na podstawie wielu gier i rozpoznawania, jak budować „potencjalne” terytorium.
Wcześniej mówiłem, że za każdym razem, gdy kładę kamień, zwiększa on moje terytorium (rzeczywiste lub potencjalne) i zmniejsza ruch przeciwnika (właściwie jeśli jest to głupi ruch, zrobi to odwrotnie!). Na dowolnej pozycji nie wszystkie ruchy są takie same. Kamień umieszczony w jednej pozycji może być wart znacznie więcej lub znacznie mniej niż kamień umieszczony w innej pozycji.
Zazwyczaj w grze odbywają się małe „walki”, w których gracze umieszczają swoje kamienie blisko siebie, zaznaczając swoje terytorium i ograniczając przeciwnika. Tymczasem istnieje możliwość rozpoczęcia wytyczania terytorium w innej części planszy lub przejścia do walki w innym miejscu, w którym obaj gracze mają już kamienie.
W takich sytuacjach bardzo ważna jest wiedza, kiedy zatrzymać jedną walkę, ponieważ potencjalne korzyści zmalały i albo przejść do innej walki, albo być może wyjechać na dziewicze terytorium. Czasami zależy to od trudnych obliczeń, ale często jest bardziej mgliste i nie podlega obliczeniom. Jako słaby gracz jest to miejsce, w którym silny płatnik zmiażdży mnie za każdym razem.
W takich sytuacjach komputer stosuje metody probabilistyczne do generowania oczekiwanego wyniku dla określonego ruchu. Czasami rzeczywista wartość okaże się nieco mniejsza, czasem nieco większa, ale na dłuższą metę nawet bardziej. Będzie wybierał ruch z najwyższą oczekiwaną wartością, oczekując, że w długim okresie gry małe błędy zostaną anulowane, a jego strategia zwycięży.
Nie jest to strategia, która brzmi znajomo dla szachistów i nie jest taka, która będzie działać w szachach. Jest to coś, co wydaje się znane każdemu, kto śledzi to, co dzieje się na rynkach akcji. Brzmi bardzo podobnie do czegoś, co nazywa się „obrotem o wysokiej częstotliwości”, w którym komputery będą dokonywać tysięcy małych zakładów lub po prostu proponują zakłady co sekundę, aby „nikiel i dziesięciocentówka” rynku, a może nawet przesunąć go bardzo nieznacznie na korzyść w okresach milisekund.
Już teraz rynki finansowe są zdominowane przez tego rodzaju handel algorytmiczny, co sugeruje, że tego rodzaju program triumfował już w znacznie bardziej dochodowym obszarze niż gra planszowa.
źródło
(Każdy, kto chce głębokiej dyskusji technicznej dla AlphaGo, może spojrzeć na mój post )
Krótka odpowiedź : nie
Długa odpowiedź :
Najpierw musimy zrozumieć, dlaczego Google nie wdrożyło wersji alfa-beta w AlphaGo. Sztokfisz i Komodo (i wszystkie silniki szachowe) mają alfa-beta, dlaczego AlphaGo nie miałoby?
Powód : nie ma łatwego i taniego sposobu, który mógłby dokładnie oszacować statycznie pozycję Go.
W szachach zawsze możemy liczyć materiały, co jest bardzo skutecznym sposobem na statystyczną ocenę pozycji. Chociaż nie jest idealny, jest bardzo szybki i bardzo dobry w szachy.
Przeszukiwanie przestrzeni stanu za pomocą Monte-Carlo jest gorszą metodą niż alfa-beta. Google zaimplementowałoby alfa-beta, gdyby mogli, ale nie mogli. W związku z tym zostali zmuszeni do użycia czegoś znacznie wolniejszego.
Silnik szachowy nie grałby lepiej z Monte-Carlo.
źródło
Nie zgadzam się z innymi odpowiedziami. Jestem informatykiem, który pracuje zawodowo w obszarze sztucznej inteligencji, a także jestem kandydatem na mistrza szachów i 3 dana na igo.
Myślę, że w tej chwili nie jest jasne, czy metody Deep Mind można zastosować do szachów, ale myślę, że jest to możliwe.
Obecnie najlepsze programy do gry w szachy w coraz większym stopniu opierają się na heurystyce, a próba użycia architektury AlphaGo do szachów byłaby pod pewnym względem podobna.
Jedną z kluczowych cech architektury AlphaGo, którą należałoby zmienić, jest metoda identyfikacji kluczowych kwadratów (lub map cieplnych), która jest szczególna dla gier podobnych do igo i nie ma bezpośredniego zastosowania do szachów. Trzeba by opracować jakiś analog tej metody, aby architektura AlphaGo była odpowiednia dla szachów. Na przykład moglibyśmy mieć pojęcie „kluczowych elementów” zamiast kluczowych kwadratów.
Myślę, że argument, że architektura AlphaGo nie ma zastosowania do szachów, ponieważ szachy są bardziej taktyczne, nie jest zbyt dobrym argumentem, ponieważ ostatecznie oba mają drzewa wyszukiwania, które są na tyle podobne, że AlphaGo można zdecydowanie dostosować do szachów.
źródło
Odpowiedź brzmi tak! Google właśnie to udowodnił wczoraj, gdy AlphaZero pokonało najlepszy program szachowy, wykorzystując jedynie wiedzę o zasadach i samokształcenie bez wykorzystywania ludzkiej wiedzy o szachach. Przyjęta odpowiedź jest błędna. Link do artykułu jest tutaj: link
źródło
Aby zobaczyć AlphaZero w akcji, śledź http://lczero.org/ lub zagraj na http://play.lczero.org/
źródło