Круглый тензор… Как много в этом словосочетании для сердца обычного млщика. Круглые тензоры пытаются тащить вместо того, чтобы катить, их хотят загнать в круглые GPU и вообще воспринимают несерьёзно. А быть может они этого не заслужили?
Пора сорвать покровы и показать, что круглый тензор не просто реален, но и способен — ни много, ни мало — помочь преодолеть пресловутое проклятие размерности.

Для начала конкретизируем, что под тензорами в данном случае мы будем понимать, фактически, многомерный массив чисел. Спокойно, физики — мем из ML, а значит и терминологию мы будем использовать соответствующую.
Впрочем, сразу с абстрактного ‑го ранга стартовать — моветон, давайте будем индуктивными и рассмотрим для начала квадратные матрицы. Для нас будет полезно традиционное представление о матрицах, как о прямоугольных таблицах, чьи индексы задаются в виде пары натуральных чисел
и
. Доступ к матричному элементу, таким образом, осуществляется через эту пару, что напоминает доступ к точке двумерного пространства в декартовой системе координат.
Нам же нужно построить круглые матрицы. Как мы поступаем в случае двумерных пространств? Правильно, переходим от декартовой системы координат к полярной, то есть от задания положении точки через к заданию через
.
Можно ли провернуть такой же фокус с матрицами? Ну, мы можем в лоб дискретизировать радиус и разделить полный круг на секторов. Введя радиальный и полярный индексы
, для некоторой матрицы
можно получить что‑то типа такого (для эстетичности я откладываю угол от вертикальной оси — как у часов):

Но в чём же тут на самом деле круглость? По сути, эта та же прямоугольная матрица, просто вывернутая мехом столбцами наружу. Эту эквивалентность можно наглядно увидеть на рисунке ниже:

К такому представлению есть и другие вопросы. Что делать с точкой в центре? А какую выбрать ? В общем, такой вариант не тру.
Давайте рассуждать логически: важнейшим свойством круговой геометрии должна быть линейная зависимость размеров разных изогонических сущностей — чем дальше от центра, тем длиннее/больше. В нашем случае должно выполнятся условие . Давайте, не мудрствуя лукаво, вообще положим
. В таком подходе наши круглые матрицы будут выглядеть следующим образом:

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

Ну, допустим, и что это даёт? Ну, начать стоит с того, что существует много задач, где треугольные матрицы (а значит наши круглые матрицы) могут быть полезны.
Взять хотя бы школьную таблицу умножения. Для её формального хранения требуется переменная в 10×10 чисел, но сама матрица умножения симметрична, а значит такое выделение памяти избыточно — здесь можно обойтись круглой матрицей! (Анти)симметричные матрицы возникают всюду, где нам нужно хранить данные о (анти)симметричных парных связях, и использование круглых матриц уменьшает количество памяти для хранения в раз, если ввести соответствующий тип переменных (такие представления есть в Julia, Eigen/C++, а также BLAS/LAPACK в Fortran‑экосистеме). А ведь даже аттеншн бывает симметричным!
Отлично, теперь пора переходить непосредственно к круглым тензорам. В общем‑то, дело за малым — наращиваем ранг. Сферические тензоры могут быть построены на основе трёхмерного кубического массива с треугольной структурой, гипесферические — многомерного. В благоприятном случае выигрыш в памяти составит раз, где
— ранг тензора. Ну разве не здорово?
Таким образом, круглые тензоры могут стать вполне ценным инструментом для борьбы с проклятием размерности! Кто‑то скажет, мол, не всегда массивы будут (анти)симметричны, не всегда гиперкубичны. Такое и правда возможно, но разве это может остановить смелый ум? Предлагаю в таком случае проводить КРУгло‑Тензорную Аппроксимацию — сокращённо КРУТА. Но про это как‑нибудь в следующий раз.
Так победим, спасибо за внимание!
Этот пост создан с юмористической целью и призван развеселить читателей нашего блога в День смеха, не относитесь к написанному серьёзно (ну, если только самую малость). Заодно хочется поздравить Институт AIRI с днём рождения — в начале апреля нам исполняется 5 лет!
