ЖАНРЫ

Охота на электроовец. Большая книга искусственного интеллекта
Шрифт:

В 2010 г. на Европейском конгрессе по го в Финляндии программа MogoTW смогла, имея фору в семь камней, обыграть (c разницей всего в полтора очка) Каталина Цэрану, игрока пятого профессионального дана (высший дан — девятый, существует также понятие «десятый дан» (дзюдан), но это уже не ранг, указывающий на мастерство игрока, а один из титулов), первого европейца, получившего в го профессиональный дан [896] .

В 2011 г. программа Zen, игравшая на 26-ядерном компьютере, достигла уровня пятого, а немногим позже и шестого любительского дана на сервере KGS Go, играя при временном ограничении 15 секунд за ход [897] .

896

Strickland J. (2010). Top 5 Computer vs. Human Game Matchups / howstuffworks // https://electronics.howstuffworks.com/5-computer-vs-human-game-matchups5.htm

897

Aydinian H., Cicalese F., Deppe C. (2013). Information Theory, Combinatorics, and Search Theory: In Memory of Rudolf Ahlswede. Springer Berlin Heidelberg // https://books.google.ru/books?id=qVW5BQAAQBAJ

Теоретически первый профессиональный дан означает, что его обладатель играет сильнее любого любителя, в том числе обладателя седьмого любительского дана (восьмой любительский дан является скорее почётным званием, выдаваемым за особые заслуги перед федерацией го). На деле же бывают и исключения, поскольку для получения профессионального дана необходимо соблюсти немало требований, в том числе сдать специальный экзамен, поэтому обладатель седьмого любительского дана иногда может играть в го на профессиональном уровне, но шестой любительский дан всё-таки далёк от этого.

В 2012 г. Zen победила обладателя необычного (так называемого космического) стиля игры в го Масаки Такемию (девятый дан) на 11 очков при форе в пять камней и на 20 очков при форе в четыре камня [898] .

В 2013 г. программа Crazy Stone, имея фору в четыре камня, одержала победу над Йосио Исиду по прозвищу Компьютер [899] (девятый дан) [900] .

В 2014 г. состоялся матч без форы Codecentric Go Challenge между Францем-Йозефом Дикхутом (6-й любительский дан) и Crazy Stone. Игра велась на доске 19 x 19 до трёх побед. Дикхут одержал победу, хотя и уступил в первой партии на полтора очка [901] . Ни один из более сильных игроков в го не соглашался до этого играть матч на равных условиях.

898

Cosmic Style V.S. Zen (Computer Go) / The Nihon Ki-in[Японская ассоциация го] // https://www.nihonkiin.or.jp/english/topics/12/topics2012_03.htm#120326f

899

Shotwell P. (2011). Go! More Than a Game. Tuttle Publishing // https://books.google.ru/books?id=qf_QAgAAQBAJ

900

House P. (2014). The Electronic Holy War / The Ney Yorker, March 25, 2014 // https://www.newyorker.com/tech/annals-of-technology/the-electronic-holy-war

901

Althofer I., Snatzke R. G. (2016). The codecentric Go Challenge 2014: Franz-Josef Dickhut vs. CRAZY STONE / ICGA Journal, Vol. 37, Iss. 4, pp. 232—236 // https://www.researchgate.net/publication/293799776_The_codecentric_Go_Challenge_2014_Franz-Josef_Dickhut_vs_CRAZY_STONE

В общем и целом успехи программ по игре в го несколько лет назад были весьма невелики. Спустя почти два десятилетия с момента победы над чемпионом мира по шахматам машины, казалось, были всё ещё безнадёжно далеки от чемпионского титула в го. Это заставляло критиканов, вечно принижающих прогресс в области искусственного интеллекта, злорадно потирать руки и отпускать едкие комментарии.

Кто бы мог подумать, что ситуация изменится в одночасье? О дальнейших событиях в мире го мы поговорим в одной из следующих глав.

3.8 Итоги и перспективы

Так как всякое настоящее состояние простой субстанции, естественно, есть следствие её предыдущего состояния, то настоящее её чревато будущим.

Готфрид фон Лейбниц. Монадология

Как описано в предыдущих главах, к началу 2010-х компьютерные программы доминировали практически во всех настольных играх: некоторые из них вообще оказались решены (например, шашки), для других решения были получены для некоторого, порой весьма внушительного, подмножества позиций, и даже в шахматах, которые часто назывались самой интеллектуальной игрой, достижения компьютерных программ не вызывали сомнений. Однако в то же время существовали игры, успех машин в которых был весьма скромным, — к ним, помимо го, относились, например, покер, бридж, игра аримаа (arimaa), созданная американским программистом индийского происхождения Амаром Саедом в качестве сложной для компьютеров игры [902] .

