Полная версия
Игра в имитацию. О шифрах, кодах и искусственном интеллекте
Алан Тьюринг
Игра в имитацию. О шифрах, кодах и искусственном интеллекте
А.М. Тьюринг
Может ли машина мыслить?[1]
I. Игра в имитацию
Я собираюсь рассмотреть вопрос «Могут ли машины мыслить?». Но для этого нужно сначала определить смысл терминов «машина» и «мыслить». Можно было бы построить эти определения так, чтобы они по возможности лучше отражали обычное употребление этих слов, но такой подход таит в себе некоторую опасность. Дело в том, что если мы будем выяснять значение слов «машина» и «мыслить», исследуя, как эти слова употребляются обычно, нам трудно будет избежать того вывода, что значение этих слов и ответ на вопрос «Могут ли машины мыслить?» следует искать путем статистического обследования наподобие анкетного опроса, проводимого институтом Гэллапа[2]. Однако это нелепо. Вместо того чтобы пытаться дать такого рода определения, я заменю наш вопрос другим, который тесно с ним связан и выражается словами с относительно четким смыслом.
Эта новая форма проблемы может быть описана с помощью игры, которую мы назовем «игрой в имитацию». В этой игре участвуют три человека: мужчина (A), женщина (В) и кто-нибудь задающий вопросы (С), которым может быть лицо любого пола. Задающий вопросы отделен от двух других участников игры стенами комнаты, в которой он находится. Цель игры для задающего вопросы состоит в том, чтобы определить, кто из двух других участников игры является мужчиной (A), а кто – женщиной (В). Он знает их под обозначениями X и Y и в конце игры говорит либо «X есть А, и Y есть В», либо «X есть В, и Y есть А». Ему разрешается задавать вопросы такого, например, рода:
С: «Попрошу X сообщить мне длину его (или ее) волос».
Допустим теперь, что в действительности X есть А. В таком случае А и должен давать ответ. Для А цель игры состоит в том, чтобы побудить С прийти к неверному заключению. Поэтому его ответ может быть, например, таким:
«Мои волосы коротко острижены, а самые длинные пряди имеют около девяти дюймов в длину».
Чтобы задающий вопросы не мог определить по голосу, кто из двух других участников игры – мужчина, а кто – женщина, ответы на вопросы следовало бы давать в письменном виде или, еще лучше, печатать на машинке. Идеальным случаем было бы телеграфное сообщение между комнатами, где находятся участники игры. Если же этого сделать нельзя, то ответы и вопросы может передавать какой-нибудь посредник. Цель игры для третьего игрока – женщины (В) – состоит в том, чтобы помочь задающему вопросы. Для нее, вероятно, лучшая стратегия – давать правдивые ответы. Она также может делать такие замечания, как «Женщина – я, не слушайте его!», но этим она ничего не достигнет, так как мужчина тоже может делать подобные замечания.
Поставим теперь вопрос: «Что произойдет, если в этой игре вместо А будет участвовать машина?» Будет ли в этом случае задающий вопросы ошибаться столь же часто, как и в игре, где участниками являются только люди? Эти вопросы и заменят наш первоначальный вопрос «Могут ли машины мыслить?».
II. Критика новой постановки проблемы
Подобно тому, как мы задаем вопрос «В чем состоит ответ на проблему в ее новой форме?», можно спросить: «Заслуживает ли рассмотрения проблема в ее новой постановке?» Этот последний вопрос мы рассмотрим, не откладывая дела в долгий ящик, с тем чтобы в последующем уже не возвращаться к нему.
Новая постановка нашей проблемы имеет то преимущество, что позволяет провести четкое разграничение между физическими и умственными возможностями человека. Ни один инженер или химик не претендует на создание материала, который было бы невозможно отличить от человеческой кожи. Такое изобретение, быть может, когда-нибудь и будет сделано. Но, даже допустив возможность создания материала, не отличимого от человеческой кожи, мы все же чувствуем, что вряд ли имеет смысл стараться придать «мыслящей машине» большее сходство с человеком, одевая ее в такую искусственную плоть. Форма, которую мы придали проблеме, отражает это обстоятельство в условии, не позволяющем задающему вопросы соприкасаться с другими участниками игры, видеть их или слышать их голоса. Некоторые другие преимущества введенного критерия можно показать, если привести образчики возможных вопросов и ответов. Например:
С: Напишите, пожалуйста, сонет на тему о мосте через реку Форт[3].
А: Увольте меня от этого. Мне никогда не приходилось писать стихи.
С: Прибавьте 34 957 к 70 764.
А (молчит около 30 секунд, затем дает ответ): 105 621.
С: Вы играете в шахматы?
А: Да.
С: У меня только король на е8 и других фигур нет. У Вас только король на е6 и ладья на h1. Как Вы сыграете?
А (после 15 секунд молчания): Лh8. Мат.
Нам кажется, что метод вопросов и ответов пригоден для того, чтобы охватить почти любую область человеческой деятельности, какую мы захотим ввести в рассмотрение. Мы не желаем ни ставить в вину машине ее неспособность блистать на конкурсах красоты, ни винить человека в том, что он терпит поражение в состязании с самолетом. Условия нашей игры делают эти недостатки несущественными. Отвечающие, если найдут целесообразным, могут хвастать своим обаянием, силой или храбростью, сколько им вздумается, но задающий вопросы не может требовать практических тому доказательств.
Вероятно, нашу игру можно подвергнуть критике на том основании, что в ней преимущества в значительной степени находятся на стороне машины. Если бы человек попытался притвориться машиной, то, очевидно, вид у него был бы весьма жалкий. Он сразу выдал бы себя медлительностью и неточностью при подсчетах. Кроме того, разве машина не может выполнять нечто такое, что следовало бы характеризовать как мышление, но что было бы весьма отлично от того, что делает человек? Это возражение очень веское. Но в ответ на него мы, во всяком случае, можем сказать, что если можно все-таки создать такую машину, которая будет удовлетворительно играть в имитацию, то относительно него особенно беспокоиться не следует.
Можно было бы заметить, что при «игре в имитацию» не исключена возможность того, что простое подражание поведению человека не окажется для машины наилучшей стратегией. Такой случай возможен, но я не думаю, чтобы он привел нас к чему-нибудь существенно новому. Во всяком случае, никто не пытался исследовать теорию нашей игры в этом направлении, и мы будем считать, что наилучшая стратегия для машины состоит в том, чтобы давать ответы, которые в соответствующей обстановке дал бы человек.
III. Машины, привлекаемые к игре
Вопрос, поставленный в разделе I, не станет совершенно точным до тех пор, пока мы не укажем, что именно следует понимать под словом «машина». Разумеется, нам бы хотелось, чтобы в игре можно было применять любой вид инженерной техники. Мы склонны также допустить возможность, что инженер или группа инженеров могут построить машину, которая будет работать, но удовлетворительного описания работы которой они не смогут дать, поскольку метод, которым они пользовались, был в основном экспериментальным. Наконец, мы хотели бы исключить из категории машин людей, рожденных обычным образом. Трудно построить определение так, чтобы оно удовлетворяло этим трем условиям. Можно, например, потребовать, чтобы все конструкторы машины были одного пола; в действительности, однако, этого недостаточно, так как, по-видимому, можно вырастить законченный индивидуум из одной-единственной клетки, взятой (например) из кожи человека. Сделать это было бы подвигом биологической техники, заслуживающим самой высокой похвалы, но мы не склонны рассматривать этот случай как «построение мыслящей машины».
Сказанное наводит нас на мысль отказаться от требования, согласно которому в игре следует допускать любой вид техники. Мы еще больше склоняемся к этой мысли в силу того обстоятельства, что наш интерес к «мыслящим машинам» возник благодаря машине особого рода, обычно называемой «электронной вычислительной машиной» или «цифровой вычислительной машиной». Поэтому мы разрешаем принимать участие в нашей игре только цифровым вычислительным машинам.
На первый взгляд, это ограничение кажется весьма сильным. Я постараюсь показать, что в действительности дело обстоит не так. Для этого мне придется дать краткий обзор природы и свойств этих вычислительных машин.
Можно также сказать, что отождествление машин с цифровыми вычислительными машинами – равно как и наш критерий «мышления» – должно быть признано совершенно неудовлетворительным, если (вопреки моему убеждению) окажется, что цифровые вычислительные машины не в состоянии хорошо играть в имитацию.
Целый ряд вычислительных машин уже находится в действии, и естественно возникает вопрос: «А почему бы нам, вместо того чтобы сомневаться в правильности наших рассуждений, не поставить эксперимент? Удовлетворить условиям игры было бы нетрудно. В качестве задающих вопросы можно было бы использовать много различных людей, и полученные статистические данные показали бы, как часто задающим вопросы удавалось прийти к правильному заключению».
Коротко на этот вопрос можно ответить так: нас интересует не то, будут ли все цифровые вычислительные машины хорошо играть в имитацию, и не то, будут ли хорошо играть в эту игру те вычислительные машины, которыми мы располагаем в настоящее время; вопрос заключается в том, существуют ли воображаемые вычислительные[4] машины, которые могли бы играть хорошо. Но это только краткий ответ. Ниже мы рассмотрим этот вопрос в несколько ином свете.
IV. Цифровые вычислительные машины
То, что мы имеем в виду, говоря о цифровых вычислительных машинах, можно пояснить следующим образом. Предполагается, что эти машины могут выполнять любую операцию, которую мог бы выполнить человек-вычислитель. Мы считаем, что вычислитель придерживается определенных, раз навсегда заданных правил и не имеет права ни в чем отступать от них. Мы можем также считать, что эти правила собраны в книге, которая заменяется другой, когда вычислитель приступает к новой работе. У человека-вычислителя имеется также неограниченный запас бумаги, на которой он производит вычисления. Кроме того, он может выполнять операции сложения и умножения с помощью арифмометра – это несущественно.
Если данное выше пояснение принять за определение, то возникает угроза того, что наше рассуждение окажется движущимся в замкнутом круге. Чтобы избежать этой опасности, мы приведем перечень тех средств, с помощью которых достигается требуемый эффект. Можно считать, что цифровая вычислительная машина состоит из трех частей:
1) запоминающего устройства;
2) исполнительного устройства;
3) контролирующего устройства.
Запоминающее устройство – это склад информации. Оно соответствует бумаге, имеющейся у человека-вычислителя, независимо от того, является ли эта бумага той, на которой производятся выкладки, или той, на которой напечатана книга правил. Поскольку человек-вычислитель некоторые расчеты проводит в уме, часть запоминающего устройства машины будет соответствовать памяти вычислителя.
Исполнительное устройство – это часть машины, выполняющая разнообразные индивидуальные операции, из которых состоит вычисление. Характер этих операций изменяется от машины к машине. Обычно можно проделывать весьма громоздкие операции, например: «Умножить 3 540 675 445 на 7 076 345 687», однако на некоторых машинах можно выполнять только очень простые операции, вроде таких: «написать 0».
Мы уже упоминали, что имеющаяся у вычислителя «книга правил» заменяется в машине некоторой частью запоминающего устройства, которая в этом случае называется «таблицей команд». Обязанность контролирующего устройства – следить за тем, чтобы эти команды выполнялись безошибочно и в правильном порядке. Контролирующее устройство сконструировано так, что это происходит непременно.
Информация, хранящаяся в запоминающем устройстве, разбивается на небольшие части, которые распределяются по ячейкам памяти. Например, для некоторых машин такая ячейка может состоять из десяти десятичных цифр. Тем ячейкам, в которых хранится различная информация, в некотором определенном порядке приписывают номера. Типичная команда может гласить:
«Число, хранящееся в ячейке 6809, прибавить к числу, хранящемуся в ячейке 4302, а результат поместить в ту ячейку, где хранилось последнее из чисел».
Нет необходимости говорить о том, что если все это выразить на русском языке, то машина не выполнит такую команду. Более удобно было бы закодировать эту команду в виде, например, числа 6809430217. Здесь 17 говорит о том, какую из различных операций, которые можно выполнять с помощью данной машины, следует проделать с числами, хранящимися в указанных ячейках. В данном случае имеется в виду описанная выше операция, т. е. операция «число… прибавить к числу…». Следует заметить, что сама команда занимает 10 цифр и, таким образом, заполняет одну ячейку памяти, что весьма удобно. Обычно контролирующее устройство выбирает необходимые команды в том порядке, в котором они расположены, но иногда могут встречаться и такие команды:
«Теперь выполнить команду, хранящуюся в ячейке 5606, и продолжать оттуда»
или же:
«Если ячейка 4505 содержит 0, выполнить команду, хранящуюся в ячейке 6707, в противном случае продолжать идти по порядку».
Команды этих последних типов очень важны, так как они позволяют повторять снова и снова некоторую последовательность операций до тех пор, пока не будет выполнено определенное условие, причем для повторения данной последовательности операций не приходится прибегать к новым командам. Машина просто выполняет вновь и вновь одни и те же команды. Воспользуемся аналогией из повседневной жизни. Допустим, что мама хочет, чтобы Томми по дороге в школу заходил каждое утро к сапожнику, для того чтобы справиться, не готовы ли ее туфли. Она может каждое утро снова и снова просить его об этом. Но она может также раз и навсегда повесить в прихожей записку, которую Томми будет видеть, уходя в школу, и которая будет напоминать ему о том, чтобы он зашел за туфлями. Когда Томми принесет туфли от сапожника, мама должна разорвать записку.
Читатель должен считать твердо установленным, что цифровые вычислительные машины можно строить на основе тех принципов, о которых мы рассказали выше, и что их действительно строят, придерживаясь этих принципов. Ему должно быть ясно, что цифровые вычислительные машины могут в действительности весьма точно подражать действиям человека-вычислителя.
Разумеется, описанная нами книга правил, которой пользуется вычислитель, является всего лишь удобной фикцией. На самом деле настоящие вычислители помнят, что они должны делать. Если мы хотим построить машину, подражающую действиям человека-вычислителя при выполнении некоторой сложной операции, то следует спросить последнего, как он выполняет эту операцию, и ответ представить в виде таблицы команд.
Составление таблицы команд обычно называют «программированием». «Запрограммировать выполнение машиной операции А» – значит ввести в машину подходящую таблицу команд, следуя которым, машина может выполнить операцию А.
Интересной разновидностью цифровых вычислительных машин являются «цифровые вычислительные машины со случайным элементом». Такие машины имеют команды, содержащие бросание игральной кости или какой-нибудь эквивалентный электронный процесс. Одной из таких команд может быть, например, следующая: «бросить кость и полученное при бросании число поместить в ячейку 1000». Иногда говорят, что такие машины обладают свободой воли (хотя лично я не стал бы употреблять такое выражение). Установить наличие «случайного элемента» в машине путем наблюдений за ее действием обычно оказывается невозможным, так как если сделать, например, выбор команды зависимым от последовательности цифр в десятичном разложении числа π, то результат получится совершенно аналогичный.
Все существующие в действительности цифровые вычислительные машины обладают лишь конечной памятью. Однако теоретически нетрудно представить себе машину с неограниченной памятью. Разумеется, в любое данное время возможно использование только конечной части запоминающего устройства. Точно так же запоминающее устройство, которое можно физически осуществить, всегда имеет конечные размеры, но мы можем представлять дело так, что по мере надобности к нему пристраиваются все новые и новые части. Такие вычислительные машины представляют особый теоретический интерес, и впредь мы будем их называть машинами с бесконечной емкостью памяти.
Сама идея цифровой вычислительной машины отнюдь не является новой. Чарлз Бэббедж[5], занимавший с 1828 по 1839 г. Люкасовскую кафедру по математике в Кембридже[6], разработал проект вычислительного устройства, названного им Аналитической машиной; создание ее, однако, так и не удалось завершить. Хотя у Бэббеджа были все основные идеи, существенные для создания такого механизма, его машина не имела перспектив. Скорость вычислений, которую позволила бы достичь машина Бэббеджа, оказалась бы, разумеется, выше скорости, достигаемой человеком, однако она была бы почти в 100 раз меньше, чем у той вычислительной машины, которая в настоящее время работает в Манчестере[7] и которая является одной из самых медленных современных машин. Запоминающее устройство в машине Бэббеджа было задумано как чисто механическое, с использованием карт и зубчатых колес.
То, что Аналитическая машина Бэббеджа была задумана как чисто механический аппарат, помогает нам избавиться от одного предрассудка. Часто придают значение тому обстоятельству, что современные цифровые машины являются электрическими устройствами и что нервная система также является таковым. Но поскольку машина Бэббеджа не была электрическим аппаратом и поскольку в известном смысле все цифровые вычислительные машины эквивалентны, становится ясно, что использование электричества в этом случае не может иметь теоретического значения. Естественно, что там, где требуется быстрая передача сигналов, обычно появляется электричество; поэтому неудивительно, что мы встречаем его в обоих указанных случаях. Для нервной системы химические явления играют, по крайней мере, столь же важную роль, что и электрические. В некоторых же вычислительных машинах запоминающее устройство в основном акустическое. Отсюда ясно, что сходство между нервной системой и цифровыми вычислительными машинами, состоящее в том, что в обоих случаях используется электричество, сводится лишь к весьма поверхностной аналогии. Если мы действительно хотим открыть глубокие связи, нам, скорее, следует искать сходство в математических моделях функционирования нервной системы и цифровых вычислительных машин.
V. Универсальность цифровых вычислительных машин
Рассмотренные в предыдущем разделе цифровые вычислительные машины можно отнести к классу «машин с дискретными состояниями». Так называются машины, работа которых складывается из совершающихся последовательно одна за другой резких смен их состояния. Состояния, о которых идет речь, достаточно отличны друг от друга, для того чтобы можно было пренебречь возможностью принять по ошибке одно из них за другое. Строго говоря, таких машин не существует. В действительности всякое движение непрерывно. Однако имеется много видов машин, которые удобно считать машинами с дискретными состояниями.
Например, если рассматривать выключатели осветительной сети, то удобно считать, отвлекаясь от действительного положения дела, что каждый выключатель может быть либо включен, либо выключен. То, что выключатель фактически имеет также и промежуточные состояния, несущественно для наших целей, и мы можем об этом забыть. Приведу пример машины с дискретными состояниями. Рассмотрим колесико, способное через каждую секунду совершать скачкообразный поворот (щелчок) на 120°, но которое можно застопоривать с помощью рычажка, управляемого извне. Пусть, кроме того, когда колесико принимает какое-нибудь определенное положение (одно из трех возможных для него), загорается лампочка. В абстрактном виде эта машина выглядит так. Внутреннее состояние машины (которое задается положением колесика) может быть qi q2 или q3. На вход машины подается либо сигнал i0, либо сигнал ii (положения рычажка). Внутреннее состояние в любой момент определено предыдущим состоянием и сигналом на входе согласно следующей таблице:
Сигналы на выходе, единственно видимые извне проявления внутреннего состояния (загорание лампочки), задаются таблицей:
Этот пример типичен для машин с дискретными состояниями. Такие машины можно описывать с помощью таблиц, при условии что они обладают конечным числом возможных состояний.
Очевидно, что при заданном начальном состоянии машины и заданном сигнале на входе всегда возможно предсказать все будущие состояния. Это напоминает точку зрения Лапласа, утверждавшего, что если известны положения и скорости всех частиц во вселенной в некоторый момент времени, то из такого полного описания ее состояния можно предсказать все ее будущие состояния. Однако то предсказание будущего, о котором у нас идет речь, гораздо ближе к практическому осуществлению, чем то, которое имел в виду Лаплас. Система «вселенной как единого целого» такова, что даже очень небольшие отклонения в начальных состояниях могут иметь решающее значение в последующем. Смещение одного электрона на одну миллиардную долю сантиметра в некоторый момент времени может явиться причиной того, что через год человек будет убит обвалом в горах. Существенной особенностью тех механических систем, которые мы назвали «машинами с дискретными состояниями», является то, что в них это явление не имеет места. Даже если вместо идеализированных машин взять реальные физические машины, то точное (в разумных пределах) знание о состоянии машины в один момент времени позволяет нам с разумной степенью точности предсказать любое число ее состояний в последующем.
Как мы уже упоминали, цифровые вычислительные машины относятся к классу машин с дискретными состояниями. Но число состояний, в которых может находиться такая машина, обычно велико. Например, число состояний машины, работающей в настоящее время в Манчестере, равно приблизительно 2 165 000, т. е. почти 1 050 000. Сравните эту величину с числом состояний описанного выше «щелкающего» колесика. Нетрудно понять, почему число состояний вычислительной машины оказывается столь огромным. В вычислительной машине имеется запоминающее устройство, соответствующее бумаге, которой пользуется человек-вычислитель. Запоминающее устройство должно быть таково, чтобы в нем можно было записать любую комбинацию символов, которая может быть написана на бумаге. Для простоты допустим, что в качестве символов используются только цифры от 0 до 9. Различия в почерках не принимаются во внимание. Допустим, что человек-вычислитель располагает 100 листами бумаги, разграфленными на 50 строк каждый. Строка может вместить 30 цифр. Число состояний в этом случае равно 10 100 × 50 × 30, т. е. 10 150 000. Это приблизительно равно числу состояний трех Манчестерских машин, взятых вместе. Логарифм числа состояний по основанию 2 обычно называют «емкостью памяти» машины. Например, Манчестерская машина обладает емкостью памяти около 165 000, а машина с колесиком из нашего примера – около 1,6. Если две машины соединены вместе, то емкость памяти объединенной машины представляет собой сумму емкостей памяти составляющих машин. Это позволяет формулировать такие утверждения, как «Манчестерская машина содержит 64 магнитных трека (направляющих приспособлений) каждый емкостью по 2560, восемь электронно-лучевых трубок емкостью по 1280. Число различных запоминающих устройств доходит до 300, что в целом приводит к емкости памяти в 174 380 единиц».
Если задана таблица, соответствующая некоторой машине с дискретными состояниями, то можно предсказать на будущее, что будет делать эта машина. Нет причин, по которым эти вычисления не могли бы выполняться с помощью цифровой вычислительной машины. Если бы с помощью цифровой вычислительной машины можно было достаточно быстро производить вычисления, то ее можно было бы использовать для имитации поведения любой машины с дискретными состояниями. В «игре в имитацию» тогда могли бы участвовать: машина с дискретными состояниями (которая играла бы за В) и имитирующая ее цифровая вычислительная машина (в качестве A), и задающий вопросы не смог бы отличить их друг от друга. Разумеется, для этого необходимо, чтобы цифровая вычислительная машина имела надлежащую емкость памяти, а также работала достаточно быстро. Кроме того, ее пришлось бы снабжать новой программой для каждой новой машины, которую она должна была бы имитировать.