You are currently viewing Człowiek vs. Maszyna czy może Człowiek & Maszyna?

Człowiek vs. Maszyna czy może Człowiek & Maszyna?

  • Post author:

   Znane powiedzenie mówi, że: „Zły to uczeń, który nie przewyższa swego mistrza.” W tym wypadku dzieło przewyższyło swojego stwórcę. Od przeszło 20 lat są dziedziny, w których człowiek w rywalizacji z komputerem dostaje po prostu tęgie lanie. Jest nią np. królewska gra – szachy. Już w 1997 roku Garri Kasparow, mistrz świata i jeden z najwybitniejszych przedstawicieli w swoim fachu musiał uznać wyższość maszyny. Od tego czasu, ja z zamiłowania szachista, nie słyszałem o wielu kolejnych pojedynkach ludzkości ze sztuczną inteligencją, bo taki bój po prostu nie ma sensu.

   To, że bój człowieka z komputerem w takim rozgrywkach jak szachy, shogi czy Go jest już niepodważalnie rozstrzygnięty, nie oznacza, że nie warto rozwijać technologii, która może „przydać się” w innych dziedzinach. Do roku 2017 silnik szachowy Stockfish, był jednym z najlepszych silników w tej grze, który przewyższał, najlepszych ludzkich graczy o klasę, ba nawet o kilka klas.

   Słowem wstępu chciałbym nadmienić, jak działają standardowe silniki szachowe nie wykorzystujące uczenia maszynowego ani sieci neuronowych, czyli np. wspomniany przez mnie „Król silników” do 2017 roku – Stockfish. Ich siłą jest możliwość analizy milionów pozycji na sekundę (w przypadku Stockfisha jest to aż 60 000 000 wariantów). Aby pokazać ilość możliwości w szachach wystarczy powiedzieć, że pierwsze 8 ruchów (4 białymi i 4 czarnymi) można wykonać na blisko 85 000 000 000 sposobów. Wszystkich możliwych ustawień na szachownicy jest około 1040, a możliwych kontynuacji partii około 10134. Używając obecnej techniki jest to niemożliwe do policzenia i rozwiązania gry, czyli opracowania takiej idealnej taktyki, która wygrywa lub remisuje z idealnie grającym przeciwnikiem. Możliwe i całkiem wykonalne jest natomiast zaprogramowanie silnika, by był w stanie przeszukać jak najwięcej wariantów do przodu oraz optymalizacja ilości tych wariantów – gdy silnik znajdzie mata w jednym ruchu to nie ma potrzeby by wertował dalej. Zasady ulepszania silników polegają w uproszczeniu na tym, by silniki jak najlepiej filtrowały ilość sensownych wariantów i znajdowały jak najwięcej ruchów do przodu w jak najkrótszym czasie. Co ciekawe silniki posiadają książkę debiutów – czyli kilka ruchów otwarć partii jednej i drugiej strony. Szachy zostały także rozwiązane dla 7 bierek (licząc 2 króle + piony + figury) – rozwiązania te zawarte są w tablicach Nalimova i Syzygy. Taki silnik poszukiwacz, który może z łatwością przewidzieć bardzo dużą liczbę wariantów stał się pogromcą gracza ludzkiego, a jego możliwości cały czas rosną. Wydawałoby się przeciwnik nie do pokonania? Paradoksalnie właśnie wcale nie.

   AlphaZero używa innej strategii zostania szachowym arcymistrzem, uczy się on dzięki sieci neuronowej. Sposób ten jest o tyle ciekawy, bo nie przypomina on wyliczania wszystkich możliwych wariantów tylko uczeniu się poprzez własne doświadczenie (uczenie się poprzez wzmacnianie). Wykorzystuje on przeszukiwanie wariantów metodą Monte Carlo i bada „tylko” 60 000 pozycji na sekundę. AlphaZero w przeciwieństwie do Stockfisha nie jest wyposażony w książkę debiutów, a swoją wiedzę i szachowe „umiejętności” zyskuje poprzez rozgrywanie przeciwko samemu sobie partii, gdzie dane wejściowe to tylko reguły gry.

   AlphaZero działa na tensorycznych jednostkach przetwórczych firmy Google (TPU). Wykorzystuje on 5000 modułów TPU pierwszej generacji (do generowania gier) oraz 64 drugiej generacji (do treningu sieci neuronowych). Algorytm po ukończeniu szkolenia grał na jednej maszynie z czterema TPU. Całkowity koszt sprzętu dla pojedynczego systemu wyceniono na bagatela 25 milionów USD.

Nauka gry w szachy zajęła mu zaledwie 4 godziny. I po tym czasie był już w stanie z sukcesami rywalizować z najsilniejszym silnikiem szachowym Stockfishem. Maszyny rozegrały ze sobą mecz składający się ze 100 partii. Pojedynek zakończył się wygraną AlphaZero w 28 przypadkach (25 białymi oraz 3 czarnymi), a pozostałe 72 potyczki zakończyły się remisem. Wynik to zatem 64 do 36 (wygrana : remis : przegrana – 1: 0,5 : 0). 

 Źródło: besty.pl + podpis własny

Można by rzec, że to był pogrom, ale realnie taki wynik oznacza różnice poziomów graczy o „zaledwie” 100 punktów rankingu elo (ranking określający siłę graczy, gdzie dla porównania między pierwszym obecnie człowiekiem w rankingu, mistrzem świata, Magnusem Carlsenem – 2862*, a dwunastym  Wang, Hao 2763* różnica wynosi 99 pkt).

(*stan na grudzień 2020)

Źródło: https://deepmind.com/blog/article/alphazero-shedding-new-light-grand-games-chess-shogi-and-go

   AlphaZero po 4 godzinach nauki kontynuował ją następnie przez kolejne 5 godzin, ale nie przyniosło to spektakularnej poprawy siły gry. Na grafice pokazane są wyniki sztucznej inteligencji podczas innych testów (mecz składający się z 1000 gier w szachy) uwzględniających także inne gry dwuosobowe. Co dość ciekawe, do niedawna ostatni ludzki bastion, czyli gra Go, został również gładko zdobyty przez AlphaZero.

Źródło: https://deepmind.com/blog/article/alphazero-shedding-new-light-grand-games-chess-shogi-and-go

   Dokonania AlphaZero można traktować jako ciekawostkę, bo tak naprawdę człowiek z silnikiem komputerowym w gry takie jak szachy, shogi czy Go nie ma najmniejszych szans już od lat. Ja, jak także wielu innych obserwatorów partii szachowych, nie odtrąbiłbym od razu sukcesu sztucznej inteligencji, bo Stockfish jak i AlphaZero potrzebują zupełnie różnych środowisk do pracy i ciężko jest przeprowadzić ich pojedynek na w pełni równych zasadach. To w dużym uproszczeniu trochę tak jakby człowiek ścigał się z gepardem, ale dozwolony byłby jedynie bieg na dwóch kończynach.  Najważniejsze jest jednak to, że AlphaZero podczas doskonalenia swoich umiejętności nie korzystał z żadnych książek, archiwalnych partii czy innych wspomagaczy, a doskonalił się znając tylko zasady gry, „wyciągając” wnioski z własnych błędów. O to właśnie chodzi, by sztuczna inteligencja, mając tylko dane wejściowe sama potrafiła dojść do rzeczy, które już wcześniej wymyślił człowiek, a potem korzystając z tego i mając o wiele większą moc obliczeniową mogła wspomóc ludzkość w rozwoju nauki i rozwiązywaniu nurtujących ludzkość problemów.