902

Syed O. The Creation of Arimaa // http://arimaa.com/arimaa/

Традиционные настольные и карточные игры по размеру поискового пространства в большинстве случаев существенно уступают стратегическим компьютерным играм, таким, например, как Civilization, Heroes of Might and Magic, не говоря уже о StarCraft или Dota. И в то же время стратегические компьютерные игры по этому показателю во много раз проще, чем ряд задач, возникающих перед интеллектуальным агентом в реальном мире. Если в арсенале методов искусственного интеллекта не было методов, позволяющих создавать ботов, способных обыгрывать человека в стратегические игры, значит, об успехах в решении стратегических задач в реальном мире можно было только мечтать. Чтобы сделать противостояние компьютерным противникам в играх более сложным, программисты нередко допускали некоторое жульничество — на сверхсложных уровнях в карточных играх компьютерные игроки могли заглядывать в карты противника (например, партнёр «Рентген» в программе «Марьяж» для игры в преферанс [903] ), выполнять действия быстрее или с меньшей ценой (например, в Civilization компьютерные противники на высоких уровнях быстрее совершают открытия и выполняют улучшения [904] ) и, наконец, просто управлять всеми персонажами (юнитами) одновременно и «видеть» всю игровую карту целиком. В реальном мире, однако, большая часть из подобных трюков невозможна, поэтому нужно искать другие решения.

903

Натансон Л., Серов А., Лесной Д. МАРЬЯЖ для Windows: академическое издание // https://dr-vamp-r.ucoz.ru/load/1-1-0-5

904

The Computer Is A Cheating Bastard: Civilization / TV Tropes // https://tvtropes.org/pmwiki/pmwiki.php/TheComputerIsACheatingBastard/Civilization

Попробуем разобраться в причинах, по которым для одних игр удалось быстро найти методы, позволяющие машинам играть достаточно сильно, в то время как в других они надолго задержались в статусе новичков. Например, очень часто в качестве причины того, что успехи машин в го гораздо скромнее, чем в шахматах, приводилось сравнение количества позиций и возможных партий в шахматах и го. Многих удовлетворяло это объяснение, поскольку чудовищные числа 10170 или 10360 буквально гипнотизировали людей и подавляли их волю к критическому мышлению. Между тем довольно очевидно, что размер поискового пространства игры не зависит от того, кто в неё играет — человек или компьютер. Кроме того, несмотря на то что успехи машин в играх были тем скромнее, чем больше было поисковое пространство этих игр, это правило всё-таки имело некоторые исключения. Например, в игре «отелло» (её также иногда называют «реверси») программы достигли уровня игры лучших людей-игроков на границе 1970–1980-х гг.: в 1980 г. программа Moor, созданная Майком Ривом, Майклом Стином и Дэвидом Леви, смогла выиграть одну из шести партий в матче с чемпионом мира Хироси Иноуэ [905] . Количество возможных позиций в «отелло» составляет [906] порядка 1028, а игр — 1050. Аналогичные показатели для английских шашек гораздо скромнее — 1020 и 1031, однако Шефферу удалось достичь подобного успеха только в 1990-е гг. В нарды — с их огромным количеством [907] позиций (1020) и игр (10144) — программа Берлинера выиграла у чемпиона мира в 1979 г.

905

Muller K., Schaeffer J. (2018). Man Vs. Machine: Challenging Human Supremacy at Chess. New York, NY, USA: Russell Enterprises, Incorporated // https://books.google.ru/books?id=0GV2DwAAQBAJ

906

Victor Allis (1994). Searching for Solutions in Games and Artificial Intelligence (PDF). Ph. D. Thesis, University of Limburg, Maastricht, The Netherlands // http://fragrieu.free.fr/SearchingForSolutions.pdf

907

Tesauro G. (1992). Practical issues in temporal difference learning / Machine Learning, Vol. 8, Iss. 3—4, pp. 257—277 // https:// doi.org/10.1007/BF00992697

