Семь главных игр в истории человечества (страница 4)
На турниры Тинсли обычно являлся в зеленом костюме, красном галстуке и очках в роговой оправе. На его лысеющей голове торчал хохолок седых волос. На фотографиях, где он запечатлен в молодости, Тинсли похож на молодого Эдварда Марроу[7], с шашечной доской вместо дикторского стола. С годами субтильный профессор, казалось, слился с игрой – его костюм был одного цвета с зелеными квадратами доски, а галстук – с красными шашками. Феноменальный гроссмейстер Бобби Фишер, как известно, возмущался, что призовой фонд чемпионата мира по шахматам, поначалу составлявший $125 000, слишком мал. А Тинсли, отрыв которого от соперников был значительно больше, чем у Фишера, но которого почти не знала американская публика, играл за призовые суммы, не превышавшие $5000.
«Шашисты обычно довольно непритязательны, – сказал Тинсли накануне очередных состязаний за мировой титул, проводившихся, как многие из них, в роскошном Зале славы Чарльза Уокера (здании, которое совершенно не соответствовало уровню известности тех, кому было посвящено, и в котором Тинсли всегда останавливался в королевском номере, зарезервированном для чемпионов мира по шашкам). – Они понимают, что не слишком интересуют окружающий мир».
В 1963 году, то есть в период между двумя легендарными этапами карьеры Тинсли, незрячий мастер по шашкам Роберт Нили в одиночестве сидел за доской в своем доме в Стамфорде, штат Коннектикут. Он десятки лет серьезно занимался шашками, завоевал титул чемпиона штата и в тот момент был поглощен одной из шести партий серии. Нили напряженно анализировал позиции на ощупь. Выбрав ход, он печатал его на открытке и отправлял по почте в адрес IBM, вернее, в Йорктаун-Хайтс, штат Нью-Йорк, в расположенный в 40 км от его дома Исследовательский центр Уотсона. А потом ждал.
Когда открытка прибывала в центр, технические специалисты набивали ход Нили на перфокарту и загружали его в мейнфрейм IBM 7094, который перебирал десятки тысяч шашечных позиций на глубину до 20 ходов вперед и выбирал ответный ход. Этот ход вычислительной машины записывали на почтовой открытке и отсылали в Коннектикут, где Нили делал его на своей доске. Хотя Нили не был особо выдающимся игроком в пантеоне мастеров-шашистов, он отстоял честь человечества, оправляя открытку за открыткой в течение пяти месяцев, с результатом одна победа при пяти ничьих.
И все-таки эта компьютерная программа была достижением и водоразделом. Она впервые умела учиться. В августовском номере журнала Popular Mechanics за 1964 год была опубликована фотография инженера IBM Артура Сэмюэла, изучающего сорокапятиметровый рулон бумаги – распечатку, выданную машиной IBM 7094. Это был перечень команд для разработанной Сэмюэлом программы игры в шашки.
Сэмюэл, который был родом из захолустного городка в Канзасе, в буквальном смысле уговорил руководство Массачусетского технологического института принять его в это учебное заведение, а руководство General Electric – взять его на работу. Получив докторскую степень, он устроился в компанию Bell Telephone Laboratories, где трудился над различными устройствами, включая многокамерный магнетрон и клистрон СВЧ-диапазона. У него было много научных публикаций (например, «Методика получения линейной развертки на электроннолучевом осциллографе») и 57 патентов. Однако в 1946 году в поисках более высокой заработной платы Сэмюэл перебрался в Иллинойский университет.
Получив постоянную профессорскую должность, он занялся интересовавшими его вопросами более теоретического характера, в частности исследованием электрического заряда. Это было связано со сложными математическими вычислениями, для выполнения которых в частном секторе, как рассказывает журнал IEEE Annals of the History of Computing, «требовался штат расчетчиц с электромеханическими настольными калькуляторами». В университете у Сэмюэла не было такого персонала, а сам он не собирался выполнять вычисления вручную. «Нужно было купить или построить компьютер», – писал Сэмюэл. Он остановился на втором варианте. Его декан в Иллинойском университете добился выделения $110 000 на проект, и Сэмюэл поехал по лучшим высшим учебным заведениям страны, где читал лекции и старался привлечь аспирантов к работе над его планами. Но к 1948 году проект застопорился. Поскольку деньги кончились, Сэмюэл решил прибегнуть к пиар-ходу: построить примитивную версию компьютера и заставить ее делать что-нибудь впечатляющее. Ему было известно, что Клод Шеннон, математик из Bell Labs, где он некогда работал, говорил об обучении компьютера игре в шахматы. «Запрограммировать компьютер для игры в шашки наверняка проще», – рассудил Сэмюэл и начал писать программу игры в шашки для грандиозной машины, которой не существовало.
Вскоре после этого Сэмюэл получил место в International Business Machines Corporation. Он начал работать в IBM в 1949 году, когда в компании шла разработка ее первой большой коммерческой цифровой ЭВМ, которая впоследствии получила название IBM 701. Руководство компании обещало акционерам, что эта машина, которую называли «Оборонным вычислителем» (Defense Calculator), станет «самым передовым, самым гибким и быстродействующим компьютером в мире». Одной из первых задач, которые она решала, было исполнение шашечной программы Сэмюэла.
Стоимость аренды машины 701 серии составляла $11 900 в месяц (по сегодняшним меркам – свыше $100 000); она могла выполнять «более 2000» умножений в секунду. Каждую ночь с полуночи до восьми утра Сэмюэл на заводе компании загружал первую версию своей шашечной программы в одну из огромных машин, а вторую – в другую машину, после чего снова и снова заставлял их играть друг с другом. У каждой версии был свой алгоритм обучения, и Сэмюэл, наблюдая за результатами, выяснял, как учатся программы.
«Я стал одним из… первых, кто работал в широкой области, которая позднее получила название искусственного интеллекта, – писал Сэмюэл в неоконченной и неопубликованной автобиографии. – Собственно говоря, я настолько увлекся написанием программы, которая вроде бы проявляет интеллект, что она занимала мои мысли почти в каждый свободный момент в течение всего периода работы в IBM, да и нескольких последующих лет тоже». В своей оценке он был не одинок. Как заметил один из специалистов по истории компьютеров, шашечная программа Сэмюэла, несомненно, была «первой самообучающейся компьютерной программой в мире» и «первым функционирующим искусственным интеллектом».
В IBM не возражали против ночных игр на заводе – на них смотрели как на испытание дорогостоящих машин. Но компания не опубликовала исследование Сэмюэла. Тогда, как и сейчас, многие боялись искусственного интеллекта. Продавцы IBM не говорили своим клиентам об исследованиях в этой области, проводившихся в компании, и не рассуждали о грядущих инновациях. Когда в 1959 году Сэмюэл, наконец, обнародовал свою работу, в ней был такой вывод: «Компьютер можно запрограммировать так, что он научится играть в шашки лучше того, кто написал программу». Сэмюэл мог бы пойти еще дальше. Компьютер можно запрограммировать так, что он будет играть в шашки как сам господь бог.
Так как же играет компьютер? Представьте, что вы стоите у подножия очень высокого дерева и смотрите вверх. Дерево – это совокупность всех возможных вариантов будущего игры. Ствол представляет собой ваш следующий ход, большой сук – какой-то возможный ход после этого, ветви поменьше – дальнейшие ходы, а бесчисленные мелкие веточки и листья наверху – продолжение возможных ходов в отдаленном будущем игры – эндшпили.
Люди смотрят на дерево снизу вверх и вспоминают о деревьях, на которые забирались, которые видели и о которых им раньше рассказывали друзья. У нас есть интуитивное, врожденное понимание того, какие ветви могут легко выдержать наш вес, а какие прогнутся, мы также знаем, какие веточки, судя по всему, крепкие. Мы помним, как падали и как забирались на верхушку. Мы фиксируем, какие ветви надежны, а какие опасны, и делимся этим знанием с окружающими. Мы забираемся на деревья, то есть играем в игры, опираясь на интуицию, опыт, специалистов и литературу.
А вот компьютеры не обладают такой интуицией в отношении дерева. Однако они способны добираться до всех частей кроны, причем очень быстро, точно колония муравьев. Это называется поиском. В каждой точке дерева, куда они попадают, муравьи производят небольшие вычисления, определяя качество этого места и присваивая ему баллы. Это называется оценкой. Перед тем как сделать ход в игре вроде шашек, компьютерные муравьи могут обежать миллионы мест на дереве, накапливая вычисления. Если какой-то путь наверх набирает более высокую оценку, компьютер направится именно туда. Компьютеры забираются на деревья – то есть играют в игры – с помощью поиска и оценки, поиска и оценки, поиска и оценки.
И поиск, и оценка – серьезные технические задачи. Начать с того, что в шашках существует 500 995 484 682 338 672 639 возможных позиций, то есть около 500 миллиардов миллиардов. Шеффер приводит такую аналогию: если бы Тихий океан высох и вам нужно было бы наполнить его с помощью маленькой чашки, то количество вливаемых порций было бы равно количеству возможных позиций в этой игре. Или такую: если бы площадь всей суши на нашей планете представляла совокупность возможных позиций в шашках, то каждой позиции соответствовала бы примерно одна сотая квадратного сантиметра. Таким образом, эффективность поиска имеет важнейшее значение. Если действовать путем простого перебора и смотреть на каждую из позиций в течение тысячной доли секунды примерно так, как машина Сэмюэла, то время, необходимое для просмотра их всех, превысило бы возраст Вселенной.
Оценка каждой позиции, когда мы на нее смотрим, – непростая задача. В шашках определенные особенности позиции являются желательными: хорошо иметь больше шашек, больше дамок, контролировать центральную часть доски и так далее. Есть и нежелательные особенности: расположение шашек по краям доски, незащищенная последняя горизонталь и так далее. Фокус в том, чтобы преобразовать всю эту мозаику особенностей и их сложные нелинейные математические взаимодействия в одно-единственное число, которое будет понятно вашей компьютерной программе.
Марион Тинсли опирался на интуицию и расчет, а также на способность осмысливать и усваивать опыт игры в шашки, накопленный теми, кто играл до него. Он мог взглянуть практически на любое дерево и найти оптимальный путь к его вершине с небольшими затратами энергии, характерными для человеческого мозга. Но в 1970 году, когда он после перерыва возобновил шашечную карьеру, муравьи уже размножались и набирали скорость.
Может возникнуть вопрос: зачем специалисту по вычислительным системам тратить свое дорогое время, энергию и деньги грантодателей на создание компьютерных программ для настольных игр? Специалисты обычно дают один из следующих дежурных ответов: игры – это испытательные стенды; игры обеспечивают контрольные задачи для оценки эффективности систем искусственного интеллекта; игры позволяют легко сравнивать результативность компьютера с результативностью человека; игры – это упрощенные модели аспектов «реального мира». Или (если специалист чуть более откровенен): игры – это увлекательно. Такие ответы хороши, но ни один из них не является до конца правдивым.
Истинная мотивация специалиста по вычислительным системам, разрабатывающего ИИ для игр, не слишком отличается от мотивации родителя, который тратит дорогое время и энергию на воспитание своего ребенка. Это творческий процесс. Придуманный Мэри Шелли доктор Франкенштейн, размышляя о своем творении, говорит: «Новая порода людей благословит меня как своего создателя; множество счастливых и совершенных существ будут обязаны мне рождением. Ни у одного отца нет стольких оснований на получение признательности ребенка, сколько будет у меня». Джонатан Шеффер испытал это чувство, когда одно из его алгоритмических творений впервые одержало над ним победу. «Мне удалось создать разумное поведение, – писал он. – Я испугался».