В предыдущей части материала я достаточно подробно рассказал об уравнении 1 + 1 = 1 в булевой арифметике с точки зрения Джорджа Буля и дальнейших усовершенствованиях его идей. В том числе о вкладе Уильяма Джевонса (именно он ввёл термин булева функция).
Как я упоминал в начале предыдущей статьи, Клод Шеннон был вторым человеком, кто внёс наибольший вклад в то, что это уравнение стало инструментом для проектирования сложных цифровых схем и послужило одним из триггеров начала информационной эпохи. В одной из прошлогодних статей я уже кратко рассказывал о фундаментальном вкладе Шеннона в криптографию, но в этом материале мы зайдём немного с другой стороны.
В детстве Клод Шеннон любил проектировать разные электрические штуковины типа радиоуправляемой модели лодки или телеграфной системы, которая позволяла ему общаться с другом, живущим в полумиле от него. Конечно, он мог бы использовать телефон, но какой в этом интерес?
Схемы, которые собирал Шеннон, были сделаны из элементарных переключателей, батарей и других элементов, соединённых проводами. Ток будет течь от одного вывода батареи по проводам к другим элементам схемы, а затем обратно к другому выводу батареи, пока переключатели это допускают. Замкнутый переключатель позволяет току течь по цепи. Через разомкнутый переключатель ток не идёт.
Вот простейшая схема с батарейкой, лампочкой и двумя переключателями, один из которых замкнут, а другой разомкнут:
Это последовательное расположение двух переключателей. Любой электрон, проходящий по цепи, должен преодолеть две преграды. Пока оба переключателя замкнуты, ток течёт, и лампочка светится. Но если любой из переключателей разомкнут, как на схеме, цепь в целом становится разомкнутой, и ток отсутствует.
Вот другой способ расположения тех же двух переключателей:
Это параллельное расположение двух переключателей. Теперь у каждого электрона есть выбор пути, поэтому пока хотя бы один из переключателей замкнут, цепь в целом будет замкнутой и лампочка будет светиться. Только если оба переключателя разомкнуты, цепь в целом будет разомкнутой.
Эти факты вместе с соответствующей терминологией были, безусловно, известны Шеннону в 1932 году, когда он поступил в Мичиганский университет, где получил двойную специальность по электротехнике и математике. Многое из того, что Шеннон узнал из инженерных курсов, связано аналогичными принципами для понимания того, как объединяются элементы схемы, когда они чуть более сложны, чем простые элементы типа ключей. Например, когда два резистора с сопротивлением R1 и R2 объединены в цепь, они действуют как один резистор с сопротивлением (R1 + R2), если подключены последовательно, и с сопротивлением 1/(1/R1 + 1/R2), если подключены параллельно. Такие формулы из электрофизики сформировали математические основы электротехники. Однако Шеннон также прослушал курс философии, на котором узнал о работах Джорджа Буля, и от его внимания не ускользнуло, что если закодировать правила коммутации сетей с помощью следующих таблиц:
где 0 означает открыто, а 1 — закрыто, мы получим таблицы операций для «И» и «ИЛИ». Здесь я немного упрощаю историю, в оригинальном способе Шеннона, связывая коммутационные цепи с булевой алгеброй он представлял открытые переключатели единицами, а закрытые — нулями. В настоящее время признано, что оба варианта имеют своё применение.
В 1936 году Шеннон начал обучение в магистратуре по электротехнике в Массачусетском технологическом институте, где работал с Вэнниваром Бушем над устройством под названием «дифференциальный анализатор». Это был аналоговый компьютер. Он вдохновил Шеннона на разработку идей, которые в конечном итоге отодвинули аналоговые компьютеры на обочину вычислительной игры. Сложность дифференциального анализатора и характер его конструкции заставили Шеннона задаться вопросом: как можно проектировать сложные схемы, чтобы сохранить их предполагаемую функциональность, минимизируя при этом количество элементов схемы?
Формулы булевой логики дали подсказку. Например, рассмотрим закон, который гласит, что ∧ дистрибутивен над ∨:
x ∧ (y ∨ z) = (x ∧ y) ∨ (x ∧ z)
Перевернём и получим следующую формулу:
(x ∧ y) ∨ (x ∧ z) = x ∧ (y ∨ z)
Применительно к коммутационным схемам эта формула говорит нам о том, что определённый вид схемы с тремя логическими элементами может быть заменён на схему всего с двумя, не влияя на её работу.
В 1938 году, в возрасте 22 лет, Шеннон защитил магистерскую диссертацию по электротехнике и впервые явно провёл аналогию между булевой логикой и проектированием схем. Это могло показаться бесплодным занятием, поскольку большинство электронных устройств состоят не только из переключателей и проводов. Например, дифференциальный анализатор представлял числа разными электрическими величинами (сила тока, напряжение, сопротивление, ёмкость и индуктивность). В отличие от этого, «словарь» включения/выключения коммутационных цепей казался слишком «бедным», чтобы сделать хоть что-то полезное, но нам сейчас всё это кажется элементарным.
Кроме того, Шеннон показал, что задача оптимизации проектирования схем вручную может быть решена с помощью формализма сложения и умножения, который он заимствовал из алгебраической логики. Вместо того, чтобы писать:
(x ∧ y) ∨ (x ∧ z) = x ∧ (y ∨ z)
Шеннон писал:
(x · y) + (x · z) = x · (y + z)
С тех пор проектировщики схем используют эти символы. Как только инженеры смогли усвоить, что в этом новом контексте x · x = x и x + x = x, и что «сложение» теперь является дистрибутивным по сравнению с «умножением», они обнаружили, что их навык манипулирования алгебраическими символами, отточенный ещё в средней школе, сослужил им хорошую службу.
Алгебраический подход Шеннона к упрощению схем оказался настолько успешным, что им больше никто не пользуется (я имею в виду людей). Шеннон свёл проектирование схем к алгебре, а затем его последователи нашли способы заставить компьютеры решать сложные алгебраические задачи быстрее и весьма надёжнее, чем люди. Проектирование схем стало автоматизированным, так что компьютеры, основанные на булевой логике, запускают программы, которые используют формализм Шеннона для проектирования.
Магистерская диссертация Шеннона была провозглашена самой влиятельной диссертацией всех времен, но в 1938 году его величайшая работа всё ещё была впереди. И это далеко не его докторская диссертация («Алгебра теоретической генетики»), которую он завершил в 1940 году.
Магнум опус Шеннона заключается в теории информации, которую он разработал в последующее десятилетие, работая в Bell Labs. Так же, как Шеннон показал в 1930-х годах, что нулей и единиц достаточно для вычислений, в 1940-х годах он показал, что нулей и единиц достаточно для общения. Именно эта работа привела к тому, как мы измеряем информацию в «битах» (хотя термин «бит» впервые появился в статье Шеннона 1948 года, он приписал его своему коллеге из Bell Labs Джону Тьюки).
В отличие от Буля, чью работу проигнорировали психологи его времени, к его великому разочарованию, работа Шеннона привлекала внимание психологов и учёных и не очень. Исследователи из всех областей человеческого знания жаждали увидеть, какие трюки можно заставить выполнять блестящие новые идеи Шеннона. Эта мания вызывала такие курьёзы, как статья «Теория информации, фотосинтез и религия». Сам Шеннон советовал учёным более трезво подходить к вопросу, предупреждая сторонников теории информации, что «редко больше, чем несколько секретов природы раскрываются одновременно», и утверждая необходимость для учёных сохранять «полностью научный подход».
Хотя большинство людей согласятся со мной, что величайшим вкладом Шеннона в инженерию и мир идей была его теория информации, в интервью в 1980-х годах, вспоминая свою карьеру, он выразил особую симпатию к своей ранней работе над коммутационными цепями и булевой алгеброй. «Я думаю, что я получил больше удовольствия от этого, чем от чего-либо ещё в своей жизни, в творческом плане».
Помимо научной деятельности Шеннон придавал большое значение веселью и провел остаток своей жизни, получая его. Он сказал одному интервьюеру: «Я всегда создаю совершенно бесполезные безделушки просто потому, что их весело делать». Например, в 1950 году он и его жена Бетти построили электромеханическую мышь, которая могла научиться ориентироваться в лабиринте, используя метод проб и ошибок (об этом подробнее написано здесь). Но больше он никогда не делал ничего, что было бы настолько близко к важности его работы по теории переключения или теории информации.
Некоторые говорят, что мышь Шеннонов была одним из первых примеров искусственного интеллекта, но это не привело ни к чему большему. Он также писал статьи по компьютерным шахматам и был одним из организаторов семинара в 1956 году, который считается первой конференцией по искусственному интеллекту. Тем не менее он не считал себя крёстным отцом ИИ. Этот титул в настоящее время чаще ассоциируется с праправнуком нашего дорогого Джорджа Буля Джеффри Эверестом Хинтоном (вот же талантливая семейка!!!).
Одним из интересов Хинтона являются нейронные сети. Хотя искусственные нейроны, которые он изучал, сильно отличаются от коммутационных сетей Шеннона, основанных на булевой логике, можно сказать, что есть своего рода некоторое семейное сходство. В современных системах ИИ искусственная нейронная сеть поддерживается схемами, которые всё ещё выполняют классические цифровые вычисления того типа, пионером которых был Шеннон. В этом году «за основополагающие открытия и изобретения, которые делают возможным машинное обучение с использованием искусственных нейронных сетей» Джеффри Хинтон получил Нобелевскую премию по физике.
В настоящее время, благодаря большим языковым моделям, в воздухе витает ощущение, что человеческий мозг, возможно, находится на грани разработки собственной замены. ChatGPT (и остальные «товарищи»), безусловно, делает сносную работу, убеждая людей в том, что думает так же, как и мы, хотя я не уверен, означает ли это, что ChatGPT умён или что люди глупы.
Что бы Буль подумал о цифровых компьютерах и перспективе машинного интеллекта? Возможно, он был бы в восторге. В конце концов, его жена Мэри писала, что он считал, что «Законы мышления» — это «на самом деле работа о работе мозга — работа по психологии, а не математический текст». Если так, то машина, построенная на сформулированных им принципах, должна быть способна имитировать работу мозга, и какое лучшее доказательство этого может быть, чем цифровые машины, которые могут сойти за людей?
С другой стороны, архитектура нейронных сетей не реализует булеву логику напрямую. Буль предпочел бы старые подходы к ИИ, которые пытались моделировать мир символически, но они вряд ли смогли бы привести к веб-сервисам, способным делать то, что они могут делать сейчас. Ведь одним из краеугольных камней сегодняшнего ИИ являются многослойные нейронные сети, которые имеют лишь смутное сходство с составными предложениями Буля или иерархическими сетями переключателей Шеннона.
Хотя мы никогда не узнаем, что настоящий Джордж Буль думал бы по поводу современного ИИ, есть ощущение, что когда-нибудь у нас может появится на это какой-то внятный ответ. В конце концов, многие сегодня говорят о цифровом воскрешении мёртвых, и качество мимикрии обязательно улучшится по мере усложнения дизайна больших языковых моделей. LLM, обученный всему, что он когда-либо писал и публиковал, включая написанное о Буле его женой, которая знала его лучше, чем кто-либо другой, мог бы стать сносным заменителем Джорджа Буля.
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS