Добавить в цитаты Настройки чтения

Страница 3 из 6

Одним из важнейших принципов, предложенных фон Нейманом, является принцип хранимой программы, который он сформулировал десятью годами ранее: программа хранится в той же памяти, что и данные. Это позволяет перепрограммировать вычислительную машину для выполнения различного рода задач, а также использовать самомодифицирующийся код, допускающий применение некоторых форм рекурсии. До того времени практически все вычислительные машины, включая «Колосс» Тьюринга, могли решать только те задачи, для решения которых были предназначены изначально. Хранимая программа придала вычислительной машине поистине универсальный характер. Так, идея Тьюринга об универсальной машине получила реальное воплощение.

Другой ключевой принцип фон Неймана заключается в том, что каждая инструкция должна содержать код арифметической или логической операции, которую необходимо выполнить, а также адрес операнда в памяти. Данная формула впервые была предложена фон Нейманом в рамках его публикации, посвященной совместному с Дж. Преспером Эккертом и Джоном Мокли проекту EDVAC. Сам EDVAC был запущен только в 1951 году; к тому времени уже существовали другие вычислительные машины с хранимыми программами, в частности Манчестерская малая экспериментальная машина, ENIAC,[2] EDVAC[3] и BINAC.[4] Все они были созданы под влиянием работ фон Неймана теми же конструкторами: Эккертом и Мокли. Фон Нейман принял непосредственное участие в проектировании ряда этих машин, включая более позднюю версию ENIAC, которая поддерживала хранимую программу.

Можно назвать несколько предшественников архитектуры фон Неймана, однако ни один из них не являлся истинной машиной фон Неймана, за одним неожиданным исключением. «Марк I» Говарда Эйкена, построенный в 1944 году, имел элемент программируемости, но не использовал хранимую программу. Эта вычислительная машина считывала инструкции с перфорированной бумажной ленты, а затем выполняла каждую команду отдельно. Поскольку ветвления в программе отсутствовали, ее нельзя рассматривать как пример архитектуры фон Неймана.

Еще до «Марка I», в 1941 году, Конрадом Цузе была создана вычислительная машина Z3. Она тоже считывала программу с ленты (точнее, с перфорированной кинопленки) и не могла совершать условные переходы. Интересно, что Цузе получил поддержку от немецкого Научно-исследовательского института авиации, который использовал Z3 для своих расчетов, однако его просьба о государственном финансировании замены реле на электронные трубки была отклонена. Нацисты считали, что машинные вычисления «не помогут выиграть войну».

Единственный истинный предшественник концепции фон Неймана появился на целых 100 лет раньше. В аналитической машине Чарльза Бэббиджа, описанной им впервые в 1837 году, идея хранимой программы реализована с помощью перфорированных карт, заимствованных из ткацкого станка Жаккара. Память с произвольным доступом была рассчитана на одну тысячу слов по 50 десятичных цифр каждое (около 21 килобайта). Инструкции не только содержали код операции и номер операнда, как и все современные языки программирования, но и включали ветвление и циклы. Это значит, что описанное Бэббиджем представляло собой настоящую машину фон Неймана. Впрочем, он явно не мог вообразить себе всех технических и организационных сложностей, связанных с проектированием такого рода автоматов, а потому его аналитическая машина так и осталась недостроенной. Неясно, знали ли пионеры информатики ХХ века, в том числе фон Нейман, о наработках Бэббиджа.

Хотя машина Бэббиджа так и не была опробована на практике, она тем не менее привела к возникновению такой области, как разработка программного обеспечения. Ада Байрон, графиня Лавлейс и единственный законнорожденный ребенок поэта лорда Байрона, написала программы для аналитической машины Бэббиджа (которые, между прочим, ей приходилось отлаживать в уме), а также перевела статью итальянского математика Луиджи Менабреа, снабдив ее собственными пространными комментариями. Она писала, что «аналитическая машина плетет алгебраические узоры, как жаккардовый ткацкий станок – цветы и листья». Вероятно, Ада Байрон первой предположила возможность создания искусственного интеллекта, но пришла к выводу, что аналитическая машина «не может породить нечто новое».

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

Впрочем, мы не должны забывать, что элементы машины фон Неймана постоянно обмениваются данными; если бы не теоремы Шеннона и методы, которые он разработал для передачи и хранения цифровой информации, ее бы не существовало.

Это подводит нас к четвертой важной идее – поискам способов наделить компьютеры интеллектом и опровергнуть заключение Ады Байрон о неспособности машины мыслить творчески. Алан Тьюринг первым сформулировал такую цель в своей статье 1950 года «Вычислительные машины и разум», которая включает ныне знаменитый тест Тьюринга. Последний сводится к следующему вопросу: достиг ли искусственный интеллект уровня человеческого интеллекта? В настоящей книге, после обсуждения предлагаемой им архитектуры, фон Нейман рассматривает человеческий мозг. В конце концов, этот орган – наилучший пример интеллектуальной системы, которым располагает человечество. Если мы сможем изучить его методы, мы сможем использовать биологические парадигмы для создания более умных машин. Эта книга представляет собой самое первое серьезное исследование человеческого мозга с точки зрения математика и пионера информационной эры. До фон Неймана информатика и нейронаука были подобны двум островам без моста между ними.

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





Фон Нейман начинает с описания сходств и различий между вычислительной машиной и человеческим мозгом. Учитывая, что писал он в 1955 и 1956 годах, рукопись удивительно точна, особенно в тех аспектах, которые предлагаются для сравнения. Фон Нейман отмечает, что выход нейронов носит цифровой характер: аксон либо порождает нервный импульс, либо нет. В то время это было далеко не очевидно: выходной сигнал вполне мог оказаться аналоговым. Так, дендриты, например, работают по аналоговому принципу. Фон Нейман описывает вычисления, которые производит нейрон, как взвешенную сумму входных сигналов с неким порогом. Данная модель работы нервной клетки легла в основу такого направления, как коннекционизм – построение искусственных систем (как с точки зрения технического, так и программного обеспечения) по принципу организации и функционирования живого нейрона. Первая такая коннекционистская система была создана в 1957 году Фрэнком Розенблаттом и представляла собой программное обеспечение для IBM-704 Авиационной лаборатории Корнелла.

Сегодня мы гораздо больше знаем о том, как именно нейроны сочетают входные сигналы, хотя основополагающая идея об аналоговом принципе работы дендритов сохраняется. С нашей стороны было бы неразумно ожидать, что фон Нейману, писавшему в 1957 году, будут известны точные механизмы обработки информации в нервной системе, однако ключевые моменты, на которых он строит свои выводы, остаются в силе.

На основании представления об универсальности вычислений фон Нейман приходит к заключению, что, несмотря на разницу в архитектуре и строительных блоках мозга и вычислительной машины, его машина тем не менее может имитировать работу мозга. Обратное, впрочем, неверно, поскольку мозг не является машиной фон Неймана и не имеет хранимой программы как таковой. Его алгоритм заложен в самой его структуре.

2

ENIAC (русск. ЭНИАК) – электронный числовой интегратор и вычислитель, сокр. от Electronic Numerical Integrator and Computer, первый электронный цифровой вычислитель общего назначения, который можно было перепрограммировать для решения широкого спектра задач.

3

EDVAC (русск. ЭДВАК) – сокр. от Electronic Discrete Variable Automatic Computer, одна из первых электронных вычислительных машин. В отличие от своего предшественника ЭНИАКа, это был компьютер на двоичной, а не десятичной основе.

4

BINAC (русск. БИНАК) – сокр. от англ. Binary Automatic Computer, двоичный автоматический компьютер, электронный компьютер первого поколения, построенный в США компанией Eckert-Mauchly Computer Corporation и запущенный в апреле или августе 1949 года. Формально считается первым коммерческим электронным компьютером.