УДК 512.54
Способ преобразования произвольного набора бинарных векторов в ортогональный набор бинарных векторов
Евгений Е. Слядников*
Томский государственный университет, Ленина 36, Томск, 634050 ТФ ИВТ СО РАН, Академический 10/4, Томск, 634055,
Россия
Илья А. Борило^
Томский государственный университет, Ленина 36, Томск, 634050,
Россия
Получена 24.10.2011, окончательный вариант 02.12.2011, принята к печати 10.01.2012 Сформулирован способ и построен алгоритм преобразования произвольного набора бинарных векторов в набор взаимно ортогональных бинарных векторов. Получено соотношение, ограничивающее размерность пространства взаимно ортогональных векторов.
Ключевые слова: микротрубочка цитоскелета, нейронная сеть Хопфилда.
Введение
В последние годы наблюдается значительный интерес к гипотезе квантово-статистической природы человеческого сознания [1]. Согласно этой гипотезе сознание — это процесс, протекающий в квантово-статистической подсистеме мозга, которая, благодаря своей квантово-статистической природе, способна чрезвычайно эффективно обрабатывать сенсорную информацию, видеоданные, осуществлять сложные логические операции. Есть экспериментальные свидетельства, что в нейронах мозга подходящими структурами для "квантовостатистических вычислений" являются микротрубочки цитоскелета, состоящие из молекул тубулина [2].
В работе [З] показано, что для моделирования обработки информации в микротрубочке цитоскелета в простейшем случае можно использовать нейронную сеть Хопфилда. Принцип работы нейронной сети Хопфилда состоит в том, что задается начальное состояние нейронной сети Хопфилда и затем сеть эволюционирует в состояние, в котором она будет обладать минимальной "энергией" [4]. Поэтому микротрубочка цитоскелета описывается бинарным вектором, компоненты которого равны І или —І. Устойчивые состояния микротрубочки цитоскелета определяются матрицей J, которая задается по правилу Хебба [5]:
N
Jij = Е Sk • Sk, (1)
k=1
где Sk, Sjk — i-я и j-я компоненты k-го вектора сохраняемого в микротрубочке цитоскелета; N — количество сохраняемых векторов образов в микротрубочке цитоскелета. Устойчивые
*[email protected] t [email protected] © Siberian Federal University. All rights reserved
состояния соответствуют максимальным собственным значениям матрицы J. Чтобы сохраняемые векторы соответствовали максимальным собственным значениям матрицы J, они должны удовлетворять определенным условиям. Поскольку матрица J — симметричная матрица, таким условием является взаимная ортогональность векторов сохраняемых образов [6]. Однако на практике сохраняемые в микротрубочке цитоскелета векторы образов часто не ортогональны друг другу. Поэтому целью настоящей работы стало построение способа и реализация алгоритма преобразования произвольного набора бинарных векторов в набор взаимно ортогональных бинарных векторов для надежного сохранения в микротрубочке цитоскелета.
1. Процедура ортогонализации векторов
Очевидно, в общем случае сохраняемые векторы Бк не будут взаимно ортогональны. Решить данную проблему можно, если поставить в соответствие каждому вектору Бк некоторый "близкий" вектор V1 такой, что полученные векторы V1 будут взаимно ортогональны. Далее нужно сохранять в микротрубочке цитоскелета полученные векторы Vі вместо векторов Бк. Данная замена допустима, так как в микротрубочке цитоскелета состояние, соответствующее одному из векторов Бк, будет эволюционировать к ближайшему состоянию, соответствующее соответствующему вектору V1.
В качестве меры расстояния между векторами можно использовать скалярное произведение, ибо все состояния микротрубочки цитоскелета лежат на гиперсфере радиусом п1/2, где п — число компонент вектора. Следовательно, любой из векторов V11, подобранный для соответствующего вектора Бк1, должен быть таким, что скалярное произведение данного вектора V11 с вектором Бк1 будет больше, чем скалярное произведение вектора Бк1 с любым другим вектором V1. Для заданного вектора Бк1 такой вектор можно подобрать, если ни для одного из уже подобранных для других векторов V1 не выполняется условие [6]
т
п -^2(Бк1 • V'?)2 < (Бк1 • Vі)2, (2)
5 = 1
где т — число уже подобранных векторов V1. Если такой вектор существует, то для данного вектора Бк1 нельзя подобрать новый V1.
Используя условие (2) в качестве критерия, сформулируем процедуру ортогонализации векторов Бк, которая состоит из пяти шагов:
Шаг 1. Для первого вектора Бк в качестве вектора V1 берем сам вектор Бк, так как еще не подобран ни один вектор V1. Переходим к шагу 2.
Шаг 2. Проверяем, есть ли в наборе векторов Бк вектор, которому не поставлен в соответствие вектор V1, и меньше ли количество векторов в наборе векторов V1 максимального возможного количества: если да, то выбираем данный вектор Бк и переходим к шагу 3, иначе процесс ортогонализации заканчиваем.
Шаг 3. Для выбранного вектора Бк проверяем, существует ли вектор V1, для которого выполняется условие (2): если да, то выбранный вектор Бк ставим в соответствие данному вектору V1 и переходим к шагу 2, иначе переходим к шагу 4.
Шаг 4. Подбираем для выбранного вектора Бк некоторый вектор V°г* , который ортогонален всем уже подобранным векторам V1 . Процедура подбора вектора V°г* будет описана в следующем разделе. Переходим к шагу 5.
Шаг 5. Проверяем, нет ли среди подобранных векторов V1 вектора, который был бы ближе к выбранному вектору Бк, чем подобранный вектор V°г*. Если да, то выбранный вектор Бк ставим в соответствие данному вектору V1 и переходим к шагу 2, иначе добавляем вектор V°г* в набор векторов V1. Выбранный вектор Бк ставим в соответствие данному вектору V°г* и переходим к шагу 2.
Пятый шаг необходим, так как в данной задаче необходимо подобрать бинарные векторы, а не вещественные. В случае вещественных векторов, используя алгоритм Грама-Шмидта [6], пятый шаг можно исключить и ставить вектор Vort в соответствие вектору Sk.
2. Способ подбора ортогональных векторов
Вектор, подобранный на шаге 1 процедуры ортогонализации, обозначим V0. Суть подбора ортогонального вектора состоит в том, что для вектора Sk нужно подобрать "близкий" вектор Vort, который будет ортогонален всем подобранным векторам Vl. Поскольку компоненты векторов равны 1 или —І , то два вектора будут ортогональны, если половина соответствующих компонент имеет одинаковые значения, а вторая половина соответствующих компонент имеет противоположные значения.
Для формулирования описания способа введем ряд определений.
Однородной областью компонент некоторого заданного множества векторов назовем такое подпространство пространства векторов, в котором все векторы, соответствующие векторам заданного множества, коллинеарны. Пример:
S0 = (І, І, І, —І, І)
S1 = (І, —І, —І, І, І)
S2 = ( —І, —І, І, —І, —І)
Данные векторы будут разделены на три однородные области: первая область состоит из 1 и 5 компоненты, вторая состоит из 3 и 4 компоненты, третья состоит из 2 компоненты.
Пусть среди однородных областей, на которые разбито некоторое заданное множество векторов, есть однородная область с четным числом компонент. Элементом разбиения данной однородной области будем называть некоторый вектор в подпространстве векторов, соответствующем данной однородной области, который ортогонален всем векторам в подпространстве векторов, соответствующем векторам из заданного множества векторов.
Два элемента разбиения будем называть одинаковыми, если им соответствует одно и то же подпространство векторов и эти векторы одинаковы.
Два элемента разбиения будем называть противоположными, если им соответствует одно и то же подпространство векторов и значения компонент этих векторов противоположны.
Согласно новым определениям набор векторов Vl, состоящий из одного вектора V0, будет иметь одну однородную область.
Пусть набор векторов Vl состоит из одного вектора V0. Для некоторого вектора Sk необходимо подобрать вектор V1 , который будет ортогонален вектору V0 и будет находиться на наименьшем расстоянии от вектора Sk . В соответствии с условием ортогональности вектором V1 будет вектор, состоящий из элемента разбиения, соответствующего одной однородной области набора векторов Vl , состоящего из одного вектора V0
Вектор V1 подбираем путем изменения компонент вектора Sk так, чтобы полученный вектор был ортогонален вектору V0 и количество измененных компонент вектора Sk для этого было наименьшим. Сформированный таким способом вектор V1 будет ближайшим к вектору Sk вектором, ортогональным вектору V0. В результате набор векторов Vl будет состоять из векторов V0 и V1 и разбит на 2 однородные области. Очевидно, если последовательно подбирать векторы, соответствующие векторам Sk , так, что в данных векторах каждой однородной области набора векторов Vl будет соответствовать элемент разбиения, то подобранный вектор будет ортогонален всем векторам из набора векторов Vl . Вектор, подобранный таким образом, будем обозначать V1, где i — некоторый индекс, который может принимать целые положительные значения. В результате перед подбором вектора Vi для некоторого вектора Sk набор векторов Vl будет разбит на 2i-1 однородных областей
с одинаковым количеством компонент в каждой однородной области. В наборе векторов V1 будет і векторов с индексами от 0 до і — 1. Вектор Vг подбираем таким, что каждой из 2і-1 однородных областей в нем будет соответствовать элемент разбиения. Каждый элемент разбиения подбираем так же, как и вектор V1, но в этом случае рассматриваем не весь вектор, а каждую соответствующую однородную область в отдельности. Вместе с вектором Vі набор векторов V1 будет разбит на 2і однородных области с одинаковым количеством компонент в каждой однородной области. Пример подобранных векторов V®:
V0 = (1,1,1,1),
V1 = (1,1, —1, —1),
V2 = (1, —1,1, —1).
Последним вектором, который можно подобрать данным способом, будет некоторый вектор Vу. Индекс р связан с количеством компонент в векторе п соотношением
п = в • 2Р, (3)
где в — наибольшее нечетное число, которому кратно количество компонент в векторе п, и число компонент в каждой из однородных областей, на которые разделен набор векторов V1 и вектор Vу.
Рассмотрим некоторый вектор V? из набора векторов V1. Данный вектор будет состоять из 2і-1 элементов разбиения, соответствующих однородным областям, на которые разделено множество векторов V1 с индексами і Є {0 ...і — 1}. Очевидно, что если в данном векторе заменить часть элементов разбиения на противоположные, то данный вектор будет ортогонален всем векторам V1 с і Є {0 .. .і — 1,і + 1.. .р}. Такой вектор обозначим V?’4. Поскольку количество компонент в элементах разбиения вектора V? одинаковое, то вектор V? будет ортогонален вектору V, если количество одинаковых элементов разбиения равно количеству противоположных элементов разбиения. Очевидно, что задача подбора векторов V?’4, ортогональных вектору V? и другим подобранным векторам V?’4, аналогична задаче подбора вектора V®, ортогонального вектору V0 и другим подобранным векторам V\ Различие заключается в том, что при подборе вектора V?’4, близкого к вектору Бк, выбор того, какие элементы разбиения должны быть одинаковыми, а какие противоположными, будет определяться количеством соответствующих компонент, которые надо изменить в векторе Бк . Пример подобранных векторов Vг и одного вектора V?’4:
V0 = (1,1,1,1),
V1 = (1,1, —1, —1),
V2 = (1, —1,1, —1),
V2Д = (1, —1, —1,1).
Оценим максимальное количество векторов V1 и V5,4, которые можно подобрать в набор векторов V1. Количество векторов Vі ограничивается соотношением выражения (3). V?’4 можно подобрать только для векторов V1 с і Є {0... р}. Для случая р = 0 набор векторов V1 будет состоять из одного вектора: V0. Для случая р =1 набор векторов V1 будет состоять из двух векторов: V0 и V1. Рассмотрим случай р больше 1. Вектор V2 состоит из двух элементов разбиения, соответствующих однородным областям, на которые разбито множество векторов V0 и V1. Так как вектор V2 состоит из двух элементов разбиения, подбор вектора V2’4, соответствующего вектору V2, будет эквивалентен подбору вектора V1, соответствующего вектору V0. Для вектора V2 будет подобран один вектор V2,4, данный вектор обозначим V2>1. В результате для р = 2 набор векторов V1 будет состоять из четырех векторов: V0, V1, V2 и V2,і. Очевидно, что подбор векторов V?’4 для некоторого вектора V? будет
эквивалентен подбору векторов в набор векторов V1 для случая р = j — 1. Следовательно, количество векторов в наборе векторов будет увеличиваться в два раза при подборе соответствующих ему векторов. Следовательно, максимальное количество векторов, которое может быть в наборе векторов V1 для заданного р, будет равно 2Р.
В результате процедура подбора вектора Vort, соответствующего вектору Sk, будет состоять из следующих шагов:
Шаг 1. Если количество векторов V® в наборе векторов V1 меньше р, то подбираем вектор V®, ближайший к вектору Sk.
Шаг 2. Если в наборе векторов V1 есть векторы V® с индексами больше 1, то для тех векторов, для которых не подобрано максимальное количество векторов VJ,t, подбираем вектор VJ,t, ближайший к вектору Sk.
Шаг 3. Среди подобранных векторов V® и Vг'1 выбираем вектор, который является ближайшим к вектору Sk. Данный вектор будет вектором Vort.
Заключение
Для надежного хранения в микротрубочке цитоскелета образов сформулирован способ и построен алгоритм преобразования произвольного набора бинарных векторов в набор взаимно ортогональных бинарных векторов. Получено соотношение, ограничивающее размерность пространства взаимно ортогональных векторов, связывающее число компонент бинарного вектора и наибольшее нечетное число, которому кратна размерность векторов и число компонент в каждой из однородных областей.
Авторы искренне благодарны рецензенту за конструктивное и доброжелательное отношение к нашей статье.
Список литературы
[1] Р. Пенроуз, Тени разума: в поисках науки о сознании, Ижевск, ИКИ, 2005.
[2] I.N.Herstein, Orchestrated Reduction of Quantum Coherence in Brain Microtubules, Journal of Consciousness Studies, 1(1994), 91-118.
[3] Е.Е. Слядников , Физическая модель и ассоциативная память дипольной системы микротрубочки, ЖТФ, 77(2007),№В. 7, 77-86.
[4] J.J.Hopfield , Neural networks and physical systems with emergent collective computationa, Proc. of National Academy of Sci., 79(1982) №8, 2554-2558.
[5] D.O.Hebb, The Organization of Behavior, New York, Wiley, 1957.
[6] П.Ланкастер, Теория матриц, М., Наука, 1973.
The Method of Transformation of an Arbitrary Set of Binary Vectors into a Set of Orthogonal Binary Vectors
Evgeny E. Slyadnikov Ilya A. Borilo
Both technique and algorithm for transformation of an arbitrary set of binary vectors into the set of mutually orthogonal ones are proposed. The constraint for the dimension of such linearly independent space is obtained.
Keywords: cytoskeleton microtubules, Hopfield neural network.