но самые интересные программы имеют гораздо более длинные имена, включающие миллионы знаков. Программы, хранимые в памяти вашего ноутбука, например текстовый процессор и браузер, представляют собой именно такие длинные числа, состоящие из многих миллионов (двоичных) знаков. Программа размером 10 мегабит – это последовательность из восьмидесяти миллионов нулей и единиц.
секрет 5. Всем возможным программам в качестве имени может быть присвоено уникальное число, которое затем можно считать списком инструкций для универсальной машины.
Блестящий теоретик и философ Алан Тьюринг вывел эту схему, используя другой простой воображаемый компьютер, который движется по разделенной на ячейки бумажной ленте. Поведение этого компьютера зависит (ага! – условный переход) от того, считывает он ноль или единицу из той ячейки, которую обрабатывает в данный момент. Машина Тьюринга умеет только менять бит (стирать 0, записывать 1 – и наоборот) или оставлять бит нетронутым, а затем перемещаться влево или вправо на одну ячейку и переходить к следующей инструкции. Думаю, вы согласитесь, что создание программ сложения, вычитания и других функций для машины Тьюринга при использовании только двоичных чисел 0 и 1 вместо всех натуральных чисел (0, 1, 2, 3, 4, 5 и т. д.) и перемещении лишь на одну ячейку зараз – гораздо более трудоемкий процесс, чем наши упражнения с регистровой машиной, но смысл при этом одинаков. Универсальная машина Тьюринга – это устройство с программой А (если хотите, встроенной), которая позволяет ему “считывать” программу Б с бумажной ленты и затем выполнять ее, используя остальную информацию с ленты в качестве вводных данных для программы Б. Регистровая машина Хао Вана способна выполнить любую программу, которую можно свести к арифметике и условным переходам, и таковы же возможности машины Тьюринга. Обе машины обладают чудесной способностью брать номер любой другой программы и выполнять этот номер. Вместо того чтобы конструировать сотни разных вычислительных машин, каждая из которых будет прошита для выполнения конкретной сложной задачи, достаточно создать единственную многоцелевую универсальную машину (с предустановленной программой А) и заставить ее исполнять наши запросы, пополняя ее программами – программным обеспечением, – создающими виртуальные машины.
Иными словами, универсальная машина Тьюринга представляет собой универсальный имитатор. То же самое можно сказать и о менее известной универсальной регистровой машине. И о вашем ноутбуке. Ваш ноутбук не делает ничего такого, что не могла бы сделать универсальная регистровая машина, и наоборот. Но не обольщайтесь. Никто не говорит, что все машины работают с одинаковой скоростью. Мы увидели, как ужасно медленно наша регистровая машина выполняет такую кропотливую операцию, как деление, которое она – мама дорогая! – осуществляет путем последовательного вычитания. Неужели нет способа ускорить процесс? Конечно есть. Фактически история компьютеров со времен Тьюринга до сегодняшнего дня – это как раз история поиска все более быстрых способов делать то, что делает регистровая машина, и ничего более.
секрет 6. Все усовершенствования компьютеров с момента изобретения воображаемой машины Тьюринга, движущейся по бумажной ленте, просто ускоряют их работу.
К примеру, Джон фон Нейман создал архитектуру для первого серьезного работающего компьютера, и чтобы ускорить его работу, он расширил окно головки записи-чтения машины Тьюринга, чтобы она читала зараз не один бит, а много. Многие ранние компьютеры читают 8-битные, 12-битные и даже 16-битные “слова”. Сегодня часто используются 32-битные слова. Это все еще узкое место – узкое место фон Неймана, – но оно в 32 раза шире узкого места машины Тьюринга! Прибегнув к некоторому упрощению, можно сказать, что слова по очереди копируются – COPY – из памяти в особый регистр (регистр инструкции), где эта инструкция читается – READ – и исполняется. Как правило, слово состоит из двух частей, кода операции (например, ADD, MULTIPLY, MOVE, COMPARE, JUMP-IF-ZERO) и адреса, который говорит компьютеру, к какому регистру обращаться за содержимым для проведения операции. Таким образом, 10101110 11101010101 может говорить компьютеру выполнять операцию 10101110 на содержимом регистра 11101010101, всегда помещая ответ в специальный регистр, называемый аккумулятором. Существенное различие между регистровой машиной и машиной фон Неймана заключается в том, что регистровая машина может осуществлять операции на любом регистре (само собой, только операции Инк и Деп), а машина фон Неймана выполняет всю арифметическую работу в аккумуляторе и просто копирует и перемещает – COPY и MOVE – содержимое в регистры памяти (или накапливает его – STORE – в этих регистрах). Все эти дополнительные перемещения и копирования окупаются возможностью осуществлять большое количество аппаратно-реализованных базовых операций. Иначе говоря, существует одна электронная схема для операции ADD, другая – для операции SUBTRACT, третья – для операции JUMP-IF-ZERO и так далее. Код операции напоминает код города в телефонной системе или индекс в почтовом адресе: он отправляет то, над чем работает, в верное место для исполнения. Так программное обеспечение встречается с аппаратным.
Сколько примитивных операций содержится сегодня в настоящих компьютерах? Сотни и даже тысячи. Кроме того, как в старые добрые времена, компьютер может быть наделен сокращенным набором команд (работать на архитектуре RISC): такой компьютер умеет выполнять лишь несколько десятков примитивных операций, но при этом работает молниеносно. (Если инструкции Инк и Деп можно исполнять в миллион раз быстрее, чем аппаратно-реализованную операцию ADD, будет целесообразно составить программу ADD, используя Инк и Деп, как мы делали ранее, и для всех операций сложения, предполагающих менее миллиона шагов, мы останемся в выигрыше.)
Сколько регистров содержится сегодня в настоящих компьютерах? Миллионы и даже миллиарды (но все они конечны, так что огромные числа должны распределяться по большому числу регистров). Байт состоит из 8 бит. Имея на своем компьютере 64 мегабайта RAM (оперативной памяти), вы имеете шестнадцать миллионов 32-битных регистров – или их эквивалент. Мы знаем, что содержимое регистров может обозначать не только положительные целые числа. Действительные числа (например, π, √2 или ⅓) хранятся в форме чисел “с плавающей запятой”. Эта форма представления разбивает число на две части, мантиссу и порядок, как в экспоненциальной записи (“1,495 × 1041”), что позволяет компьютеру производить арифметические действия, чтобы работать с числами (в приближенном представлении), которые натуральными не являются. Операции с плавающей запятой – это обычные арифметические операции (в частности, умножение и деление) над числами с плавающей запятой, и самый быстрый суперкомпьютер, который можно было купить двадцать лет назад (когда я написал первую версию этой главы), имел производительность более 4 мегафлопс (от англ. floating point operations per second), то есть мог выполнять более 4 миллионов операций с плавающей запятой в секунду.
Если вам этого мало, можно параллельно подключить друг к другу большое количество таких машин, чтобы все они работали одновременно, а не последовательно, не ожидая в очереди результатов для их последующей обработки. Функционал параллельного компьютера не отличается от функционала последовательного компьютера, но работает он быстрее. Фактически большинство параллельных машин, изучавшихся в последние двадцать лет, было виртуальными машинами, смоделированными на стандартных (непараллельных) машинах фон Неймана. Было разработано параллельное аппаратное обеспечение особого назначения, а конструкторы вычислительных машин изучают стоимость и перспективы расширения узкого места фон Неймана и ускорения проходящего сквозь него трафика всевозможными способами – с использованием сопроцессоров, кэш-памяти и различных других подходов. Сегодня японский компьютер Fujitsu K имеет производительность 10,51 петафлопс, то есть более десяти тысяч триллионов операций с плавающей запятой в секунду.
Возможно, этого почти достаточно, чтобы смоделировать вычислительную активность вашего мозга в реальном времени. Ваш мозг – образцовый параллельный процессор, имеющий около сотни миллиардов нейронов, каждый из которых представляет собой сложного маленького агента, имеющего конкретную задачу. Полоса пропускания зрительного “нерва”, по которому визуальная информация передается из глаза в мозг, составляет несколько миллионов каналов (нейронов). Но нейроны работают гораздо медленнее компьютерных микросхем. Нейрон может изменить состояние и отправить сигнал (фактически свою вариацию инструкции Инк или Деп) за несколько миллисекунд – тысячных, а не миллионных и не миллиардных долей секунды. Компьютеры перемещают биты со скоростью, близкой к скорости света, поэтому чем меньше компьютер, тем быстрее он работает: свет преодолевает 30 см примерно за одну миллиардную долю секунды, поэтому если вы хотите, чтобы два процесса коммуницировали быстрее, они должны проистекать ближе друг к другу.
секрет 7. Больше секретов нет!
Вероятно, самое удивительное свойство компьютеров заключается в том, что они составляются – простыми шагами – из элементов (операций), которые также предельно просты, а потому им просто негде хранить секреты. В них нет ни эктоплазмы, ни “морфических резонансов”, ни невидимых силовых полей, ни неизвестных прежде законов физики, ни чудо-ткани. Вы знаете, что если вы сумели написать компьютерную программу, которая моделирует какой-либо феномен, то эта модель не задействует ничего, кроме различных конфигураций арифметических операций.
Что насчет квантовых компьютеров, которые сейчас на пике популярности? Разве квантовые компьютеры умеют что-то такое, что не умеют обычные? И да и нет. Они умеют одновременно решать множество задач и вычислять множество значений, благодаря “квантовой суперпозиции”, причудливому и необычному свойству, которое гласит, что ненаблюдаемая сущность может одновременно пребывать во “всех возможных” состояниях, пока наблюдение не приведет к “коллапсу волновой функции”. (Подробнее об этом почитайте в своей любимой научно-популярной книге по физике или на познавательном сайте.) По сути, квантовый компьютер не что иное, как последняя и весьма впечатляющая инновация – можно сказать, квантовый скачок – в скорости обработки данных. Машина Тьюринга, движущаяся по бумажной ленте, и регистровая машина, неутомимо инкрементирующая и декрементирующая отдельные регистры, крайне ограничены в том, что они могут сделать за короткое время – минуты, часы или дни. Суперкомпьютер вроде Fujitsu K может делать все то же самое в триллионы раз быстрее, но для решения некоторых задач, особенно из области криптографии, этой скорости все равно недостаточно. Именно в этой сфере может пригодиться сверхбыстрый квантовый компьютер – если, конечно, люди сумеют решить невероятно сложные инженерные проблемы, возникающие при попытке создания стабильного и практичного квантового компьютера. Возможно, создать его так и не удастся, и тогда нам придется довольствоваться какими-то квадриллионами флопс.
25. Виртуальные машины
Реальные машины состоят из материальных подвижных частей и, как правило, называются в соответствии с задачами, для выполнения которых они сконструированы. Дизайн газонокосилок, открывашек и кофемолок бывает разным. Порой в основе их работы даже лежат разные физические принципы, но кое-что остается неизменным: машины, которые называются одинаково, выполняют более или менее одинаковую работу. Возможно, некоторые из них выполняют ее лучше других, но все зависит от предпочтений пользователя. Домовладелец может выбрать медленную газонокосилку, которая работает тише; владелец кафе может выбрать кофемолку, которая имеет больше степеней помола, пускай пользоваться ею и сложнее. Некоторые машины универсальны: надев другую насадку, можно превратить дрель в пилу или шлифовальную машинку. Компьютеры тоже универсальны, но могут делать не десяток, а целую тучу разных вещей. Вместо того чтобы надевать для выполнения каждой задачи новую насадку, вы открываете новую программу – очень длинную последовательность нулей и единиц, – которая ставит все необходимые внутренние переключатели в нужное положение, чтобы выполнить задачу. Каждая схема настройки – это уникальная машина, уникальная виртуальная машина, машина “из инструкций”, а не из подшипников, шестеренок, блоков и проводов. В компьютерах инструкции могут заменять блоки и шестеренки, потому что вместо хлебного теста, целлюлозы и стальных болванок компьютеры обрабатывают информацию, а информацию всегда можно перевести в двоичный код, состоящий из нулей и единиц, единственный код, который компьютер может – и имеет необходимость – “читать”. Микросхемы на кремниевых подложках манипулируют триллионами этих нулей и единиц, временно открывая и закрывая шлюзы, переводя потоки информации к той или иной микросхеме и таким образом контролируя, что с ней происходит. Миллионы крошечных элементов аппаратного обеспечения, которые могут принимать одно из двух состояний – 0 или 1, – это единственные “подвижные части” машины, и от настроек тысяч или миллионов этих крошечных элементов зависит то, какой именно машиной является компьютер в конкретный момент времени.
Виртуальной называется машина, которая возникает, когда определенный набор инструкций (а точнее, диспозиций) применяется к реальной машине, обладающей высокой пластичностью, то есть машине, взаимодействующие элементы которой могут пребывать в большом количестве разных состояний. Поскольку виртуальная машина работает с информацией, она может выполнять ту же задачу, что и компьютер, в котором роль “подвижных частей” играют изменения состояния аппаратного обеспечения, производя все эти изменения в представлениях этих подвижных частей. Вы можете выполнять деление столбиком, записывая процесс карандашом на бумаге, но деление столбиком дается вам особенно хорошо, так что вы можете производить его “в уме”, просто представляя – или воображая – цифры на листе или классной доске. Поскольку речь идет об информации, результат всегда один: вы получаете ответ. Напротив, если вы представите себе бутерброд с ветчиной, почувствовав голод, настоящего бутерброда это не заменит. Компьютеры так хорошо справляются с информационной работой “в уме” (представляя машину, которая выполняет работу), что практически невозможно сказать, с какой машиной вы при этом имеете дело – с “особой”, “аппаратно-реализованной”, ориентированной на выполнение конкретной задачи по обработке информации машиной или же с виртуальной машиной, работающей на многоцелевой микросхеме. К примеру, подавляющее большинство крошечных, дешевых компьютерных микросхем, которые используются сегодня в лифтах, кондиционерах, машинах, холодильниках и пультах дистанционного управления, на самом деле представляют собой многоцелевые компьютеры, способные выполнять вариации всех программ, установленных на вашем ноутбуке, но обреченных всю жизнь выполнять единственную относительно простую программу (программу регулировки зажигания, цикла разморозки и т. д.), “вшитую” в ПЗУ, и эта программа ограничивает все их выдающиеся способности одним-двумя трюками. Это дешевле изготовления микросхем специального назначения, разработанных для выполнения только этих простых задач.
Концепция виртуальной машины – один из лучших стимуляторов воображения, которые пришли к нам из компьютерной науки. Она успела доказать свою состоятельность в сфере информатики, и теперь ее пора применять в других сферах. Я использую этот термин в более широком смысле (и в свое время я объясню почему), поэтому не лишним будет узнать, каково его изначальное – как скажут некоторые, истинное – значение. Термин предложили специалисты по теории вычислительных систем Джеральд Попек и Роберт Голдберг (1974). Изначально он означал “эффективный, изолированный дубликат реальной машины” – дубликат, состоящий из… инструкций. Реальная машина – назовем ее А – это настоящий аппарат, сконструированный из кремниевых чипов, проводов и тому подобного, а виртуальная машина – это компьютерная программа (выполняющаяся на другой реальной машине, машине Б), которая полностью имитирует аппаратное обеспечение машины А: она может работать немного медленнее, потому что ей приходится составлять все базовые операции машины А из базовых операций, доступных на ее собственном аппаратном обеспечении, машине Б, но при этом выполняет те же самые программы. Программа, написанная для выполнения на аппаратном обеспечении А, должна без проблем выполняться и на аппаратном обеспечении Б, если на аппаратном обеспечении Б работает виртуальная машина, имитирующая машину А.
Этот фокус удивительно полезен – и не только из-за явной экономии, которую он предполагает: скажем, у вас нет компьютера на Mac OS, но есть дорогое программное обеспечение, работающее только на Mac OS. В таком случае вы можете написать виртуальную машину (ВМ), имитирующую Mac OS на вашем компьютере на Windows, и тогда программы для Mac OS будут работать на вашем компьютере при запущенной ВМ Mac OS. Ваш компьютер на Windows будет “притворяться” компьютером на Mac OS, но программы ничего не поймут! Представьте человека, который сломал руку. Ему наложили гипс, который сильно ограничивает подвижность руки, а его вес и форма также требуют корректировки остальных движений тела. Теперь представьте мима (скажем, Марселя Марсо), который изображает человека с загипсованной рукой. Если мим хорош в своем деле, движения его тела будут ограничиваться ровно так же: у него на руке виртуальный гипс – и он “практически виден”. Компьютер на Windows, имитирующий компьютер на Mac OS с применением ВМ Mac OS, должен быть неотличим – для программного обеспечения, работающего на нем, и для стороннего наблюдателя – от настоящего компьютера на Mac OS.
В реальности все обычно наоборот. Хотя и есть сконструированные ВМ Mac OS, работающие на Windows, насколько мне известно, это скорее баловство, чем настоящее, практичное программное обеспечение. Напротив, для Mac OS созданы надежные, удобные в использовании ВМ Windows, которые позволяют владельцам компьютеров на Mac OS запускать любые программы, написанные для Windows. Большинство программ сегодня создается без привязки к конкретному аппаратному обеспечению, но с привязкой к конкретным операционным системам (которые, в свою очередь, работают на разном аппаратном обеспечении). Первая причина расширить определение виртуальной машины – необходимость включить в него виртуальные имитации операционных систем. Операционная система тоже представляет собой своеобразную виртуальную машину, позволяя немного разному аппаратному обеспечению выполнять одни и те же программы, но операционная система – это исключительно программное обеспечение; она не имитирует настоящее аппаратное обеспечение, но создает – фактически задавая конкретные условия – воображаемую машину, которая подчиняется определенным правилам, принимает определенные данные и так далее.
Другая причина расширить определение заключается в том, что одной из самых популярных и широко распространенных виртуальных машин сегодня является виртуальная машина Java, или JVM, которая, подобно операционной системе, не имитирует никакую аппаратно-реализованную машину, а существует только в форме программно-реализованной машины. Именно изобретению Java интернет в основном обязан своей универсальностью: Java позволяет скачивать с сайтов маленькие программы – Java-апплеты, – которые дают возможность разгадывать кроссворды, играть в судоку, изучать карты, увеличивать фотографии, играть в игры с людьми с другого конца света, а также решать множество “серьезных” вычислительных задач. Создавая программы на языке программировании Java, веб-дизайнер не должен знать, кто именно придет к нему на сайт – пользователи Mac OS, Windows (или Linux), – поскольку Java-апплет всегда запускается на JVM, сконструированной специально для работы на компьютере на Mac OS, Windows или Linux. Соответствующая JVM автоматически скачивается и за несколько секунд устанавливается на ваш компьютер, а затем Java-апплет, как по волшебству, выполняется на этой JVM. (Возможно, вы замечаете, как на ваш компьютер скачиваются обновления Java, а возможно, и не замечаете этого! В идеале вы можете забыть о том, какая JVM установлена у вас на компьютере, и ожидать, что каждый посещаемый вами сайт либо будет использовать Java-апплеты, которые уже работают на вашей JVM, либо соответствующим образом обновит Java для корректной работы.)
Таким образом, в соответствии с моим расширенным определением термина, виртуальной машиной можно считать практически любую компьютерную программу, поскольку она представляет собой программное обеспечение – систематический список инструкций, – при запуске превращающее универсальный компьютер в машину конкретного назначения, которую можно было бы сконструировать и подключить в качестве аппаратного обеспечения. Алан Тьюринг сделал блестящий вклад в науку – и оказал огромную услугу человеческой цивилизации второй половины двадцатого века, – предложив идею “универсального” компьютера (сегодня мы называем его универсальной машиной Тьюринга), который можно превратить в любой другой компьютер, созданный для конкретной цели, просто установив и запустив соответствующую программу! (Если вы решили пропустить главу 24, то имейте в виду: в ней об этом говорится подробнее.) Не нужно создавать все возможные конфигурации аппаратного обеспечения – хватит и одной, ведь все остальное сделает программное обеспечение. Со времен Тьюринга нам известно, что можно взять сложную штуковину – аппаратное обеспечение, – обладающую большой пластичностью – регулируемыми ячейками “памяти” или регистрами, – и поместить в эти ячейки памяти набор инструкций, при выполнении которых эта штуковина превратится в любой компьютер, какой нам под силу ясно вообразить.
Машина Тьюринга – или ноутбук – выполняет по одной инструкции зараз и переходит к следующей инструкции, но “параллельные” компьютеры могут выполнять много (миллионов) инструкций одновременно. Регистр – это любой фрагмент аппаратного обеспечения, который может пребывать в том или ином состоянии (например, в состоянии нуля или единицы в случае с компьютерными битами, но состояний может быть и больше двух), пока не получит команду изменить состояние. Любая система регистров, которая может производить определенные элементарные операции на основании этих состояний (к примеру, менять состояние регистра или использовать состояние регистра, чтобы определить, какую операцию выполнять дальше), может и настраивать свои регистры таким образом, чтобы “вычислить функцию” или “исполнить программу”. Получается, что на любом подобном аппаратном обеспечении может работать виртуальная машина, созданная для использования этих простых шагов. Этот фокус можно проворачивать не один, а много раз, устанавливая виртуальные машины на виртуальные машины на виртуальных машинах… на аппаратном обеспечении.
Рассмотрим шахматную программу, написанную на высокоуровневом языке программирования Common Lisp, запущенную на операционной системе Windows 7, запущенной на компьютере. Этот компьютер притворяется машиной Windows, которая притворяется машиной Lisp, которая притворяется машиной для игры в шахматы. Если рассмотреть детали программы на высшем уровне, они будут более или менее понятны подкованному в компьютерах и шахматах наблюдателю (“Ага! Эта подпрограмма генерирует все возможные ответы на перемещение слона, а затем запускает подпрограмму оценки, которая…”). Настоящий программный код той же программы – последовательность нулей и единиц, которая помещается в регистр инструкций аппаратного обеспечения, – напротив, способен свести любого с ума, поэтому мы благоразумно сосредотачиваем внимание на высших уровнях. На каждом уровне мы видим лес за деревьями, поскольку детали низших уровней весьма кстати скрыты от наших глаз. Параллель между каскадом виртуальных машин на компьютере и каскадом гомункулов в гомункулярнофункционалистском представлении о сознании не просто совпадение. Именно необычайный успех виртуальных машин, которые помогли нам понять, как решать немыслимые ранее задачи (бронирование авиабилетов, игру в шахматы, прогнозирование погоды, письмо под диктовку и т. д.), дает повод надеяться, что мы сумеем провернуть подобный – всего лишь подобный – фокус, когда осуществим обратное проектирование мозга.
В таком случае, возможно, сходства мозга людей, говорящих по-французски, несмотря на все наблюдаемые анатомические различия, лучше всего объяснить на уровне виртуальной машины: все франкоговорящие люди имеют в голове ту или иную версию ФВМ, французской виртуальной машины, системы взаимосвязанных диспозиций, или микропривычек, каким-то образом хранящихся в миллиардах регистров мозга. Мозг русскоговорящих людей будет отличаться наличием подобной системы надежных шаблонов, РВМ. Если сказать франкоговорящему человеку: Donnez-moi le sel, s’il vous plait, – ФВМ гарантированно проконтролирует то же самое поведение, которое у русскоговорящего человека можно вызвать посредством введения в РВМ в его голове следующих данных: “Передай мне соль, пожалуйста”. Как же создаются ФВМ и РВМ, которые функционируют в нашем мозге?
Мы пока не знаем, как описать разные уровни активности мозга людей, играющих в шахматы или говорящих по-французски[32]. Несомненно, не стоит и надеяться на появление подробной схемы наподобие той, что позволяет программистам создавать свои творения на высшем уровне, имея полную уверенность, что компилятор (программа, которая берет инструкции высшего уровня и преобразует их в код, понятный аппаратному обеспечению) выдаст работающую программу. Но теперь у нас есть прекрасный экспериментальный образец: мы знаем по крайней мере один способ объяснить высокоуровневые способности машины с триллионами подвижных частей, не прибегая к концепции чудо-ткани.
26. Алгоритмы
В книге “Опасная идея Дарвина” (1995а) я предложил такой взгляд на великую идею Дарвина:
Жизнь на Земле рождалась на протяжении миллиардов лет посредством ветвления единственного древа – Древа жизни – под воздействием тех или иных алгоритмических процессов.
И что же такое алгоритм? Существует несколько конкурирующих определений этого термина, и мое, пожалуй, самое широкое. Далее следует переработанный фрагмент моей книги.
Дарвин открыл силу алгоритма. Алгоритм – это формальный процесс определенного типа, который должен – по идее – выдавать определенный результат всякий раз, когда он “запущен” или инстанцирован. Алгоритмы нам не в новинку. Они не были в новинку и во времена Дарвина. Многие знакомые арифметические операции, например деление в столбик и сведение баланса, на самом деле представляют собой алгоритмы. Алгоритмами также являются процедуры принятия решений при игре в крестики-нолики и расстановке слов по алфавиту. Относительно новыми можно назвать теоретические рассуждения математиков и логиков двадцатого века о природе и силе алгоритмов в целом – именно эти рассуждения позволили нам в ретроспективе оценить открытие Дарвина и привели к рождению компьютера, которое, в свою очередь, привело к еще более глубокому и осмысленному пониманию силы алгоритмов в целом.
Термин “алгоритм” восходит через латынь (algorismi) и раннеанглийский (algorism и ошибочной производной algorithm) к имени персидского математика Аль-Хорезми, в девятом веке написавшего книгу об арифметических операциях, которая в одиннадцатом веке была переведена на латынь либо Аделардом Батским, либо Робертом Честерским. Представление об алгоритме как надежной и в некоторой степени “механической” процедуре существовало веками, но в современной трактовке термин более или менее закрепился в 1930-х гг., когда его использовали в своей новаторской работе Алан Тьюринг, Курт Гёдель и Алонзо Черч. Нам важны три ключевых свойства алгоритмов, причем дать каждому из них определение непросто.
(1) Нейтральность носителя. Процедура деления в столбик одинаково хорошо работает при использовании карандаша и ручки, бумаги и пергамента, неоновых огней и конденсационного следа самолета. Система символов может быть любой. Сила процедуры объясняется ее логической структурой, а не особенностями материалов, используемых при инстанцировании, при условии, что эти особенности позволяют в точности следовать пошаговой инструкции.
(2) Подспудная простота. Хотя общая схема процедуры может быть блестящей или давать блестящие результаты, каждый из шагов и переходы между шагами предельно просты. Насколько просты? Достаточно просты, чтобы с ними справился прилежный идиот – или нехитрое механическое устройство. Как правило, в учебниках алгоритмы сравниваются с рецептами, созданными для кулинаров-новичков. В кулинарной книге для умелых поваров может быть написано: “Припустите рыбу в подходящем вине почти до готовности”, – но алгоритм того же процесса, возможно, начнется так: “Выберите белое вино с маркировкой «сухое»; возьмите штопор и откройте бутылку; налейте вино в кастрюлю до уровня в два с половиной сантиметра от дна; включите конфорку под кастрюлей на полную мощность…” Иначе говоря, алгоритм дотошно разбивает процесс на предельно простые шаги, не требуя от его исполнителя ни принимать сложные решения, ни выносить осторожные суждения, ни применять интуицию.
(3) Гарантия результатов. Что бы ни делал алгоритм, он делает это всегда, если в процессе его исполнения не происходит ошибок. Алгоритм – это надежный рецепт.
Вполне очевидно, как эти свойства сделали возможным появление компьютера. Любая компьютерная программа представляет собой алгоритм, в конечном счете состоящий из простых шагов, которые могут с поразительной безотказностью исполняться тем или иным простым механизмом. Обычно выбор падает на электронные схемы, но каузальные особенности электронов, шныряющих туда-сюда по кремниевым чипам, никак не влияют на силу компьютеров (хотя и могут влиять на скорость их работы). Те же самые алгоритмы могут исполняться даже быстрее устройствами, которые манипулируют фотонами в оптоволокне, или – гораздо медленнее – командами людей, использующими бумагу и карандаш.
Фактически Дарвин открыл не один алгоритм, а целый класс родственных алгоритмов, которые он не мог однозначно отличить друг от друга.
27. Автоматизация лифта
Прежде чем закончить интерлюдию о компьютерах, я хочу описать еще одну группу полезных идей об исходном коде, комментариях и объектном коде, которые мы сумеем применить, чтобы лучше понять, как значение может храниться в мозге. Не стоит сразу браться за головоломку – для начала целесообразно подробнейшим образом изучить предельно простой пример и усвоить все понятия. (В сфере искусственного интеллекта эти примеры называются модельными задачами. Прежде чем браться за жуткую реальную задачу, стоит сначала решить модельную.) В связи с этим я предлагаю вам познакомиться с историей – выдуманной ради простоты, но в остальном вполне реалистичной – о том, как лифтеров заменили компьютерные чипы.
В моей молодости были лифтеры – люди, работа которых заключалась в том, чтобы весь день ездить на лифте вверх-вниз и останавливаться на нужных этажах для посадки и высадки пассажиров. Когда-то они крутили любопытную ручку, которую можно было поворачивать по часовой стрелке и против часовой стрелки, чтобы направлять лифт вверх или вниз, и им требовалась определенная сноровка, чтобы останавливать кабину на нужной высоте. При входе в лифт и при выходе из него людям часто приходилось подниматься или спускаться на небольшую ступеньку, и лифтеры всегда их об этом предупреждали. Существовал целый свод правил относительно того, что и когда говорить, на какие этажи подниматься в первую очередь, как открывать двери и так далее. На стажировке они заучивали эти правила и практиковались следовать им, пока это не входило у них в привычку. Сами правила разрабатывались годами, и в процессе в них постоянно вносились небольшие изменения и уточнения. Представим, что этот процесс остановился, когда был создан идеальный свод правил. Он чудесно работал. Любой, кто в точности следовал правилам, становился превосходным лифтером.
Теперь представим, что случилось, когда простая компьютерная программа сумела взять на себя все задачи лифтера. (На самом деле это происходило постепенно, по мере того как появлялись все новые автоматические механизмы, которые забирали у лифтеров все более сложные задачи, но мы представим, будто лифты перешли от человеческого контроля к полностью компьютерному одним махом.)
Допустим, производитель лифтов нанимает команду программистов и вручает им свод правил, которым руководствовались лифтеры: “Вот подробное описание необходимых нам функций; напишите компьютерную программу, которая будет следовать правилам из этой книги так же хорошо, как лучшие лифтеры, и мы будем довольны”. Изучая свод правил, программисты составляют список всех нужных действий и условий, при которых их следует и не следует предпринимать. В процессе они могут избавиться от некоторой небрежности свода правил. К примеру, если они встроят в лифт датчики, которые будут обеспечивать остановку лифта на нужной высоте, они смогут избавиться от цикла, требующего от лифтера сказать “Осторожно, ступенька”, но, возможно, оставят простую (записанную на пленку) фразу “Этаж N-й. Будьте осторожны при выходе из кабины”. Затем они пишут набросок программы, используя так называемый псевдокод – неформальный язык, нечто среднее между обычным человеческим языком и более требовательной системой исходного кода. Строка псевдокода может выглядеть примерно так: “если этаж вызова > текущего этажа, то ASCEND до этаж вызова = текущему этажу и STOP; OPENDOOR. WAIT…”.
Как только план написан на псевдокоде и выполняет необходимые условия, псевдокод можно перевести в исходный код, который представляет собой гораздо более строгую и структурированную систему команд, включая определение терминов – переменных, подпрограмм и так далее. Человеку по-прежнему несложно расшифровать исходный код – в конце концов, его пишут люди, – а следовательно, правила и условия свода правил в нем достаточно очевидны, если знать, куда смотреть. Расшифровке исходного кода способствуют две его характеристики: во-первых, по названиям переменных и команд обычно можно понять, за что они отвечают (callfloor [этаж вызова], weightsum [общая масса], TELLFLOOR [объявить номер этажа] и т. д.). Во-вторых, как мы видели в главе 24, программисты могут добавлять к своему исходному коду комментарии, заключенные в скобки объяснения, которые говорят читателям исходного кода, что имел в виду программист и что должны делать разные элементы программы. При создании программы целесообразно снабжать свой код комментариями, ведь забыть, зачем нужна конкретная строка кода, очень легко. Эти комментарии окажутся очень полезны, когда вы будете исправлять ошибки программирования.
Исходный код составляется согласно строгому синтаксису, где каждому элементу отводится свое место и не допускаются пунктуационные ошибки, поскольку он загружается в программу-компилятор, которая берет исходный код и транслирует его в последовательности элементарных операций (объектный код), подлежащих исполнению реальной (или виртуальной) машиной. Компилятор не может гадать, что программист имел в виду в той или иной строке исходного кода, поэтому исходный код должен точно говорить компилятору, какие команды исполнять, однако компилятор может выполнять эти задачи множеством разных способов и умеет выбирать наиболее эффективный способ, исходя из обстоятельств. Одни компиляторы работают лучше других: к примеру, если загрузить одну и ту же программу (в исходном коде) в два разных компилятора, объектный код, выданный одним компилятором, может исполняться гораздо быстрее, чем объектный код, выданный другим компилятором. Допустим, вы написали шахматную программу, загрузили ее исходный код в два разных компилятора и запустили две скомпилированных версии играть друг против друга на одном компьютере. Хотя обе версии будут “обдумывать одни и те же мысли в одном и том же порядке” (у них нет другого выбора – у них одинаковый исходный код), возможно, одна из них всегда будет выигрывать, просто потому что она обдумывает эти мысли быстрее, используя меньшее количество базовых машинных циклов, а следовательно, просчитывает за отведенное время большее количество ходов!
Вернемся к нашему лифту. Как только компилятор скомпилировал объектный код, этот код может быть исполнен (это исполняемый файл, обычно в расширении. exe) реальной (или виртуальной) машиной. Возможно, придется исправить ряд ошибок (вернуться к исходному коду, поправить его, снова скомпилировать программу и т. д.), но в итоге получится “законченный”продукт. Его можно будет “вшить”в ПЗУ на крошечный чип, содержащий универсальную машину – и неограниченное количество виртуальных машин в придачу к ней, – и установить его в лифт. Установка предполагает подключение всех преобразователей входящих сигналов, включая сигналы кнопок, вмонтированных в пол весов, измеряющих общую массу пассажиров, и других структурных элементов лифта, и привязки исходящих сигналов к исполнительным механизмам (которые управляют двигателями, открывающими и закрывающими двери, поднимающими и опускающими кабину, а также обновляют информацию на дисплеях и проигрывают записи). Тадам! Машина заменила настоящего человека – даже не метафорического гомункула. И машина следует тем же правилам, что и лифтер. Неужели? На самом деле нет. Она вроде как следует тем же правилам. Она занимает промежуточное положение между человеком, который запоминает – то есть в буквальном смысле моделирует в своей голове – правила, диктующие его поведение, чтобы снова и снова сверяться с ними, и планетами, которые “подчиняются” уравнениям, изящно описывающим их орбиты. Мы, люди, тоже часто занимаем промежуточное положение, когда усваиваем или доводим до автоматизма следование ряду четких правил, которые впоследствии можем отбросить и даже забыть (“жи” и “ши” пиши через “и”, “ча” и “ща” пиши через “а”). Порой мы также вроде как следуем правилам, которые еще не выведены окончательно, например некоторым правилам русской грамматики, по-прежнему сбивающим с толку лингвистов. Скажем, лингвисты сегодня тщетно пытаются написать учебник хорошего разговорного русского языка, в то время как любой десятилетний носитель русского каким-то образом умудряется установить и избавить от ошибок довольно хорошую версию объектного кода для своей РВМ[33]!
Прежде чем пойти дальше, обратите внимание, что комментарии к исходному коду, помогающие программистам отслеживать назначение всех взаимосвязанных элементов программного обеспечения, не имеют аналогов в процессе создания аппаратного обеспечения, прошивки и программного обеспечения нашего мозга. Когда естественный отбор устанавливает в наш мозг различные функциональные структуры, они напоминают лишенный комментариев код: у них есть четкое назначение, но это назначение не объясняется никакими ярлыками. Впрочем, если бы они и были, мозг все равно был бы не в состоянии их понять. (Подробнее об этом в главе 40.) Без комментариев и объяснений остаются и изменения, происходящие в процессе развития и обучения. Подобно лингвистам, мы отчаянно бьемся в попытках провести обратное конструирование всех этих “правил” и “процедур”. Эта задача даже сложнее обратного конструирования объектного кода с целью восстановления исходного кода (не считая комментариев), но теоретически она выполнима.
Резюме
Веками мы наблюдали многочисленные свидетельства, что мозг – вместилище человеческой души, но до середины двадцатого века никто и представить себе не мог, как это вообще возможно. Было очевидно, что мозг состоит из множества разных органов причудливой формы, дублирующихся в левом и правом полушариях. Первые анатомы давали этим органам любопытные имена – гиппокамп (“морской конек”), миндалевидное тело, морщинистая кора, – но за что эти органы отвечали? Они ведь не переваривали пищу и не очищали кровь? Может, мозг предназначался просто для охлаждения крови, выступая своего рода радиатором, как полагал Аристотель? Отдельные части мозга соединялись нервными волокнами – может, они коммуницировали между собой? Декарт предположил, что некоторые нервные волокна подобны привязанным к колокольчику проводам: если потянуть за такой провод, на другом его конце что-то произойдет, но что именно? Звон колокольчиков не приближал понимание мозга как сознания, а других идей ни у кого не было[34].
Затем появился Тьюринг, который, опираясь на традицию, восходящую к Бэббиджу, Паскалю, Лейбницу и другим ученым, предположил, что мозг может состоять из простых элементов, по сути своей механических (как мышеловка, звонок, замок с ключом и синапс), но если эти элементы организованы таким образом, чтобы хитро взаимодействовать друг с другом, то они смогут выполнять кое-какие разумные действия сами, без человеческого вмешательства и без наличия каких-либо духов в машине, чтобы ими управлять. Они смогут вычислять. До того как Тьюринг предложил свою идею, “компьютерами” называли тысячи людей, которых нанимали на работу в промышленность и государственный аппарат, чтобы они рассчитывали таблицы для использования, к примеру, в бизнесе, навигации, артиллерийском и банковском деле. Тьюринг предположил, что мозг подобен (живому) компьютеру – что он обрабатывает информацию, прилежно следуя огромным спискам предельно простых инструкций (вроде Инк и Деп). Как только первые теоретики когнитивной науки Алан Тьюринг и Джон фон Нейман, основоположник кибернетики Норберт Винер и основоположник теории информации Клод Шеннон, а также многие другие ученые сформулировали идею, она стала казаться очевидной – как люди не замечали этого раньше? Мозг должен получать информацию от органов чувств и обрабатывать ее, производя какие-то расчеты, пока не извлечет крупицы смысла, которые путем дальнейших расчетов будут категоризированы и сохранены для дальнейшего использования при управлении телом, дающим мозгу энергию и защищенное вместилище. Ключевой инновацией концепции Тьюринга был отказ от неудобного элемента, использовавшегося во всех ранних представлениях об обработке информации, а именно от переломных моментов, которые требовали наличия клерка, переводчика или библиотекаря – иными словами, некоторого узла, распознающего смысл сигналов. Тьюринг полагал, что, с одной стороны, от этого никуда не деться: разумные процессы всегда будут требовать выбора того или иного варианта действий на основании распознавания различий в сигналах. Но он сумел снизить уровень этого понимания до минимума, заявив о существовании условного перехода – бездумного процесса, посредством которого устройство решает (вроде как решает) идти налево, а не направо, потому что оно воспринимает (вроде как воспринимает) 1, а не 0, А, а не B, x, а не Y. Вкупе с арифметикой этого было более чем достаточно. Имея все это в своем распоряжении, можно создавать устройства, характеризующиеся любой степенью способности к распознаванию, устанавливая виртуальные машины на виртуальные машины на виртуальных машинах – если выражаться современным языком. Эта концепция остается привлекательной более пятидесяти лет, однако – как мы уже начали замечать – все не так уж просто. Если мозг – это компьютер, то он не слишком похож на компьютеры, которые мы используем каждый день. Нам стоит помнить о фундаментальных характеристиках компьютеров, чтобы иметь возможность размышлять о более реалистичных в биологическом отношении альтернативах стереотипным, практичным архитектурам.
Цель интерлюдии состояла в том, чтобы прояснить эту концепцию и описать ее достаточно подробно, дав вам возможность использовать ее в качестве инструмента мышления, своеобразного костыля для воображения, который поможет вам понять дальнейшие рассуждения. Сначала мы немного подробнее разберем, как значения могут храниться в мозге (и в других машинах), а затем увидим, как такие хитроумные архитектуры создаются одной лишь эволюцией без помощи главного программиста или творца. После этого вы будете в состоянии использовать изученные инструменты мышления, чтобы успешно размышлять о сознании и свободе воли, а коварнее тем я не знаю.
V.
Дополнительные инструменты мышления о значении
28. Пунктик насчет рыжих
Мы уже видели кое-какие проблемы с заманчивой в остальном идеей о том, что вся информация в нашем мозге – наши убеждения, ощущения, воспоминания, установки и так далее – делится на фрагменты-предложения, которые хранятся в архиве, готовые в любой момент вернуться к жизни. Письменность мозга не позволяет просто установить в него ложное убеждение, а люди могут разделять какое-либо убеждение (например, о том убийстве в Лондоне), не имея в голове одинаковой формулы на языке мысли. Но что еще может хранить информацию в мозге? Мы, люди, учимся “поэтапно”, поэтому должен существовать какой-то способ добавлять в мозг не связанные друг с другом факты, грубо говоря, по одному зараз.
Экономисты (и не только) часто замечают, что невозможно сделать что-то одно. “Что-то одно” всегда имеет последствия. Подобным образом сомнительна и идея, что можно узнать лишь что-то одно. Но в первом приближении это все же возможно. Ранее из этой книги вы узнали о существовании млекопитающего под названием пуду. Если вы не поискали другой информации о пуду, вероятно, вы не можете сказать об этих животных ничего, кроме того, что они выкармливают своих детенышей, имеют позвоночник и встречаются относительно редко (иначе вы бы точно о них слышали). Вполне очевидно, откуда вы это узнали: вы прочитали предложение и поверили ему. Но могут ли животные или маленькие дети, которые еще не освоили язык, узнать единичный факт (наподобие факта, выраженного простым предложением) из какого-нибудь любопытного фрагмента опыта? Представление о том, что знание, убеждение или учение должно разбиваться на фрагменты-предложения, вероятно, стоит считать иллюзией антропоморфизма. Каждый день мы, люди, сталкиваемся со множеством описательных предложений – как в устной, так и в письменной речи – и таким образом узнаем всевозможные факты (и верим во всякую ложь). Одни факты мы храним в библиотеках и архивах, а другие – только у себя в голове. Мы редко запоминаем предложения слово в слово, но, когда мы выжимаем из предложения суть, она должна – должна ведь? – храниться на манер предложений, превращаясь в формулу на языке мысли. Если это не так, то какие есть альтернативы?
Допустим, Пэт говорит, что у Майка “пунктик насчет рыжих”. Примерный смысл фразы Пэт заключается в том, что у Майка в голове сложился достаточно неприятный стереотипный образ рыжих, который влияет на отношения Майка с рыжими. И дело не просто в том, что Майк настроен против рыжих, а в том, что у Майка есть своеобразный и конкретный пунктик насчет них. И Пэт, возможно, прав – правее, чем он сам думает! Вполне вероятно, у Майка действительно есть пунктик – не идея, не мысль, не утверждение, не образ и не любой другой элемент нашего сознательного опыта, а фрагмент субличностного когнитивного аппарата его мозга, который действительно связан с рыжими, потому что систематически всплывает всякий раз, когда речь идет о рыжих или об одном рыжем, и корректирует различные параметры когнитивного аппарата Майка, в результате чего вероятность рассмотрения и вынесения лестных суждений о рыжих снижается, а вероятность относительно агрессивного поведения по отношению к рыжим возрастает и так далее. Принцип работы такого пунктика насчет рыжих может быть как очень сложным, так и довольно простым. Имеющийся у Майка пунктик насчет рыжих может играть решающую и неоспоримо осмысленную роль, но никакое выражение этого смысла в предложении, считающемся истинным, не станет более, чем мнемоническим ярлыком этой роли. Иными словами, вероятно, нельзя назвать роль этого пунктика до странности специфическим или до странности расплывчатым убеждением, что все рыжие – У… (где мы заменяем “У” на то слово, которое лучше всего отражает отношение Майка к рыжим). У Майка явно есть сформированное отношение к рыжим, но, если пользоваться философским жаргоном, это отношение нельзя назвать пропозициональным. Иными словами, как бы мы ни изощрялись в положениях об исключении, классификаторах, операциях возможности и других однозначных механизмах регулирования содержимого, оно не подлежит категоризации в формате
Майк полагает, что: для всех x, где x обозначает рыжего, верно…
Философы (и другие теоретики) неоднократно пытались “свести” все когнитивные состояния к информативным состояниям – назовем их убеждениями и желаниями, – которые выражаются подобными формулами. Хотя эта тактика позволяет сделать грубый набросок психологии какой-либо личности (по сути, это интенциональная установка), не стоит и надеяться сделать этот набросок сверхточным. Можно сказать, что различные убеждения внутренне присущи системе. Это означает, что система (в настоящее время) настроена на функционирование “при допущении”, что все рыжие мира имеют такие-то черты. Когда программисты добавляют к исходному коду комментарий, сообщая всем, что эта система полагается на определенный набор допущений, они знают, что нет смысла тратить силы, повышая точность этих допущений, поскольку эти мнемонические ярлыки необходимы нам, наблюдателям, в то время как компьютеру нет нужды вроде как читать и вроде как понимать их, и даже нам, наблюдателям, комментарии не дают спецификаций содержимого, которые можно было бы использовать наподобие того, как химик использует формулы для описания молекул. Интерпретировать какую-либо субличностную структуру мозга из интенциональной установки – все равно что добавлять комментарий к нескольким строкам кода: при надлежащем исполнении интерпретация дает нам пояснительный ярлык, а не перевод формул языка мысли, используемых при обработке информации, на русский или любой другой естественный язык. Не понимая этого, некоторые философы создают целые фантастические миры, в которых происходит манипуляция предложениями: как им кажется, вся соль заключается в том, к примеру, выражено ли содержание конкретного психического события разделительным суждением (“Я вижу мальчика-ИЛИ-девочку”) или суждением без логической структуры (“Я вижу ребенка”).
Какова задача этого насоса интуиции? Это просто попытка предположить, что знакомый вопрос, который задается всякий раз, когда кто-то сомневается в существовании языка мысли – “Что еще, если не язык?” – может получить хороший ответ, способный поубавить пыл всех, кто находит это очевидным. Хотелось бы мне представить смелую альтернативную вычислительную архитектуру, которая триумфально продемонстрировала бы работающую альтернативу, но сделать этого я не могу. Пока этого не может никто, но почти никто и не пытается, потому что по-прежнему широко распространено убеждение, что язык мысли – “единственная соломинка, которая держится на плаву”, как кто-то выразился много лет назад. Однако не забывайте, что ни один специалист по когнитивной науке не сумел предложить и работающую модель языка мысли – и даже не особенно старался. Это очень, очень сложная задача[35]. К этому вопросу я советую подходить без предубеждений.
29. Странствующий четвертачник, Земля-Двойник и гигантский робот
Может показаться, что, упоминая пунктик Майка насчет рыжих и исходный код в одном абзаце, я призываю читателей не обращать внимания на трещину в фундаменте, на зияющую пропасть в моих рассуждениях об интенциональности – на проблему исходной интенциональности. Термин предложил Джон Сёрл (1980), и четкое различие между исходной и производной интенциональностью, на первый взгляд, кажется интуитивно понятным и даже глубоко убедительным. Доктрина об исходной интенциональности гласит, что, хотя ряд артефактов может обладать интенциональностью, производной от нас (к примеру, книги и фильмы, компьютеры и дорожные знаки), существует также исходная (или внутренне присущая) интенциональность, которую нельзя считать производной. К примеру, напечатанные на этой странице слова говорят о философии только потому, что мы, способные читать и писать на русском языке, обладаем представлениями и убеждениями о философии, которые умудряемся передать, используя следы чернил, однако без нас, пользователей слов, эти знаки вообще ни о чем бы не говорили. Наши мысли и убеждения, напротив, значат то, что они значат, вне зависимости от наличия неочевидных пользователей; они демонстрируют исходную интенциональность и служат источником производной интенциональности многих наших артефактов. К этим артефактам относятся не только слова, предложения и книги, но и карты, фильмы, картины, знаки, символы, диаграммы и другие технические изображения, а также – что особенно важно – компьютеры. Где бы вы ни держали свой список покупок – хоть на клочке бумаги, хоть на смартфоне, – он говорит о продуктах только потому, что вы определенным образом используете символьные структуры и интерпретируете их для подкрепления своего желания купить продукты и убеждения, что идти за ними нужно в супермаркет, причем это желание и убеждение говорят о продуктах более непосредственным образом. Аристотель назвал Бога недвижимым двигателем, а эта доктрина называет нас неозначенными означивателями.
Можно согласиться с Сёрлом, что ничто не обладает внутренней интенциональностью просто в силу своей физической формы или других подобных свойств. Если по невероятному совпадению форма
БЕСПЛАТНОЕ ПИВО
проявится в следах различных минералов на каменистой поверхности Марса, ее нельзя будет (“саму по себе”) считать объявлением о раздаче алкогольного напитка, как бы читателям-землянам ни хотелось интерпретировать ее таким образом. Форма не будет говорить ни о чем, несмотря на первое впечатление. Если какие-то сложные события и объекты мира говорят о других вещах, должно быть, они каким-то образом черпают свою очемность из репрезентации и интерпретации интециональных систем, состояния которых (убеждения, желания, состояния ума) уже обладают некоторой интенциональностью.
Вопрос в том, все ли обладает исходной интенциональностью! На первый взгляд, может показаться очевидным, что нечто должно обладать исходной интенциональностью, поскольку производную интенциональность необходимо от чего-то произвести. Первым кандидатом на обладание исходной интенциональностью стало бы человеческое сознание. Неудивительно, что ряд уважаемых философов, которые в остальном категорически расходятся с Сёрлом, например Джерри Фодор и Сол Крипке, тем не менее соглашается с ним на этот счет. Они – и многие другие, разделяющие эту точку зрения, – полагают, что человеческое сознание (или его психические состояния) обладает исходной интенциональностью и этим радикально отличается от контролируемых роботами систем.
Они все откровенно ошибаются. Да, ошибаются. Я не шучу. Учитывая неоспоримую привлекательность разграничения исходной и производной интенциональности, любая попытка дискредитировать эту теорию рискует быть опровергнутой неуместной снисходительностью: “Не может быть, чтобы он и правда полагал, что мы ошибаемся на этот счет! Должно быть, он имеет в виду другое и пытается поднять какой-нибудь заумный философский вопрос, который неблагоразумно обрядил в такое нелепо провокационное одеяние!” Вероятно, лучший способ убедить людей, что я действительно имею это в виду, – представить на всеобщее обозрение самый очевидный случай производной интенциональности, какой только можно найти, и затем показать, что при ближайшем рассмотрении любимый всеми контраст между этим примером и человеческим сознанием как примером исходной интенциональности исчезает без следа. Это трудная задача, но я и не ищу простых путей. Чтобы выполнить ее, мне понадобятся три взаимосвязанных насоса интуиции.
1. Странствующий четвертачник. Представьте обыкновенный автомат по продаже напитков, спроектированный и произведенный в Соединенных Штатах и оборудованный приемником американских четвертаков. Назовем этот приемник четвертачником. Обычно, когда в четвертачник вставляется четвертак, четвертачник переходит в состояние – назовем его Ч, – которое “означает” (обратите внимание на пугающие кавычки; оно вроде как означает): “Сейчас я чувствую/принимаю настоящий американский четвертак”. Подобные четвертачники довольно сложны и умны, но не надежны на сто процентов. Они “совершают ошибки”. В частности, порой они переходят в состояние Ч, когда в них вставляют жетон или другой инородный объект, а порой отказываются принимать самые что ни на есть настоящие четвертаки, то есть не переходят в состояние Ч, когда от них это ожидается. Несомненно, в этих случаях “ошибочного восприятия” можно выявить закономерности. Также несомненно, что хотя бы некоторые из случаев “ошибочного восприятия” можно предсказать, имея достаточные знания о соответствующих законах физики и технологических параметрах приемника-четвертачника. Применяя законы физики, можно выяснить, что в состояние Ч четвертачник переводят не только настоящие американские четвертаки, но и объекты некоторого типа К, в то время как объекты типа И (слишком тяжелые) или типа Л (магнитные, в отличие от четвертаков) для этого не подходят. Таким образом, объекты типа К становятся прекрасными жетонами и успешно “обманывают” приемник. (Обратите внимание, как часто я использовал в этом абзаце оператор “вроде как”, чтобы применять интенциональную установку при объяснении принципов работы четвертачника. Попробуйте переписать этот абзац, не прибегая к интенциональной установке, и вы увидите, что она необычайно эффективна, а оператор “вроде как” в этих целях практически незаменим.)
Если объекты типа К распространяются в среде, где работают четвертачники, можно ожидать, что владельцы и конструкторы четвертачников усовершенствуют приемники, сделав их более чувствительными, чтобы они безошибочно отличали настоящие американские четвертаки от жетонов типа К. Само собой, могут появиться более изощренные фальшивки, которые потребуют дальнейшего совершенствования механизма распознавания монетоприемника, и в какой-то момент дальнейшие инженерные разработки станут нецелесообразны, поскольку создать на сто процентов надежный механизм невозможно. Тем временем конструкторы и пользователи вполне довольны использованием стандартных, примитивных четвертачников, поскольку защищаться от ничтожных злоупотреблений экономически невыгодно.
Единственное, что делает это устройство детектором четвертаков, а не детектором жетонов и не детектором четвертаков или жетонов, это общее намерение конструкторов, производителей, владельцев и пользователей устройства. Одни случаи перехода в состояние Ч можно признать “истинными”, а другие “ошибочными” только в среде или контексте этих пользователей и их намерений. Только в этом контексте намерений мы вообще можем оправдать свое решение назвать это устройство четвертачником.
Насколько я понимаю, пока Сёрл, Фодор, Крипке и остальные согласно кивают: именно так обстоит дело с подобными артефактами – иными словами, это классический пример производной интенциональности. Никто не стесняется признать, что конкретный четвертачник, произведенный на американской фабрике и имеющий маркировку “Четвертачник модели А”, может быть установлен на автомате с газировкой в Панаме, где он будет принимать и отвергать четвертаки бальбоа, официальной валюты Панамы, легко отличимой (человеком) от американских чертвертаков по дизайну и отчеканенным на ней словам, но не по весу, толщине, диаметру и вещественному составу.
Я ничего не придумываю. У меня есть свидетельство профессионала – Альберта Эрлера из общества нумизматов “Парящий орел”, – что стандартные торговые автоматы не могут отличить американские четвертаки от панамских четвертаков бальбоа, отчеканенных в период с 1966 по 1984 г. Неудивительно, ведь их чеканили на болванках американских четвертаков на американских монетных дворах. Для особо любопытных оговорюсь: текущий (2011 г.) обменный курс бальбоа к доллару составляет 0,98, так что четвертак бальбоа сегодня ценится чуть меньше американского четвертака.
Отправленный в Панаму четвертачник все равно будет в большинстве случаев принимать определенное физическое состояние – состояние, характеризующееся физическими свойствами, по которым мы определяли состояние Ч, – всякий раз, когда в него будут вставлять американский четвертак, объект типа К или четвертак панамского бальбоа, но теперь ошибками будут считаться другие случаи. В новой среде американские четвертаки приравниваются к жетонам, как объекты типа К, и ведут к ошибкам восприятия и представления фактов. При этом в США жетоном будет считаться четвертак панамского бальбоа.
Если наш четвертачник переезжает в Панаму, можем ли мы по-прежнему говорить о его переходе в то состояние, которое мы называли состоянием Ч? Физическое состояние, при котором устройство “принимает” монеты по-прежнему возникает, но не следует ли нам теперь говорить, что это физическое состояние необходимо идентифицировать иначе, поскольку “реализуется” новое состояние – состояние ЧБ? Говорить можно по-разному, поскольку четвертачник, в конце концов, всего лишь артефакт, а потому рассуждения об ошибках его восприятия, его истинных и неистинных состояниях – одним словом, о его интенциональности – это “просто метафора”. Внутреннее состояние четвертачника, как его ни назови, на самом деле (исходно) не означает ни “я принял американский четвертак”, ни “я принял четвертак панамского бальбоа”. На самом деле оно вообще ничего не означает – именно так сказали бы Сёрл, Фодор и Крипке (и многие другие). Его внутреннее состояние лишь вроде как означает что-то, но этого достаточно, чтобы сформулировать некоторые проблемы, которые могут возникнуть и перед нами, любителями исходной интенциональности. Давайте рассмотрим пример подробнее.
Изначально четвертачник был разработан как детектор американских четвертаков. В этом заключалась его “собственная функция” (Millikan 1984) и – буквально – смысл существования. Никто не стал бы создавать его, если бы не возникло необходимости в исполнении этой задачи. Учитывая, что история его происхождения предполагает определенную манеру выражаться, такое устройство может главным или должным образом характеризоваться как четвертачник, приспособление для определения четвертаков, а потому относительно этой функции определяются как его истинные состояния (когда он действует правильно), так и ошибки.
Это не мешает выломать четвертачник из гнезда и приспособить для выполнения новой задачи – какую бы задачу ему ни позволили эффективным образом выполнять законы физики: он может стать детектором жетонов типа К, детектором четвертаков бальбоа, дверным упором или смертоносным оружием. При переходе к новой роли может возникнуть краткий период смятения или неопределенности. Сколько должен отработать механизм, прежде чем он перестанет быть четвертачником и станет детектором четвертаков бальбоа (ч-бальбером), дверным упором или смертоносным оружием[36]? Можно ли назвать его состояние Ч истинным при определении четвертака бальбоа, как только он начал работать ч-бальбером после десяти лет верной службы четвертачником, или же переход в это состояние стоит считать своего рода привычной ностальгической ошибкой, неверной идентификацией четвертака бальбоа как американского четвертака?
Как видно, четвертачник разительно отличается от нас, поскольку у него нет воспоминаний о прошлом опыте – и даже вроде как воспоминаний о его прошлом вроде как опыте. Однако при необходимости его можно без труда снабдить подобными воспоминаниями. Чтобы как можно безболезненнее приступить к изучению этой темы, представьте, что четвертачник (будем называть его по изначальному имени) оборудован счетчиком, который за десять лет службы насчитал 1 435 792 операции. Допустим, по пути в Панаму этот счетчик не обнулится, поэтому первая операция на новом месте получит номер 1 435 793. Подтверждает ли это, что четвертачник еще не переключился на выполнение задачи по корректной идентификации четвертаков бальбоа? (В конце концов, он вроде как ошибочно классифицирует это событие как очередное событие Ч – очередное определение американского четвертака, – которое он и должен распознавать в соответствии со своим изначальным предназначением.) Пойдет ли ваша интуиция в другом направлении, если несколько видоизменить или усложнить посылку? (Покрутите все регуляторы этого насоса интуиции и посмотрите, что из этого выйдет.)
Мы можем убедиться, что никакие внутренние свойства четвертачника, рассматриваемого в узком контексте и вне зависимости от его прошлого, не позволят нам отличить его от настоящего ч-бальбера, изготовленного по заказу панамского правительства. И все же, учитывая его происхождение, разве не возникает проблемы с его функцией, значением и смыслом, когда он впервые переходит в состояние, которое нам так хочется назвать состоянием Ч? Можно ли считать это переходом в состояние Ч (означающее “я принял американский четвертак”) или в состояние ЧБ (означающее “я принял четвертак панамского бальбоа”)? Я бы (как и Millikan 1984) сказал, что определить, считается ли его панамский дебют переходом в состояние Ч или в состояние ЧБ, можно только на основании того, был ли он выбран на новую роль за свою способность определять четвертаки бальбоа – выбран в буквальном смысле, например владельцем панамской франшизы “Пепси-колы”. Если он был выбран за свою способность, то, даже если новые владельцы и забыли обнулить счетчик, первый акт “восприятия” следует считать случаем верной идентификации, проведенной ч-бальбером, поскольку теперь он используется именно для этого. Отныне определение четвертаков бальбоа – его собственная функция. Если же четвертачник был отправлен в Панаму по ошибке или прибыл туда случайно, то его дебют ничего не будет значить, хотя его функциональность, вероятно, скоро – и даже немедленно – будет признана и оценена соответствующими органами (которые могут переключить его на исполнение новой роли), в результате чего все его последующие состояния будут считаться состояниями ЧБ. Однако, пока он не выбран для выполнения этой задачи, как бы хорошо он ни определял четвертаки бальбоа, его состояние принятия не будет означать (в артефактном, производном, “вроде как” – смысле) “я принял четвертак панамского бальбоа”. Можно предположить, что Сёрл с коллегами позволили бы мне сказать это, поскольку четвертачник, в конце концов, всего лишь артефакт. Он не обладает исходной интенциональностью, поэтому нет смысла копать “глубже” – здесь нет никакого предмета для обсуждения. Сёрл с коллегами сказали бы, что это лишь практический вопрос того, как лучше говорить о состояниях устройства метафорическим и антропоморфическим языком.
Теперь, разобравшись с производной интенциональностью, давайте изучим непроизводную, исходную интенциональность, то есть нашу интенциональность. По этому вопросу Сёрл, Фодор, Крипке и многие другие не соглашаются не только со мной, но и с философами Рут Милликен, Полом и Патрицией Черчленд, специалистами по когнитивной науке Дугласом Хофштадтером и Марвином Минским, а также почти со всеми представителями сферы искусственного интеллекта (ИИ). Споры не утихают уже более тридцати лет, и напряжение по-прежнему зашкаливает. В чем же предмет этих споров?
2. Земля-Двойник. Допустим, человек по имени Джонс выглядывает в окно и видит лошадь. Лошади там может и не быть, но в своем психическом состоянии он полагает, что видит лошадь, и дело здесь вовсе не в интерпретации (как говорят Сёрл и компания), потому что это голый факт, проявление исходной интенциональности. Посмотрим, что в таком случае произойдет, если мы проведем мысленный эксперимент, в точности дублирующий панамский. (Подсказка: мы воспользуемся доведением до абсурда.) Допустим, планета Земля-Двойник во всем похожа на Землю, но вместо лошадей на ней обитают шмошади[37]. Шмошади выглядят, как лошади, поэтому отличить их от лошадей могут только образованные биологи, имеющие в своем распоряжении тест-наборы ДНК, однако шмошади не больше лошади, чем дельфины – рыбы. Обитатели Земли-Двойника называют шмошадь “лошадью”, или cheval, или Pferd, или еще как-нибудь – не забывайте, Земля-Двойник в точности похожа на Землю, за исключением наличия шмошадей.
Допустим, мы отправляем Джонса на Землю-Двойник, где обитают шмошади, но он этого не понимает. (Мы даем ему снотворное на время путешествия, после чего он просыпается в постели своего визави на Земле-Двойнике.) После этого, увидев шмошадь, он, естественно, подумает и скажет: “Смотрите! Лошадь!” Говоря так, он либо по-прежнему действительно полагает, что видит лошадь (то есть демонстрирует ошибочное, не соответствующее действительности убеждение), либо, глядя на шмошадь, впервые в жизни (и в полном соответствии с действительностью) полагает, что видит шмошадь. Как понять, какое из событий происходит на самом деле? Истинно или ложно спровоцированное шмошадью убеждение? Если сначала он ошибочно подумал, что только что увидел лошадь, сколько ему нужно будет прожить среди шмошадей и поговорить о шмошадях с обитателями Земли-Двойника, чтобы адаптировать значение слова “лошадь” в своем языке (не понимая этого!)? Если бы на Земле-Двойнике он воспитал детей, что означало бы для них усвоенное от отца слово “лошадь” – лошадь или шмошадь? Не забывайте, лошадей они ни разу не видели. Вокруг них всегда были шмошади.
Само собой, это гротескный, утрированный пример, но он поднимает важный вопрос: что определяет смысл наших терминов и каким образом? Превалирует ли всегда и везде история или же повседневное использование слов пересиливает историю и доминирует над нею? В этом случае опыт Джонса не несет нам никакой пользы: он понятия не имеет, что живет уже не на Земле, а потому, вероятно, будет утверждать, что его слово “лошадь” означает лошадь. Значение того слова, которое он произносит, проистекает из его перцепционного убеждения, и это убеждение ему понятно: он смотрит на лошадь. Именно поэтому он сказал: “Смотрите! Лошадь!” (И мог бы добавить: “Это же совершенно очевидно!”) Но теперь представьте, что мы рассказали ему о его путешествии и объяснили едва заметное, но важное различие между лошадьми и шмошадьми. Что он скажет в таком случае, что ему следует сказать в таком случае и, что гораздо важнее, есть ли достаточные основания считать любые его слова истиной в последней инстанции? Разве он не делает ровно то, что делал бы любой из нас – а именно, строит теории на тему, о которой должным образом не осведомлен ни он сам, ни мы? Предположим, он говорит, что его слово “лошадь” теперь означает шмошадь, то есть, видя шмошадь и называя ее лошадью, он не совершает ошибки. Как говорится, с волками жить…
Может ли он просто определить значения своих слов и тем самым решить вопрос? Что если впоследствии он забудет, какие значения им присвоил? Порой мы так и поступаем: “Отныне «джабджабом» я называю столовую соль. Передайте джабджаб, пожалуйста!” В контексте научного теоретизирования условные определения весьма распространены, однако они всецело зависят от готовности коммуникантов к взаимодействию. Если Джонс обладает исходной интенциональностью, предположительно он должен в любых обстоятельствах понимать значение собственных терминов, однако выходит, что сам Джонс не в состоянии взаимодействовать со своей исходной интенциональностью лучше нас, людей со стороны. Допустим, к примеру, что мы солгали Джонсу о его перемещении на Землю-Двойник и он поверил нашей лжи (в философских насосах интуиции люди весьма легковерны). Если после этого он скажет нам, что его слово “лошадь” теперь означает шмошадь, будет ли он прав? Вероятно, ему следовало бы сказать, что он понятия не имеет, что теперь означает его слово “лошадь”. Но, если уж на то пошло, мы тоже могли сгонять на Землю-Двойник, а потому не стоит ли нам всем признать, что мы тоже понятия не имеем, что именно значит наше слово “лошадь”?
Те из нас, кто с подозрением относится к идее об исходной интенциональности, имеют готовые ответы на все эти вопросы, но окончательно прояснить ситуацию – чтобы эти ответы сумели выстоять в бою с традиционной интуицией – нам поможет третий мысленный эксперимент. (Бойся, читатель! Я собираюсь уговорить тебя отринуть свое чутье.)
3. Гигантский робот. Допустим, вы захотели пожить в двадцать пятом веке и существует лишь один способ так долго поддерживать жизнь в вашем теле – поместить его в своеобразное гибернационное устройство, где оно сможет сколько угодно покоиться в коматозном состоянии, пока все происходящие внутри него процессы будут замедлены. Вы можете лечь в капсулу жизнеобеспечения, погрузиться в сон, автоматически пробудиться и выйти наружу в 2401 г.
Проектирование капсулы не единственная инженерная проблема, с которой вам предстоит столкнуться, ведь капсула должна быть защищена и обеспечена необходимой энергией (для охлаждения и чего угодно еще) почти на четыреста лет. Вы не можете положиться в этом на детей и внуков, поскольку они умрут задолго до наступления 2401 г., а для более далеких ваших потомков – при их наличии – ваше благополучие вряд ли окажется в приоритете. В связи с этим вы должны спроектировать суперсистему, которая будет защищать вашу капсулу и снабжать ее необходимой энергией на протяжении четырехсот лет.
Существует две базовые стратегии выполнения этой задачи. Первая заключается в том, чтобы найти идеальное – насколько вы можете предугадать – место для установки капсулы, которая будет в достаточном объеме снабжаться водой, солнечным светом и всеми остальными ресурсами, необходимыми вашей капсуле (и самой суперсистеме) в течение заданного времени. Главный недостаток фиксированной капсулы связан с тем, что ее невозможно передвинуть в случае опасности – скажем, если кто-нибудь решит проложить шоссе ровно там, где она расположена. Вторая стратегия гораздо сложнее, но она решает эту проблему: в соответствии с ней необходимо спроектировать для капсулы мобильный комплекс, снабженный требуемыми датчиками и средствами раннего предупреждения, который сможет в случае опасности перемещаться и по мере надобности искать новые источники энергии. Иными словами, нужно спроектировать гигантского робота и установить капсулу (в которой будете находиться вы сами) внутрь него.
Две этих базовых стратегии, очевидно, скопированы из мира живой природы: они примерно соответствуют стратегиям выживания растений и животных. Третья природная стратегия – защищенные споры или семена, которые могут сколько угодно выживать в своей оболочке, – вам недоступна, поскольку ваша система жизнеобеспечения потребляет большое количество энергии, в то время как споры пассивны, а их энергопотребление минимально. Так как нашей цели соответствует стратегия животных, следует предположить, что вы решите построить для своей капсулы робота. Вы должны постараться спроектировать его таким образом, чтобы в первую очередь он “выбирал” действия в ваших интересах. Неверные шаги и ошибки выбора не позволят роботу справиться с защитой вашей жизни до 2401 г., в чем заключается единственный смысл его существования. Само собой, спроектировать такого робота будет очень сложно – вам понадобится высокий уровень профессионализма, чтобы сконструировать “зрительную” систему для руководства его перемещениями, а также другие системы “чувственного восприятия”. Поскольку сами вы будете пребывать в коматозном состоянии и не сможете управлять роботом и планировать стратегии его функционирования, вам необходимо наделить его способностью генерировать собственные планы в ответ на изменение обстоятельств. Он должен “знать”, как “искать”, “распознавать” и затем эксплуатировать источники энергии, как перемещаться на безопасную территорию, как “предвидеть” опасности и затем “избегать” их. Имея такой большой объем работ и сжатые сроки, вы вынуждены во всем экономить, а потому не наделяете своего робота большей распознающей способностью, чем необходимо для распознавания всего того, что он должен распознавать.
И снова обратите внимание, что я поставил все интенциональные, или “менталистические”, термины, такие как “чувственное восприятие”, “искать” и “предвидеть”, в пугающие кавычки, чтобы обозначить, что это особый тип вроде как интенциональности, производной интенциональности, интенциональности, которая полностью зависит от ваших человеческих целей. Это ваш артефакт, а потому своей интенциональностью он обязан вам, своему создателю. Если бы я опустил пугающие кавычки, меня могли бы обвинить в том, что я пытаюсь приплести сюда идеологию, ссылаясь на тот факт, что инженеры и другие специалисты постоянно используют подобный язык – без пугающих кавычек – для описания характеристик устройства обработки информации (например, лифтового контроллера). Я намеренно этого не делаю. Напротив, я подчеркиваю, что в рамках этого разговора интенциональный язык используется для описания или регламентации способностей артефакта исключительно метафорически. Также обратите внимание, что механизм робота, как и механизм четвертачника, тоже создается с учетом принципа экономии: он должен “обнаруживать” или “распознавать” множество вещей, но его “распознавания” не будут на сто процентов надежны. Он может совершать ошибки, но лишь потребности и желания его создателя определяют, что именно будет считаться ошибкой. Если создатель хотел сконструировать веселого робота-клоуна, который шатался бы по миру, “неправильно распознавая” вещи, то некоторые из его “ошибок” следовало бы считать примерами корректной работы, триумфами системы клоуна.
Вернемся к нашему насосу интуиции: ваша задача усложняется тем, что вы не можете гарантировать, что ваш робот будет единственным роботом, имеющим такую миссию. Если ваше начинание будет продолжено, вашему роботу, возможно, придется конкурировать с другими роботами (и с вашими потомками-людьми) за ограниченные источники энергии, пресной воды, смазок и тому подобных вещей. (См. главу 67, в которой кратко объясняется важность присутствия других агентов.) Несомненно, было бы разумно сконструировать робота таким образом, чтобы его система управления оказалась достаточно совершенна для расчета риска и пользы сотрудничества с другими роботами и формирования взаимовыгодных альянсов, но в то же время любой такой расчет должен представлять собой “быструю и грубую” прикидку, безжалостно урезанную дефицитом времени.
В результате должен получиться робот, способный к некоторому самоконтролю, поскольку, как только вы погрузитесь в сон, вам придется передать своему артефакту пристальный контроль над ситуацией, осуществляемый в реальном времени. В таком случае робот сможет определять вспомогательные цели на основании оценки текущего состояния и влияния этого состояния на итоговую цель (которая по-прежнему заключается в сохранении вашей жизни). Эти вспомогательные цели, возможно, будут уводить его в сторону и вовлекать в вековые проекты, ряд которых может оказаться нерациональным, несмотря на все ваши усилия на стадии разработки. Ваш робот может действовать вразрез с вашими целями и даже совершать самоубийственные поступки, если другой робот, к примеру, “убедит” его отодвинуть главную миссию собственного существования на второй план.
Обратите внимание, что на этом этапе все интенциональные состояния и действия робота хоть и остаются производными от ваших целей, но начинают несколько отклоняться от этих целей. Поскольку вы сконструировали робота таким образом, чтобы он в некоторой степени “думал за себя”, его “мышление” может выйти за очерченные вами рамки. Реальным, а не выдуманным примером такого артефакта может служить играющий в шахматы компьютер, который способен победить своего создателя в шахматной партии. Да, мы можем сказать, что компьютер в настоящее время “изучает” возможные ходы ладьи ферзевого фланга и “решает” не проводить рокировку, лишь на основании того, что компьютер представляет собой артефакт, созданный человеком именно для совершения этих действий. Но мы также можем сказать, что имеющаяся у создателя цель спроектировать хорошо играющий в шахматы компьютер предполагает, что многие выводы создателя о (производной) очемности компьютерных состояний оказываются вынужденными: при условии, что шахматисту необходима точная информация о правилах и состоянии партии, должны существовать состояния, которые описывают положение каждого слона и каждой пешки, а также состояния, которые предполагают оценку партии, если ферзь компьютера текущим ходом возьмет коня противника, и так далее. Никакие указания не могут связать (производную) очемность состояния компьютера с количеством оставшихся на доске пешек, если только это состояние не было должным образом соотнесено с обнаружением каждой пешки на доске. Когда основная цель создателя достигнута (сделать шахматиста, гигантского робота, симулятор ураганов), в дело вступает жестокая природа, которая определяет, что будет работать, а что работать не будет, а следовательно, какие состояния какой системы считать ошибочными или неточными. Возможно, поэтам и сходит с рук заявление, что в стихотворении о лошадях на самом деле речь идет о профессуре – как сказал Уильям Блейк, “тигры гнева мудрей лошадей поученья”[38], – но компьютерные специалисты не могут подобным образом переносить свои намерения на свои детища.
Подытожим сказанное. Симулякр психических состояний гигантского робота был бы именно таким – на самом деле он ничего не решал бы, ничего не видел, ни о чем не размышлял и ничего не планировал, но словно бы решал, размышлял и планировал. Нужно сделать паузу и убедиться, что мы полностью понимаем это утверждение. Воображаемый робот, само собой, гораздо сложнее скромного четвертачника. Мы наделили его способностью “планировать” новые варианты действий, “учиться” на прошлых ошибках, “формировать альянсы” и “коммуницировать” с конкурентами. Более того, чтобы он осуществлял это “планирование”, “обучение” и “коммуникацию”, его необходимо будет снабдить контрольными структурами, обладающими высокой способностью к саморефлексии или самоконтролю. Иными словами, робот, подобно человеку, будет иметь доступ к собственным внутренним состояниям и сможет “сообщать”, “заявлять” и “комментировать”, что “значит” быть выжимкой своих внутренних состояний (когда “решит”, что не “хочет” нас “обманывать”). У него будут “мнения” о смысле этих состояний, и нам следует воспринимать эти мнения всерьез как прекрасное свидетельство – возможно, даже лучшее из доступных нам свидетельств – о том, что “значат” эти состояния, выражаясь метафорически (не забывайте: робот остается всего лишь артефактом и не обладает исходной интенциональностью; мы рассматриваем его производную интенциональность, которая для наблюдателей не очевиднее нашей интенциональности, интенциональности “настоящих” агентов). Четвертачник не получил такой возможности отмахиваться от наших интерпретативных суждений, с очевидной уверенностью делая “заявления” о том, что он понятия не имеет, что теперь работает в Панаме, или что он был очень удивлен, узнав о существовании четвертаков бальбоа.
Ответить на применение этого насоса интуиции можно по-разному, и вскоре мы рассмотрим несколько вариантов, но сначала я хочу подчеркнуть самое удивительное следствие упрямой приверженности нашей изначальной посылке о том, что ни один артефакт, каким бы мощным ИИ он ни был снабжен, не обладает никакой иной интенциональностью, за исключением производной. Придерживаясь этой позиции, мы вынуждены сделать вывод, что наша собственная интенциональность ничем не отличается от интенциональности робота, поскольку рассказанная мной научно-фантастическая история не нова – фактически она представляет собой вариацию рассуждений Ричарда Докинза (1976), который считает нас и представителей всех остальных биологических видов “машинами выживания”, сконструированными, чтобы продлить существование наших эгоистичных генов. Мы сами артефакты, которые миллиарды лет конструировались в качестве машин выживания для генов, неспособных быстро и информированно действовать в собственных интересах. Наши интересы – как мы себе их представляем – необязательно совпадают с “интересами” наших генов, хотя нас бы и вовсе не было на свете, если бы наши гены не проявляли к этому “интерес”. Сохранение генов – изначальный смысл нашего существования, пускай мы и в состоянии научиться игнорировать этот смысл и определять свое высшее благо, благодаря своему разуму и способности к обучению, которые заложены в нас нашими генами. Таким образом, наша интенциональность производна от интенциональности наших “эгоистичных” генов. Это они неозначенные означиватели, а вовсе не мы!
Само собой, интенциональность наших генов ни в коем случае нельзя считать внутренней, ведь “значение” каждого гена зависит от целой “алфавитной” системы триплетов АГЦТ, белкового синтеза и развития, если не вдаваться в детали. Но ее можно считать исходной, поскольку она является первой из многих сформировавшихся впоследствии репрезентативных систем. Все более поздние системы обладают агентами – интенциональными системами, – репрезентации которых черпают интенциональность из преследуемых целей (прямо как интенциональность гигантского робота)[39].
Такой взгляд на вещи хоть и дает удовлетворительный ответ на вопрос, откуда берет начало наша интенциональность, но при этом озадачивает нас, поскольку наша интенциональность оказывается производной от сущностей – генов, – интенциональность которых представляет собой хрестоматийный пример словно бы интенциональности. Как может буквальное зависеть от метафорического? Более того, между моей научно-фантастической историей и представлениями Докинза, безусловно, есть не менее существенное различие: в то время как в своей истории я предположил, что робот создается посредством сознательной, целеустремленной, прозорливой инженерной работы, по мнению Докинза, даже если мы и представляем собой продукт процесса проектирования, в котором основную выгоду получают гены, в этом процессе проектирования совершенно не задействован сознательный, целеустремленный и прозорливый инженер. Но вскоре мы увидим, что это возражение никуда не годится.