Сигнал и Шум. Почему одни прогнозы сбываются, а другие - нет - Нейт Сильвер
Шрифт:
Интервал:
Закладка:
Deep Blue был создан с целью обыграть Каспарова, и только его. Команда пыталась предсказать, какие первые ходы будет, вероятнее всего, делать чемпион. После этого она придумывала самые сильные контратаки для любой комбинации (фактически Каспаров смог избежать этой ловушки, используя нетипичные для себя шаги в начале партии). Благодаря своим, хотя и довольно посредственным, итогам противостояния с Каспаровым в 1996 г. и результатам игр с другими шахматистами, игравшими в похожем стиле, вычислительная мощность Deep Blue удвоилась, а эвристика значительно улучшилась{650}. Кэмпбелл знал, что для того, чтобы соответствовать уровню стратегического мышления Каспарова, Deep Blue нужно более глубоко (но, возможно, более избирательно) изучать дерево вариантов. В то же время система была спроектирована с небольшим перекосом в сторону сложных позиций, что позволяло ей активнее использовать свои сильные стороны.
«Лучше всего компьютеры играют в позициях, где на доске имеется много фигур, что позволяет делать множество ходов, – рассказал мне Кэмпбелл. – Мы хотим играть в позициях, где тактика оказывается важнее стратегии. И для этого нужно совсем немногое». В этом смысле Deep Blue был более «человечным», чем любой шахматный компьютер до или после него.
Хотя теория игр не столь значима для шахмат, как для игр с неполной информацией типа покера, то очень важной становится последовательность ходов в начале партии. Даже слабый ход, который выведет оппонента из равновесия, способен отрицательно сказаться на качестве его многомесячной подготовки – или же это произойдет с вами, если оппонент найдет правильный ответ. Однако большинство компьютеров пытается играть в «идеальные» шахматы, а не варьировать свою игру, пытаясь противостоять конкретному оппоненту. Deep Blue сделал то, что делают большинство игроков-людей, – ставку на позиции, которые, по мнению Кэмпбелла, могли обеспечить весомое преимущество.
Тем не менее в 1997 г. навыки Каспарова были насколько сильными, что научить Deep Blue выигрывать у него в шахматы можно было только с помощью программирования.
В теории создать компьютерную программу для игры в шахматы довольно просто: если поисковым алгоритмам шахматной программы предоставить возможность работать в течение неограниченного периода времени, то все 10 10 50 позиций могут быть решены методом перебора. «Есть довольно понятный алгоритм решения шахматных задач, – рассказал мне Кэмпбелл. – Я мог бы за полдня написать программу, позволяющую найти решение для любой позиции, если только у нее будет достаточно времени». Однако на практике, жаловался он, «для того чтобы это сделать, потребуется все время жизни нашей Вселенной».
А процесс обучения шахматного компьютера способу обыграть чемпиона мира часто сводится к банальному процессу проб и ошибок. Вырастет ли результативность, если мы дадим программе больше времени для работы в эндшпиле и меньше в середине игры? Есть ли хороший способ оценить, какая фигура важнее на первых ходах – конь или слон? Насколько быстро должна программа отсекать кажущиеся мертвыми ветви своего поискового дерева, даже если она знает, что в них может скрываться шанс на мат или, напротив, ловушка?
Изменяя эти параметры и наблюдая, как это повлияет на работу компьютера, Кэмпбелл провел с Deep Blue множество тестов. Однако иногда программа все равно допускала «ошибки», делая странные и неожиданные ходы. Каждый раз в подобном случае Кэмпбелл должен был задавать опытным программистам вопрос: был ли этот новый ход свойством программы – то есть моментом «эврики», показывавшим новую степень ее развития? Или же это просто был сбой?
Мой общий совет (в более широком контексте прогнозирования) для случаев, когда при использовании вашей модели вы получаете неожиданные или сложно объяснимые результаты, состоит в том, чтобы по умолчанию считать случившееся «сбоем». Ошибочно принять шум за сигнал довольно просто. А сбои способны подорвать усердную работу даже самых сильных прогнозистов.
Боб Вулгарис, ставший миллионером благодаря ставкам на баскетбол, о котором я рассказал вам в главе 8, как-то решил делать ставки на бейсбол. Созданная им модель стабильно рекомендовала делать ставки на команду Philadelphia Phillies, однако они оказывались неудачными. Оказалось, что ошибка связана с единственным неверным символом на 10 тыс. строк программного кода – помощник Вулгариса ошибочно ввел аббревиатуру домашнего стадиона Phillies (Citizens Bank Park) как P-H-l, а не P-H-I. Этой единственной строки кода хватило для искажения сигнала в программе и для того, чтобы Вулгарис сделал ставки на шум. Вулгарис был настолько потрясен этим сбоем, что полностью перестал пользоваться программой для расчета ставок в бейсболе.
Проблема Кэмпбелла заключалась в том, что Deep Blue уже давно научился играть в шахматы лучше, чем его создатели. Он мог сделать ход, который его создатели никогда бы не сделали, – и более того, они не всегда могли понять, что это: сознательное действие или сбой?
«На ранних стадиях отладки Deep Blue, когда компьютер совершал необычный ход, я мог подумать: “Что-то тут не так”, – рассказал мне Кэмпбелл. – Мы начинали копаться и вычисляли, с чем была связана проблема. Однако со временем подобные вещи происходили все реже и реже. Когда компьютер делал необычные ходы, мы разбирались с ними и понимали, что ему удалось вычислить что-то, что было бы сложно увидеть людям».
Возможно, самые знаменитые ходы в шахматной истории были сделаны шахматным вундеркиндом Бобби Фишером в так называемой Игре столетия в 1956 г. (рис. 9.7). Фишер, которому в то время было всего 13 лет, в первой партии против гроссмейстера Дональда Бирна дважды пожертвовал серьезные фигуры: в какой-то момент он отдал коня без видимой выгоды, а через несколько ходов сознательно оставил без защиты своего ферзя, предпочитая вместо этого продвинуть вперед одного из слонов. Оба хода были совершенно правильными; Фишер увидел уязвимость позиции Бирна, которая стала очевидной уже через несколько ходов. Однако мало кто из гроссмейстеров тогда или сейчас решился бы повторить ходы Фишера. Эвристика типа «никогда не разменивай своего ферзя, кроме как на другого или только в случае немедленного мата» слишком сильна, потому что она помогает игроку в 99 % случаев.
Рис. 9.7. Самые знаменитые жертвы фигур Бобби Фишера, 1956 г.
Однако, когда я повторил эту позицию на своем довольно слабом компьютере и запустил матч в программе Fritz, она повторила ходы Фишера буквально через несколько секунд. В сущности, программа посчитала ошибочными любые ходы, кроме тех, которые сделал Фишер. В поиске всех возможных ходов программа смогла выявить ситуации, когда от эвристики надо отказываться.
В этом случае не приходится говорить о наличии у компьютера «творческих способностей», позволяющих найти верный ход; вместо этого на его стороне примитивный перебор вариантов и скорость расчетов.