В 1997 году в фешенебельном номере гостиницы Bristol Suites в Далласе, штат Техас, группа людей собралась вокруг играющих в нарды. У них на глазах разыгрывался беспрецедентный матч, каких раньше не было. Человек играл против машины. Честь человечества защищали два лучших на тот момент игрока: Нэк Баллард и Майк Сенкевич. Машину представлял Малкольм Дэвис, делавший ходы по подсказке компьютера.
Несколькими месяцами ранее Гарри Каспаров[8] потерпел поражение от шахматного компьютера IBM Deep Blue в матче, к которому было приковано внимание всего мира («Быстро и сокрушительно компьютер побеждает Каспарова», – сообщала статья The New York Times с фотографией российского гроссмейстера, прячущего лицо в ладонях). Соревнование в Далласе не вызвало столь широкого резонанса, но на нем тоже делались немалые ставки. Собравшиеся здесь люди посвятили свою жизнь абстрактным стратегическим играм. Это были любители го, покера, скрэбла, бриджа и шахмат, многие из них – игроки мирового уровня. Наблюдая за ходами, они обменивались шутками и пачками денег. Не все были одеты элегантно и могли похвастать здоровым цветом лица, и имена их мало кто знал за пределами узкого круга. Однако не поражение Каспарова в Нью-Йорке, а именно это соревнование в Далласе, прошедшее без особого шума и помпы, ознаменовало начало новой эпохи.
Баллард был лучшим из лучших. Это был добродушный полноватый мужчина с бакенбардами на широком лице. Ежедневно он уделял нардам шесть часов и неоднократно возглавлял мировой рейтинг нардистов. С легким шуршанием он тряс кости в кожаном стакане и бросал их на доску. Каспаров во время матча с Deep Blue заметно волновался, но Баллард сохранял дзенское спокойствие, сосредоточившись на игре. Он молча обдумывал каждый ход, потом неторопливо двигал фишки.
Дэвис, бросив кости, обращался за инструкциями к компьютеру. Он тоже был мастером в нардах, но к 1997 году пришел к убеждению, что программа способна играть лучше человека. Чтобы доказать это, он предложил всем желающим поставить по 200 долларов против компьютера. Победа в нардах нередко обусловлена везением, и если бы Дэвис с компьютером проиграл, это обошлось бы ему в сотню тысяч долларов, а то и больше. Однако он полагался на программное обеспечение своей машины – принципиально новый вид искусственного интеллекта.
Программа называлась Jellyfish – «Медуза». Это была нейронная сеть, уникальность которой заключалась в том, что ее структура имитировала мозг. Вместо выполнения программного кода, написанного людьми, Jellyfish принимала решения, передавая информацию через сеть искусственных нейронов, синапсами которой была огромная матрица чисел, или «весов». Нейросеть анализировала ситуацию и выдавала следующий ход. На экране появлялось диалоговое окно с решением Jellyfish, и Дэвис двигал фишки. Иногда программа рекомендовала противоречивые ходы, что вызывало возбуждение у зрителей и провоцировало волну новых ставок. А Баллард молча бросал кубики и обдумывал ходы.
Сообщество исследователей и разработчиков ИИ уделило далласскому матчу по нардам не больше внимания, чем пресса. В 1997 году ведущие компьютерщики относились к нейронным сетям лишь как к забавной игрушке. Первые подобные сети появились еще в 1940-х годах, когда первопроходцы в этой области пытались физически воспроизвести структуру мозга с помощью сложных электромеханических устройств. Эти огромные механизмы потребляли массу электроэнергии и обходились очень дорого, практически не принося пользы, пока в 1969 году исследователь из Массачусетского технологического института (MIT) Марвин Минский не доказал, что один слой нейронов не способен выполнять даже самые простые логические операции. Финансирование прекратилось, и большинство этих устройств было разобрано.
В следующие годы предпринималось множество неудачных попыток создания искусственного интеллекта, так что эту область науки стали называть «кладбище карьер». Развитие «символического» ИИ остановилось в так называемую первую зиму ИИ в 1974 году. В 1980-х годах увеличение интереса к «экспертным системам» привело к кратковременному ажиотажу на фондовых рынках, но и он быстро сошел на нет после кризиса 1987 года. Правительства Японии, Великобритании и США выделяли миллиарды на амбициозные исследовательские проекты в области ИИ, но в каждом случае независимые аналитики приходили к выводу, что бо́льшая часть этих средств потрачена впустую.
Тем не менее в 1970– 1980-е годы небольшая группа энтузиастов продолжала разработку нейронных сетей, полагая, что старые громоздкие механизмы можно воссоздать программно, а ограничения обойти, создавая многослойные нейронные сети. Большинство исследователей ИИ считали этих «отщепенцев» наивными и даже безумными, но в 1986 году когнитивный психолог Дэвид Румельхарт вместе с компьютерщиками Джеффри Хинтоном и Рональдом Уильямсом из Калифорнийского университета в Сан-Диего опубликовал алгоритм для многослойных нейронных сетей, получивший название «обратное распространение ошибки» (backpropagation)[9]. Этот метод позволял осуществлять тонкую настройку виртуальных нейронов в компьютерах в ответ на получение новой информации аналогично тому, как человеческий мозг формирует новые синаптические связи при обучении.
Благодаря backpropagation интерес к нейросетям возродился: появилась возможность создавать системы, которые учатся на примерах, а не прописываются вручную правило за правилом.
В конце 1980-х годов исследователь Джеральд Тезауро, работавший в IBM, ушел из группы по изучению шахмат и решил сосредоточиться на менее популярной игре – нардах. Нарды, не столь популярные, как шахматы, и не столь непредсказуемые, как покер, представляют собой игру, в которой соперники перемещают фишки по кругу на доске с 24 лунками. Каждый ход задается броском двух кубиков-костей. Нарды в достаточной степени зависят от везения, чтобы привлекать азартных людей, но Тезауро увидел в них нечто иное. Симулируя броски кубиков, он мог быстро генерировать сотни тысяч виртуальных партий, создавая огромную базу данных для обучения нейронной сети.
Тезауро работал над этим узкоспециализированным проектом практически в одиночку; нарды, как и нейросети, не интересовали большинство исследователей ИИ. Сначала он попытался научить свою программу подражать лучшим игрокам, но этот метод не принес значительных результатов. Около 1990 года Тезауро решил изменить подход: он удалил из нейросети все стратегические советы по игре и оставил только правила и набор нейронов со случайными «весами». После этого он дал компьютеру задачу играть сотни тысяч партий против самого себя.
Этот метод известен как «обучение с подкреплением», и Тезауро стал первым, кому удалось его успешно применить. Сперва программа выглядела беспомощной и хаотично двигала фишки, однако, сыграв несколько тысяч партий, нейронная сеть поняла, что оставлять фишку одну плохо, а складывать две вместе хорошо, что позволило ей выйти на уровень грамотного новичка. После десятков тысяч игр нейронная сеть стала применять более сложные стратегии, например создавать стены из нескольких стопок фишек. После двухсот тысяч игр нейросеть (Тезауро назвал ее TD-Gammon) достигла среднего уровня мастерства. В последующие годы TD-Gammon сыграла миллионы партий и к 1995 году начала применять стратегии, ранее неведомые людям. Нейронная сеть перешла от простого обучения к инновациям.
Преодолев ограничения традиционных тактик, TD-Gammon открыла новый стиль игры в нарды. Она определила, что люди обычно чрезмерно рискуют в начале партии, пытаясь сразу получить преимущество, но на самом деле выгоднее делать более осторожные первые ходы. В то же время она часто жертвовала гарантированной победой в конце игры, стремясь удвоить свой счет, что многие игроки считали безрассудством. На среднем этапе игры TD-Gammon делала весьма сложные ходы, которые человек мог понять лишь после глубокого анализа. В 1995 году учитель игры в нарды Кит Вулси написал Тезауро восхищенное письмо:
Мне показалось очень увлекательным сравнение TD-Gammon и высокоуровневых шахматных компьютеров. Шахматные компьютеры великолепны в тактической игре, где можно просчитать варианты. Их слабость – это игры, где происходящее неочевидно и кажется случайным. TD-Gammon демонстрирует противоположное. Ее сила – в сложных позиционных битвах, где ключевыми являются здравый смысл и интуиция, а не чистый расчет. Вместо «глупой» машины, которая просто может считать быстрее людей, как это делают шахматные компьютеры, вы создали «умную», которая учится на собственном опыте примерно так же, как это делают люди.
Но IBM не стала пытаться извлечь коммерческую выгоду из проекта Тезауро. Менеджерам компании было непонятно, зачем тратить время на реализацию ПО для игры в нарды, нужного нескольким сотням человек. И правда, зачем?
Эту заманчивую рыночную нишу в 1994 году занял норвежский исследователь Фредрик Даль. Он был человеком разносторонних интересов: играл в нарды и шахматы, увлекался танковыми симуляциями и джиу-джитсу, собирал грибы в лесу. При этом Даль работал на Министерство обороны Норвегии, занимаясь моделированием сценариев советского вторжения. Вдохновение он черпал из фильма 1983 года «Военные игры» с Мэттью Бродериком, в котором искусственный интеллект пытается развязать ядерную войну.
Даль убеждал меня, что лично он не верил ни в какое вторжение, но тем не менее всерьез интересовался военной тематикой. Однако после распада Советского Союза его исследования лишились финансирования. «Это было ужасное время», – говорит он (надеюсь, в шутку). Для написания диссертации Даль создал нейронную сеть, которая моделировала исходы сражений, проводя миллионы симуляций боев. Эту модель легко было адаптировать для игры в нарды, и вскоре результаты Даля превзошли достижения Тезауро.
В 1994 году Фредрик представил Jellyfish – первую коммерческую нейронную сеть, доступную широкой общественности. Jellyfish училась на миллионах партий игры в нарды, но, несмотря на столь сложный процесс обучения, конечный продукт поместился на 3, 5-дюймовой дискете, которую Даль продавал через свой примитивный веб-сайт. Так уже в самом начале пути сложился поразительный контраст между трудоемким обучением ИИ и результатом, когда полученные знания применяются на практике. Вторая стадия оказалась намного менее затратной: здесь можно провести аналогию с человеческим мозгом, весящим всего лишь килограмма полтора, но формировавшимся сотни миллионов лет.
Далю были не чужды подобные аналогии. Он назвал свою программу Jellyfish в честь древнего морского существа, чья нервная сеть управляет реакцией на раздражители. «Моей программе нужно было всего около сотни "мозговых клеток", что, как я узнал, примерно соответствует нервной системе медузы», – рассказывает он. Вот в чем заключалась сила нейронных структур: чтобы побеждать в игре в нарды, выживать в океанской бездне на протяжении полумиллиарда лет или даже противостоять гипотетическим советским захватчикам, достаточно всего лишь сотни крошечных клеток.
Для сбора статистических данных Баллард и Сенкевич согласились сыграть против Jellyfish по 300 партий. Баллард, которому однажды довелось играть 84 часа без перерыва, был привычен к таким марафонам и сумел сохранить концентрацию внимания. Он обыграл компьютер с перевесом в 58 игр, заработав 11 600 долларов. Однако Сенкевич проиграл почти такую же сумму, так что Дэвис остался при своих и состязание завершилось вничью. Баллард был доволен своей победой, но последующий анализ показал, что во многом его успех был обусловлен удачными бросками костей, и он понял, что ему повезло. Ни один смельчак больше не рискнет сыграть с этой программой в нарды на деньги.
Новость о турнире быстро разлетелась в тесном сообществе любителей нард. Deep Blue был дорогим суперкомпьютером, грубую вычислительную мощь которого человек никак не мог превзойти, так что его победа над Каспаровым не сильно повлияла на профессиональный подход к шахматам (в 1997 году Deep Blue просто был разобран). Но Jellyfish в отличие от него была доступной программой, способной работать на любом компьютере с ОС Windows, и это произвело настоящую революцию в игре. С помощью Jellyfish, установленной на домашнем компьютере, популяризатор игры в нарды Кит Вулси выпустил книгу «Новые идеи в нардах». В ней он собрал позиции, в которых действия нейронной сети кардинально расходились с человеческими представлениями. Со временем стало очевидно, что компьютер всегда прав. Аналитики пришли к выводу, что мастерство игрока в нарды теперь должно определяться не количеством побед или поражений, а тем, насколько его ходы совпадают с идеальными компьютерными решениями.
Jellyfish стала первой нейронной сетью, превзошедшей человека в играх. После этого Даль переключился на покер. Используя технологию обучения с подкреплением, он вскоре разработал (может, лучше сказать «воспитал») нейросеть, способную победить кого угодно в лимитном техасском холдеме для двух игроков. Даль продал лицензию на использование нейросети производителю игровых машин, который установил непобедимые покерные автоматы в казино на Лас-Вегас-Стрип и пригласил всех желающих сыграть на деньги. И снова никто не смог победить машину.
Однако на этом революция закончилась. Несмотря на неплохой заработок от игровых автоматов, Даль столкнулся с трудностями при попытке создать аналогичную программу для безлимитного холдема. В этом варианте игры можно ставить любую сумму, и синтетический набор данных оказался намного больше, чем те ограниченные модели, которые он создал для лимитного покера и нард. Нейронная сеть Даля, созданная для безлимитной игры, с трудом усваивала огромное количество информации. «Она делала разумные ходы, но так и не достигла того уровня, на который я рассчитывал», – признался он.
Даль долгие годы боролся с этой проблемой. Основным препятствием было то, что он сам толком не понимал, как работает его покерный бот. Интерпретировать структуру нейронной сети было не проще, чем нервную систему какого-нибудь беспозвоночного: разгадать стратегию игры, анализируя отдельные весовые коэффициенты сетки, сродни попытке расшифровать сознание, исследуя клетки мозга под микроскопом.
Это и было главным упреком в адрес нейронных сетей и основой предвзятости к ним академического мира. Как только нейронная сеть достигала предела в своем обучении – а такое случалось почти всегда, – редко удавалось найти очевидный путь к дальнейшему совершенствованию. Классическое программирование было четким и логичным, а работа с нейронными сетями требовала совсем другого мышления. Даль сравнивал это с проведением биологического эксперимента: результаты непредсказуемы и даже изменение незначительных на первый взгляд параметров может привести к самым неожиданным последствиям. Он испробовал все, что смог придумать, чтобы довести своего бота до уровня эксперта в безлимитном покере. Он колдовал над функцией оценки, экспериментировал с памятью компьютера, заменял триггеры активации нейронов и даже создал более простую вселенную данных для изучения ботом, но так и не добился успеха.
В конце концов Даль, как и многие исследователи нейронных сетей до него, отступил. Он бросил своего покерного бота и занялся анализом медицинских данных с использованием привычных методов. Многие критики нейронных сетей проходили этот путь, сначала добившись успеха с использованием этой технологии, а затем после множества неудач зайдя в тупик и разочаровавшись. Даль не пополнил армию скептиков, но его вера подверглась серьезному испытанию. «Я сдался, – признается человек, который первым продал нейронную сеть широкой публике. – Я оставил это, потому что у меня просто не было необходимых знаний». Он перепробовал все и не нашел решения. Он просто не мог даже представить, как добиться успеха в разработке нейронных сетей.