Революция в зрении: Что, как и почему мы видим на самом деле - Марк Чангизи
Шрифт:
Интервал:
Закладка:
Рис. 16.
Пример того, что я называю "зрительной микросхемой”. Данный контур использует нашу зрительную систему для вычисления функции “исключающего ИЛИ” (XOR), то есть такой функции, которая дает на выходе 1 в том случае, если только один из входных сигналов является 1. Построена эта "микросхема” из неоднозначных зрительных стимулов, которые могут быть восприняты двумя четко различимыми способами: как повернутые к вам или от вас. В любой точке схемы значение сигнала, 0 или 1, зависит от вашего восприятия. Если вам кажется, что какая-то часть контура повернута “от вас”, значит, здесь значение сигнала о; если же она повернута "к вам”, значение сигнала 1. Вывод данных производится в нижней части: результат действия всей схемы в целом определяется вашим восприятием рисунка в данной точке. Моя “микросхема" состоит из “проволоки” (прямоугольный орнамент), инверторов (НЕ-шлюзов, в которых происходит переключение состояния контура из положения “к вам" в положение “от вас" или наоборот), И-шлюзов, где выход в нижней части воспринимается как положение “к вам" только в том случае, если оба верхних входа воспринимаются повернутыми “к вам”, ИЛИ-шлюза, выход из которого обычно воспринимается как положение “к вам", если хотя бы один из верхних входов воспринимается повернутым “к вам”. В приведенном примере входами данной “микросхемы” являются непрозрачные параллелепипеды в верхней части рисунка: их положение недвусмысленно, они всегда либо 1 — повернуты “к вам", либо о — “от вас”. Изображенный контур чаще дает на выходе 1 (“к вам"), чего и следует ожидать от микросхемы с такими входными данными. Для того чтобы зрительная система на самом деле могла производить подобные вычисления, вы должны следовать взглядом по микросхеме от входов до выхода, не смущаясь тем, что в некоторых точках контур будет “переключаться”, меняя конфигурацию, как в эшеровских фантазиях, из-за чего на выходе в принципе может получиться о. (На идею представленной здесь разновидности НЕ-шлюзов меня вдохновил Брам ван Хувельн.)
Рис. 16 помогает разъяснить суть стратегии, лежащей в основе зрительных вычислений. Возможности представленных на нем визуальных логических вентилей достаточно велики для того, чтобы построить из них в принципе любую цифровую схему (любую схему, входные и выходные данные в которой обозначаются нулями и единицами). Разумеется, чем больше будет схема, тем меньшего размера компоненты ей потребуются, чтобы она могла уместиться на одной картинке. И как сделать, чтобы зрительная система по-прежнему реагировала на изображение нужным нам образом, — это уже другая проблема, аналогичная трудностям, связанным с миниатюризацией электронных микросхем.
Однако прежде чем мы начнем бурно радоваться, предвкушая создание СБИС (сверхбольших интегральных схем), я должен сказать, что на данном этапе мои зрительные микросхемы вроде той, что вы только что видели, имеют серьезные недостатки. Во-первых, визуальные логические вентили не всегда дают на выходе верный сигнал. Например, мои И-шлюзы склонны выдавать восприятие, соответствующее логическому действию “И”, но это лишь тенденция, а не стопроцентно надежный физический результат, как в цифровых электронных микрочипах. Во-вторых, даже если входные данные недвусмысленно подсказывают какую-то одну интерпретацию, нашему восприятию все равно свойственна переменчивость, внезапные перескоки в эшеровском духе из одного состояния в другое. Поэтому на самом деле разглядеть весь свой “путь” по такому контуру может быть непросто, хотя мне и удалось сильно улучшить личные навыки в этом деле при помощи постоянных тренировок. Восприятие наклона рисунка на выходе не возникает само собой, без усилий, как мне изначально хотелось.
Выше я упоминал, что после первой неудачной попытки обмануть зрительную систему и заставить ее производить вычислительные операции по моему желанию, я сдался. “Придется ждать, когда кто-нибудь другой покорит компьютерный потенциал нашего зрения”, — думал я. И лишь спустя год, в 2004 году, изучая эволюцию зрительной системы, я начал осознавать, что на самом-то деле вычислительные способности зрительных отделов нашего мозга давно уже укрощены! Такая технология, как письменность, не только наделила нас способностью к спиритизму и сделала превосходными слушателями. Она позволила нам стать программируемыми — причем не в смысле промывания мозгов, как в фильме “Степфордские жены”. До возникновения письменности мы были, как и калькуляторы, способны производить лишь относительно небольшое количество наиболее важных вычислений. Лида Космидес и Джон Туби уже лет двадцать твердят нам, что мы созданы эволюцией для выполнения лишь тех задач, которые имели к нам непосредственное отношение (например, чтобы замечать, что соплеменник взял себе больше мяса, чем ему причиталось). Мы вовсе не стремились стать универсальными вычислительными машинами, вроде наших компьютеров, и еще менее стремились к тому, чтобы любой встреченный программист мог поставить нам новый “софт”.
Но несмотря на то, что эволюция не делала из нас персональные компьютеры, могло ли выйти, что мы все-таки стали универсальными вычислительными машинами, на которые можно установить любое программное обеспечение? Во-первых, давайте разберемся, что это вообще означает — запускать программы на самих себе. Это означает всего-навсего следовать сложному набору правил, операций, алгоритмов или рецептов. Строго говоря, любой рецепт — это тоже программа. Готовя яичницу, вы следуете простому набору правил, хранящемуся в памяти. Вы производите расчеты, результаты которых на каждом этапе говорят вам, что делать дальше с яйцом, сковородой и лопаткой. Но как рецепт может быть программой, да и вообще иметь отношение к вычислениям, если в нем нет цифр? Программисты действительно предпочитают говорить о вычислениях исключительно на языке цифр, но лишь потому, что цифрами можно обозначить все, что угодно. Например, число 3708 может быть цифровым кодом, расшифровывающимся как “яйцо”. Рецепт останется программой даже в том случае, если в выкладки добавятся овощи.
Раз следование рецепту может расцениваться как запуск программного обеспечения, значит, мы были способны использовать самих себя для выполнения программ задолго до изобретения письменности. Тем не менее, имелись суровые ограничения. Во-первых, все программное обеспечение заучивалось наизусть. Это делало его установку делом крайне трудоемким (загрузка данных требовала многократного повторения), и установить мы могли не больше, чем были в состоянии запомнить. Мы были вроде программируемых микрокалькуляторов, какими я пользовался в 8о-х — 90-х годах: в принципе программируемые, но на деле — сплошная морока из-за малого объема памяти. Во-вторых, хотя мы, люди, и можем запоминать огромное количество информации, если очень постараемся (кое-кто знает наизусть целые разделы Библии), масштабные установки данных обычно возможны благодаря тому, что запоминающий имеет перед глазами текст, который нужно запомнить. Без текста заучить сложные алгоритмы можно было, только услышав их от других. Но другие люди, даже те, кто избрал своей профессией преподавание, никогда не бывают так же терпеливы, как книги, и, весьма вероятно, ваш учитель отправится пить кофе еще до того, как вы закончите зубрить второй стих... И это не говоря о том, что для начала вашему учителю самому нужно было успешно перенять этот алгоритм от кого-либо. Люди могли передавать необходимые знания следующим поколениям, но обычно для этого было нужно тратить всю свою жизнь на общение с учителями.
С появлением письменности мы из еле программируемых калькуляторов превратились в полноценные компьютеры, способные к каким угодно вычислительным операциям. В первой половине XX века Алан Тьюринг разработал строгое определение алгоритма, и одним из ключевых условий для гипотетической “машины Тьюринга” было наличие доступа к ленте бесконечной длины, где информация могла бы записываться, храниться и куда впоследствии могла бы считываться с... ленты для записи и считывания. Лента была необходима машине Тьюринга, поскольку она обеспечивала фактически безграничное пространство памяти, в котором машина могла хранить все этапы вычислений. Лента была необходима и особой разновидности таких гипотетических машин — универсальной машине Тьюринга, поскольку та умела считывать записанные на ленту программы и, следовательно, выполнять любой алгоритм, какой вы ей ни подсунули бы.
С появлением письменности мы получили собственную “ленту” фактически бесконечной длины. Это позволило нам переносить, по ходу рассуждений, содержание своей кратковременной памяти на бумагу и, что сейчас для нас интереснее, впервые предоставило нам возможность выполнять какой угодно алгоритм, лишь бы он был записан. Вместо того чтобы хранить свод инструкций в голове, мы радикально упростили себе задачу: теперь нам достаточно помнить только один пункт — тот, который мы выполняем в настоящий момент, — чтобы выполнить его и благополучно забыть, перейдя к следующему пункту алгоритма, рецепта, инструкции и так далее. Ужасно сложные операции могут быть записаны и заполняют целые книги. Эти книги жанра “как сделать то-то и то-то” содержат не просто перечни фактов, но сложные наборы инструкций для выполнения сложных задач. В момент, когда я пишу эти строки, на сайте Amazon.com можно найти по меньшей мере 720 тысяч книг, название которых начинается со слов “Как сделать...”, и каждая из них представляет собой пакет программ, только и ждущих выполнения головным мозгом.