Чтобы сделать это сравнение более наглядным, я должен объяснить, что такое логический элемент. В компьютере мы также сталкиваемся с ситуацией типа «все или ничего»: либо в проводнике есть импульс тока, либо его нет, причем когда импульс есть, его величина всегда одна и та же. Поскольку все в компьютере строго синхронизовано, то отсутствие импульса было бы определенным сигналом, который может быть «замечен» компьютером. Вообще говоря, когда мы пользуемся термином «логический элемент», мы неявно подразумеваем, что наличие или отсутствие импульса обозначает «истину» или «ложь», соответственно. Конечно же, к реальной истине или лжи это никакого отношения не имеет и используется только как общепринятая терминология. Мы будем также обозначать «истину» (наличие импульса) цифрой «1» и «ложь» (отсутствие импульса) цифрой «0». Помимо этого, как и в главе 4, мы будем обозначать знаком «&» логическое «и» (которое является «утверждением» об «истинности» обоих аргументов, т. е. принимает значение 1 тогда и только тогда, когда оба они равны 1); «V» — логическое «или» (которое «означает», что либо один из аргументов, либо оба они «истинны», т. е. выражение становится равным 0 тогда и только тогда, когда оба аргумента имеют значение 0); знаком «=>» — «следует» (т. е. А => В означает утверждение «если истинно А, то истинно В», что эквивалентно утверждению «либо А ложно, либо В истинно»); «<=>» — «тогда и только тогда» (выражение истинно, если оба аргумента «истинны» или же оба «ложны» одновременно); и использовать знак «~» для логического «не» (выражение «истинно», если аргумент «ложен», и «ложно», если аргумент «истинен»). Результаты применения различных логических операций можно описать при помощи так называемых «таблиц истинности»:
в каждой из которых А обозначает строки (т. е. А = 0 дает первую строку, а А = 1 — вторую), а В — столбцы. Например, если А = 0 и В = 1, что во всех таблицах отвечает правому верхнему углу, то выражение А => В согласно третьей таблице примет значение 1. (Соответствующий словесный пример из области традиционной логики: утверждение «если я сплю, то я счастлив», очевидно, остается истинным в частном случае, когда я бодрствую и счастлив.) И, наконец, действие логического элемента «не» может быть записано просто как:
— 0 = 1 и ~ 1 = 0.
Это — основные типы логических элементов. Есть еще ряд других, но все они могут быть построены из только что описанных[208].
Итак, можем ли мы, в принципе, построить компьютер, используя соединенные между собой нейроны? Я собираюсь показать, что это возможно даже при самых примитивных представлениях о функциях нейрона. Посмотрим, как можно было бы, в принципе, построить логические элементы на основе соединенных между собой нейронов. Нам потребуется новый способ записи цифр, поскольку в отсутствие сигнала ничего не происходит. Будем считать (совершенно произвольно), что двойной импульс обозначает 1 (или «истину»), а одиночный — 0 (или «ложь»). Примем также упрощенную схему, в которой нейрон возбуждается только при получении двух возбуждающих импульсов (т. е. двойного импульса) одновременно. Тогда нетрудно сконструировать элемент «и» (т. е. «&»). Как показано на рис. 9.13, для этого достаточно, чтобы с выходным нейроном образовывали входные синапсы два нервных окончания.
Рис. 9.13. Логический элемент «и». В «нейронной модели» (справа) нейрон возбуждается только в том случае, когда на его вход поступают одновременно два импульса
(Тогда, если по обоим окончаниям приходят двойные импульсы, то и первый, и второй импульс превысят заданный двухимпульсный порог срабатывания; а если хотя бы на один входной синапс приходит одиночный импульс, то превысит порог лишь одна пара возбуждающих импульсов. Я предполагаю, что все импульсы хорошо согласованы по времени, и что в случае двойного импульса, для определенности, синхронизация осуществляется по первой паре импульсов.)
Конструкция элемента «не» (т. е. «~») значительно сложнее. Один из способов его построения приведен на рис. 9.14.
Рис. 9.14. Логический элемент «не». В «нейронной модели», как и ранее, для срабатывания нейрона требуется одновременное воздействие двух (по крайней мере) одиночных импульсов
Входной сигнал поступает по аксону, разделяющемуся на две ветви. Одна из ветвей имеет увеличенную длину, такую, чтобы сигнал при движении по ней запаздывал ровно на время, равное промежутку между импульсами в паре. Затем обе ветви снова разделяются, и одно из ответвлений каждой ветви отходит к тормозящему нейрону, причем аксон от ветви с задержкой предварительно разделяется снова, образуя прямую ветвь и ветвь с задержкой. На выходе тормозящего нейрона не будет ничего при одиночном импульсе на его входе, и двойной импульс (с задержкой), если на его входе также был двойной импульс. Аксон тормозящего нейрона разделяется на три ветви, каждая из которых образует тормозящий синапс на оконечном нейроне. Оставшиеся два ответвления исходного аксона снова разделяются, так что к конечному нейрону подходят уже четыре терминали, образующие возбуждающие синапсы. При желании читатель может проверить, что выходной сигнал этого конечного нейрона соответствует сигналу элемента «не» (т. е. пара импульсов, если на входе был одиночный, и наоборот). (Такая конструкция кажется абсурдно усложненной, но это наилучшее из того, что пришло мне в голову!) В качестве развлечения читатель может составить подобные «нейронные» схемы и для остальных описанных выше логических элементов.
Естественно, эти конкретные примеры не могут служить серьезными моделями того, что происходит в мозге на самом деле. С их помощью я только старался показать, что описанная выше модель возбуждения нейрона по сути логически эквивалентна конструкции электронного компьютера. Легко видеть, что с помощью компьютера можно воспроизвести любую модель соединения нейронов между собой. В то же время, подробно рассмотренные выше конструкции указывают на то, что и, наоборот, системы нейронов могут быть моделями компьютера и, следовательно, могут действовать как (универсальная) машина Тьюринга. Хотя при обсуждении машин Тьюринга во второй главе мы не использовали понятие логических элементов[209] и, в действительности, для построения модели машины Тьюринга в общем случае помимо логических элементов нам понадобилось бы еще многое другое, в этом нет ничего принципиально нового, если только мы допускаем возможность аппроксимации используемой в машине Тьюринга бесконечной ленты огромным, но конечным множеством нейронов. А это уже, как кажется, подводит нас к выводу о том, что мозг по своей сути эквивалентен компьютеру!
Но прежде, чем делать такие поспешные выводы, нам следует рассмотреть некоторые различия между деятельностью мозга и работой современных компьютеров, которые могут оказаться достаточно важными. Во-первых, я слишком упростил описание возбуждения нейрона, отнеся его к явлениям типа «все или ничего». Это справедливо для одиночного импульса, распространяющегося по аксону. На самом деле, когда нейрон возбуждается, он генерирует целую последовательность импульсов, быстро следующих друг за другом. Даже в состоянии покоя нейрон генерирует импульсы, но с гораздо меньшей частотой. Именно многократное увеличение частоты импульсов характеризует переход нейрона в возбужденное состояние. Кроме того, есть еще и вероятностный аспект срабатывания нейрона. Один и тот же стимул может приводит к различным результатам. Более того, в мозге нет точной синхронизации с помощью постоянной тактовой частоты, которая необходима для работы современных компьютеров. Кроме того, следует отметить, что максимальная частота срабатывания нейрона, составляющая около 1000 импульсов в секунду, гораздо меньше, чем у современных электронных устройств, у которых она более чем в 1 млн раз выше. К тому же, по сравнению с очень высокой точностью соединений в электронном компьютере, действительные соединения между нейронами кажутся в большой степени случайными и избыточными — правда, сегодня мы знаем, что в мозге (при рождении) эти соединения установлены с гораздо большей точностью, чем считалось полвека назад.