Игра разума. Как Клод Шеннон изобрел информационный век - Сони Джимми. Страница 42
Для начала зададимся вопросом, с какой скоростью мы можем отправить сообщение? Шеннон показал, что это зависит от того, сколько избыточности мы можем выжать из него. Наиболее действенное сообщение фактически будет напоминать цепочку произвольного текста: каждый новый символ будет максимально информативен, а значит, максимально непредсказуем. Ни один символ не появится бесцельно. Конечно, в сообщениях, которые мы посылаем друг другу – либо с помощью телеграфной связи, либо посредством телевещания. – символы постоянно растрачиваются впустую. Поэтому скорость общения по выбранному каналу связи зависит от того, как мы кодируем сообщения, насколько компактно «упаковываем» их перед «отгрузкой».
Это было одно из преимуществ физического представления об информации – бит стал в один ряд с метрами и граммами.
Первая теорема Шеннона доказывает, что существует точка максимальной компактности для каждого исходящего сообщения. Мы достигаем пределов связи, когда каждый символ сообщает нам что-то новое. И так как теперь у нас есть четкое мерило информации – бит, – мы также знаем, как сильно можно ужать сообщение, прежде чем оно достигнет точки идеальной сингулярности. Это было одно из преимуществ физического представления об информации – бит стал в один ряд с метрами и граммами. Это было доказательством того, что эффективность нашей связи зависит не только от свойств нашего способа общения, от толщины провода или частотного диапазона радиосигнала, но от чего-то более измеряемого, что присутствует в самом сообщении.
Оставалось только проделать работу по отправке или кодированию сообщения: сконструировать надежные системы, которые бы отсекли ненужную избыточность наших сообщений в источнике отправки и воссоздали их в точке получения. Шеннон вместе с инженером МТИ Робертом Фано сделал первые важные шаги в этом направлении, а в одной из научных статей, которую он написал спустя время после того, как была опубликована его знаменитая работа, Шеннон объяснил, как будет работать код, сокращающий избыточность. Все зависит, утверждал он, от статистической природы сообщений: от вероятности, с которой белый пиксель оказывается рядом с другим белым пикселем на изображении, или от частоты появления букв, диграмм и триграмм, которые делают генерированные в произвольном порядке отрывки все более похожими на английский язык. Представьте, что в нашем языке всего четыре буквы: А, В, С и D. Представьте, что этот язык, как любой другой, со временем начинает обрастать шаблонами. Со временем половина букв оказывается буквой А, четверть букв оказывается буквой В, а буквы С и D составляют каждая по одной восьмой. Если бы мы захотели отправить сообщение на этом языке по радиоволнам в виде символов 0 и 1, какой код был бы самым лучшим?
Возможно, мы сделаем выбор в пользу очевидного решения: каждая буква получает одинаковое количество битов. Для четырехбуквенного языка нам потребуются два бита для каждой буквы:
А = 00
В = 01
С= 10
D = 11
Но мы можем поступить лучше. На самом деле, когда скорость передачи сообщения становится таким ценным ресурсом (вспомните все то, что вы не можете сделать с модемом коммутируемой линии передачи), мы вынуждены поступить лучше. И если мы будем держать в уме статистику этого конкретного языка, то это получится. Нужно всего лишь использовать минимальное количество битов для самых распространенных букв и применять лишь самые громоздкие цепочки для самых редких букв. Другими словами, менее «неожиданная» буква кодируется наименьшим количеством битов. Представьте, что Шеннон предложил нам использовать другой код:
А = О
В = 10
С = 110
D = 111 [7].
Чтобы доказать, что этот код более эффективен, мы можем увеличить количество битов для каждой буквы, полагаясь на тот случай, что появится каждая буква и это даст нам среднюю величину битов для каждой буквы:
(1/2) 1 + (1/4) • 2 + (1/8) • 3 + (1/8) • 3 = 1.75.
Сообщение, отправленное с этим вторым кодом, менее избыточно: вместо того чтобы использовать 2 бита на каждую букву, мы можем выразить идентичную идею более компактно – 1,75. Оказывается, что 1,75 – особое число в этом четырехбуквенном языке – это также количество информации в битах, заключенное в любой букве. И здесь мы достигаем предела. Для данного языка невозможно создать более эффективный код. Он максимально наполнен информацией: ни один знак не потрачен впустую. Первая теорема Шеннона показывает, что более сложные источники (аудио, видео, ТВ, веб-страницы) могут быть эффективно сжаты подобным – если не более сложным – образом.
Коды данного типа – впервые использованные Шенноном и Фано, а затем усовершенствованные студентом Фано, Дэвидом Хаффманом, и десятками других ученых, – являются столь значимыми, потому что существенно расширяют диапазон ценных с точки зрения информативности сообщений. Если бы мы не смогли сжать наши сообщения, то единственный аудиофайл загружался бы у нас несколько часов, поток веб-видео был бы невозможно медленным, а многочасовые просмотры телевизора потребовали бы многочисленных полок с пленками, а не маленькой коробки с дисками. Благодаря тому, что мы можем сжать наши сообщения, видеофайлы становятся компактнее в двадцать раз. Весь этот процесс связи – быстрее, дешевле и объемнее – основан на осознании Шенноном нашей предсказуемости. Вся эта предсказуемость должна быть убрана; со времен Шеннона наши сигналы проходят в «облегченном виде».
Шеннон дал всем последующим поколениям инженеров ориентир, а также возможность понять, когда они бессмысленно теряют время.
Но при этом они подвержены риску. Каждый сигнал подвержен действию помех. Каждое сообщение может быть повреждено, прервано, искажено. А самые масштабные сообщения, самые сложные импульсы, посылаемые на самые дальние расстояния, легче всего исказить. Когда-то уже совсем скоро – не в 1948 году, а при жизни Шеннона и его коллег по «Лабораториям Белла» – человеческая коммуникация должна была достичь пределов своих стремлений, если бы не была решена проблема с шумом.
Это было задачей второй фундаментальной теоремы Шеннона. В отличие от первой, которая временно исключала шум из уравнения, вторая учитывала реалии и показывала нам границы нашей точности и скорости в рамках шумного мира. Понимание этих границ требовало исследования не только того, что мы хотим сказать, но и способов, как мы это скажем, а именно качества канала связи, будь то телеграфная линия или оптоволоконный кабель.
В статье Шеннона было впервые определено понятие «емкость канала связи» – количество битов в секунду, которые канал может точно передать. Он доказал точную взаимосвязь между пропускной способностью канала и двумя другими его свойствами: частотой диапазона (или того ряда диапазонов, которые он может предоставить) и соотношением сигнала и шума. И Найквист, и Хартли изучали взаимовлияния емкости, сложности и скорости. Но именно Шеннон смог облечь эти взаимовлияния в наиболее точную и контролируемую форму. Тем не менее поворотной идеей относительно емкости канала было не просто то, что ее можно было регулировать или избавиться от нее. Главное заключалось в том, что существовало жесткое ограничение – «предел скорости», выраженный в битах в секунду – на точную передачу сообщения в любой среде. После этой точки, которую довольно скоро назвали «пределом Шеннона», точность наших сообщений нарушается. Шеннон дал всем последующим поколениям инженеров ориентир, а также возможность понять, когда они бессмысленно теряют время. В некотором смысле он также дал им то, чего они жаждали со времен Томсона и трансатлантического кабеля: уравнение, которое заставило бы сообщение и среду подчиняться одним и тем же законам.