Niedawno pojawiła się wiadomość, że zespół badawczy DeepMind firmy Alphabet rozszerzył swój silnik uczenia maszynowego o grę w Shogi i szachy. Najwyraźniej po zaledwie kilku godzinach samodzielnego uczenia się, co oznacza, że gra się przeciwko sobie, biorąc pod uwagę zasady gry, jego wydajność w szachach już przewyższyła osiągi najpopularniejszych obecnie silników, takich jak Stockfish 8. Osobiście nie wiem jeszcze, jak dokładnie skonfigurowano mecze, ponieważ w jakich warunkach skonfigurowano Sztokfisz, ponieważ jeśli czasy obliczeń są ograniczone, silniki są w stanie działać bardzo słabo. W każdym razie jest to bardzo imponujące osiągnięcie, ponieważ nawet jeśli okaże się, że można optymalnie skonfigurować Sztokfisz, z kilkoma dodatkowymi godzinami treningu, AlphaZero ponownie przekroczy poziom gry, co oznacza, że AlphaZero jest zasadniczo silniejszy niż jakikolwiek obecny standardowy silnik szachowy oparty na heurystycznych funkcjach oceny.
Teraz, w świetle tych wiadomości, byłoby wspaniale, gdyby ktoś mógł wyjaśnić główne różnice w działaniu silnika szachowego uczonego maszynowo w porównaniu ze standardowymi silnikami, do których wszyscy jesteśmy przyzwyczajeni. Bardziej konkretnie:
- Czy funkcja oceny, z której korzysta AlphaZero, przeszkolona metodami uczenia maszynowego, nie jest po prostu kolejną heurystyczną funkcją oceny? Jeśli tak, czy można uczciwie powiedzieć, że podstawową różnicą między funkcjami oceny dwóch silników jest fakt, że Sztokfisz ma zoptymalizowaną funkcję oceny dostosowaną ręcznie przez ludzi, co oznacza, że definicja funkcji optymalizacji jest stała, podczas gdy dla AlphaZero, funkcja oceny celu jest ciągle redefiniowana poprzez dodatkowe szkolenie (na przykład poprzez samodzielną grę)? Dzięki temu drugie podejście jest znacznie bardziej dynamiczne.
Ostatecznie, niejasno mówiąc, silnik taki jak Sztokfisz, stosuje swoją funkcję oceny do drzewa możliwych ruchów, decydując, które gałęzie zatrzymać, a które opadać, a następnie poprzez głębszy betonAnaliza każdej gałęzi, ponownie poprzez funkcję oceny, dowiaduje się, która gałąź przyniosła najwyższą wartość, i która staje się główną odmianą (oczywiście istnieje wiele zaawansowanych technik wokół tego procesu, aby skutecznie przycinać to duże drzewo). Oznacza to, że dla każdej pozycji ta niezwykle konkretna procedura musi zostać powtórzona, aby Sztokfisz mógł podjąć decyzję. W przeciwieństwie do tego, wyobrażam sobie, że AlphaZero robi coś bardzo odmiennego, a mianowicie nie polega na konkretnej analizie drzewa możliwych ruchów w danej pozycji, zamiast tego jego funkcja oceny zasadniczo przypisuje wartość do tej pozycji (która intuicyjnie jest podobna do stawiania aktualna pozycja analogicznie do wszystkich innych pozycji, dla których została wyszkolona), bez konieczności wykonywania konkretówanaliza w taki sposób, jak robi Sztokfisz, a nawet człowiek. Czy to w ogóle dźwiękowy obraz działania AlphaZero lub podobnie wyszkolonych silników uczenia maszynowego?
Wiemy, że przestrzeń pozycji szachowych jest na tyle duża, że każda próba próbkowania wszystkich pozycji w niej byłaby w zasadzie całkowicie daremna (złożoność WYPŁATY), co sugerowałoby, że żadna ilość treningu poprzez grę własną nie byłaby wystarczająca, aby zbadałem wszystkie pozycje, więc w jaki sposób wynik końcowy może być dobry, mimo że potencjalnie zbadałem niewielki ułamek pozycji w przestrzeni poprzez grę własną? Jaki jest tutaj kluczowy pomysł w grze?
Domyślam się, że AlphaZero ma bardzo optymalny sposób porównywania dowolnej pozycji, nawet jeśli nowej, z wcześniej odwiedzoną w swoim zestawie treningowym, im bliższe porównanie, tym bardziej wiarygodna ocena może być wyciągnięta z porównania. Na przykład, kiedy grał ruch Bg5 w grze 5 , musiał zbadać podobną strukturę podczas treningu, tj. Jest w stanie rozpoznać, że ta pozycja jest zasadniczo równoważna (być może całkowicie) innej pozycji badanej podczas treningu, w analogia do tego, w jaki sposób rozpoznawanie twarzy jest osiągane przez uczenie maszynowe, i w rezultacie stwierdza, że Bg5 powinien być najlepszym posunięciem, tak jak miało to miejsce na tej (lub tych) innych podobnych pozycjach. Czy to w ogóle poprawne przypuszczenie? Nie mam pojęcia, jak to porównanie jest zrobione, ponieważ na pewno nie jest możliwe zapamiętanie wszystkich wyszkolonych pozycji i ich analizowanie za każdym razem.
Jest to jedynie próba uzyskania tak wglądu w funkcjonowanie AlphaZero i w jaki sposób podejmowana jest decyzja na danym stanowisku.
Myślę, że moim pytaniem byłoby, w jaki sposób sieć neuronowa „uczy się”, co robić w pozycji, z którą się nie spotkała. Powiedzenie, że rzeczywisty AZ wykonuje MCTS za pomocą obciążników + obciążenia z wyuczonej sieci neuronowej, po prostu przesuwa go o krok wstecz w tym, jak sieć neuronowa oblicza te wartości. Jeśli to przez losową grę własną, bez ludzkiej wiedzy, to jak decyduje, jak zważyć pozycję, której nigdy nie widział?
źródło