В шахматном программировании прогресс на протяжении многих лет был связан с совершенствованием методов оценки позиции и алгоритмов, определяющих приоритетность рассмотрения тех или иных вариантов в игровом дереве. В основе этих методов и алгоритмов были эвристические правила. Задача оценки существенно упрощается, если эту оценку можно разъять на несколько относительно независимых компонентов. Первые шахматные программы независимо оценивали материал, проходные пешки, мобильность и расположение фигур и так далее. Со временем в оценочных функциях увеличивалось количество нелинейных компонентов. Например, «цена» проходных пешек или оценки расположения фигур стали зависеть от фазы игры, со временем появились и нелинейные подходы к оценке материала — добавились компоненты, отвечающие за те или иные сочетания фигур. Усложнение оценочных функций стало возможно не только и не столько потому, что разработчики программ изобрели новые компоненты оценки, а скорее в силу того, что стали доступны масштабные вычислительные эксперименты для подбора значений растущего множества этих компонентов. В XXI в. благодаря дешевизне и доступности высокопроизводительных вычислительных машин стало возможным использование сотен тысяч и даже миллионов партий на сверхкоротких контролях времени для подстройки различных параметров шахматных эвристик. Для решения таких задач появились и общедоступные инструменты. Например, Реми Кулом, автор шахматной программы Crazy Bishop и программы для игры в го — Crazy Stone, создал утилиту CLOP (Confident Local OPtimization, уверенная локальная оптимизация) для оптимизации параметров чёрного ящика в условии наличия шумов (Noisy Black-Box Parameter Optimization). Модифицируя различные параметры вашей программы по результатам множества тестовых игр, CLOP может подобрать значения этих параметров, позволяющие программе играть лучше [908] .

908

Coulom R. (2011). CLOP: Confident Local Optimization for Noisy Black-Box Parameter Tuning // https://www.remi-coulom.fr/CLOP/

Создатели движка Stockfish используют для экспериментов по улучшению своей программы распределённую платформу под названием Fishtest. В вычислительных экспериментах на этой платформе периодически задействовалось свыше 2000 машин с более чем 11 000 вычислительных ядер, что позволяло играть более 10 000 тестовых шахматных партий в минуту. Всего на платформе было осуществлено свыше 110 000 тестов, каждый из которых в среднем включал несколько десятков тысяч партий [909] , [910] . Несмотря на столь внушительное количество тестов, оценочная функция классической версии Stockfish базируется на наборе признаков, изобретённых людьми, хотя «цена» каждого отдельного признака и подобрана в результате автоматизированного оптимизационного процесса. Нетрудно заметить, что успех подобной стратегии во многом зависит от того, насколько удачно было произведено разделение оценки на элементарные компоненты. Поэтому одним из важных барьеров на пути достижения машинами сверхчеловеческого уровня во многих играх стала неспособность людей качественно формализовать методы, применяемые ими при оценке позиции, удачно выделить компоненты этой оценки. По мере развития методов автоматизированной подстройки параметров игровых программ многие исследователи стали задумываться над тем, чтобы автоматизировать также и задачу подбора самого множества параметров. В конце концов, если люди регулярно допускают ошибки в оценке значений тех или иных параметров, то, быть может, они неправильно выбрали и сам их набор? Благодаря созданию программ, способных играть в некоторые игры на сверхчеловеческом уровне, стало ясно, что в ряде случаев цена экспертного человеческого знания не столь уж и велика, — вспомним хотя бы игру гроссмейстера Уолтера Брауна с программой Томпсона в окончании «ферзь против ладьи» или историю со «столетней позицией» Стёрджеса.

909

Stockfish Testing Queue, retrieved 2020-04-25 // http://tests.stockfishchess.org

910

Stockfish Testing Queue, retrieved 2022-01-28 // http://tests.stockfishchess.org

В общем, неудачи в деле создания программ, способных играть в игры с большим поисковым пространством на сверхчеловеческом уровне, по всей видимости, были связаны не с размером поискового пространства как таковым, а скорее с отсутствием методов, способных эффективно оценивать позицию в подобных играх, и неспособностью людей качественно формализовать собственные методы решения этой задачи. Поскольку в отношении второго ожидать существенного прогресса не приходилось, усилия исследователей были в основном направлены на решение первой проблемы. Практически любой человек может отличить на фотографии кошку от собаки, но никто не может в деталях описать алгоритм, который, получив на вход цвет каждого из пикселей цифрового фото, дал бы ответ на вопрос, что на ней изображено: собака или кошка.

Точно так же мастер го, умеющий с одного взгляда дать оценку позиции на доске, не в силах описать набор правил, лежащий в основе произведённой им оценки. Выходит, что человеческий мозг в процессе обучения способен создавать сложные методы анализа информации, хотя часто и не в состоянии их в полной мере осознать. Один из возможных путей решения возникших проблем заключался в том, чтобы выполнить своеобразный разбор на части, реверс-инжиниринг [911] этой способности мозга с целью последующего воспроизведения её в системах искусственного интеллекта. Об этом пути и о его плодах мы подробно поговорим в следующей части.

911

* Реверс-инжиниринг — так в технике и программировании называют исследование некоторого устройства или программы, а также сопроводительной документации в целях обнаружения недокументированных возможностей, изменения исходной системы или её воспроизводства без прямого копирования.

Поделиться с друзьями: