Чтение онлайн

ЖАНРЫ

Революция в зрении. Что, как и почему мы видим на самом деле
Шрифт:

Рис. 15.

Частота различных конфигураций контуров, встречающихся в человеческих знаковых системах и в картинах природы, представленная в виде линии регрессии. Из графика видно, что конфигурации, наиболее часто встречающиеся в природе, являются наиболее типичными и для знаковых систем. Под знаковыми системами в данном случае подразумевается совокупность данных для неязыковых символов, китайских иероглифов и алфавитной письменности, однако та же самая закономерность наблюдается и для каждой из этих знаковых систем в отдельности.

Homo turingipithecus

Осенью 2003 года (я был тогда сотрудником Калифорнийского технологического института) мне в голову пришла безумная мысль. Каждый из нас носит в черепной коробке фантастически мощный компьютер. И вот я подумал: разве не было бы здорово, если бы мы сумели как-нибудь подключиться к этой мощности? Например, такое простое дело, как зрение, основано на том, что зрительной части нашего головного мозга приходится совершать вычислительные операции поразительной сложности. И мало того, что ваш мозг проделывает бесчисленное множество

таких операций в секунду, ни одну из них вы еще и не воспринимаете как работу. В отличие от мышления, когда мы “перемалываем” идеи одну за другой, зрение не требует усилий. Более того, множество очень сложных зрительных стимулов может обрабатываться одновременно: одна увиденная нами картина — это тысячи входных сигналов. Мне стало любопытно, нельзя ли программное обеспечение (программы, предназначенные для переработки информации) перевести в зрительные образы так, чтобы при взгляде на этот специальный “визуальный софт” зрительная система невольно производила необходимые вычисления и запускала программу. Такая картинка была бы одновременно и программным обеспечением, и входными сигналами, которые это программное обеспечение обрабатывает. Ваша зрительная система производила бы вычисления безо всяких усилий — в том смысле, что вы ничего особенного при этом не чувствовали бы, — и выдавала бы такое восприятие, которое содержало бы решение произведенных вычислительных операций. Ваше зрительное восприятие и было бы результатом. Иначе говоря, я задался следующим вопросом: можем ли мы обхитрить свою зрительную систему, загружая в нее программы и по собственному выбору запуская их? На первый взгляд замысел может показаться бредом, но это не больший бред, чем использовать ДНК для компьютерных вычислений — идея, которую Леонард Адлеман в 90-х годах заставил нас воспринять всерьез. Что звучит бредовее: вычисления, выполняемые мозгами, или вычисления, выполняемые цистернами с бульоном из ДНК?

После того, как меня осенила моя безумная мысль, я провел несколько месяцев, пытаясь создать “зрительное программное обеспечение”, однако дело почти не шло. Я даже предлагал сто долларов (и соавторство) любому из своих коллег по Калифорнийскому технологическому, кто смог бы предложить “зрительную микросхему” для вычисления простых компонентов цифровых схем, но безрезультатно. И лишь в конце 2007 года, когда я уже работал над этой книгой, стали намечаться некоторые успехи.

На рис. 16 приведен пример “зрительной микросхемы”. Цифровые микросхемы — важная разновидность вычислительных устройств, которая используется в калькуляторах, компьютерах, телефонах, практически во всей современной электронике. Они представляют собой совокупность так называемых логических вентилей, или гейтов, выполняющих простые логические операции: например, И-вентиль дает на выходе 1, только если каждый из входных сигналов представляет собой 1. Любой участок микросхемы — в том числе выход — всегда находится в одном из двух состояний: 0 или 1. В отличие от электронных микросхем, где используются металлы или полупроводники для кодировки состояний 1 и 0, зрительные микросхемы вроде той, что показана на рис. 16, опираются на неоднозначные зрительные стимулы (такие, которые, как и составляющие их компоненты, могут быть интерпретированы двояко). Любой участок контура на рис. 16 (за исключением точек ввода) может быть воспринят двумя разными способами: как наклоненный к вам или от вас. Этим вашим восприятием наклона и определяется состояние микросхемы, 1 или 0, в данной точке. Результат на выходе определяется тем, как вы воспринимаете наклон контура в специально обозначенной точке — в данном случае она расположена снизу. Точки ввода данных в зрительных микросхемах представлены однозначными стимулами, наклоненными либо определенно к вам (1), либо от вас (0). Один из двух таких входов на рис. 16 находится в состоянии 1, а другой — в состоянии о. Также в данной микросхеме содержится три типа логических вентилей: НЕ (переключающие состояние схемы с 1 на 0 или наоборот), И (которые выдают значение 1, только если оба входа находятся в состоянии 1) и еще вентиль ИЛИ (выводит 1, если хотя бы один из двух входов находится в состоянии 1). Вентили И, ИЛИ функционируют благодаря частичной прозрачности нарисованных элементов, делающей одну из двух возможных интерпретаций состояния микросхемы более вероятной. Например, вентиль внизу рис. 16 — это ИЛИ-вентиль (при беглом взгляде он кажется наклоненным к вам). Такое восприятие обеспечивают два частично просвечивающих отрезка в его левой части. Вся представленная схема является схемой типа “исключающее ИЛИ” — иными словами, она выводит 1 лишь в том случае, если один из входов находится в состоянии 1. Поскольку входы в данном случае имеют значения 1 и 0, на выходе получается 1. То есть в связи с тем, что один из входов изображен наклоненным к зрителю, а другой — от зрителя, люди, если подойдут к делу ответственно, будут воспринимать нижнюю часть схемы скорее как наклоненную к ним.

Рис. 16.

Пример того, что я называю "зрительной микросхемой”. Данный контур использует нашу зрительную систему для вычисления функции “исключающего ИЛИ” (XOR), то есть такой функции, которая дает на выходе 1 в том случае, если только один из входных сигналов является 1. Построена эта "микросхема” из неоднозначных зрительных стимулов, которые могут быть восприняты двумя четко различимыми способами: как повернутые к вам или от вас. В любой точке схемы значение сигнала, 0 или 1, зависит от вашего восприятия. Если вам кажется, что какая-то часть контура повернута “от вас”, значит, здесь значение сигнала о; если же она повернута "к вам”, значение сигнала 1. Вывод данных производится в нижней части: результат действия всей схемы в целом определяется вашим восприятием рисунка в данной точке. Моя “микросхема" состоит из “проволоки” (прямоугольный орнамент), инверторов (НЕ-шлюзов, в которых происходит переключение состояния контура из положения “к вам" в положение “от вас" или наоборот), И-шлюзов, где выход в нижней части воспринимается как положение “к вам" только в том случае, если оба верхних входа воспринимаются повернутыми “к вам”, ИЛИ-шлюза, выход из которого обычно воспринимается как положение “к вам", если хотя бы один из верхних входов воспринимается повернутым “к вам”. В приведенном примере входами данной “микросхемы” являются непрозрачные параллелепипеды в верхней части рисунка: их положение недвусмысленно, они всегда либо 1 — повернуты “к вам", либо о — “от вас”. Изображенный контур чаще дает на выходе 1 (“к вам"), чего и следует ожидать от микросхемы с такими входными данными. Для того чтобы зрительная система на самом деле могла производить подобные вычисления, вы должны следовать взглядом по микросхеме от входов до выхода, не смущаясь тем, что в некоторых точках контур будет “переключаться”, меняя конфигурацию, как в эшеровских фантазиях, из-за чего на выходе в принципе может получиться о. (На идею представленной здесь разновидности НЕ-шлюзов меня вдохновил Брам ван Хувельн.)

Рис. 16

помогает разъяснить суть стратегии, лежащей в основе зрительных вычислений. Возможности представленных на нем визуальных логических вентилей достаточно велики для того, чтобы построить из них в принципе любую цифровую схему (любую схему, входные и выходные данные в которой обозначаются нулями и единицами). Разумеется, чем больше будет схема, тем меньшего размера компоненты ей потребуются, чтобы она могла уместиться на одной картинке. И как сделать, чтобы зрительная система по-прежнему реагировала на изображение нужным нам образом, — это уже другая проблема, аналогичная трудностям, связанным с миниатюризацией электронных микросхем.

Однако прежде чем мы начнем бурно радоваться, предвкушая создание СБИС (сверхбольших интегральных схем), я должен сказать, что на данном этапе мои зрительные микросхемы вроде той, что вы только что видели, имеют серьезные недостатки. Во-первых, визуальные логические вентили не всегда дают на выходе верный сигнал. Например, мои И-шлюзы склонны выдавать восприятие, соответствующее логическому действию “И”, но это лишь тенденция, а не стопроцентно надежный физический результат, как в цифровых электронных микрочипах. Во-вторых, даже если входные данные недвусмысленно подсказывают какую-то одну интерпретацию, нашему восприятию все равно свойственна переменчивость, внезапные перескоки в эшеровском духе из одного состояния в другое. Поэтому на самом деле разглядеть весь свой “путь” по такому контуру может быть непросто, хотя мне и удалось сильно улучшить личные навыки в этом деле при помощи постоянных тренировок. Восприятие наклона рисунка на выходе не возникает само собой, без усилий, как мне изначально хотелось.

Выше я упоминал, что после первой неудачной попытки обмануть зрительную систему и заставить ее производить вычислительные операции по моему желанию, я сдался. “Придется ждать, когда кто-нибудь другой покорит компьютерный потенциал нашего зрения”, — думал я. И лишь спустя год, в 2004 году, изучая эволюцию зрительной системы, я начал осознавать, что на самом-то деле вычислительные способности зрительных отделов нашего мозга давно уже укрощены! Такая технология, как письменность, не только наделила нас способностью к спиритизму и сделала превосходными слушателями. Она позволила нам стать программируемыми — причем не в смысле промывания мозгов, как в фильме “Степфордские жены”. До возникновения письменности мы были, как и калькуляторы, способны производить лишь относительно небольшое количество наиболее важных вычислений. Лида Космидес и Джон Туби уже лет двадцать твердят нам, что мы созданы эволюцией для выполнения лишь тех задач, которые имели к нам непосредственное отношение (например, чтобы замечать, что соплеменник взял себе больше мяса, чем ему причиталось). Мы вовсе не стремились стать универсальными вычислительными машинами, вроде наших компьютеров, и еще менее стремились к тому, чтобы любой встреченный программист мог поставить нам новый “софт”.

Но несмотря на то, что эволюция не делала из нас персональные компьютеры, могло ли выйти, что мы все-таки стали универсальными вычислительными машинами, на которые можно установить любое программное обеспечение? Во-первых, давайте разберемся, что это вообще означает — запускать программы на самих себе. Это означает всего-навсего следовать сложному набору правил, операций, алгоритмов или рецептов. Строго говоря, любой рецепт — это тоже программа. Готовя яичницу, вы следуете простому набору правил, хранящемуся в памяти. Вы производите расчеты, результаты которых на каждом этапе говорят вам, что делать дальше с яйцом, сковородой и лопаткой. Но как рецепт может быть программой, да и вообще иметь отношение к вычислениям, если в нем нет цифр? Программисты действительно предпочитают говорить о вычислениях исключительно на языке цифр, но лишь потому, что цифрами можно обозначить все, что угодно. Например, число 3708 может быть цифровым кодом, расшифровывающимся как “яйцо”. Рецепт останется программой даже в том случае, если в выкладки добавятся овощи.

Раз следование рецепту может расцениваться как запуск программного обеспечения, значит, мы были способны использовать самих себя для выполнения программ задолго до изобретения письменности. Тем не менее, имелись суровые ограничения. Во-первых, все программное обеспечение заучивалось наизусть. Это делало его установку делом крайне трудоемким (загрузка данных требовала многократного повторения), и установить мы могли не больше, чем были в состоянии запомнить. Мы были вроде программируемых микрокалькуляторов, какими я пользовался в 8о-х — 90-х годах: в принципе программируемые, но на деле — сплошная морока из-за малого объема памяти. Во-вторых, хотя мы, люди, и можем запоминать огромное количество информации, если очень постараемся (кое-кто знает наизусть целые разделы Библии), масштабные установки данных обычно возможны благодаря тому, что запоминающий имеет перед глазами текст, который нужно запомнить. Без текста заучить сложные алгоритмы можно было, только услышав их от других. Но другие люди, даже те, кто избрал своей профессией преподавание, никогда не бывают так же терпеливы, как книги, и, весьма вероятно, ваш учитель отправится пить кофе еще до того, как вы закончите зубрить второй стих... И это не говоря о том, что для начала вашему учителю самому нужно было успешно перенять этот алгоритм от кого-либо. Люди могли передавать необходимые знания следующим поколениям, но обычно для этого было нужно тратить всю свою жизнь на общение с учителями.

С появлением письменности мы из еле программируемых калькуляторов превратились в полноценные компьютеры, способные к каким угодно вычислительным операциям. В первой половине XX века Алан Тьюринг разработал строгое определение алгоритма, и одним из ключевых условий для гипотетической “машины Тьюринга” было наличие доступа к ленте бесконечной длины, где информация могла бы записываться, храниться и куда впоследствии могла бы считываться с... ленты для записи и считывания. Лента была необходима машине Тьюринга, поскольку она обеспечивала фактически безграничное пространство памяти, в котором машина могла хранить все этапы вычислений. Лента была необходима и особой разновидности таких гипотетических машин — универсальной машине Тьюринга, поскольку та умела считывать записанные на ленту программы и, следовательно, выполнять любой алгоритм, какой вы ей ни подсунули бы.

С появлением письменности мы получили собственную “ленту” фактически бесконечной длины. Это позволило нам переносить, по ходу рассуждений, содержание своей кратковременной памяти на бумагу и, что сейчас для нас интереснее, впервые предоставило нам возможность выполнять какой угодно алгоритм, лишь бы он был записан. Вместо того чтобы хранить свод инструкций в голове, мы радикально упростили себе задачу: теперь нам достаточно помнить только один пункт — тот, который мы выполняем в настоящий момент, — чтобы выполнить его и благополучно забыть, перейдя к следующему пункту алгоритма, рецепта, инструкции и так далее. Ужасно сложные операции могут быть записаны и заполняют целые книги. Эти книги жанра “как сделать то-то и то-то” содержат не просто перечни фактов, но сложные наборы инструкций для выполнения сложных задач. В момент, когда я пишу эти строки, на сайте Amazon.com можно найти по меньшей мере 720 тысяч книг, название которых начинается со слов “Как сделать...”, и каждая из них представляет собой пакет программ, только и ждущих выполнения головным мозгом.

Поделиться с друзьями: