Эволюция разума - Курцвейл Рэймонд. Страница 41

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

Идея об универсальности компьютерных вычислительных методов (идея о том, что компьютер общего назначения может использовать любой алгоритм) возникла одновременно с появлением первых настоящих компьютеров. Я назову четыре основных принципа, лежащих в основе универсальности и осуществимости компьютерных вычислений и их применимости к описанию нашего мышления. Эти принципы стоит упомянуть еще и по той причине, что человеческий мозг тоже их использует. Первый принцип заключается в способности передавать, запоминать и обрабатывать информацию. В 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, перемещение ленты на одну ячейку влево или вправо или остановка. Каждое состояние определяет следующее состояние машины.