Недвоичное кодирование информации

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

В живой системе количество нейронов постоянно меняется и это влияет на информационную сложность системы, на количество информации, которую она в состоянии обработать.

Кстати, количество информации в нейронной сети приобретает иное значение, чем в двоичном представлении.

В двоичной системе количество информации зависит от «мощности алфавита» (N) и информационного веса символа (i), N=2^i,  и вычисляется по формуле I=K*i, где K – это количество символов в тексте.

В нейронной сети всё намного проще – никаких двоичных значений тут нет, и формула всего одна:

I=n!

Максимальное количество информации, которую способна хранить система из n элементов, равна n! (n-факториал) = 1*2*3*…*n.

Однако в реальности есть некоторые ограничения, накладываемые способом связи между элементами системы. По типу связи системы можно разделить на три вида:

  1. Жесткие системы с фиксированными, физическими связями (непосредственный контакт, провода, дороги, нервные волокна и т.д.).
  2. Гибкие системы, где связи создаются и обрываются по мере необходимости (воздушное сообщение, радиосвязь), используются волновые процессы.
  3. Квантовые системы, где информация общедоступна и специальные каналы связи не нужны (единое сознание, где все элементы системы находятся в зоне прямой видимости друг друга и обладают полным обзором, т.е. находятся в едином информационном пространстве).

Как видим, количество информации, которую может хранить система в реальном времени, растет от первого типа к третьему.

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

Сеть третьего типа способна кодировать информацию непосредственно в виде движущейся картинки, поскольку активность одного нейрона вызывает активность другого (других). Пусть сеть состоит из 4 нейронов, расположенных произвольным образом, например, квадратом. Даже если каждый нейрон может принимать только одно из двух состояний (активен – не активен), можно закодировать 24 значения (4!=1*2*3*4).

Для сравнения: двоичная система из 4 символов способна закодировать лишь 2^4=16 значений. Почему такая разница?

Дело в том, что двоичный код статичен. Если в нем 1-ый и 2-й нейрон активны, считается, что они равны 1, а остальные два нейрона равны 0. А для динамичной нейронной сети имеет значение 12 или 21. Это два разных значения, два разных направления, иная последовательность событий.

Сеть из 8 нейронов способна закодировать 8!=40320 значений, а в двоичном коде – всего 2^8=256 значений. Разница значительная! Если же нейрон может принимать и какие-то промежуточные значения, то объем информации становится еще больше. Но что еще более замечательно – нет необходимости в расшифровке кода, информация воспринимается в режиме реального времени.