Kitabı oku: «Жизнь 3.0. Быть человеком в эпоху искусственного интеллекта», sayfa 6
Что такое память?
Когда мы говорим, что в атласе содержится информация о мире, мы имеем в виду, что между состоянием книги (в частности, между расположением некоторых молекул, придающих определенный цвет буквам и рисункам) и состоянием всего мира (в частности, расположением континентов) есть определенное отношение. Если бы эти континенты находились в других местах, то и молекулы краски должны были бы располагаться иначе. Нам, людям, дано пользоваться бесчисленными устройствами для хранения информации, от книг и мозгов до твердотельных накопителей, и все они обладают одним и тем же свойством: их состояние находится в некотором отношении к состоянию каких-то других вещей, важных для нас, – именно поэтому первые могут нас информировать о вторых.
Что же представляет собой фундаментальное свойство всех этих предметов, которое позволяет нам использовать их в качестве памяти, то есть накопителей информации? Ответ заключается в том, что каждому из них доступно большое количество устойчивых состояний, в которых они могут находиться очень долгое время – достаточно долгое, чтобы извлечь закодированную информацию, как она только потребуется. В качестве простого примера представьте себе холмистую местность с шестнадцатью отделенными одна от другой ложбинами и небольшой мячик, как показано на рис. 2.3. Когда мячик скатывается с холма в какую-то из ложбин, это будет одна из тех шестнадцати, и коль скоро он может там находиться долго, его нахождение там можно использовать для запоминания одного из шестнадцати чисел (от 1 до 16).
Это запоминающее устройство довольно надежно, так как даже если его будут сотрясать какие-то внешние силы, мячик, вероятно, останется в той ложбине, куда вы его поместили изначально, и вы всегда сможете сказать, какое из чисел было там сохранено. Причина стабильности такой памяти заключается в том, что для извлечения мячика из заключающей его ложбины требуется больше энергии, чем сообщаемая ему случайными сотрясениями. У той же идеи могут быть и более общие реализации, чем просто катающийся мячик: энергия сложной физической системы может определяться целым рядом ее механических, химических, электрических и магнитных свойств; и до тех пор, пока энергия воздействия на систему недостаточна для изменения ее состояния, которое она должна запомнить, состояние будет устойчивым. Этим объясняется, почему у твердых тел много устойчивых состояний, а у жидких и газообразных – нет: если вы выгравируете чье-то имя на золотом кольце, то и по прошествии многих лет оно будет там, так как для изменения формы золота требуется значительная энергия, но если вы выгравируете его же на поверхности пруда, информация пропадет за секунду, потому что поверхность воды изменяется практически без энергетических затрат.
Рис. 2.3
Роль запоминающего устройства хорошо выполняют те физические объекты, у которых много стабильных устойчивых состояний. Шарик слева может закодировать четыре бита информации, соответствующих одной из шестнадцати (24 = 16) впадин рельефа. Также четыре бита могут хранить вместе четыре шарика справа – по одному биту на каждого.
У простейшего запоминающего устройства всего лишь два устойчивых состояния (см. рис. 2.3) Поэтому мы можем считать, что оно запоминает один бинарный знак (сокращенно “бит”) – например ноль или единицу. Информация, сохраненная более сложным устройством, может быть представлена словно бы сохраненной во множестве бит: например, четыре бита, взятые вместе, как показано на рис. 2.3 (справа), могут находиться в одном из 2 × 2 × 2 × 2 = 16 различных состояний – 0000, 0001, 0010, …, 1111, так что у них всех вместе тот же самый объем памяти, что и у системы с 16 различными состояниями (слева). Поэтому мы можем думать о битах как об атомах информации, мельчайших ее частичках, которые не могут быть разделены дальше, но которые могут объединяться, представляя любое ее количество. Например, я только что напечатал слово “слово”, и мой ноутбук тут же превратил его в своей памяти в последовательность из пяти трехзначных чисел: 241 235 238 226 238, представив каждое из них в виде 8 бит (каждой букве нижнего регистра присваивается число 223 плюс его порядковый номер в алфавите). Как только я нажимаю на клавишу “с” своего ноутбука, эта буква тут же появляется на мониторе, и ее изображение тоже состоит из бит, причем 32 бита определяют цвет каждого из миллиона пикселей монитора.
Поскольку двухуровневые системы легче и в производстве, и в управлении, большинство современных компьютеров хранят информацию в битах, хотя существует обширнейшее многообразие в способах физического воплощения каждого из них. На DVD каждому биту соответствует наличие или отсутствие микроскопической ямки в определенном месте его пластиковой поверхности. На жестком диске биту соответствует одна из двух возможных поляризаций магнитного момента в данной точке. В оперативной памяти моего ноутбука биту соответствуют определенные конфигурации некоторых электронов, от которых зависит, заряжено или нет устройство под названием микроконденсатор. Некоторые биты очень хорошо подходят для того, чтобы пересылать их с места на место, иногда даже со скоростью света: например, в оптоволокне при передаче вашего электронного сообщения биту соответствует ослабление или усиление лазерного луча в определенный момент.
Инженеры предпочитают кодировать биты в системах, обеспечивающих не только устойчивость и простоту считывания (как на золотом кольце), но и простоту записи: изменение состояния вашего жесткого диска требует значительно меньших затрат энергии, чем гравирование по золоту. Они также предпочитают системы, с которыми легко работать и которые достаточно дешевы при массовом производстве. Но помимо этого их совсем не интересует, каким именно физическим объектом бит был представлен – как, впрочем, в большинстве случае и вас, потому что это и вообще неважно! Если вы пересылаете электронной почтой документ своему другу, чтобы он вывел его на печать, то информация последовательно быстро копируется с магнитных диполей жесткого диска в электрические заряды оперативной памяти, оттуда в радиоволны вашей Wi-Fi-сети, потом в переменное напряжение в цепях вашего роутера, лазерные импульсы в оптоволокне и, наконец, передается молекулам на поверхности бумаги. Иными словами, информация живет собственную жизнь, независимо от своего физического субстрата! В самом деле, нас-то обычно интересует только этот, не зависящий от субстрата, аспект информации: если ваш друг позвонит спросить, что это за документы вы ему послали, он, скорее всего, не будет интересоваться перепадами напряжения и смещениями молекул. А для нас это первый звоночек: как такая неосязаемая вещь, как разум, может оказаться воплощенной в сугубо осязаемой физической материи, а скоро мы увидим, что идея независимости от субстрата гораздо глубже, включая в себя кроме информации также вычисления и обучение.
Из-за этой самой независимости от субстрата изобретательные инженеры то и дело заменяют запоминающие устройства в наших компьютерах все более совершенными, основанными на новых технологиях, но это совсем не заставляет нас менять что-либо в программном обеспечении компьютеров, их “софте”. Как видно на рис. 2.4, результаты потрясающие: на протяжении последних шести десятилетий примерно каждые два года компьютерная память становится вдвое дешевле. Жесткие диски стали дешевле более чем в 100 миллионов раз, а разновидности памяти с быстрым доступом, применяемые не столько просто для хранения, сколько для выполнения вычислений, стали сейчас дешевле аж в 10 триллионов раз! Если бы вам удавалось получить такую скидку в 99,99999999999 % на каждую свою покупку, то вы смогли бы купить всю недвижимость Нью-Йорка менее чем за 10 центов, а все золото, когда-либо добытое на Земле, чуть более чем за доллар.
Рис. 2.4
На протяжении шести последних десятилетий компьютерная память дешевела вдвое примерно каждые два года, чему соответствует снижение цены в тысячу раз на каждые двадцать лет. Один байт равен восьми битам. Данные предоставлены Джоном Мак-Каллемом (см. http://www.jcmit.net/memoryprice.htm, проверено 13.05.2018)
У каждого из нас есть свои личные воспоминания, так или иначе связанные с этим впечатляющим улучшением в технологиях хранения информации. Я хорошо помню, как, учась в старшей школе, подрабатывал в кондитерской, чтобы накопить на компьютер со всего лишь 16 килобайтами памяти. Когда мы с моим одноклассником Магнусом Бодином написали и успешно продали текстовый редактор для этого компьютера, нам пришлось уложить его в ультракороткий программный код, чтобы оставалось хоть какое-то место для самого текста, который можно было бы редактировать. Привыкнув к гибкой дискете на 70 килобайт, я был потрясен появлением 3,5-дюймовой дискеты меньшего размера, на которой умещалось целых 1,44 мегабайта – на нее влезала целая книга, а потом и моим первым жестким диском на 100 мегабайт, которых сегодня едва хватило бы на загрузку одной песни. Кажется совершенно невозможным совместить эти юношеские воспоминания с другими, более поздними: много лет спустя я покупал за 100 долларов жесткий диск в 300 000 раз большей вместительности.
Было ли что-нибудь в этих запоминающих устройствах такое, что эволюционировало, а не конструировалось бы людьми? Биологи до сих пор не знают, какого рода отпечатки производили первые формы жизни, чтобы передавать их от поколения к поколению, но скорее всего они были очень невелики. Исследовательская группа Филиппа Холлигера из Кембриджского университета сумела синтезировать молекулу РНК, кодирующей 412 бит генетической информации, которая была в состоянии создавать нити РНК длиннее себя самой; это открытие поддерживало гипотезу “мира РНК”, состоящую в том, что ранняя земная жизнь – это были короткие самовоспроизводящиеся РНК-цепочки. Известное к настоящему времени запоминающее устройство с минимальной памятью, возникшее в результате эволюции в дикой природе, – это геном бактерии Candidatus Carsonella ruddii, сохраняющий до 40 килобайт информации, в то время как наш человеческий геном хранит около 1,6 гигабайт, что примерно соответствует одному загружаемому из интернета кинофильму. Как уже говорилось в предыдущей главе, наш мозг сохраняет гораздо больше информации, чем наш геном: на уровне примерно 10 гигабайт электрически (что определяется тем, какие из 100 миллиардов нейронов “светятся” в тот или иной момент времени) или 100 терабайт биохимически (что определяется тем, насколько сильно различные нейроны сцеплены в синапсах). Сравнение этих чисел с памятью машин показывает, что лучшие компьютеры мира сейчас превосходят по способности хранить информацию любые биологические системы при быстро падающей стоимости, которая на 2016 год составляла всего несколько тысяч долларов.
Память вашего мозга работает совсем не так, как память компьютера, не только в отношении того, как она устроена, но и в отношении того, как она используется. Вы получаете информацию из компьютера или с жесткого диска, указывая, где она хранится, а информацию в мозгу вы получаете, указав, что примерно вам нужно. Каждая группа бит в памяти вашего компьютера характеризуется своим численным адресом, и чтобы получить доступ к той или иной информации, вам надо указать компьютеру адрес, по которому искать, как если бы я сказал вам: “Пойдите к моему книжному шкафу, возьмите там пятую книгу справа на верхней полке и прочитайте, что написано на странице 314”. Напротив, у себя в мозгу вы находите ее примерно так же, как с помощью поисковой машины: вы говорите, что ищете, или называете что-то, имеющее некоторое отношение к тому, что вы ищете, и оно всплывает на поверхность. Если я скажу вам: “Быть или не быть” – или если я забью эти слова в поисковую строку Google, результатом в обоих случаях скорее всего будет: “Вот в чем вопрос”. Причем результат будет достигнут, даже если я спрошу о другой части той же цитаты или перепутаю в ней слова. Такая память называется автоассоциативной, потому что поиск информации в ней происходит по ассоциации, а не по адресу.
В знаменитой статье 1982 года физик Джон Хопфилд показал, как сеть взаимосвязанных нейронов может превратиться в автоассоциативную память. Мне очень нравится его идея, я нахожу ее красивой и пригодной для описания любой физической системы с многочисленными устойчивыми состояниями. Например, представьте себе шарик на поверхности с двумя лунками – вроде того, как это устроено в однобитной системе на рис. 2.3, и пусть форма поверхности такова, что х-координаты минимумов потенциальной энергии, где шарик приходит в состоянии покоя, соответственно равны x = √2 ≈ 1,41421 и x = π ≈ 3,14159. Если вы помните только, что “пи” – это где-то около 3, то, поместив шарик в точку х=3, вы увидите, как он сам скатится в точку минимума энергии, где координата х окажется точно равной “пи”. Хопфилд понял, что сложно устроенная сеть нейронов создает подобный же ландшафт с многочисленными энергетическими минимумами, в которые может прийти система, а со временем было доказано, что в каждую тысячу нейронов можно втиснуть 138 различных воспоминаний без особой путаницы между ними.
Что такое вычисление?
Итак, мы видели, как физический объект может хранить информацию. Но как он может вычислять?
Вычисление – это переход памяти из одного состояния в другое. Иными словами, вычисление использует информацию, чтобы преобразовывать ее, применяя к ней то, что математики называют функцией. Я представляю себе функцию этакой мясорубкой для информации, как показано на рис. 2.5: вы закладываете в нее сверху исходную информацию, поворачиваете ручку, и оттуда вылезает переработанная информация. Вы можете повторять раз за разом одно и то же действие, получая при этом все время что-то разное. Но сама по себе обработка информации полностью детерминирована в том смысле, что если у вас на входе все время одно и то же, то и на выходе вы будете получать все время один и тот же результат.
В этом и заключается идея функции, и хотя такое определение кажется слишком простым, оно до невероятия хорошо работает. Некоторые функции совсем тривиальные, вроде той, что зовется NOT: у нее на входе один бит, и она заменяет его другим, превращая ноль в единицу, а единицу в ноль. Функции, которые мы изучаем в школе, обычно соответствуют кнопочкам на карманном калькуляторе, на входе при этом может быть одно число или несколько, но на выходе всегда одно: например, это может быть x2, то есть при вводе числа выводится результат его умножения на себя. Но есть и исключительно сложные функции. Например, если вы располагаете функцией, у которой на входе произвольное положение фигур на шахматной доске, а на выходе – наилучший следующий ход, то у вас есть шанс на победу в компьютерном чемпионате мира по шахматам. Если вы располагаете функцией, у которой на входе состояние всех финансовых рынков мира, а на выходе – список акций, которые следует покупать, то вы скоро сильно разбогатеете. Многие специалисты по искусственному интеллекту видят свою задачу исключительно в том, чтобы придумать, как вычислять некоторые функции для любых начальных условий. Например, цель машинного перевода заключается в том, чтобы, взяв последовательность бит, представляющую исходный текст на одном языке, преобразовать ее в другую последовательность бит, представляющую тот же текст, но на другом языке, а цель создания систем автоматизированного распознавания изображений заключается в том, чтобы преобразовывать последовательность бит, представляющую какую-то картинку на входе, в последовательность бит, представляющую собой текст, который эту картинку описывает (рис. 2.5).
Рис. 2.5
Каждое вычисление использует информацию на входе, чтобы преобразовывать ее, выполняя над ней то, что математики называют функцией. У функции f (слева) на входе последовательность бит, представляющих число; в результате вычислений она дает на выходе его квадрат. У функции g (в центре) на входе последовательность бит, представляющих позицию на шахматной доске; в результате вычислений она дает на выходе лучший ход для белых. У функции h (справа) на входе последовательность бит, представляющих изображение, в результате вычислений она дает на выходе соответствующую текстовую подпись.
Другими словами, если вы можете вычислять достаточно сложные функции, то вы сумеете построить машину, которая будет весьма “умной” и сможет достигать сложных целей. Таким образом, нам удается внести несколько большую ясность в вопрос о том, как может материя быть разумной, а именно: как могут фрагменты бездумной материи вычислять сложные функции.
Речь теперь идет не о неизменности надписи на поверхности золотого кольца и не о других статических запоминающих устройствах – интересующее нас состояние должно быть динамическим, оно должно меняться весьма сложным (и, хорошо бы, управляемым/программируемым) образом, переходя от настоящего к будущему. Расположение атомов должно быть менее упорядоченным, чем в твердом и жестком теле, где ничего интересного не происходит, но и не таким хаотичным, как в жидкости или в газе. Говоря точнее, мы бы хотели, чтобы наша система восприняла начальные условия задачи как свое исходное состояние, а потом, предоставленная самой себе, как-то эволюционировала, и ее конечное состояние мы бы могли рассматривать как решение данной ей задачи. В таком случае мы можем сказать, что система вычисляет нашу функцию.
В качестве первого примера этой идеи давайте построим из нашей неразумной материи очень простую (но от этого не менее важную) систему, вычисляющую функцию NAND12 и потому получившую название гейт NAND13. У нее на входе два бита, а на выходе один: это 0, если оба бита на входе 1, во всех остальных случая – это 1. Если в одну сеть с батареей и электромагнитом мы вставим два замыкающих сеть ключа, то электромагнит сработает тогда, и только тогда, когда оба ключа замкнуты (находятся в состоянии “on”). Давайте поместим под ним еще один ключ, как показано на рис. 2.6, так что магнит, срабатывая, всякий раз будет размыкать его. Если мы интерпретируем первые два ключа как два бита на входе, а третий – как бит на выходе, то мы и получим то, что назвали гейтом NAND: третий ключ будет разомкнут только тогда, когда первые два замкнуты. Есть очень много более практичных способов сделать гейт NAND – например, с помощью транзисторов, как показано на рис. 2.6. В нынешних компьютерах гейты NAND чаще всего встроены в микросхемы или иные компоненты, выращенные из кристаллов кремния.
Рис. 2.6
Логический вентиль (гейт) NAND по заданным на входе двум битам А и В вычисляет третий бит С в соответствии с правилом: C = 0, если A = B = 1, и C = 0 в любом другом случае, – и посылает его на выход. В качестве гейта NAND можно использовать много различных физических устройств. В электрической цепи на средней части рисунка ключи А и В соответствуют битам на входе со значениями 0 при размыкании и 1 при замыкании. Когда они оба замкнуты, идущий через электромагнит ток размыкает ключ С. На схеме в правой части рисунка битам соответствуют значения потенциалов – 0, когда потенциал равен нулю, и 1, когда потенциал равен 5 вольтам. При подаче напряжения на базы обоих транзисторов (А и В) потенциал в точке С падает практически до нуля.
В информатике есть замечательная теорема, которая утверждает, что гейт NAND универсален: то есть вычисление любой вполне определенной функции14 может быть осуществлено гейтами NAND, соединенными друг с другом. Так что если у вас есть достаточное количество гейтов NAND, вы можете собрать из них устройство, вычисляющее все что угодно! На случай, если у вас возникло желание посмотреть, как это работает, у меня есть схема (рис. 2.7), на которой вы увидите, как умножаются числа при помощи одних только гейтов NAND.
Исследователи из MIT Норман Марголус и Томмазо Тоффоли придумали слово “computronium” (компьютрониум), обозначающее любую субстанцию, которая может выполнять любые вычисления. Мы только что убедились, что создать компьютрониум не так уж и сложно: эта субстанция всего лишь должна быть способна соединять гейты NAND друг с другом любым желаемым способом. Разумеется, существуют и мириады других компьютрониумов. Например, еще один легко создать из предыдущего, заменив все гейты NAND на NOR: у него на выходе будет 1 только тогда, когда на оба входа подается 0. В следующем разделе мы обсудим нейронные сети, которые также способны выполнять произвольные вычисления, то есть и они ведут себя как компьютрониум. Ученый и предприниматель Стивен Вольфрам показал, что то же может быть сказано о простых устройствах, получивших название клеточных автоматов, которые периодически подправляют каждый бит в зависимости от того, в каком состоянии находятся биты по соседству. А еще в 1936 году Алан Тьюринг доказал в своей ставшей ключевой статье, что простая вычислительная машина (известная сейчас как “универсальный компьютер Тьюринга”), способная оперировать некоторыми символами на бумажной ленте по некоторым правилам, также способна выполнять любые вычисления. Одним словом, материя не просто обладает способностью к любым вполне определенным вычислениям, но и может производить их самыми разнообразными способами.
Рис. 2.7
Любое вполне определенное вычисление может быть выполнено при помощи комбинации гейтов одного-единственного типа NAND. Например, у модулей, выполняющих сложение и умножение и представленных на рисунке выше, на вход подается по два бинарных числа, каждое из которых представлено 4 битами, а на выходе получается бинарное число, представленное 5 битами в первом случае, и бинарное число, представленное 8 битами во втором. Менее сложные модули NOT, AND, XOR и “+” (сложение трех одиночных битов в бинарное число, представляемое 2 битами) комбинируются из гейтов NAND. Полное понимание этой схемы исключительно сложно и абсолютно не нужно для дальнейшего чтения книги; я поставил ее здесь исключительно для иллюстрации идеи универсальности, ну и потакая своему внутреннему гику.
Как уже говорилось, Тьюринг в своей памятной статье 1936 года доказал также кое-что значительно более важное: если только компьютер обладает способностью производить некий весьма незначительный минимум операций, он универсален – в том смысле, что при достаточном количестве ресурсов он может сделать все то, на что способен любой другой компьютер. Он доказал универсальность “компьютера Тьюринга”, а приближая его к физическому миру, мы только что показали, что семейство универсальных компьютеров включает в себя такие разные объекты, как сеть гейтов NAND или сеть соприкасающихся нейронов. Более того, Стивен Вольфрам заявил, что большая часть нетривиальных физических систем, от меняющейся погоды до мыслящего мозга, становятся универсальным компьютером, если позволить им как угодно менять свои размеры и не ограничивать их во времени.
Этот самый факт – а именно, что одно и то же вычисление может быть произведено на любом универсальном компьютере, как раз и означает, что вычисление не зависит от субстрата в том же самом отношении, в каком от него не зависит информация: каков бы физический субстрат ни был, оно живет там свою жизнь. Если вы – суперумный персонаж какой-то компьютерной игры будущего, обладающий сознанием, вам никогда не удастся узнать, породила ли вас рабочая станция под Windows, MacBook под MacOS или смартфон с Android, потому что вы субстрат-независимы. У вас не окажется и никаких способов определить, какого рода транзисторы используются микропроцессором этого компьютера.
Поначалу эта базовая идея субстрат-независимости привлекла меня тем, что у нее есть большое количество красивых иллюстраций в физике. Например, волны: у них есть разнообразные свойства – скорость, длина волны, частота, и физики могут решать связывающие их уравнения, совершенно не думая о том, как именно субстрат тут волнуется. Если вы слышите что-то, то вы регистрируете звуковые волны, распространяющиеся в той смеси газов, которую мы называем воздухом, и мы можем рассчитать относительно этих волн все что угодно – что их интенсивность уменьшается как квадрат расстояния, или как они проходят через открытую дверь или отражаются от стен, производя эхо, – ничего не зная о составе воздуха. На самом деле нам даже не обязательно знать, что он состоит из молекул: мы можем отвлечься ото всех подробностей относительно кислорода, азота или углекислого газа, потому что единственная характеристика этого субстрата, которая имеет значение и которая входит в знаменитое волновое уравнение, – это скорость звука, которую нам несложно померить и которая в данном случае будет равна примерно 300 метрам в секунду. Я рассказывал об этом волновом уравнении своим студентам на лекциях прошлой весной и говорил им, в частности, о том, что его открыли и им стали успешно пользоваться еще задолго до того, как физики установили, что молекулы и атомы вообще существуют!
Этот пример с волновым уравнением позволяет сделать три вывода. Во-первых, независимость от субстрата еще не означает, что без субстрата можно обойтись, но только лишь – что многие подробности его устройства не важны. Вы не услышите никакого звука в безвоздушном пространстве, но если замените воздух каким-нибудь другим газом, разницы не заметите. Точно так же вы не сможете производить вычисления без материи, но любая материя сгодится, если только ее можно будет организовать в гейты NAND, в нейронную сеть или в какие-то другие исходные блоки универсального компьютера. Во-вторых, субстрат-независимые явления живут свою жизнь, каков бы субстрат ни был. Волна пробегает по поверхности озера, хотя ни одна из молекул содержащейся в нем воды не делает этого, они только ходят вверх и вниз наподобие футбольных фанатов, устраивающих “волну” на трибуне стадиона. В-третьих, часто нас интересует именно не зависящий от субстрата аспект явления: серфера обычно заботят высота волны и ее положение, а никак не ее молекулярный состав. Мы видели, что это так для информации, и это так для вычислений: если два программиста вместе ловят глюк в написанном ими коде, они вряд ли будут обсуждать транзисторы.
Мы приблизились к возможному ответу на наш исходный вопрос о том, как грубая физическая материя может породить нечто представляющееся настолько эфемерным, абстрактным и бестелесным, как разум: он кажется нам таким бестелесным из-за своей субстрат-независимости, из-за того, что живет своей жизнью, которая не зависит от физических деталей его устройства и не отражает их. Говоря коротко, вычисление – это определенная фигура пространственно-временного упорядочения атомов, и важны здесь не сами атомы, а именно эта фигура! Материя не важна.
Другими словами, “хард” здесь материя, а фигура – это “софт”. Субстрат-независимость вычисления означает, что AI возможен: разум не требует ни плоти, ни крови, ни атомов углерода.
Благодаря этой субстрат-независимости изобретательные инженеры непрерывно сменяют одну технологию внутри компьютера другой, радикально улучшенной, но не требовавшей замены “софта”. Результат во всех отношениях нагляден в истории запоминающих устройств. Как показывает рис. 2.8, стоимость вычисления сокращается вдвое примерно каждые два года, и этот тренд сохраняется уже более века, снизив стоимость компьютера в миллион миллионов миллионов (в 1018) раз со времен младенчества моей бабушки. Если бы все сейчас стало в миллион миллионов миллионов раз дешевле, то сотой части цента хватило бы, чтобы скупить все товары и услуги, произведенные или оказанные на Земле в тот год. Такое сильное снижение цены отчасти объясняет, почему сейчас вычисления проникают у нас повсюду, переместившись из отдельно стоящих зданий, занятых вычисляющими устройствами, в наши дома, автомобили и карманы – и даже вдруг оказываясь в самых неожиданных местах, например в кроссовках.
Рис. 2.8
С 1900 года вычисления становились вдвое дешевле примерно каждые пару лет. График показывает, какую вычислительную мощность, измеряемую в количестве операций над числами с плавающей запятой в секунду (FLOPS), можно было купить на тысячу долларов5. Частные случаи вычислений, которые соответствуют одной операции над числами с плавающей запятой, соответствуют 105 элементарным логическим операциям вроде обращения бита (замены 0 на 1, и наоборот) или одного срабатывания гейта NAND.
Почему развитие наших технологий позволяет им удваивать производительность с такой регулярной периодичностью, обнаруживая то, что математики называют экспоненциальным ростом? Почему это сказывается не только на миниатюризации транзисторов (тренд, известный как закон Мура), но, и даже в большей степени, на развитии вычислений в целом (рис. 2.8), памяти (рис. 2.4), на море других технологий, от секвенирования генома до томографии головного мозга? Рэй Курцвейл называет это явление регулярного удвоения “законом ускоряющегося возврата”.
В известных мне примерах регулярного удвоения в природных явлениях обнаруживается та же самая фундаментальная причина, и в том, что нечто подобное происходит в технике, нет ничего исключительного: и тут следующий шаг создается предыдущим. Например, вам самим приходилось переживать экспоненциальный рост сразу после того, как вас зачали: каждая из ваших клеточек, грубо говоря, ежедневно делится на две, из-за чего их общее количество возрастает день за днем в пропорции 1, 2, 4, 8, 16 и так далее. В соответствии с наиболее распространенной теорией нашего космического происхождения, известной как теория инфляции, наша Вселенная в своем младенчестве росла по тому же экспоненциальному закону, что и вы сами, удваивая свой размер за равные промежутки времени до тех пор, пока из крупинки меньше любого атома не превратилась в пространство, включающее все когда-либо виденные нами галактики. И опять причина этого заключалась в том, что каждый шаг, удваивающий ее размер, служил основанием для совершения следующего. Теперь по тому же закону стала развиваться и технология: как только предыдущая технология становится вдвое мощнее, ее можно использовать для создания новой технологии, которая также окажется вдвое мощнее предыдущей, запуская механизм повторяющихся удвоений в духе закона Мура.
Но с той же регулярностью, как сами удвоения, высказываются опасения, что удвоения подходят к концу. Да, действие закона Мура рано или поздно прекратится: у миниатюризации транзистора есть физический предел. Но некоторые люди думают, что закон Мура синонимичен регулярному удвоению нашей технической мощи вообще. В противоположность им Рэй Курцвейл указывает, что закон Мура – это проявление не первой, а пятой технологической парадигмы, переносящей экспоненциальный рост в сферу вычислительных технологий, как показано на рис. 2.8: как только предыдущая технология перестает совершенствоваться, мы заменяем ее лучшей. Когда мы не можем больше уменьшать вакуумные колбы, мы заменяем их полупроводниковыми транзисторами, а потом и интегральными схемами, где электроны движутся в двух измерениях. Когда и эта технология достигнет своего предела, мы уже представляем, куда двинуться дальше: например, создавать трехмерные интегральные цепи или делать ставку на что-то отличное от электронов.