Логика сознания. Часть 1. Волны в клеточном автомате

в 12:06, , рубрики: Алгоритмы, искусственный интеллект, клеточный автомат, машинное обучение, мозг, нейронные сети, Программирование

Логика сознания. Часть 1. Волны в клеточном автомате - 1 Начнем разговор о мозге с несколько отвлеченной темы. Поговорим о клеточных автоматах. Клеточный автомат – это дискретная модель, которая описывает регулярную решетку ячеек, возможные состояния ячеек и правила изменений этих состояний. Каждая из ячеек может принимать конечное множество состояний, например, 0 и 1. Для каждой из ячеек определяется окрестность, задающая ее соседей. Состояние соседей и собственное состояние ячейки определяют ее следующее состояние.
Наиболее известный клеточный автомат – это игра «Жизнь». Поле в игре «Жизнь» состоит из ячеек. Каждая ячейка имеет восемь соседей. Задается начальная комбинация. Затем начинается смена поколений. Если у занятой ячейки два или три занятых (живых) соседа, то ячейка продолжает жить. Если соседей меньше 2 или больше 3, то ячейка умирает. Когда у пустой ячейки оказывается ровно 3 соседа в ней зарождается жизнь. Задав произвольную начальную комбинацию можно пронаблюдать ее эволюцию.

Потенциально ячейки при выборе следующего состояния могут учитывать не только состояние окрестности и правила переходов, но и опыт относительно того, с чем им ранее пришлось столкнуться. Тогда принято говорить о клеточных автоматах с памятью.

Представим следующий клеточный автомат. Расположим элементы (ячейки автомата) на регулярной решетке. Для каждого элемента определим окрестность с радиусом R, которая будет областью слежения этого элемента.

Логика сознания. Часть 1. Волны в клеточном автомате - 2

Плоскость клеточного автомата. Красным обведено область слежения выбранного элемента

Предположим, что каким-то образом на плоскости автомата возник компактный паттерн активности (рисунок ниже). Компактность означает, что все активные элементы попадают в область радиусом R.

Логика сознания. Часть 1. Волны в клеточном автомате - 3

Паттерн начальной активности. Показаны только активные элементы. Элементы изображены плотно, без зазора. Каждой точке картинки соответствует один элемент

Теперь подсчитаем сколько активных элементов попало в поле слежения каждого из элементов (рисунок ниже).

Логика сознания. Часть 1. Волны в клеточном автомате - 4

Поле слежения для одного из элементов и попавшие в это поле активные элементы

Зададимся некой небольшой вероятностью p (в примере – это 3%). Для каждого элемента, находящегося в спокойном состоянии, у которого количество активных элементов в поле слежения превысит определенный порог выполним следующую процедуру. Заставим элемент случайным образом с вероятностью p перейти в активное состояние. Соответственно, с вероятностью 1- p элемент останется в неактивном состоянии. Запомним персонально для этого элемента его выбор и картину активности в его поле слежения.

В результате вокруг паттерна начальной активности образуется окружение из активных элементов, образующих случайно сгенерированный узор (рисунок ниже). По причинам, которые скоро станут понятны назовем такую активность волновой.

Логика сознания. Часть 1. Волны в клеточном автомате - 5

Первый шаг моделирования. Волновая активность (серая) на фоне исходной активности (красная)

Перейдем к новому такту. На втором такте моделирования элементы, расположенные по периметру зоны волновой активности, «увидят» возникшую недавно активность. Повторим для них процедуру активации. Элементы, ставшие активными на предыдущем шаге, переведем в состояние релаксации, то есть выключим их активность и на определенное время заблокируем их возможность возбуждаться по отношению к распространяемому сигналу.

Логика сознания. Часть 1. Волны в клеточном автомате - 6

Второй шаг моделирования. Распространение фронта волны. Синие элементы пребывают в состоянии релаксации

Повторяя шаги моделирования, мы получим распространяющуюся по автомату активность с определенным уникальным случайно созданным узором.

Логика сознания. Часть 1. Волны в клеточном автомате - 7

Серия тактов первичного распространения узора волновой активности. Белые точки – активные элементы, образующие фронт волны. Синие точки – элементы, пребывающие в состоянии релаксации по отношению к распространяемому сигналу

Если создать в автомате другой компактный паттерн активности, то он точно так же породит распространяющийся от него фронт волны. Но, что важно, узор новой волны будет уникален и отличен от узора предыдущей волны. Любой узор начальной активности будет порождать уникальную, характерную только для него волну.

Меняя начальный узор, мы будем каждый раз получать новую волну. При этом элементы автомата будут помнить то, какие узоры через них уже пробегали. Введем правило волнового возбуждения. Каждый элемент, обнаруживший высокий уровень активности вокруг себя, должен будет проверить не похожа ли картина этой активности на однин из запомненных ранее узоров. Если картина окажется ему знакома, то ему следует вести себя так же, как и при первом прохождении такой волны.

Итоговую логику работы нашего автомата можно описать так: если элемент видит незнакомый сигнал, то он случайным образом определяется срабатывать ему или нет. При этом он запоминает и узор волны, и сделанный выбор. Если сигнал ему знаком, то он повторяет выбор, сделанный при первом знакомстве с этим сигналом. Совместное срабатывание элементов порождает фронт волны, расходящийся от паттерна начальной активности. Релаксация обеспечивает однонаправленное распространение волны от мест где активность уже была в сторону где ее еще не было.

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

Логика сознания. Часть 1. Волны в клеточном автомате - 8

Узоры волн от разных начальных паттернов, возникающие в одном и том же месте клеточного автомата

Если сигнал кодируется достаточно малым процентом активных элементов, то несколько сигналов могут распространяться по автомату одновременно, сохраняя свою индивидуальность и не интерферируя друг с другом. При одновременном распространении нескольких волн фронты этих волн могут проходить друг сквозь друга, не меняя своего узора.

Логика сознания. Часть 1. Волны в клеточном автомате - 9

Моделирование взаимного прохождения волн от двух источников. Предварительно автомат был обучен на каждую из волн в отдельности

Одновременно по автомату могут распространяться несколько волн, соответствующие разным сигналам. Однако при увеличении их количества рано или поздно наступает момент, когда наложение нескольких волновых узоров приводит к появлению ложных срабатываний. Ложные срабатывания лавинообразно увеличивают количество активных элементов. С какого-то момента возникает режим самовозбуждения, картина которого сильно напоминает картину эпилептического припадка.

Стоит отметить, что сигналы, кодируемые таким автоматом, приобретают свойство дуализма, которое соответствует дуализму элементарных частиц. Так же, как и частицы, которые проявляют одновременно и корпускулярные свойства и волновые, информационный сигнал в описываемой модели – это одновременно и паттерн, который запускает волну, и волна, которая в каждой фазе своего пути переходит в паттерн, который, в свою очередь, излучает продолжение волны. К распространению информационной волны применим принцип Гюйгенса-Френеля, когда каждая точка куда дошел фронт волны может рассматриваться как самостоятельный источник излучения сферической волны.

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

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

Логика сознания. Часть 1. Волны в клеточном автомате - 10

Исходный узор запускает волну из области (1) и, доходя до области (2), создает там уникальный узор

Если теперь в области (2) воспроизвести узор, который был там при прохождении фронта волны, то из этого места испустится волна, повторяющая исходный узор (рисунок ниже). Дойдя до области (1) она создаст узор, тождественный тому, который когда-то запускал исходную волну.

Логика сознания. Часть 1. Волны в клеточном автомате - 11

Новая волна запускается из области (2) узором, который был частью исходной волны. Фронт волны, дойдя до области (1), создает там узор аналогичный исходному

Таким образом, получается полная связанность всего пространства автомата. То есть, потенциально любое его место может запустить информационную волну и при этом все участки автомата куда дойдет соответствующая волна получат доступ к этой информации.

Программа, моделирующая такой клеточный автомат доступна по ссылке. Описанный клеточный автомат отчасти похож на бегущую волну на стадионе.

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

По такой трибуне можно передавать несложные послания. Например, узорам волн можно сопоставить буквы. Если запустить узор какой-либо буквы в одном конце трибуны, то в любом другом месте трибуны, когда до него дойдет волна, по узору этой волны можно будет сказать, какая именно буква передается.

Пока это еще не мозг, а только клеточный автомат. В следующей части будет показано, какое отношение этот автомат может иметь к реальному мозгу.

P.S. Я очень советую почитать немного больше о клеточных автоматах и о том, как они могут быть связаны с устройством вселенной и особо обратить внимание на личность Конрада Цузе.

Алексей Редозубов

Автор: AlexeyR

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js