Myślę, że OP mylił się co do AlphaGo z alfa-beta. W wersji alfa beta naprawdę użyłbyś sieci zasad do pomocy w przycinaniu, ale nie tutaj. Ponownie nie ma przycinania, ponieważ algorytm opiera się na wyszukiwaniu drzewa Monte-Carlo (MCTS).
Każdy, kto uważa, że moja odpowiedź jest zbyt długa, może przejść do sekcji podsumowania, w której wyjaśniam, dlaczego obie sieci nie są redundantne.
W poniższym przykładzie dokonam uproszczenia, aby moje pomysły były łatwiejsze do zrozumienia.
Przykład:
Wyobraź sobie, że masz pozycję, w której są dwa legalne ruchy. Pierwszy ruch jest dla ciebie zagubiony, jednak drugi ruch daje przewagę wygraną.
- Pierwszy ruch: wymuszona strata dla ciebie
- Drugi ruch: wymuszone zwycięstwo dla ciebie
Sieć oceny
Załóżmy, że sieć oceny oferowana przez Google jest idealna. Może doskonale ocenić dowolną pozycję liścia w naszym przykładzie. W tym przykładzie nie zmienimy naszej sieci wartości.
Aby uprościć nasz przykład, załóżmy, że nasza sieć wartości daje:
- -1000 dla dowolnej pozycji liścia, która jest dla ciebie stratą
- +1000 za każdą pozycję liścia, która jest dla ciebie wygrana
Sieć polis
Załóżmy, że Google udostępnia dwie sieci zasad. Prawdopodobieństwa generowane dla naszej pozycji to:
- Zasada 1: 0,9 dla ruchu 1 i 0,1 dla ruchu 2
- Zasada 2: 0,2 dla ruchu 1 i 0,8 dla ruchu 2.
Pamiętaj, że nasza pierwsza sieć polis podaje niepoprawne wcześniejsze prawdopodobieństwo dla naszego przykładu. Daje 0,9 za ruch 1, który jest ruchem przegrywającym. To dobrze, ponieważ nawet Google nie jest w stanie wyszkolić idealnej sieci zasad.
Gra z pierwszą siecią polis
AlphaGo musi wygenerować symulację za pomocą Monte-Carlo i musi wybrać ruch 1 lub 2. Teraz AlphaGo rysuje losowo rozmieszczoną zmienną o jednolitym rozkładzie i wybiera:
- Przesuń 1, jeśli liczba losowa wynosi <= 0,9
- Przesuń 2, jeśli liczba losowa wynosi> 0,9
Więc AlphaGo jest znacznie bardziej prawdopodobne, aby wybrać przegrany ruch do symulacji (w naszej pierwszej symulacji). W naszej pierwszej symulacji użyjemy sieci wartości, aby uzyskać wynik dla symulacji. W artykule jest to:
Wartość ta wynosiłaby -1000, ponieważ ta symulacja prowadziłaby do straty.
Teraz AlphaGo musi wygenerować drugą symulację. Ponownie, pierwszy ruch byłby o wiele bardziej prawdopodobny do wybrania. Ale ostatecznie drugi ruch zostanie wybrany, ponieważ:
- Nasze wcześniejsze prawdopodobieństwo drugiego ruchu wynosi 0,1, a nie zero
- AlphaGo zachęca się do wypróbowania ruchów, które nie były zbyt często badane. W pracy odbywa się to za pomocą tego równania:
Zauważ, że N
jest to liczba ruchów wyszukanych dla ruchu i jest to w mianowniku. Im bardziej prawdopodobne jest przeszukanie naszego pierwszego ruchu, tym mniejsza jest ta u
funkcja. Tak więc prawdopodobieństwo wyboru drugiego ruchu zwiększa się, ponieważ AlphaGo faktycznie wybiera ruch według tego równania:
To jest kluczowe równanie. Proszę uważnie na to spojrzeć:
- Ma termin
P
na wcześniejsze prawdopodobieństwo (podany przez sieć polis)
- Ma termin
Q
oceny wyników (podany przez sieć wartości)
Teraz wiemy, że nasz drugi ruch zostanie ostatecznie wybrany. Kiedy tak się dzieje, sieć wartości daje +1000. To wzrośnie Q
, co sprawia, że drugi ruch jest o wiele bardziej prawdopodobny w późniejszych symulacjach.
Biorąc pod uwagę wystarczającą liczbę symulacji, liczba wyborów drugiego ruchu do symulacji powinna być większa niż liczba wyborów pierwszego ruchu.
Wreszcie ruch, który AlphaGo postanawia wykonać, jest (cytowany z artykułu):
Po zakończeniu wyszukiwania algorytm wybiera najczęściej odwiedzany ruch z pozycji głównej.
Gra z drugą siecią polis
Nasza druga sieć polis będzie potrzebować mniej iteracji, aby wybrać ruch 2, ponieważ jej wcześniejsze prawdopodobieństwo podane przez sieć polis jest poprawne.
Uwagi
Wszystko tutaj jest bardzo podobne do Bayesian
analizy. Zaczynamy z pewnym wcześniejszym prawdopodobieństwem (podanym przez sieć polis), a następnie generujemy dane w celu przesunięcia rozkładu prawdopodobieństwa (podanego przez sieć wartości).
Streszczenia
- Sieć polityk służy do generowania wcześniejszych prawdopodobieństw, które określają, jaki ruch powinien wybrać wyszukiwanie Monte-Carlo
- Sieć wartości służy do generowania danych w celu sprawdzenia poprawności sieci polityk. Jeśli sieć zasad jest zła, AlphaGo potrzebuje więcej zasobów obliczeniowych do konwergencji (jeśli w ogóle).
- Możesz myśleć o tym jak o analizie bayesowskiej