Z matematického hlediska jsou deterministické hry dvou hráčů s perfektními znalostmi (jako třeba šachy, dáma, Go nebo piškvorky) v podstatě vyřešený problém – v každé pozici hry stačí jen dopředu propočítat herní strom všech možných zbývajících tahů a vybrat následující tah, který vede nejpravděpodobněji k výhře.
Z hlediska informatiky ale jistý drobný problém k řešení zůstává – u velké části her je uvažovaný herní strom exponenciálně velký – je to počet možných tahů v každém kroku umocněný počtem kol do konce hry. Navrhnout a implementovat šachové strategie schopné porážet lidské hráče se poprvé podařilo už skoro před dvaceti lety, v případě hry Go je ale řešení daleko složitější.
Samotné pole při plné velikosti herní desky 19 x 19 dává v průměru 250 možných tahů a délka hry je přibližně 150 kol. To odpovídá hernímu stromu o velikosti 10360. Spočítat všechny varianty by i počítači trvalo věky. Navíc je velmi složité nadefinovat vhodnou ohodnocovací funkci jako u šachů (s jejím použitím není potřeba počítat všechny tahy, usuzuje se i podle síly figur na stole). Ve hře Go se totiž účastní pouze kameny stejné síly a o úspěšné strategii rozhoduje vždy (i poměrně dlouhá) sekvence kamenů, nikoliv jeden nebo několik málo tahů.
Ještě před několika málo lety platilo, že pokročilí hráči Go odmítali hrát s počítači, protože je snadno poráželi. První částečný zvrat přineslo použití tzv. metod Monte Carlo, tedy postupů, kdy se při rozhodování o tahu použije odhad založený na náhodně vybraných třeba 100 kompletních hrách odehraných pomocí simulace od aktuálního stavu. Tím se pro každou takovou hru získá poměrně přesná informace o jejím výsledku, a pokud se vybere tah, který v nejvíce simulovaných hrách vedl k vítězství, tak je to často dobrý odhad.
V kombinaci s předchozími technikami pro počítačem hrané Go se těmito metodami začalo dařit porážet slušnější lidské hráče, zatím ovšem na menších hracích plochách 9 x 9 polí. Program AlphaGo k metodám Monte Carlo přidal v posledních letech velice úspěšné techniky tzv. hlubokých neuronových sítí. Klasické neuronové sítě známé desítky let používaly většinou tři až čtyři vrstvy pro modelování různých matematických funkcí. V posledních letech se ale díky úpravám učících technik podařilo zvýšit počet vrstev uvnitř sítě – AlphaGo používá hluboké neuronové sítě s 13 vrstvami. Vzhledem k tomu, že každá vrstva přidává další úroveň abstrakce, je se taková síť schopná naučit i velmi komplikované struktury, jako je třeba právě vyhodnocení dalšího tahu v Go.
AlphaGo se učí dvěma způsoby – jednak z databáze 30 milionů vzorů profesionálních her, jednak z výrazně většího množství her, které hraje „sám se sebou“. Tím je program schopen vymýšlet i úplně nové strategie. Samotné neuronové sítě AlphaGo předčily úroveň dosavadních programů Go a když se podařilo zkombinovat neuronové sítě s metodami Monte Carlo, tak v loňském roce AlphaGo překonal evropského šampióna Go 5:0 a letos v březnu i světovou jedničku v Go Lee Sedola v poměru čtyři výhry na jednu porážku.
Znamená to, že jedna z nejobtížnějších her přestala být doménou lidí? Ano, znamená. A znamená to taky, že téměř jakýkoliv problém vhodný pro počítačové učení, tedy takový, kde je k dispozici dost trénovacích dat a prostor pro „samoučení“, se velice pravděpodobně naučí počítače řešit lépe než lidé, a to ve velice blízké době.
Zbývá vůbec nějaká oblast, ve které jsou lidé lepší než počítače? Odpověď je možná trochu sebestředná, ale jeden z dosavadních nejkomplexnějších problémů je lidská komunikace. Zatím žádnému programu se nepodařilo zvládnout přirozený jazyk do té míry, aby byl schopný plně komunikovat (co se týká obsahu) na stejné úrovni jako lidé. Ale ve světle posledních počítačových úspěchů se dá očekávat, že ani tato hranice nevydrží dlouho.
Autor je docentem na Fakultě informatiky Masarykovy univerzity.