Уже с момента появления первых компьютеров в середине XX века начались дебаты не только относительно предела их возможностей, но и относительно того, можно ли рассматривать человеческий мозг в качестве формы компьютера. Общепринятое мнение по последнему вопросу изменилось кардинально от идеи о том, что эти два обрабатывающих информацию «устройства» принципиально не различаются, к идее об их принципиальном различии. Итак, является ли наш мозг компьютером?
Когда в 1940-х гг. компьютеры впервые привлекли к себе внимание общественности, их тут же стали воспринимать в качестве мыслящих машин. Первый компьютер ENIAC, о создании которого было объявлено в 1946 г., пресса назвала «гигантским мозгом». По мере роста доступности компьютеров в последующие десятилетия их постоянно сравнивали с мозгом, который может делать то, чего не может обыкновенный биологический мозг.
Компьютерные программы быстро научили машины действовать в соответствии с этими рекламными заявлениями. «Общая программа для решения задач», созданная в 1959 г. Гербертом Саймоном, Дж. Клиффом Шоу и Алленом Ньюэллом в Университете Карнеги — Меллон, смогла доказать теорему, с которой не справились Бертран Рассел и Альфред Норт Уайтхед в своей знаменитой работе 1913 г. Principia Mathematica. В последующие десятилетия стало ясно, что компьютеры значительно превосходят невооруженный человеческий мозг по способности решать математические задачи, диагностировать заболевания и играть в шахматы, однако робота трудно научить завязывать шнурки или понимать разговорную человеческую речь, которую запросто понимает пятилетний ребенок. С такими задачами компьютеры начинают справляться только в наши дни. Забавно, что эволюция компьютерного разума происходит в обратном направлении в сравнении с созреванием человеческого разума.
Реклама 1957 года, отражающая популярное видение компьютера как гигантского мозга.
Вопрос о том, являются ли человеческий мозг и компьютер эквивалентными на каком-то уровне, до сих пор остается открытым. Во введении я писал о том, что в Интернете можно найти миллионы ссылок, относящихся к сложности человеческого мозга. Аналогичным образом, если в Google запустить поиск на тему «мозг — не компьютер», вы тоже обнаружите миллионы ссылок. На мой взгляд, подобные формулировки аналогичны формулировке «яблочное пюре — не яблоко». Технически утверждение верно, но из яблока можно сделать яблочное пюре. Возможно, правильнее сказать: «Компьютеры — не текстовые процессоры». Правда, что компьютеры и текстовые процессоры существуют на разном понятийном уровне, но компьютер может стать текстовым процессором, если обладает соответствующей программой. Аналогичным образом, компьютер может стать мозгом, если снабжен программами мозга. Именно это и пытаются сделать такие ученые, как я.
Таким образом, вопрос заключается в следующем: сможем ли мы найти алгоритм, который превратит компьютер в эквивалент человеческого мозга? В конце концов, ввиду своей универсальности (ограниченной только мощностью) компьютер может следовать любому созданному нами алгоритму. Напротив, человеческий мозг действует лишь по специфическим алгоритмам. Эти методы разумны, так как обеспечивают значительную пластичность и возможность реструктуризации внутренних связей на основе пережитого опыта, но все эти функции можно имитировать с помощью компьютерных программ.
Идея об универсальности компьютерных вычислительных методов (идея о том, что компьютер общего назначения может использовать любой алгоритм) возникла одновременно с появлением первых настоящих компьютеров. Я назову четыре основных принципа, лежащих в основе универсальности и осуществимости компьютерных вычислений и их применимости к описанию нашего мышления. Эти принципы стоит упомянуть еще и по той причине, что человеческий мозг тоже их использует. Первый принцип заключается в способности передавать, запоминать и обрабатывать информацию. В 1940-х гг. под словом «компьютер» люди понимали аналоговую машину, в которой числовые данные представлялись в виде аналоговых физических переменных, таких как напряжение, а специализированные элементы могли выполнять арифметические действия, такие как сложение или умножение. Однако серьезным ограничением аналоговых компьютеров является недостаточная точность. Данные могут быть представлены с точностью около одного процента, а по мере увеличения числа арифметических операций точность данных еще больше снижается. При проведении большого числа вычислений результат становится столь неточным, что вообще теряет смысл.
Всякий, кто помнит попытки записывать музыку с помощью аналоговых устройств, знает об этом эффекте. Первая копия была значительно хуже оригинала по уровню шума (вспомним, что «шум» представляет собой случайные несовпадения). Копия первой копии была еще хуже, а десятая копия представляла собой один только шум. Считалось, что зарождавшийся мир цифровых компьютеров будет поражен той же болезнью. Это беспокойство понятно, если речь идет о передаче цифровой информации по каналу. Идеальных каналов не бывает, каждый характеризуется определенным уровнем ошибки. Допустим, у нас есть канал, который правильно проводит каждый байт информации с вероятностью 0,9. Если я передаю сообщение размером один бит, вероятность точной передачи по этому каналу составляет 0,9. Если объем информации составляет два бита, точность передачи равняется 0,92 = 0,81. А если мне нужно передать один байт (8 бит)? Вероятность безошибочной передачи этой информации меньше 50 % (0,43, если быть точным). Вероятность безошибочной передачи пяти байт информации составляет примерно 1 %.
Очевидный путь решения проблемы состоит в повышении качества каналов. Допустим, при прохождении по каналу миллиона бит информации возникает лишь одна ошибка. Но если я пересылаю файл, содержащий полмиллиона байт (это размер небольшой программы или базы данных), вероятность правильной передачи будет менее 2 %, даже при таком высоком качестве канала. Учитывая, что ошибка всего в одном байте информации может полностью обесценить компьютерную программу или любые другие данные, ситуация является неприемлемой. Таким образом, вне зависимости от качества канала, поскольку вероятность ошибки передачи данных быстро растет с увеличением объема передаваемой информации, это ограничение кажется непреодолимым.
Создатели аналоговых компьютеров подошли к решению проблемы путем постепенного снижения требований (то есть позволяли решать только такие задачи, в которых допустима небольшая погрешность), и, если ограничиваться определенными вычислениями, эти компьютеры могли быть полезными. С другой стороны, цифровые компьютеры нуждаются в постоянном обмене информацией — не только между компьютерами, но и внутри самого компьютера. Это обмен информацией между модулем памяти и центральным процессором. Внутри центрального процессора осуществляется связь между регистрами и вычислительными регистрами. И даже в вычислительных регистрах происходит обмен между битовыми регистрами. Таким образом, обмен информацией идет буквально на всех уровнях. Если учесть, что количество ошибок быстро возрастает с усилением информационного обмена и что ошибка в одном байте информации может нарушить весь процесс, цифровые вычислительные методы, как казалось, были обречены на провал.
Таково оставалось общественное мнение до тех пор, пока американский математик Клод Шеннон (1916–2001) не показал, каким образом можно достичь достаточно точной передачи информации с помощью самых ненадежных каналов передачи. В своей всемирно известной статье «Математическая теория связи» (A Mathematical Theory of Communication), опубликованной в журнале Bell System Technical Journal в июле и октябре 1948 г., и, в частности, в теореме о пропускной способности канала Шеннон постулировал, что с помощью канала с любым уровнем шума (ниже 50 %, поскольку такой канал передает только шум) можно передавать сообщение с любой точностью. Другими словами, число ошибок может составлять один бит из n битов даже при сколь угодно большом значении n. Например, в предельном случае, если у вас есть канал, безошибочно передающий информацию лишь 51 % времени (то есть бит правильной информации передается лишь немного чаще, чем бит неправильной информации), вы тем не менее можете передавать сообщения таким образом, что ошибка будет лишь в одном бите из миллиона или в одном бите из триллиона или из триллиона триллионов бит.
Как же это возможно? Ответ заключается в избыточности информации. Сейчас это кажется очевидным, но тогда дело обстояло иначе. Если, к примеру, я передаю каждый бит информации три раза, надежность результата станет значительно выше. Если этого недостаточно, нужно просто повышать степень избыточности до тех пор, пока не будет достигнут приемлемый результат. Повтор информации — простейший путь получения желаемой точности передачи информации по каналу с высоким уровнем шума, но не самый эффективный. В статье Шеннона, с которой началось развитие теории коммуникации, были предложены оптимальные методы определения ошибок и коррекционные коды, позволяющие достичь любой точности передачи информации с помощью любого направленного канала связи.
Читатели старшего поколения наверняка помнят телефонные модемы, проводившие информацию по шумным аналоговым телефонным линиям. Такая связь сопровождалась шипением, свистом и многими другими помехами, но при этом позволяла передавать цифровые сообщения с очень высокой точностью — в соответствии с теоремой Шеннона о зашумленном канале. Та же проблема и такое же решение существуют для цифровой памяти. Почему, по вашему мнению, программные диски, CD и DVD продолжают работать даже при появлении царапин или после падения на пол? Еще раз скажем спасибо Шеннону.
Вычислительный процесс состоит из трех элементов: коммуникации (которая, как я подчеркнул, осуществляется как внутри компьютера, так и между компьютерами), памяти и логических вентилей (производящих арифметические и логические действия). Точность логических вентилей тоже можно сделать сколь угодно высокой с помощью определения ошибок и коррекционных кодов. Благодаря теореме и теории Шеннона мы можем без помех управлять большими массивами сложных цифровых данных и алгоритмов. Важно отметить, что головной мозг тоже использует принцип Шеннона, хотя эволюция человеческого мозга произошла задолго до появления мозга самого Шеннона! Как мы видели, большинство образов или идей (идея — тоже образ) хранится в мозге в избыточном количестве. Основной смысл избыточности образов заключается в преодолении ненадежности цепей нейронов.
Второй важный принцип в основе теории информации я уже упоминал — это универсальность вычислительных методов. В 1936 г. Алан Тьюринг описал «машину Тьюринга», которая представляет собой не реальный механизм, а еще один мысленный эксперимент. Этот абстрактный компьютер состоит из бесконечно длинной ленты памяти, в ячейках которой располагаются цифры 1 или 0. Эта информация служит для машины входным сигналом, и машина за один раз прочитывает информацию в одной ячейке. Кроме того, машина снабжена таблицей правил (в частности, подчиняется принципу хранимой программы), представленных в виде пронумерованных утверждений. Каждое правило определяет одно действие, если в текущей ячейке расположена цифра 0, и другое, если в текущей ячейке цифра 1. К возможным действиям относится написание на ленте 0 или 1, перемещение ленты на одну ячейку влево или вправо или остановка. Каждое состояние определяет следующее состояние машины.
Блок-диаграмма машины Тьюринга, состоящей из считывающей и записывающей головки и внутренней программы, осуществляющей переходы между состояниями.
Входной сигнал задается информацией на ленте. Программа работает, а когда алгоритм выполнен, машина останавливается и выходные данные оказываются отпечатанными на ленте. Заметим, что, хотя теоретически лента имеет бесконечную длину, любая реальная программа, не попадающая в бесконечный цикл, использует лишь ограниченную часть ленты, так что, если мы возьмем ленту конечного размера, машина по-прежнему сможет решать некий набор задач.
Схема машины Тьюринга кажется простой — так сделал ее создатель. Он хотел, чтобы его машина была максимально простой (но не проще, если перефразировать Эйнштейна). В результате работ Тьюринга и его бывшего учителя Алонзо Черча был сформулирован так называемый тезис Черча — Тьюринга: если некая функция не может быть вычислена машиной Тьюринга, она не может быть вычислена никакой другой машиной, подчиняющейся законам природы. Хотя машина Тьюринга выполняет лишь несколько команд и обрабатывает за один раз только один бит информации, она может решить любую задачу, которую способен решить любой другой компьютер. Иными словами, любая машина, эквивалентная машине Тьюринга, может вычислить любой алгоритм (решить любую задачу, которую мы в состоянии сформулировать).
В «строгой» формулировке тезиса Черча — Тьюринга постулируется эквивалентность между тем, что и как думает человек, и тем, что может рассчитать машина. Основная идея заключается в том, что человеческий мозг подчиняется законам природы и поэтому его способность обрабатывать информацию не может превышать аналогичную способность машины (в том числе машины Тьюринга).
Безусловно, статья Тьюринга 1936 г. заложила теоретические основы информатики, но важно отметить, что на работу Тьюринга большое влияние оказала лекция венгерско-американского математика Джона фон Неймана (1903–1957), которую он прочел в Кембридже в 1935 г. Тьюринг использовал в своей машине концепцию фон Неймана о хранимой программе. Верно и то, что на фон Неймана оказала влияние статья Тьюринга, где элегантным образом изложены принципы информатики; в конце 1930-х и в начале 1940-х гг. фон Нейман рекомендовал прочесть эту статью всем своим коллегам.
В той же статье Тьюринг поведал о другом неожиданном открытии, касающемся неразрешимых задач. Неразрешимые задачи — это те, что хорошо описываются единственным решением (которое, как можно показать, существует), но (как тоже можно показать) не могут быть решены никакой машиной Тьюринга (то есть вообще никакой машиной). Представление о существовании таких задач в корне противоречит сформировавшейся к началу XX в. догме о том, что все проблемы, которые можно сформулировать, являются решаемыми. Тьюринг показал, что число неразрешимых задач не меньше числа разрешимых задач. В 1931 г. к такому же выводу пришел Курт Гедель, сформулировавший «теорему о неполноте». Такая странная ситуация: мы можем сформулировать задачу, можем доказать, что у нее существует единственное решение, но при этом знаем, что никогда не сможем это решение найти.
Тьюринг показал, что вычислительные машины действуют на основании очень простого механизма. Поскольку машина Тьюринга (и, следовательно, любой компьютер) может определять свою дальнейшую функцию на основе полученных ею ранее результатов, она способна принимать решения и создавать иерархические информационные структуры любой сложности.
В 1939 г. Тьюринг сконструировал электронный калькулятор Bombe, который помогал дешифровать сообщения, составленные немцами на кодирующей машине Enigma. К 1943 г. группа инженеров при участии Тьюринга закончила создание машины Colossus, которую иногда называют первым в истории компьютером. Это позволило союзникам расшифровывать сообщения, созданные более сложной версией Enigma. Машины Bombe и Colossus были сконструированы для решения единственной задачи и не могли перепрограммироваться. Но свою функцию они выполняли блестяще. Считается, что отчасти благодаря им союзники могли предвидеть тактику немцев на протяжении всей войны, а Королевские военно-воздушные силы Великобритании в Битве за Британию смогли одолеть втрое превосходящие их по численности силы Люфтваффе.
Именно на этой основе Джон фон Нейман создал компьютер современной архитектуры, отражающей третью из четырех важнейших идей теории информации. На протяжении прошедших с тех пор почти семидесяти лет основное ядро этой машины, названной «машиной фон Неймана», практически не изменилось — как в микроконтроллере в вашей стиральной машине, так и в самом крупном суперкомпьютере. В статье, опубликованной 30 июня 1945 г. и озаглавленной «Первый проект отчета о EDVAC», фон Нейман изложил основные идеи, которые с тех пор направляли развитие информатики. В машине фон Неймана присутствует центральный процессор, где выполняются арифметические и логические операции, модуль памяти, в котором хранятся программы и данные, массовая память, программный счетчик и входные/выходные каналы. Хотя статья предназначалась для внутреннего пользования в рамках выполнения проекта, для создателей компьютеров она стала Библией. Вот так иногда обычный рутинный отчет может изменить мир.
Машина Тьюринга не была предназначена для практических целей. Теоремы Тьюринга не имели отношения к эффективности решения задач, а скорее описывали спектр задач, которые теоретически могут быть решены с помощью компьютера. Напротив, цель фон Неймана заключалась в создании концепции реального компьютера. Его модель заменила однобитную систему Тьюринга многобитной (обычно кратную восьми битам) системой. Машина Тьюринга имеет последовательную ленту памяти, так что программы затрачивают очень большое время на перемещение ленты вперед и назад для записи и извлечения промежуточных результатов. Напротив, в системе фон Неймана доступ к памяти осуществляется произвольным образом, что позволяет немедленно извлекать любые нужные данные.
Одной из ключевых идей фон Неймана является концепция хранимой программы, которую он развил за десять лет до создания компьютера. Суть концепции заключается в том, что программа хранится в том же модуле памяти с произвольным доступом, что и данные (а часто даже в том же блоке памяти). Это позволяет перепрограммировать компьютер для решения разных задач и создавать самомодифицирующийся код (в случае записывающих накопителей), что обеспечивает возможность рекурсии. До того времени практически все компьютеры, включая Colossus, создавались для решения конкретных задач. Концепция хранимой программы позволила компьютеру стать поистине универсальной машиной, соответствующей представлению Тьюринга об универсальности машинных вычислений.
Еще одно важное свойство машины фон Неймана заключается в том, что в каждой инструкции содержится операционный код, определяющий арифметическую или логическую операцию и адрес операнда в памяти компьютера.
Концепция фон Неймана об архитектуре компьютера отразилась в проекте EDVAC, над которым он работал совместно с Преспером Дж. Эккертом и Джоном Моучли. Компьютер EDVAC начал функционировать только в 1951 г., когда уже существовали другие компьютеры с хранимой программой, такие как Манчестерская малая экспериментальная машина, ENIAC, EDSAC и BINAC, причем все они были созданы под влиянием статьи фон Неймана и при участии Эккерта и Моучли. Фон Нейман также был причастен к появлению некоторых из этих машин, включая последнюю версию ENIAC, где использовался принцип хранимой программы.
У компьютера с архитектурой фон Неймана имелось несколько предшественников, но ни один из них — за одним неожиданным исключением — нельзя назвать истинной машиной фон Неймана. В 1944 г. Говард Эйкен выпустил Mark I, который можно было в какой-то степени перепрограммировать, но он не использовал хранимой программы. Машина считывала инструкции с перфокарты и немедленно их выполняла. В машине также не было предусмотрено условных переходов.
В 1941 г. немецкий ученый Конрад Цузе (1910–1995) создал компьютер Z-3. Он тоже считывал программу с ленты (в данном случае закодированную на пленке) и тоже не выполнял условных переходов. Интересно, что Цузе получил финансовую поддержку от Немецкого института самолетостроения, который использовал этот компьютер для изучения флаттера крыла самолета. Однако предложение Цузе о финансировании замены реле радиолампами не было поддержано нацистским правительством, которое считало развитие компьютерной технологии «не имеющим военного значения». Это, как мне кажется, в определенной степени повлияло на исход войны.
На самом деле у фон Неймана был один гениальный предшественник, причем жил он на сто лет раньше! Английский математик и изобретатель Чарльз Бэббидж (1791–1871) в 1837 г. описал свою аналитическую машину, основанную на тех же принципах, что и компьютер фон Неймана, и использовавшую хранимую программу, нанесенную на перфокарты жаккардовых ткацких машин. Память машины с произвольным доступом содержала 1000 слов по 50 десятичных знаков в каждом (что эквивалентно примерно 21 килобайту). Каждая инструкция содержала код операции и номер операнда — точно так же, как в современных компьютерных языках. Система не использовала условных переходов и циклов, так что это была настоящая машина фон Неймана. Полностью механическая, она, по-видимому, превзошла и дизайнерские, и организаторские возможности самого Бэббиджа. Он создал части машины, но так и не запустил ее.
Точно не известно, знали ли пионеры компьютеростроения XX в., включая фон Неймана, о работах Бэббиджа.
Однако создание машины Бэббиджа положило начало развитию программирования. Английская писательница Ада Байрон (1815–1852), графиня Лавлейс, единственный законный ребенок поэта лорда Байрона, стала первым в мире программистом. Она писала программы для аналитической машины Бэббиджа и отлаживала их в уме (поскольку компьютер так никогда и не заработал). Теперь программисты называют эту практику table checking. Она перевела статью итальянского математика Луиджи Менабреа об аналитической машине, добавив от себя существенные замечания и заметив, что «аналитическая машина плетет алгебраические рисунки, как ткацкий жаккардовый станок плетет цветы и листья». Возможно, она первой упомянула о возможности создания искусственного интеллекта, но сделала вывод, что аналитическая машина «сама не способна что-либо придумать».
Идеи Бэббиджа кажутся поразительными, если учесть, в какую эпоху он жил и работал. Однако к середине XX в. эти идеи были практически забыты (и вновь открыты лишь позднее). Именно фон Нейман придумал и сформулировал ключевые принципы действия компьютера в его современном виде, и недаром машину фон Неймана продолжают считать основной моделью вычислительной машины. Однако не будем забывать, что машина фон Неймана постоянно осуществляет обмен данными между отдельными модулями и внутри этих модулей, так что она не могла быть создана без теорем Шеннона и тех методов, которые он предложил для надежной передачи и хранения цифровой информации.
Все сказанное подводит нас к четвертой важной идее, которая преодолевает выводы Ады Байрон о неспособности компьютера к творческому мышлению и позволяет найти ключевые алгоритмы, используемые мозгом, чтобы потом применить их для превращения компьютера в мозг. Алан Тьюринг сформулировал эту задачу в статье «Вычислительные машины и разум», опубликованную в 1950 г., в которой содержится описание теперь широко известного теста Тьюринга, позволяющего определить близость ИИ к человеческому интеллекту.
В 1956 г. фон Нейман начал готовить серию лекций для престижных Силлимановских чтений в Йельском университете. Ученый уже был болен раком и не смог ни прочесть свои лекции, ни даже закончить рукопись, на основе которой создавались лекции. Тем не менее этот незаконченный труд является блестящим предсказанием того, что лично я воспринимаю как самый трудный и важный проект в истории человечества. Уже после смерти ученого, в 1958 г., рукопись была опубликована под названием «Компьютер и мозг». Так вышло, что последний труд одного из самых блестящих математиков прошлого столетия и одного из основоположников компьютерной технологии оказался посвящен анализу мышления. Это было первое серьезное исследование человеческого мозга с точки зрения математика и специалиста в области компьютеров. До фон Неймана компьютерные технологии и нейробиология представляли собой два отдельных острова, между которыми не существовало никакого моста.
Фон Нейман начинает повествование, описывая сходство и различие между компьютером и человеческим мозгом. Учитывая, в какую эпоху создавался этот труд, он представляется удивительно точным. Ученый отмечает, что выходной сигнал нейрона цифровой — аксон либо возбуждается, либо остается в покое. В то время было далеко не очевидно, что обработка выходного сигнала может происходить аналоговым путем. Обработка сигнала в дендритах, ведущих к нейрону, и в теле нейрона аналоговая, и фон Нейман описал эту ситуацию с помощью взвешенной суммы входных сигналов с пороговым значением.
Эта модель функционирования нейронов привела к развитию коннекционизма и к использованию данного принципа для создания как аппаратурного оформления, так и компьютерных программ. (Как я рассказывал в предыдущей главе, первая такая система, а именно программа для IBM 704, была создана Фрэнком Розенблаттом из Корнельского университета в 1957 г., сразу после того, как стала доступна рукопись лекций фон Неймана.) Теперь у нас есть более сложные модели, описывающие сочетания входных сигналов нейронов, но общая идея об аналоговой обработке сигналов с помощью изменения концентрации нейромедиаторов по-прежнему верна.
На основе концепции универсальности компьютерных вычислений фон Нейман пришел к выводу, что даже при кажущемся радикальном различии архитектуры и структурных единиц головного мозга и компьютера с помощью машины фон Неймана мы можем симулировать происходящие в головном мозге процессы. Обратный постулат, однако, не является справедливым, поскольку головной мозг не является машиной фон Неймана и не имеет хранимой программы (хотя в голове мы можем симулировать действие очень простой машины Тьюринга). Алгоритмы или методы функционирования мозга определены его структурой. Фон Нейман пришел к справедливому заключению, что нейроны могут выучивать соответствующие образы на основании входных сигналов. Однако во времена фон Неймана не было известно, что обучение также происходит путем создания и разрушения контактов между нейронами.
Фон Нейман также указал, что скорость обработки информации нейронами очень низкая — порядка сотни вычислений в секунду, однако мозг компенсирует это тем, что одновременно осуществляет обработку информации во множестве нейронов. Это еще одно очевидное, но очень важное открытие. Фон Нейман утверждал, что все 1010 нейронов мозга (эта оценка также достаточно точна: по сегодняшним представлениям, в головном мозге содержится от 1010 до 1011 нейронов) обрабатывают сигналы в одно и то же время. Более того, все контакты (в среднем от 103 до 104 на каждый нейрон) обсчитываются одновременно.
Учитывая примитивный уровень развития нейробиологии того времени, оценки и описания функции нейронов, сделанные фон Нейманом, удивительно точны. Однако я не могу согласиться с одним аспектом его работы, а именно с представлением об объеме памяти мозга. Он считал, что мозг запоминает каждый сигнал на всю жизнь. Среднюю продолжительность жизни человека фон Нейман оценивал в 60 лет, что составляет примерно 2 х 109 секунды. Если каждый нейрон за одну секунду получает примерно 14 сигналов (что на самом деле на три порядка ниже истинной величины), а всего в головном мозге содержится 1010 нейронов, выходит, что объем памяти мозга составляет около 1020 бит. Как я писал выше, мы запоминаем лишь небольшую часть наших мыслей и опыта, но даже эти воспоминания хранятся не как побитовая информация низкого уровня сложности (как в видео), а скорее в виде последовательности образов более высокого порядка.
По мере того как фон Нейман описывает каждый механизм в функции головного мозга, он одновременно демонстрирует, как современный компьютер мог бы осуществить ту же самую функцию, несмотря на кажущееся различие между мозгом и компьютером. Аналоговые механизмы действия мозга можно моделировать с помощью цифровых механизмов, поскольку цифровые вычисления способны моделировать аналоговые значения с любой степенью точности (а точность передачи аналоговой информации в мозге достаточно низкая). Можно также имитировать массивный параллелизм функции мозга, учитывая значительное превосходство компьютеров по скорости серийных вычислений (со времен фон Неймана это превосходство еще более усилилось). Кроме того, мы можем осуществлять параллельную обработку сигналов в компьютерах с помощью параллельно функционирующих машин фон Неймана — именно так действуют современные суперкомпьютеры.
Учитывая способность людей быстро принимать решения при столь низкой скорости работы нейронов, фон Нейман пришел к выводу, что функции головного мозга не могут задействовать длинные последовательные алгоритмы. Когда третий бейс-мен получает мяч и решает бросить его на первую, а не на вторую базу, он принимает это решение за какую-то долю секунды — за это время каждый нейрон едва успевает осуществить несколько циклов возбуждения. Фон Нейман приходит к логичному выводу, что замечательная способность мозга связана с тем, что все 100 млрд нейронов могут обрабатывать информацию одновременно. Как я отмечал выше, зрительная кора делает сложные выводы всего за три или четыре цикла возбуждения нейронов.
Именно значительная пластичность мозга позволяет нам обучаться. Однако компьютер обладает гораздо большей пластичностью — его методы можно полностью изменить путем смены программного обеспечения. Таким образом, компьютер может имитировать мозг, а вот обратное утверждение неверно.
Когда фон Нейман сравнивал возможности массированной параллельной активности мозга с немногочисленными компьютерами того времени, казалось очевидным, что мозг отличается гораздо большей памятью и скоростью. Сегодня уже сконструирован первый суперкомпьютер, по самым консервативным оценкам, удовлетворяющий тем функциональным требованиям, которые нужны для моделирования функций человеческого головного мозга (около 1016 операций в секунду). (По моему мнению, компьютеры такой мощности в начале 2020-х гг. будут стоить около 1000 долларов.) Что касается объема памяти, мы продвинулись еще дальше. Труд фон Неймана появился в самом начале компьютерной эры, но ученый был уверен в том, что в какой-то момент мы сможем создавать компьютеры и компьютерные программы, способные имитировать человеческий мозг; именно поэтому он и готовил свои лекции.
Фон Нейман был глубоко убежден в ускорении прогресса и в его значительном влиянии на жизнь людей в будущем. Через год после смерти фон Неймана, в 1957 г., его коллега математик Стэн Юлам цитировал слова фон Неймана, сказавшего в начале 1950-х гг., что «любое ускорение технологического прогресса и изменения образа жизни людей создает впечатление приближения некой важнейшей сингулярности в истории человеческой расы, за пределами которой человеческая деятельность в том виде, какой мы знаем ее сегодня, больше не может продолжаться». Это первый известный случай использования слова «сингулярность» для описания технологического прогресса человечества.
Важнейшая догадка фон Неймана заключалась в обнаружении сходства между компьютером и мозгом. Заметим, что частью человеческого интеллекта является эмоциональный интеллект. Если догадка фон Неймана верна и если согласиться с моим утверждением, что небиологическая система, удовлетворительно воспроизводящая интеллект (эмоциональный и другой) живого человека, обладает сознанием (см. следующую главу), придется сделать вывод, что между компьютером (с правильным программным обеспечением) и сознательным мышлением имеется явное сходство. Итак, был ли прав фон Нейман?
Большинство современных компьютеров — полностью цифровые машины, тогда как человеческий мозг использует как цифровые, так и аналоговые методы. Однако аналоговые методы легко воспроизводятся в цифровом варианте с любой степенью точности. Американский специалист в области компьютерных технологий Карвер Мид (род. в 1934 г.) показал, что аналоговые методы мозга можно напрямую воспроизвести в кремниевом варианте, и реализовал это в виде так называемых нейроморфных чипов. Мид продемонстрировал, что данный подход может быть в тысячи раз более эффективным, чем цифровая имитация аналоговых методов. Если речь идет о кодировании избыточных алгоритмов новой коры, возможно, имеет смысл воспользоваться идеей Мида. Исследовательская группа IBM под руководством Дхармендра Модхи применяет чипы, имитирующие нейроны и их контакты, в том числе их способность образовывать новые контакты. Один из чипов, названный SyNAPSE, напрямую модулирует 256 нейронов и примерно четверть миллиона синаптических связей. Цель проекта заключается в симуляции новой коры, состоящей из 10 млрд нейронов и 100 трлн контактов (что эквивалентно человеческому мозгу), которая использует всего один киловатт энергии.
Более пятидесяти лет назад фон Нейман заметил, что процессы в головном мозге происходят чрезвычайно медленно, но отличаются массированной параллельностью. Современные цифровые схемы действуют как минимум в 10 млн раз быстрее, чем электрохимические переключатели мозга. Напротив, все 300 млн распознающих модулей коры мозга действуют одновременно, и квадрильон контактов между нейронами может активизироваться в одно и то же время. Следовательно, для создания компьютеров, которые могли бы адекватно имитировать человеческий мозг, необходимы соответствующий объем памяти и производительность вычислений. Нет нужды напрямую копировать архитектуру мозга — это очень неэффективный и негибкий метод.
Какими же должны быть соответствующие компьютеры? Многие исследовательские проекты направлены на моделирование иерархического обучения и распознавания образов, происходящих в новой коре. Я сам занимаюсь подобными исследованиями с привлечением иерархических скрытых моделей Маркова. По моим оценкам, для моделирования одного цикла распознавания в одном распознающем модуле биологической новой коры требуется около 3000 вычислений. Большинство симуляций построено на значительно меньшем числе вычислений. Если принять, что головной мозг осуществляет около 102 (100) циклов распознавания в секунду, получаем общее число 3 х 105 (300 тыс.) вычислений в секунду для одного распознающего модуля. Если же умножить это число на общее число распознающих модулей (3 х 108 (300 млн, по моим оценкам)), получаем 1014 (100 трлн) вычислений в секунду. Примерно такое же значение я привожу в книге «Сингулярность уже близка». По моим прогнозам, для функциональной симуляции головного мозга требуется скорость от 1014 до 1016 калькуляций в секунду. По оценкам Ганса Моравека, основанным на экстраполяции данных для начальной обработки зрительных сигналов во всем головном мозге, это значение составляет 1014 калькуляций в секунду, что совпадает с моими расчетами.
Стандартные современные машины могут работать со скоростью до 1010 калькуляций в секунду, однако с помощью ресурсов облака их производительность можно существенно увеличить. Самый быстрый суперкомпьютер, японский компьютер «К», уже достиг скорости 1016 калькуляций в секунду. Учитывая массированную избыточность алгоритмов новой коры, хороших результатов можно добиться с помощью нейроморфных чипов, как в технологии SvNAPSE.
Что касается требований к памяти, нам нужно около 30 бит (примерно 4 байта) для каждого контакта с одним из 300 млн распознающих модулей. Если к каждому распознающему модулю подходит в среднем восемь сигналов, получаем 32 байта на распознающий модуль. Если учесть, что вес каждого входного сигнала составляет один байт, получаем 40 байт. Добавим 32 байта для нисходящих контактов — и получим 72 байта. Замечу, что наличие восходящих и нисходящих разветвлений приводит к тому, что число сигналов намного больше восьми, даже если учесть, что многие распознающие модули пользуются общей сильно разветвленной системой связей. Например, в распознавании буквы «p» могут участвовать сотни распознающих модулей. Это означает, что тысячи распознающих модулей следующего уровня участвуют в распознавании слов и фраз, содержащих букву «p». Однако каждый модуль, ответственный за распознавание «p», не повторяет это древо связей, питающих все уровни распознавания слов и фраз с «p», у всех этих модулей древо связей общее.
Сказанное выше верно и для нисходящих сигналов: модуль, ответственный за распознавание слова apple, сообщит всей тысяче стоящих ниже модулей, ответственных за распознавание «e», что ожидается образ «e», если уже распознаны «a», «p», «p» и «l». Это древо связей не повторяется для каждого модуля, распознающего слово или фразу, который хочет информировать модули нижестоящего уровня, что ожидается образ «e». Это древо общее. По этой причине среднее оценочное значение в восемь восходящих и восемь нисходящих сигналов для каждого распознающего модуля является вполне разумным. Но даже если мы повысим это значение, это не сильно изменит конечный результат.
Итак, с учетом 3 х 108 (300 млн) распознающих модулей и 72 байт памяти для каждого, получаем, что общий объем памяти должен составлять около 2 х 1010 (20 млрд) байт. А это весьма скромное значение. Такой памятью обладают обычные современные компьютеры.
Все эти расчеты мы выполнили для приблизительной оценки параметров. Учитывая, что цифровые схемы примерно в 10 млн раз быстрее сетей нейронов в биологической коре, нам не нужно воспроизводить массированный параллелизм человеческого мозга — весьма умеренного параллельного процессинга (по сравнению с триллионным параллелизмом в головном мозге) будет вполне достаточно. Таким образом, необходимые вычислительные параметры вполне достижимы. Способность нейронов головного мозга к переподключению (помним, что дендриты постоянно создают новые синапсы) тоже можно имитировать с помощью соответствующего программного обеспечения, поскольку компьютерные программы гораздо пластичнее биологических систем, которые, как мы видели, впечатляют, но имеют пределы.
Избыточность мозга, необходимая для получения инвариантных результатов, безусловно, может быть воспроизведена в компьютерном варианте. Математические принципы оптимизации подобных самоорганизующихся иерархических систем обучения вполне понятны. Организация мозга далеко не оптимальна. Но она и не должна быть оптимальной — она должна быть достаточно хорошей, чтобы обеспечить возможность создавать инструменты, компенсирующие ее собственные ограничения.
Еще одно ограничение новой коры заключается в том, что в ней нет механизма, устраняющего или хотя бы оценивающего противоречащие друг другу данные; отчасти это объясняет весьма распространенную нелогичность человеческих рассуждений. Для решения данной проблемы у нас есть весьма слабая способность, называемая критическим мышлением, но люди ею пользуются гораздо реже, чем следовало бы. В компьютерной новой коре можно предусмотреть процесс, выявляющий противоречащие данные для их последующего пересмотра.
Важно отметить, что конструирование целого отдела мозга осуществить проще, чем конструирование одного нейрона. Как уже было сказано, на более высоком уровне иерархии модели часто упрощаются (тут просматривается аналогия с компьютером). Чтобы понять, как работает транзистор, нужно в деталях понимать физику полупроводниковых материалов, а функции одного реального транзистора описываются сложными уравнениями. Цифровая схема, осуществляющая перемножение двух чисел, содержит сотни транзисторов, но для создания модели такой схемы хватит одной или двух формул. Целый компьютер, состоящий из миллиардов транзисторов, можно смоделировать с помощью набора инструкций и описания регистра на нескольких страницах текста с привлечением нескольких формул. Программы для операционных систем, компиляторов языков или ассемблеров достаточно сложны, однако моделирование частной программы (например, программы распознавания языка на основе скрытых иерархических моделей Маркова) тоже сводится к нескольким страницам формул. И нигде в подобных программах вы не встретите детального описания физических свойств полупроводников или даже компьютерной архитектуры.
Аналогичный принцип верен и для моделирования мозга. Один конкретный распознающий модуль новой коры, который детектирует определенные инвариантные зрительные образы (например, лица), осуществляет фильтрацию звуковых частот (ограничивая входной сигнал определенным диапазоном частот) или оценивает временную близость двух событий, можно описать с помощью гораздо меньшего числа специфических деталей, чем реальные физические и химические взаимодействия, контролирующие функции нейромедиаторов, ионных каналов и других элементов нейронов, участвующих в передаче нервного импульса. Хотя все эти детали необходимо тщательно предусмотреть до перехода на следующий уровень сложности, при моделировании операционных принципов головного мозга многое можно упростить.