1 .Запишем матрицу размерности m×2m следующего вида: (Gm|Em).
2. Используя операции сложения строк и умножения строки на ненулевое число преобразуем левую квадратную подматрицу к единичной. В результате получим (Em|Gm-1). Пусть известна Gm-1 — обратная к матрице Грама для множества из m векторов xi. Добавим к этому множеству вектор xm+1. Тогда матрица для обращения матрицы Gm+1 методом Гауса будет иметь вид:
После приведения к единичной матрице главного минора ранга m получится следующая матрица:
где bi — неизвестные величины, полученные в ходе приведения главного минора к единичной матрице. Для завершения обращения матрицы Gm+1 необходимо привести к нулевому виду первые m элементов последней строки и (m +1)-го столбца. Для обращения в ноль i-го элемента последней строки необходимо умножить i-ю строку на (x, xm+1) и вычесть из последней строки. После проведения этого преобразования получим
где
b0 = 0 только если новый эталон является линейной комбинацией первых m эталонов. Следовательно b0 ≠ 0. Для завершения обращения необходимо разделить последнюю строку на b0 и затем вычесть из всех предыдущих строк последнюю, умноженную на соответствующее номеру строки bi. В результате получим следующую матрицу
где Fij = Gmij-1-bicj/b0. Поскольку матрица, обратная к симметричной, всегда симметрична получаем ci/b0 = -bi/b0 при всех i. Так как b0 ≠ 0 следовательно bi = -ci.
Обозначим через d вектор ((x1, xm+1), …, (xm, xm+1)), через b — вектор (b1, …, bm). Используя эти обозначения можно записать b = Gm-1d, b0 = (xm+1,xm+1)-(d,b), b0 = (xm+1,xm+1)-(d,b). Матрица Gm+1-1 записывается в виде
Таким образом, при добавлении нового эталона требуется произвести следующие операции:
1. Вычислить вектор d (m скалярных произведений — mn операций, mn≤n²).
2. Вычислить вектор b (умножение вектора на матрицу — m² операций).
3. Вычислить b0 (два скалярных произведения — m+n операций).
4. Умножить матрицу на число и добавить тензорное произведение вектора b на себя (2m² операций).
5. Записать Gm+1-1.
Таким образом эта процедура требует m+n+mn+3m² операций. Тогда как стандартная схема полного пересчета потребует:
1. Вычислить всю матрицу Грама (nm(m+1)/2 операций).
2. Методом Гаусса привести левую квадратную матрицу к единичному виду (2m³+m²-m операций).
3. Записать Gm+1-1.
Всего 2m³+m²–m+nm(m+1)/2 операций, что в m раз больше.
Используя ортогональную сеть (6), удалось добиться независимости способности сети к запоминанию и точному воспроизведению эталонов от степени коррелированности эталонов. Так, например, ортогональная сеть смогла правильно воспроизвести все буквы латинского алфавита в написании, приведенном на рис. 1.
Основным ограничением сети (6) является малое число эталонов — число линейно независимых эталонов должно быть меньше размерности системы n.
Тензорные сети
Для увеличения числа линейно независимых эталонов, не приводящих к прозрачности сети, используется прием перехода к тензорным или многочастичным сетям [75, 86, 93, 293].
В тензорных сетях используются тензорные степени векторов. k-ой тензорной степенью вектора x будем называть тензор x⊗k, полученный как тензорное произведение k векторов x.
Поскольку в данной работе тензоры используются только как элементы векторного пространства, далее будем использовать термин вектор вместо тензор. Вектор x⊗k является nk-мерным вектором. Однако пространство L({x⊗k}) имеет размерность, не превышающую величину
Теорема. При k<n в множестве {x⊗k} линейно независимыми являются
Небольшая модернизация треугольника Паскаля, позволяет легко вычислять эту величину. На рис. 2 приведен «тензорный» треугольник Паскаля. При его построении использованы следующие правила:
1. Первая строка содержит двойку, поскольку при n= 2 в множестве X всего два неколлинеарных вектора.
2. При переходе к новой строке, первый элемент получается добавлением единицы к первому элементу предыдущей строки, второй — как сумма первого и второго элементов предыдущей строки, третий — как сумма второго и третьего элементов и т. д. Последний элемент получается удвоением последнего элемента предыдущей строки.